在 CPLEX 中创建布尔约束

create boolean constraints in CPLEX

我在 CPLEX 12.9 中使用 OPL

在我的模型中,我有这两个 dvar 布尔值,X[p][t]Y[t]。 我要写:

(Y[t] == 1) => (X[u][t] == 0);

不过应该也可以

(Y[t] == 0) && (X[u][t] == 0);

但它不起作用。 我希望有人有想法。

如果你写

(Y[t] == 1) => (X[u][t] == 0);

唯一不可能的情况是

(Y[t] == 1) && (X[u][t] == 1);

条件(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。