我将 Gurobi 6.0 与 Python 2.7 一起使用。我很想知道 Gurobi 是否允许目标函数的值来自具有决策变量索引的字典。附上代码:
from gurobipy import *
d = {
(0, 0): 0,
(0, 1): -5,
(1, 0): 4,
(1, 1): 2,
(2, 0): 0,
(0, 2): 10
}
m = Model()
x = m.addVar(vtype=GRB.INTEGER)
y = m.addVar(vtype=GRB.INTEGER)
m.update()
m.addConstr(x + y <= 2)
m.setObjective(d[(x, y)], GRB.MAXIMIZE)
m.optimize()
print m.objVal
print x.x
print y.x
模型的答案是
-5.0
-0.0
-0.0
这显然没有意义,因为 max(d[(x,y)]) = 10 根据给定的数据发生在 x=0 和 y=2 处。这里有什么问题?Gurobi 甚至允许这样的字典引用吗?甚至允许吗?