在之前關於資源與工序的場景中寫了一篇不同資源與工序組合下,APS設計難度的文章. 並針對多工序、多工序場景下排程的初步設計。關於生產計劃排程的種類及其特性. ...
在之前關於資源與工序的場景中寫了一篇不同資源與工序組合下,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老農,先儘力擔好當兒子、丈夫和父親的責任,然後做點有趣的事。