在之前关于资源与工序的场景中写了一篇不同资源与工序组合下,APS设计难度的文章. 并针对多工序、多工序场景下排程的初步设计。关于生产计划排程的种类及其特性.
后来,针对多工序、多资源场景下的排程,专门用一篇文章进行了各种思路上的探索 使用OptaPlanner解决多工序、多机台(资源)排程的新思路
但这种场景下的排程,需要同时处理同一资源(通常是设备或机台)上多个任务之间的前后置关系,以及同一产品的工序路线中各工序的前后置关系构成的双链结构。此外,在离散制造场景下,工序链不仅仅是一个链状结构,而是一个无环有向图;从而导致了更为复杂的情况。
之前的项目中,一直尝试使用OptaPlanner中的时间链模型来构建该排程场景下的模型。理论上通过时间链来表达同一资源下的多个任务之间的关系; 在此基础上基于产品工序路线的前后工序关系,来表达同一产品下的的工序路线。我们可以从各种各样的计划中可以归纳出来,大多数情况下计划,其本质是实现任务(或称为排程对象)的时空编排,也就是确定各个任务的时间 (任务时间开始,做多久,什么时间完成),与空间(例如哪些资源,在哪些限制条件下进行)两个维度。
对于之前一直研究的双链模式,其主要难点在于时间维度的规划。当时的具体做法是对每一个节点进行时间推导时,同时对资源上的任务链,及产品的工序链进行时间推导。但如果直接使用OptaPlanner的时候链模式,在规划变量侦听事件中计算各个节点的时间,很容易出现评分损坏(会抛出Score Corruption异常)或侦听损坏(会抛出Listener Corruption异常)。因此,该模式应用于于无前后接续关系的场景(即单工序)是足够的。但对于多工序多资源场景,特别是离散制造场景,可行性还是比较差的。
经过数个项目的验证,和国内外各位网友的讨论,事实上针对多工序多资源的场景,更应该使用Prorject Job Scheduling模式。事实上这个模型及其衍生模型,在运筹规划领域也有比较多的论文有所研究了,通常我们遇到上述的多工序多资源场景的问题称为 Multi-Mode Resource Constrained Project Scheduling Problem (简称MRCPSP)。当然这些都是一些理论上的分析与思路,而要在OptaPlanner里实现它,虽然官方也提供了相应的示例,但这个示例只展示了最简单的PJS模型,我们只能以此作为基础,沿着MRCPSP模型的思路来实现我真正的规划模型。
关于该模型,在我们的平台上得到了验证,确实能较完整地解决“工序关系”与“资源分配”两个限制造成的双链问题。以下是我们这个平台用PJS模型解决MRCPSP问题,关于资源约束的示意图。
因为版权问题,目前在这里只分享资源相关的示意图,更详细的细节问题,因为已经在我们的易排规划平台上得到了应用,因此暂不公开。
当然这个只是一个理论上的模型,实际上在我们这个平台实施不同的项目场景时,还是需要在结构、算法上配合OptaPlanner的功能作出一些调整的。
关于供应链领域的各种规划技术研究成果,这里义务安利一下以下这个网站,它里面有不少与车间排产,车辆路径规划,库存优化等供应链相关的研究成果论文,可以从中找到一些思路:http://www.ijsom.com/
同时也邀请大家使用我们的【易排(EasyPlan)通用智能规划平台】,它基于OptaPlanner对APS的一些常用规划逻辑进行封装,大家只需要管理、维护好自己系统(使用MES、MOM、ERP中的计划模块)中的工单数据,即可快速地实现一个APS模块。后续我们还会添加【VRP - 车辆路径规划】和【在线调度】模块,敬请期待。可以通过以下链接查看更多该平台的使用方法。
易排(EasyPlan)通用智能规划平台 Q&A
与平台相关疑问,可以添加本人微信(13631823503)探讨,或关注我们的公众号【让APS成为可能】及时接收相关消息。
一个IT老农,先尽力担好当儿子、丈夫和父亲的责任,然后做点有趣的事。
来源:https://www.cnblogs.com/kentzhang/p/16696536.html
本站部分图文来源于网络,如有侵权请联系删除。