我对Gurobi和Python还不熟悉。我试图解决一个简单的混合二进制问题,但有一些错误。你知道吗
我把问题定义如下
我想要变量u[1,1],u[2,1],u[3,1]和u[1,2],u[2,2],u[3,2],与变量p的相似性。我想添加上述约束,但有些错误表明我的表达式不正确。你知道吗
u=m.addVars([1, 2, 3], [1, 2], vtype=GRB.BINARY)
p=m.addVars(3,2,lb=0.0)
m.addConstrs(p[i,j]<= 30*u[i,j]
for i in range(3)
for j in range(2))
m.addConstrs(p[(i,j)]>=5*u[(i,j)]
for i in range(3)
for j in range(2))
错误是这样的
line 14, in <module>
for i in range(3)
File "model.pxi", line 3062, in gurobipy.Model.addConstrs
File "/Users/Documents/pyexercise/HW4Q1.py", line 15, in <genexpr>
for j in range(2))
KeyError: (0, 0)
有人能帮我吗?谢谢!你知道吗
在Python中,使用
range(n)
返回从0
到n-1
的n
数字列表。因此,addConstrs()
函数迭代键(0,0)
、(0,1)
、(1,0)
、(1,1)
、(2,0)
和(2,1)
。你知道吗但是,
u
变量由(1,1)
、(1,2)
、(2,1)
、(2,2)
、(3,1)
和(3,2)
索引:您将收到一个
KeyError
,因为约束的索引与变量的索引不匹配。要解决此问题,您可以更改u
变量的结构以匹配p
变量的结构:相关问题 更多 >
编程相关推荐