Gurobi优化无法正常工作

时间:2019-01-25 05:00:59

标签: python-3.x gurobi

我正在尝试学习使用python3Gurobi做一些简单的优化工作。我遵循一些示例代码,但是我的代码无法正常工作。代码附在下面。有人可以指出错误在哪里吗?谢谢!

from gurobipy import *
x = np.arange(0, 10001, 1)
y = np.arange(0, 10001, 1)+1
z = np.arange(0, 10001, 1)+1

dic_sysc_1 = dict(zip(x, y))
dic_sysc_2 = dict(zip(x, z))

m = Model()
cp1 = m.addVar(vtype=GRB.INTEGER, lb=5, ub =10000, name="cp1")
m.update()
cp2 = m.addVar(vtype=GRB.INTEGER, lb=999, ub =10000, name="cp2")
m.update()

m.setObjective( dic_sysc_1[cp1]+dic_sysc_2[cp2], GRB.MAXIMIZE)
m.setParam('OutputFlag',0)
m.optimize()

print ("Obj:", m.objVal)
print (cp1, dic_sysc_1[cp1])
print (cp2, dic_sysc_2[cp2])

输出结果是:

Obj: 3.0
<gurobi.Var cp1 (value 5.0)> 1
<gurobi.Var cp2 (value 999.0)> 2

此外,然后我添加了另一个约束

m.addConstr( (dic_new_1[cp1]+dic_new_2[cp2]) <= 20, "c90" )

其中dic_new_1dic_new_2是两个类似于dic_sysc_1dic_sysc_2的新字典。该模型显示错误消息:

unsupported operand type(s) for -: 'bool' and 'NoneType'

1 个答案:

答案 0 :(得分:0)

这不是整数程序(MIP)的形式。您需要将模型重新构造为MIP或使用其他工具。