我有一系列的工作。对于每个作业,我都有一系列的操作,每个操作都需要一台机器。但是有一些操作可以选择多台机器。
例如:
任务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上实现它?我找不到办法。
发布于 2021-11-10 12:59:51
您可以在OPL中使用如下逻辑约束:
((x==2) && (y==1)) || ((x==1) && (y==2));但是,您也可以在CPLEX中查看CPOptimizer,因为您的模型看起来像是一个调度问题。
发布于 2021-11-11 08:49:47
对Y(312) =0和Y(313) =1或相反的需求建模的一种简单方法是添加一个约束,即备选方案的和必须为1,即在您的情况下添加一个约束:
Y(312) + Y(313) =1
然后,如果变量是二进制或整数,那么这将达到您的目的。
https://stackoverflow.com/questions/69911414
复制相似问题