在之前關于資源與工序的場景中寫了一篇不同資源與工序組合下,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.uj5u.com/houduan/508770.html
標籤:其他
