可变清洁时间的约束公式 - MILP 优化

Constraint formulation for variable cleaning times - MILP optimization

提问人:Ignacio Aristimuño 提问时间:9/29/2023 更新时间:9/29/2023 访问量:35

问:

我有一个混合整数线性问题,我想安排不同产品(P)的生产。

每个产品一次可以生产一次,每个产品之间,必须安排一定的时间来清洁生产线。时间取决于之前生产了哪种产品,以及之后将生产哪种产品。例如:如果我先生产青苹果汁,然后生产红苹果汁,则清洁时间设置为 20 分钟。但是,如果葡萄汁是在青苹果汁之后生产的,则时间增加到 35 分钟。

我正在考虑以下变量对生产进行建模:

X_{p, d, h} is a binary variable that equals to 1 if the product p is produced in the day d at the hour h, and 0 otherwise.

c_{d, h} is a binary variable that equals to 1 if the line is being cleaned in the day d at the hour h, and 0 otherwise.

y_{d, h} is a binary variable that equals to 1 if the line not being used (no production nor cleaning) in the day d at the hour h, and 0 otherwise.

我还有一个矩阵 C,其中包含每对产品之间的清洁时间。

我想为清洁部分创建约束。如果生产了任何产品,则必须在矩阵 C 中指定的时间内进行清洁(不间断),这取决于之前生产的产品以及之后生产的产品。

我必须通过添加这些约束来制定强制开始清洁:

c_{d,h} >= x_{p,d,h-1} - x_{p,d,h}
x_{p,d,h} + c_{d,h} + y{d,h} = 1

然而,这只会产生一个清洁块,并且必须有与矩阵 C 一样多的块,这取决于之前生产的产品和之后生产的产品。关于如何解决这个问题的任何想法?

数学优化 混合整数规划 运筹学

评论

1赞 Erwin Kalvelagen 9/30/2023
这称为“与序列相关的设置时间”。有这方面的文献。
0赞 Reinderien 10/1/2023
这里没有代码,因此需要将其从 Stack Overflow 移动到 Operations Research。

答: 暂无答案