如何获得“确保设备持续正常运行和停机的过程”的代码

时间:2019-01-29 02:28:31

标签: optimization linear-programming cplex opl mixed-integer-programming

我将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 0 =>'1',意味着操作应该相邻(以确保连续的正常运行时间)。

每次我运行此问题时,答案总是总是偏离每个“ 1”,例如“ 0 1 0 1 0 0 0 1 1 0 0 1”。

我希望我能找到解决这个问题的想法或数学方法。

1 个答案:

答案 0 :(得分:2)

查看连续的三胞胎,不允许使用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 00 1结束),您还需要:

A[1] <= A[2] and
A[10] <= A[9]