如何在 Gurobi 中使用多个变量触发指标约束?

How Indicator constraint can be triggered with multiple variables in Gurobi?

我正在尝试编写与多个变量相关的约束。但是,它显示错误“指标约束只能由给定值的单个二进制变量触发”。你能帮我解决这个错误吗?非常感谢! 代码如下:

mdl.addConstrs((x[i,j,k] - t[i,j,k] == 1) >> (d2[j,k] == d2[i,k] - d[i,j]) for i, j, k in arcos2 if i != 0 and j != 0)

其中:

我认为错误信息很清楚。定义二进制辅助变量 q[i,j,k] 来表示 x[i,j,k] - t[i,j,k]。那么:

for i, j, k in arcos2:
    if i != 0 and j != 0:
        mdl.addConstr(q[i,j,k] == x[i,j,k] - t[i,j,k])
        mdl.addConstr((q[i,j,k] == 1) >> (d2[j,k] == d2[i,k] - d[i,j]))