我有一个模型,它有一个二进制变量x[I][j][k]。我需要添加一个约束以满足此条件:
if x[i][j][k1]==1 and x[j][i][k2]==1
Then:
k2-k1>8
我有此代码,但我认为它不正确:
mdl.add((y[(i,j,k)]+y[(j,i,k1)]==2),(k1-k>8) )
我还说,
mdl.add(mdl.if_then(y[(i,j,k1)]+y[(j,i,k2)]==2, k2-k1>8))
但我有一个错误:
raise DOcplexException(resolved_message)
DOcplexException: Expecting linear constraint, got: False
如何使用cplex python API对此进行建模
Model.if_then
从左到右链接两个线性约束。如果第一个满意,第二个也会满意在您的情况下,我理解在
k2-k1>8
中没有涉及决策变量。所以这完全依赖于数据,在模型构建时就知道了在这种情况下,因果关系反过来起作用:如果k2-k1>;那么x[i,j,k1]和x[i,j,k2]都必须等于1
最简单的代码是:
让我来分享一下if-then的例子
https://www.linkedin.com/pulse/making-optimization-simple-python-alex-fleischer/
如果你想在if中看到和
你也可以重写
相关问题 更多 >
编程相关推荐