Table of Contents
流程商店调度是制造环境中一个典型的优化问题,在制造环境中,一组工作必须按固定顺序在一系列机器上处理。目的是通过流程地板确定工作的顺序,以尽量减少诸如马斯潘(总完成时间)、总闲置时间或耳机/低压惩罚等衡量标准。 现实世界流程商店的问题往往涉及几十个工作家庭、机器崩溃、设置时间和季节性需求波动,使得它们很难用传统的优化方法来解决。 Constraint Programme(CP) 已经成为一种强大的技术,可以用来应对这些组合式的挑战。通过明确模拟系统的局限性,并使用智能搜索算法,CP可以产生高质量的调度,使传统的数学编程方法难以匹配。
理解流程商店时间安排
在经典的流程商店中,每个工作都必须按相同的顺序在一组机器上处理。例如,1号工作必须经过A机,然后是B机,然后是C机,对于所有其他工作来说,同样。这些机器不能同时处理两个工作,而且每个操作都有已知的处理时间。决定的问题是找到一个工作(或序列)的轮廓,从而将所选择的目标降到最低。即使工作或机器数量小幅增加,也会导致组合爆炸。 配置流程商店的问题(PFSP) 使pan最小化是NP ⁇ hard,这意味着精确的算法对于大的情况来说是不切实际的。
流动商店问题的备选方法
- 电源流店:[] 工作顺序每台机器都相同.
- 黑布里德流线店:[] 每个阶段都存在多个平行机.
- 弹性流线店:[] 机器可用于不同的操作,增加了路由灵活性.
- 无候流店: 工作处理必须连续进行,机器之间不得等待.
每个变体都引入了必须满足的新制约,使约束编程成为理想的建模框架,因为限制可以增加或消除,而无需调整整个方法.
什么是约束性编程?
约束式编程是通过声明性说明必须持有的制约来解决组合式问题的范式. CP模型由变量(有有限或无限域)和限制可能值组合的一组制约组成. 解析器使用传播算法减少域数和搜索休眠来探索解析空间. 不同于传统的整数编程,CP在制约复杂或非“线性”时优异,如所有--差异、累积或序列==依赖设置时间.
在调度中,CP模型通常使用间隔决定变量来表示每次操作的开始、结束和持续时间。然后解答者应用约束传播,以确保同一机器上没有两个操作重叠,尊重工作优先操作,以及不超出资源能力。
将约束式编程应用到流程商店调度
CP的优点在于它能结合各种制约. 建模一个流店时,定义了以下组件: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源: 电源:
变量和域
- Job序列变量: 决定工作的相对顺序(通常作为位置或穿插的整数变量来表示).
- 操作间隔: 每个操作都是一个间隔变量,带有起始,结束,和长度(处理时间).
- 机器资源:[] 一个确保不重叠的无源资源(或用于并行机器的累积).
核心制约因素
- 预先限制:[ 对于每一项工作,操作i必须在操作i+1开始前完成.
- 机体容量限制:[ 无法同时在同一台机上处理两个操作.
- 所有不同限制:在通流店中,每台机器的顺序变量必须是1...n的通流.
- 附加约束: 发布日期,到期日期,设置时间,维护窗口可以轻松添加.
目标函数
最常见的目标是最小化 manspan( Cmax) 。 然而, CP 可以优化总加权延迟、 闲置时间或任何自定义的度量。 解析器支持不同的搜索策略: 分支 QAND , 域分隔, 或大型邻里搜索( LNS ) 。
以 CP 解析器解决进程
使用现代CP解析器(例如IBM IIG CP Optimizer,Google OR ⁇ Tools,或Choco)涉及以下步骤: 使用计算机解析器,以电子化为主,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机解析器,使用计算机,使用计算机解析器,使用计算机解析器,使用计算机,使用计算机(例如IBMGOGO),GOOOOOOOOOOOOOOO(或C),使用以下步骤:
- 模型配方: 将流线店转换成决定变量和制约.
- 约束传播:[] 解解者通过从限制推导来自动缩小域.
- 搜索:] 搜索策略(例如“first-fault”)选择变量并指定一个值; 传播重复。
- acktracking: 如果到达一个死-端,解析器返回跟踪并尝试替代值.
- 普提姆化:[ 一旦找到可行的解决方案,解题者继续寻找更好的解决方案,直到最优的解决方案得到证明.
这种方法往往很快找到良好的解决办法,即使是在大案例中,因为传播会覆盖搜索空间的大片区域。
约束性方案拟订的好处
约束式编程为流程商店调度提供了若干明显的好处:
- 显性:[] 复杂的现实世界的制约(例如序列- 依赖设置时间,工人班规则)可以自然地进行模型化,而无需线性化技巧.
- 递增解: 当条件发生变化(机器破裂)时,模型可以使用新的约束进行修复,解解器可以重新使用以前的搜索信息.
- 速度达到: 虽然CP不能保证多诺时间,但比粗糙的"武力"计数要好得多,而且往往在受到很大限制的问题上比MILP表现好得多.
- 多重客观处理:CP可以处理词典或加权和目标,而帕雷托前方勘探可以进行多次运行.
- 与heuristics融合:[ 大型邻里搜索,其中CP用于探索一个heuristic生成的邻里,对于非常大的例子,会产生极好的解决方案.
世界实际应用
许多行业已成功部署基于CP的调度系统:
汽车大会
在汽车装配方面,100多个工作可能需要通过焊接、油漆和最终装配站。 限制包括涂料色调成本和工具要求。 CP模型可以生成一个时间表,在满足到期日时将设置时间减少20-30%。
半导体制造
蒸发机制造涉及数百次在昂贵的机器上操作。 CP处理批量、再进流和严格的清洁室内限制。 诸如 IBM 和[ Google ORXTools[ 等公司都用于这一部门。
卫生保健时间安排
医院安排手术跨越多个手术室、康复湾和专门小组,CP有助于最大限度地减少病人等候时间,最大限度地利用资源,同时尊重外科医生的可用性和仪器消毒周期。
后勤和仓储
分配中心订购,包装,以及货运可以作为流程商店的模式. CP确保订单的处理顺序能尽量减少旅行时间和拥堵.
挑战与未来方向
尽管它的力量很大,但制约性编程仍然面临挑战。对于非常大的情况(几百个工作,几十个机器),CP可能仍然需要长时间运行。混合方法-将CP与混合整数线性编程(MILP)或元euristics(Mehythythy)合并-是积极研究的领域。另一个趋势是使用机器学习[来指导搜索的heuristics,提高找到接近最佳解决方案的速度。
此外,云计算的兴起使得CP模型能够在分布式系统中得到解决,进一步扩展至实时排程需求。 与IOT和数字双胞胎的融合意味着,限制可以作为商店底数据流动态更新。
结论
控制式程序是成熟但不断发展的流程商店调度方法。 允许从业人员关注问题所在而不是如何解决问题,CP可以提供稳健、灵活和往往最优化的时间表。 随着计算资源的增长和解决技术的进步,CP将继续是制造业和制造业以外业务精英的基石。 采用CP的组织可以期望缩短周转时间、降低成本和改善时间交付 — — 同时又能迅速适应不断变化的商业条件。