天天看點

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

作者:南柯歸洵
像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

閱讀文章前辛苦您點下“關注”,友善讨論和分享,為了回饋您的支援,我将每日更新優質内容。

前言

生産排程是現代制造系統的重要組成部分,高效的排程方法可以提高工業生産效率,增加企業的經濟盈利能力,提高客戶滿意度。

但是作業工廠中的房間排程問題(JSP)也是生産排程中最複雜的問題之一,而靈活作業工廠中的房間排程問題(FJSP)是JSP的擴充,除了考慮操作順序外,它還需要為每個操作配置設定适當的機器。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

由于FJSP更符合現代制造企業的實際,是以這個問題在過去幾十年中得到了許多專家學者的廣泛研究,而且這個問題越來越多地用于不同的環境,例如起重機運輸,電池包裝和印刷生産。

究竟有沒有一種方法,能夠解決工廠中的房間工作時的排程問題?“灰狼優化算法”又是否是解決方案?

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

靈活作業工廠中的房間排程問題

最早提出靈活作業工廠中的房間排程問題的學者,選擇使用多項式圖算法來解決這個問題,并且随着時間的推進,其他學者也針對該問題開發了各種解決方案。

到目前為止,求解FJSP的方法可以分為兩大類:精确算法和近似算法。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

精确算法(拉格朗日松弛、分支和綁定算法以及混合整數線性規劃)具有尋求FJSP最優解的優勢,然而它們隻對小規模的FJSP有效,一旦問題的規模增加,所需的計算時間是無法承受的。

第二種則是一個大類,在最近的研究中受到更多關注,因為它能夠在更短的時間内找到更好的解決方案,目前這種算法是一種已成功應用于求解FJSP的近似算法,如灰狼優化算法(GWO)、遺傳算法(GA)、粒子群算法(PSO)、蟻群算法(ACO)等。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

在最一開始的時候,對解決FJSP的元啟發式算法的研究,主要在于提出新的鄰域結構并采用禁忌搜尋或模拟退火算法(SA),為此有學者基于FJSP的特點,設計了一種基于禁忌搜尋的分層算法來求解FJSP。

也有一些學者為了最小化最大完成時間,提出了一種改進的SA來解決問題,同時還有人提出了兩種鄰域結構(Nopt1,Nopt2)并将它們與TS相結合,結果驗證了所提方法的有效性。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

最近的研究表明,通過改善鄰裡結構來優化問題的目标是一種有效的方法,國内的一位學者提出了一種混合算法,其中包含改進的鄰域結構。

他将鄰域結構分為兩個層次:第一級用于跨機器移動流程,第二級用于在同一台機器内移動流程。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

然而随着FJSP規模的擴大,僅依靠改善鄰域結構的方法在求解過程中往往缺乏多樣性,進而導緻陷入局部最優,是以目前大多數研究人員通過将群體智能算法與排程問題的限制規則混合來解決FJSP。

其中前者用于增強人口的多樣性,而後者用于利用更優化解決方案的鄰域,對于GA一位學者提出了一種混合算法(HA),該算法将GA與禁忌搜尋(TS)相結合來解決FJSP。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

尋找解決方案

雖然這位學者的研究雖然最後失敗了,但是的方法中關于GA的參數設定,對于後續的研究有着非常重大的意義,因為合理的參數組合可以更好地提高算法的性能。

有學者在前人的基礎上,提出了一種混合遺傳算法(HGA),并采用田口方法對GA的參數進行了優化。

同時也提出了一種自學習遺傳算法(SLGA)來解決FJSP,并基于強化學習(RL)動态調整其關鍵參數。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

之後有人設計了一種自适應種群非支配排名遺傳算法III,該算法将雙重控制政策與GA相結合,以解決考慮能耗的FJSP。

同時針對ACO,另一批學者提出了一種基于三維分離圖模型的多目标FJSP混合蟻群算法,其中優化目标是制作跨度、生産持續時間、平均閑置時間和生産成本。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

還有人提出了一種改進的蟻群算法(IACO)來優化FJSP的制造跨度,并通過一個真實的生産示例和兩組著名的基準測試示例對其進行了測試,以驗證其有效性,為了在動态環境中解決FJSP。

也有一部分學者選擇将多智能體系統(MAS)協商與ACO相結合,并将ACO的特性引入協商機制中,以提高排程性能,用于解決裝配操作的靈活作業工廠中的房間排程問題。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

灰狼優化算法

灰狼優化(GWO)算法則是一位澳洲學者,在2014年提出的一種基于群體的進化元啟發式算法,最初用于解決連續函數優化問題。

這位學者在GWO中,模拟了自然界中灰狼種群的等級機制和狩獵行為。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

與其他元啟發式算法相比,GWO算法具有結構簡單、控制參數少、能夠實作局部搜尋和全局搜尋平衡的優點。

近年來已成功應用于路徑規劃、SVM模型、圖像處理、功率排程、信号處理等多個領域,但是該算法卻很少用于FJSP。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

這是主要由于算法是連續的,而FJSP是一個離散問題,是以考慮如何将算法與問題相比對非常重要。

目前常見的有兩種主流的解決方案方法,第一種方法采用變換機制,将連續的單個位置向量與離散排程解互相轉換,這種方法具有實作簡單、保留算法更新疊代公式的優點。

但是一些學者提出了一種通過灰狼優化算法改進的鲸魚優化算法,來解決FJSP問題,其中ROV規則用于轉換操作序列。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

這個舉動就像是打開了潘多拉的魔盒,一下子冒出來大量的其他算法,其中就有一個學者提出了一種混合和諧搜尋(HHS)算法,并開發了一種變換技術。

這種算法通過将連續和諧向量轉換為FJSP的離散雙向量代碼,來解決機器配置設定,速度配置設定和操作序列等問題。

然而這些方法都有一定的局限性,比如在轉換過程中會錯過一些優秀的解,浪費大量的計算時間。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

離散化算法

但是在第二種方法中,離散更新算子旨在實作算法與問題之間的對應關系,針對多目标柔性作業工廠中的房間排程問題,有學者提出了一種混合離散螢火蟲算法(HDFA),這種算法通過離散化提高了算法的搜尋精度和資訊共享能力。

還有學者提出了一種離散粒子群優化(DPSO)算法,并利用交叉和變分算子設計了該算法的離散更新過程。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

最終大量實驗結果表明,這種算法并不是解決問題的有效方法,一位國内的學者提出了一種将化學反應算法和TS相結合的混合算法,并設計了四種基本操作來保證資料的多樣性。

并且在之後提出了一種離散貓群優化算法,以求解低碳柔性作業工廠中的房間排程問題,目的是最小化能源成本和延遲成本的總和,并設計了算法中查找和跟蹤模式的離散形式來拟合問題。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

工廠中的房間生産理想化組合

FJSP是從實際工廠中的房間生産中産生的理想化組合優化問題,最初FJSP派生自JSP,在JSP中,要生成的項目被統一定義為具有一個或多個步驟的作業。

用于處理作業的裝置統一定義為流程中的機器,JSP具有作業排序的限制,即每個作業按照一定的處理流程在其對應的機器上進行處理,直到所有作業都處理完畢。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

是以FJSP可以被視為JSP的擴充版本,因為它消除了一些機器限制,并且為每個操作可以選擇的機器數量不限于一個。

在解決FJSP之前,還有一個更重要的分類需要澄清,可以根據可以為操作選擇的計算機數量對其進行分類:總FJSP(T-FJSP)和部分FJSP(P-FJSP)。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

從上面可以看出,FJSP其實突破了可以為操作選擇的機器數量的奇異性,如果所有操作都可以由任何機器處理,這種情況定義為T-FJSP。

同時如果存在無法在某些計算機上處理的操作,則可以将這種情況歸類為P-FJSP,與T-FJSP相比,P-FJSP更具普遍性,是以我們也更加側重于P-FJSP。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

考慮到雙目标FJSP,其主要目的是根據處理限制将每個作業配置設定給相應的機器,最終獲得確定最小制造跨度和最小臨界機器負載的排程表。

目标函數可以用方程(1)和(2)表示,但有一些限制,為了更好地了解,我們給出了下面問題模型中提到的符号和變量,以及我們常用的一些縮寫。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

文章中的符号定義和縮寫

GWO的靈感來自灰狼群的習性,而灰狼生活在群體中,平均每群有5到12隻狼,該算法通過模仿狼群内的分層和獵物攻擊行為來工作。

GWO的特征如下所述,在等級分層機制中,群體中的所有個體都可以根據自己的地位分為四類,α、β、δ 和ω狼按從上到下的順序排列。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

α是第一級,負責對人群中的群體行動做出決策。

第二個層次是β,這一關負責協助α狼,當α狼死亡或變老時,β狼會晉升為α狼的地位。

δ狼在狼群中扮演α狼的訓練家角色,負責加強α狼對底層狼的指令。

狼群的最後一關是ω狼,他們需要按照前三級狼的指令來完成自己需要的任務。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

根據這些我們就能夠看出,灰狼優化算法其實有着非常強大的優勢,在工廠中的房間的調動當中如果使用灰狼算法的話,一方面不用擔心程式沒有主導,因為就算α狼倒下,也會有β狼頂上。

同時因為有δ狼來訓練α狼,是以α狼在大多數情況下都不會出現失誤,即便是出錯了也會及時被δ狼給糾正。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

雖然灰狼優化算法分為了四個部分,但是這其中占據數量最多的部分還是負責實際工作的ω狼,這樣就可以做到在不斷的自我修正的同時,不會過多的耽誤本身應該完成的任務。

從這點來看,灰狼優化算法雖然是從動物身上找到的靈感,但是卻非常适合用來解決工廠中的房間排程問題。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

結論

通過灰狼優化算法來求解FJSP,目的是最小化制造跨度和關鍵機器負載,GWO算法具有參數少、實作友善的優點。

但是它可能會過早結束,為此我們設計了幾種改進政策來增強FJSP算法的搜尋能力,通過與近年來的研究進行對比實驗,驗證了該算法的有效性,實驗和對比結果表明,該算法能夠得到大多數問題。

像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?
像“狼”一樣工作?工廠中的房間排程問題的解決方案,灰狼算法究竟是啥?

如果你喜歡我的寫的文章,麻煩請點個“關注”,歡迎在評論區與我一同探讨,謝謝。

END

繼續閱讀