from gurobipy import *
var_name = ['x', 'y1', 'y2']
obj_name = ['f', 'F']
res = 1000
dict_var = {v:0 for v in var_name}
for x in range(9):
md = Model('multi_level')
y1 = md.addVar(vtype=GRB.INTEGER, name='y1')
y2 = md.addVar(vtype=GRB.INTEGER, name='y2')
md.addConstr(y1 == [0,9])
md.addConstr(y2 == [0,7])
md.addConstr(x + y1 + y2 <= 10)
md.setObjectiveN(-y1 + y2, index = 0, priority=10, name = 'f')
md.setObjectiveN(-x - 2*y1 - 3*y2, index = 1, priority=1, name = 'F')
md.optimize()
md.setParam(GRB.Param.ObjNumber, 1)
res_temp = md.objNval
if res_temp < res:
res = res_temp
dict_var['x'] = x
dict_var['y1'] = y1.x
dict_var['y2'] = y2.x
print('变量取值为:')
for k,v in dict_var.items():
print(k, ':', v)
print('目标函数取值为:')
print(res)
- 1
- 2
- 3
- 4
- 5
- 6
前往页