使用该约束时,OPL模型出现错误:
forall (j1,j2 in p: row[j1]==row[j2] && j1<j2)
其中row是变量:
dvar int row [p];
错误是这样的:
Decision variable row not allowed.
我不知道为什么这不可能,但是如何解决这个问题?
答案 0 :(得分:1)
条件切片应绑定,并且不应包含任何决策变量。 您应该依靠逻辑约束:
range p=1..4;
dvar int row[p] in p;
subject to
{
forall(j1,j2 in p) ((row[j1]==row[j2] ) => (row[j1]>=2));
}
工作正常
致谢