Gurobi:不支持的操作数类型 -:'int' 和 'tupledict'

问题描述 投票:0回答:1

我有大 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的定义有问题吗? 谢谢你

python gurobi
1个回答
0
投票

由于

w
是单个变量,您需要使用 mdl.addVar:

创建它
w = mdl.addVar(0,1,vtype=GRB.BINARY, name='w')

当您需要一次添加多个变量时,请使用mdl.addVars

© www.soinside.com 2019 - 2024. All rights reserved.