我有大 M 参数和辅助二进制变量 w 的约束:
for i in customers:
for j in customers:
if i != j:
mdl.addConstr(y[j] + z[j] <= y[i] + z[i] - df.demand[j]*(x1[i,j] + x2[i,j])
+ 100000 * (1 - w), name= 'C8')
当我运行代码时,出现以下错误:
TypeError: unsupported operand type(s) for -: 'int' and 'tupledict'
w 定义如下:
w = mdl.addVars(0,1,vtype=GRB.BINARY, name='w')
我不明白问题出在哪里?是w的定义有问题吗? 谢谢你
由于
w
是单个变量,您需要使用 mdl.addVar: 创建它
w = mdl.addVar(0,1,vtype=GRB.BINARY, name='w')
当您需要一次添加多个变量时,请使用mdl.addVars。