我正在CPLEX 12.9中使用OPL
在我的模型中,我有这两个dvar布尔值X[p][t]
和Y[t]
。
我要写:
(Y[t] == 1) => (X[u][t] == 0);
但是
(Y[t] == 0) && (X[u][t] == 0);
但是它不起作用。 我希望有人有一个主意。
答案 0 :(得分:1)
如果你写
(Y[t] == 1) => (X[u][t] == 0);
唯一不可能的情况是
(Y[t] == 1) && (X[u][t] == 1);
答案 1 :(得分:0)
条件(y [t] == 1)=>(x [u] [t] == 1)可以用以下线性约束表示。
y[t] + x[u][t] <= 1
只要y和x是二进制文件。如果y [1]为1,则x [u] [t]只能取值为0。如果y [t]为0,则x [u] [t]可以为0或1。>