我正在将 CPLEX 与 OPL 一起使用,但在指定模型中所需的约束时遇到问题。
设备"A"的正常运行时间限制为 2 小时。它还具有维护停机时间,至少 1 小时。
每次"t"和总 t 为 10(离散)。例如
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 ....
Equip'A' 0 1 1 0 0 0 1 1 0 1 ....
* downtime is possible to exceed its own maintain time.
在这种情况下,如何确保持续的正常运行时间过程。不像"0 1 0 1",我的意思是"0 1 1 0 1 1 0"=>"1",意思是操作,应该是相邻的(以确保持续的正常运行时间)。
每次我运行这个问题时,答案总是离开每个"1",例如"
0 1 0 1 0 0 0 1 0 0 1'。我希望我能得到一个想法或数学方法来解决这个问题。
查看连续的三胞胎,不允许使用模式1 1 1
(三小时正常运行时间)和0 1 0
(一小时正常运行时间)。
这可以用线性不等式表示(t
从 1 到 8):
A[t] + A[t+1] + A[t+2] <= 2 and
A[t+1] <= A[t] + A[t+2]
要涵盖极端情况(1 0
开头或0 1
结尾),您还需要:
A[1] <= A[2] and
A[10] <= A[9]