在制药行业,转换/清洁事件通常很长,甚至可能需要不同级别的操作员资源。因此,当我们安排任务和事件时,他们需要仔细建模。这仍然是我们可以使用 CP-SAT 求解器轻松解决的问题。
但是有一个概念叫“Campaigning”。这意味着我们要尽可能连续地生产一种产品的订单。同一产品的连续生产数量有最大数量/限制:
Suppose we have 10 orders for product A and the campaign size is 4. Then we typically do:
[A->A->A->A] -> changeover/cleaning -> [A->A->A->A] -> changeover/cleaning -> [A->A]
Of course, there shall always be changeover/cleaning between different products.
Suppose we have 1 order for product A and B respectively. Then we still have to do:
A -> changeover/cleaning -> B or B -> changeover/cleaning -> A
我们确实找到了一种通过创建活动来对此建模的方法,并可选择将候选任务分配到活动中,最后安排活动。但是这个解决方案的可扩展性真的很差。在下图中,当我有 5 个产品 A 和 B 的订单并且限制为 2 个订单时,我的笔记本电脑已经接近死机了。
代码在这里:https://github.com/jiayi9/cp/blob/main/study_04_campaigning.py
我们想知道有没有更聪明的方法来告诉模型如何去做。
我以前的做法:
看这个例子.