当有更多选择时决策变量的问题

Problem with decision variabile when there are more choices

我有一系列的工作。对于每项工作,我都有一系列操作,每个操作都需要一台机器。但是有一些操作是有选择多台机器的能力的

例如:

工作 1:操作 1 机器 4 操作 2 机器 2 操作 3(机器 2 或机器 3)

我有一个二元决策变量 Y (ijm),其中 i 是操作,j 是作业,m 是机器。

必须发生的是 Y(114) = 1, Y (212) = 1 但对于操作 3 我们有两个选择 Y(312) = 0 和 Y(313) = 1 或相反。

如何在 Cplex 上实现它?我找不到办法。

您可以在 OPL 中使用这样的逻辑约束:

((x==2) && (y==1)) || ((x==1) && (y==2));

但您也可以在 CPLEX 中查看 CPOptimizer,因为您的模型看起来像是一个调度问题。

对 Y(312) = 0 和 Y(313) = 1 或相反的要求进行建模的一种简单方法是添加一个约束条件,即备选方案的总和必须为 1,即在您的情况下添加一个约束:

Y(312) + Y(313) = 1

那么如果变量是二进制或整数那么这将达到你的目的。