1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| from ortools.linear_solver import pywraplp
solver = pywraplp.Solver('test', pywraplp.Solver.CBC_MIXED_INTEGER_PROGRAMMING)
x1 = solver.IntVar(10, 60, 'x1') x2 = solver.NumVar(0, solver.infinity(), 'x2') x3 = solver.IntVar(0, solver.infinity(), 'x3')
constraint1 = solver.Constraint(20, 65) constraint1.SetCoefficient(x1, 2) constraint1.SetCoefficient(x2, 4.5) constraint1.SetCoefficient(x3, -0.6)
constraint2 = solver.Constraint(20, solver.infinity()) constraint2.SetCoefficient(x1, 1) constraint2.SetCoefficient(x2, 0) constraint2.SetCoefficient(x3, 5)
constraint2 = solver.Constraint(5, solver.infinity()) constraint2.SetCoefficient(x1, 0) constraint2.SetCoefficient(x2, 2.8) constraint2.SetCoefficient(x3, -1.5)
objective = solver.Objective() objective.SetCoefficient(x1, 1) objective.SetCoefficient(x2, 2) objective.SetCoefficient(x3, 1) objective.SetMaximization()
result_status = solver.Solve() print("status=" + str(result_status))
print('Number of variables =', solver.NumVariables()) print('Number of constraints =', solver.NumConstraints()) print('Optimal objective value =', solver.Objective().Value()) variable_list = [x1, x2, x3] for variable in variable_list: print(variable.name(), variable.solution_value())
|