• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

atlanticwave-sdx / pce / 3680947894

pending completion
3680947894

Pull #81

github

GitHub
Merge a6cd61918 into b40be3bdd
Pull Request #81: Updates coveralls.io configuration

845 of 1796 relevant lines covered (47.05%)

0.47 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Utility/Solver_TEmatrix_Demo.py
1
#!/usr/bin/env python3
2
# -*- coding: utf-8 -*-
3
"""
×
4
Created on Tue Mar  1 15:16:36 2022
5

6
@author: yifeiwang
7
"""
8
import copy
×
9

10
constraint_matrix = []
×
11
commodity_matrix_1 = [1, 1, 0, 0, 0, 0, 0]
×
12
commodity_matrix_2 = [-1, 0, 1, 1, 0, 0, 0]
×
13
commodity_matrix_3 = [0, -1, -1, 0, 1, 1, 0]
×
14
commodity_matrix_4 = [0, 0, 0, -1, -1, 0, 1]
×
15
commodity_matrix_5 = [0, 0, 0, 0, 0, -1, -1]
×
16
zeros = [0, 0, 0, 0, 0, 0, 0]
×
17

18
commodity_matrix = []
×
19
commodity_matrix.append(commodity_matrix_1)
×
20
commodity_matrix.append(commodity_matrix_2)
×
21
commodity_matrix.append(commodity_matrix_3)
×
22
commodity_matrix.append(commodity_matrix_4)
×
23
commodity_matrix.append(commodity_matrix_5)
×
24

25

26
for line in commodity_matrix:
×
27
    constraint_matrix.append(line + zeros + zeros)
×
28

29

30
for line in commodity_matrix:
×
31
    constraint_matrix.append(zeros + line + zeros)
×
32

33
for line in commodity_matrix:
×
34
    constraint_matrix.append(zeros + zeros + line)
×
35

36

37
matrix_lessthan = []
×
38
threezeros = zeros * 3
×
39

40
for i in range(7):
×
41
    zerosthree = copy.deepcopy(threezeros)
×
42
    matrix_lessthan.append(zerosthree)
×
43
    matrix_lessthan[i][i] = 15
×
44
    matrix_lessthan[-1][i + 7] = 5
×
45
    matrix_lessthan[-1][i + 14] = 10
×
46

47

48
bounds_equal = [1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, -1]
×
49
bounds_lessthan = [20, 10, 10, 20, 40, 10, 30]
×
50
bounds = bounds_equal + bounds_lessthan
×
51
cost = [1, 1, 2, 4, 8, 5, 3, 1, 1, 2, 4, 8, 5, 3, 1, 1, 2, 4, 8, 5, 3]
×
52

53
finalmatrix = constraint_matrix + matrix_lessthan
×
54

55
print(len(bounds) - len(finalmatrix))
×
56

57

58
#!/usr/bin/env python3
59
# -*- coding: utf-8 -*-
60
"""
61
Created on Mon Mar  7 13:42:31 2022
62

63
@author: yifeiwang
64
"""
65

66
import json
×
67

68
from ortools.linear_solver import pywraplp
×
69

70

71
def create_data_model():
×
72
    """Stores the data for the problem."""
73
    data = {}
×
74
    data["constraint_coeffs"] = finalmatrix
×
75
    data["bounds"] = bounds
×
76
    data["obj_coeffs"] = cost
×
77
    data["num_vars"] = len(finalmatrix[0])
×
78
    data["num_constraints"] = len(finalmatrix)
×
79
    for i in range(data["num_constraints"] - 7):
×
80
        # constraint_expr = [data['constraint_coeffs'][i][j] * x[j] for j in range(data['num_vars'])]
81
        print(data["constraint_coeffs"][i])
×
82
    print()
×
83

84
    return data
×
85

86

87
def main():
×
88
    data = create_data_model()
×
89
    # Create the mip solver with the SCIP backend.
90
    solver = pywraplp.Solver.CreateSolver("SCIP")
×
91

92
    x = {}
×
93
    for j in range(data["num_vars"]):
×
94
        x[j] = solver.IntVar(0, 1, "x[%i]" % j)
×
95
    print("Number of variables =", solver.NumVariables())
×
96

97
    # for i in range(data['num_constraints']):
98
    #     constraint = solver.RowConstraint(0, data['bounds'][i], '')
99
    #     for j in range(data['num_vars']):
100
    #         constraint.SetCoefficient(x[j], data['constraint_coeffs'][i][j])
101
    for i in range(data["num_constraints"] - 7):
×
102
        constraint_expr = [
×
103
            data["constraint_coeffs"][i][j] * x[j] for j in range(data["num_vars"])
104
        ]
105
        solver.Add(sum(constraint_expr) == data["bounds"][i])
×
106
    for i in range(data["num_constraints"] - 7, data["num_constraints"]):
×
107
        constraint_expr = [
×
108
            data["constraint_coeffs"][i][j] * x[j] for j in range(data["num_vars"])
109
        ]
110
        solver.Add(sum(constraint_expr) <= data["bounds"][i])
×
111
    print("Number of constraints =", solver.NumConstraints())
×
112
    # In Python, you can also set the constraints as follows.
113
    # for i in range(data['num_constraints']):
114
    #  constraint_expr = \
115
    # [data['constraint_coeffs'][i][j] * x[j] for j in range(data['num_vars'])]
116
    #  solver.Add(sum(constraint_expr) <= data['bounds'][i])
117

118
    objective = solver.Objective()
×
119
    for j in range(data["num_vars"]):
×
120
        objective.SetCoefficient(x[j], data["obj_coeffs"][j])
×
121
    objective.SetMinimization()
×
122
    # In Python, you can also set the objective as follows.
123
    # obj_expr = [data['obj_coeffs'][j] * x[j] for j in range(data['num_vars'])]
124
    # solver.Maximize(solver.Sum(obj_expr))
125

126
    status = solver.Solve()
×
127

128
    if status == pywraplp.Solver.OPTIMAL:
×
129
        print("Objective value =", solver.Objective().Value())
×
130
        for j in range(data["num_vars"]):
×
131
            print(x[j].name(), " = ", x[j].solution_value())
×
132
        print()
×
133
        print("Problem solved in %f milliseconds" % solver.wall_time())
×
134
        print("Problem solved in %d iterations" % solver.iterations())
×
135
        print("Problem solved in %d branch-and-bound nodes" % solver.nodes())
×
136
    else:
137
        print("The problem does not have an optimal solution.")
×
138

139

140
if __name__ == "__main__":
×
141
    main()
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc