0

我想在 python 中使用 docplex 对整数编程示例进行建模。对于指标约束,我有这个等式(X 是一个二元变量):

方程

我写了这段代码:

for i1,i2,i3 in P:
    mdl.add_indicator_constraints(x[(i,j,k)] for i,j,k in ijk if i==i1 and j==i2 and k==i3)==0

我不知道我是否使用了正确的命令来定义这个指标。当我运行程序时,我收到此错误:

    cpx_indvars.append(logct.binary_var.safe_index)

AttributeError: 'Var' object has no attribute 'binary_var'
4

1 回答 1

2

您的约束看起来不像和指标约束。指标约束看起来像“if x=1 then ...”或“if x=0 then ...”,其中x是一个二进制变量。您的约束中似乎没有“那么”部分。

如果您只想将变量固定为 0,则不必使用指示符约束。只需添加一个常规约束:

mld.add_linear_constraints(x[(i,j,k)] == 0 for i,j,k in ijk if i==i1 and j==i2 and k==i3)
于 2020-01-27T15:58:06.430 回答