柳春鋒,趙善林,王居鳳
(1.杭州電子科技大學 管理學院,浙江 杭州 310018;2.中國計量大學,浙江 杭州 310018)
經濟的發展與人們消費模式的轉變給企業帶來了越來越短的產品周期和交貨期壓力。無論是高端裝備產品(如運載火箭箭體結構),還是普通民用產品(如顯示器液晶模組),都能利用單元化制造提高市場響應能力。互聯網的飛速發展,也使企業的制造單元實現了最大程度的共享,增強了制造系統內部生產信息與外部供應信息的交流能力。
國內外許多學者圍繞著單元制造系統的優化設計作了有益的探索。Liu 等(2016)[1]提出了在雙資源約束條件下單元制造系統中的單元構建和任務調度的聯合決策模型,并通過啟發式細菌覓食算法對模型進行了數值檢驗。Méndez-Vázquez和Nembhard(2019)[2]在研究單元構建時考慮了員工異質性、知識轉移等人力資源因素。Kumar 和Singh(2017)[3]提出了一種新的基于相似性得分的兩階段啟發式算法,來最小化整個計劃期的單元間/單元內物料控制成本和重新配置成本。Liu 等(2016)[4]為光纖連接器制造業CMS 建立了員工分配與生產計劃的集成優化模型;另外,Liu 等(2018)[5]也提出了一種基于五階段啟發式算法的集成細菌覓食算法,實驗表明所提算法比基于啟發式的混合模擬退火算法和基于啟發式的混合遺傳算法更優。Aalaei 和Davoudpour(2016)[6]構建了一種動態虛擬單元制造系統和供應鏈設計雙目標優化模型,考慮了多期生產計劃中的工廠和設施位置因素。
在實際的制造業中,產品可能在多個工廠的多個單元內生產。如果這些單元都位于單個制造工廠,相應的供應鏈系統設計步驟也許能獨立進行,即先為每個制造工廠設計單元制造系統,再選擇采購和原材料運輸成本最低的供應商。不過集成的供應鏈設計無疑能最大程度地共享多工廠產能、并降低供應成本。目前還很少有文獻涉及到這類集成的優化問題。本文試圖建立一個融合產品簇識別、機器單元構建、多工廠間在制品工藝路徑、原料供應決策的綜合模型。另外,鑒于近幾年興起的人工魚群算法在求解連續型優化問題上展現的優越性能,本文設計了離散型人工魚群算法來解決高維度的單元化制造優化問題。
現實生活中,集團公司或聯盟企業的生產系統一般由許多工廠組成,每個工廠可以構建一定數量的制造單元。各制造單元中,機器數量有一定的限制,而各類型的機器至多配置一臺。這些工廠將生產多種產品,已知需求是確定性的,即生產出的產品一定會有市場需求。產品不同的處理工序需要對應的機器進行加工。產品可以被轉移到同一工廠的不同單元或不同工廠的單元中進行下一道工序的生產。每種產品需要一種原材料,各供應商處有工廠需要的任意類型的原材料,并且能滿足工廠的需求。本問題旨在研究多工廠單元制造系統中的單元制造結構和工廠之間的物流,同時選擇合理的供應商,達到單元制造系統運行成本最小化的目的。
1.參數
NP:產品種類數;
NO:產品所需要的工序數;
NL:工廠數量;
NC:每個工廠制造單元的數量;
NF:供應商的數量;
NM:機器種類數;
i:產品類型的索引號(i=1,2,3,…,NP);
j:工序的索引號(j=1,2,3,…,NO);
m:機器類型的索引號(m=1,2,3,…,NM);
l:工廠的索引號(l=1,2,3,…,NL);
c:單元的索引號(c=1,2,3,…,NC·NL)(將各工廠的單元累加后進行編號);
f:供應商的索引號(f=1,2,3,…,NF);
amij:如果機器m 有能力處理產品i 的工序j則為1,否則為0;
tijm:產品i 的工序j 在機器m 上完成所需的時間;
MFCm:每臺機器m 的固定使用成本;
MVCm:每臺機器m 的單位時間使用成本;
L:單元內機器最少數量;
U:單元內機器最多數量;
ISC:兩個工廠之間運輸單個在制品的成本;
ICC:同一個工廠內兩個單元間運輸單個在制品的成本。
2.決策變量
Xlif:如果工廠l 中產品i 的原材料是由供應商f 提供的則為1,否則為1;
Ymlc:如果機器類型m 被分配到工廠l 的單元c 內則為1,否則為0;
Kijlc:產品i 的工序j 在工廠l 的單元c 進行生產,則為1,否則為0。


目標函數Cost 為總的運作成本,其中:式(1-1)表示機器的固定成本和變動成本;式(1-2)表示不同工廠之間產生的物流成本;式(1-3)表示只要發生工廠間和工廠內的單元間移動,都按單位成本ICC 折算入工廠內單元間的移動成本。所以多折算的工廠間的單元間移動成本將在(1-4)剔除;式(1-4)表示按單位成本ICC 折算的工廠間的單元間移動成本;式(1-5)表示進貨固定成本和變動成本。約束式(2)表示每種產品的每道工序僅在某個工廠中某個單元內的某臺機器上完成。約束(3)和(4)分別表示每個制造單元內機器數量不能低于下限、不能高于上限。約束(5)表示任意產品的原材料供應商是唯一的。約束(6)表示如果某產品的某工序在一制造單元內加工,則該單元必須有一臺機器支持該工序的加工。約束(7)、(8)、(9)是各個決策變量的取值范圍。
該算法的基本思想為:在一片水域中,魚群最有可能生存在營養物質最多的地方,算法根據這一特點來模仿魚群的覓食等行為,從而實現全局最優[7]。
本文的編碼方式如下:根據問題的決策變量形成一個人工魚,其中包含三個解,分別為Xlif,Kijc和Ymlc(為方便編碼,將各工廠的所有單元進行累加,Kijlc可轉化為Kijc)。下面舉例說明三個解所代表的含義。

上述矩陣Xlif的行代表產品類型,列代表工廠,矩陣中的數字代表供應商,比如上面加粗的1代表:工廠2 中產品3 的原材料由供應商1 供應。

上述矩陣Kijc的行代表產品類型,列代表工序,矩陣中的數字代表加工該工序所在的單元,比如上述加粗的3 代表:產品3 的工序4 在單元3 中進行。由此,單元3 內必須有加工該工序的機器,從而對Ymlc初始化產生影響。
Ymlc矩陣的行代表機器類型,列代表單元的編號(將兩工廠所有單元累計編號,可確定各單元屬于哪個工廠)。Ymlc矩陣的特定位置的值可以由Kijc矩陣和以下輸入參數amij決定。下文涉及amij處都取此值。

上述加粗的(0,0,0,1)表示機器4 有能力對產品3 的工序4 進行加工。

Ymlc矩陣先部分初始化為如上矩陣。其中數字1 代表某單元內配備該種機器,例如,上述矩陣中加粗的1 表示,單元3 中有類型4 的機器。標框□的位置代表需要進一步被隨機賦值為0 或者1,得到下面的矩陣,其中數字0 代表某單元內沒有配備該種機器。

1.人工魚之間的距離:人工魚個體A 與B 之間的距離表示為distance(A,B)=||RA-RB||,其中RA與RB是人工魚A 與B 的位置。本離散問題中,其中sign(x)=即在兩條魚的相同位置上如果值相同則取0,否則取1。例如,假設人工魚A 的三個解分別為:

2.人工魚的視野:假定視野范圍是Visual,則人工魚只能在視野Visual 范圍內進行覓食。
3.人工魚的鄰居:若人工魚A 與B 之間的距離distance(A,B)<Visual,則表示A 與B 互為鄰居。
4.人工魚的聚群中心:統計人工魚的所有鄰居中,每條人工魚三個解中每個位置出現次數最多的基因,將該基因填進對應位置,以此形成聚群中心(即一個虛擬的人工魚)。例如:人工魚1 有鄰居2 和3則對于中E 位置出現次數最多的基因為1,故E=1,以此類推得到的中心同理得到的中心,但得到的未必是可行解。假設模型中L 和U 分別為1 和3。首先需要檢查每個單元是否都出現,如果存在未出現的單元C*,則隨機挑選出現次數最多的單元C∧位置,并將該位置的數值替換為C*,循環檢查直至每個單元都出現。然后判斷是否存在單元C◇出現的列數(即此單元中機器數量)大于U,如果存在則隨機挑選一個單元C◇,并將其位置數據替換為出現次數最少的單元數值,循環檢查直至其成為可行解。舉例如下:人工魚1 有鄰居2、3 和4得到的初始中心經檢查知不是可行解,故根據上述規則,得到可行的聚群中心再根據得到的中心,即可以得到人工魚1 的聚群中心RΔ。
5.食物濃度:人工魚群算法中魚兒會趨向本水域中食物濃度最高的地方。在求解一個極大值問題時,人工魚所處的位置食物濃度越高則代表該解越理想。由于本模型需要求解的是一個極小值問題,所以需要將目標函數的倒數作為食物濃度。
1.覓食。人工魚A 的位置為XA,當前的狀態為FA(食物濃度)。為保證覓食后的人工魚依然為可行解,故隨機交換解1 中的基因m 次(m≤Visual 可保證人工魚是在其視野范圍內進行覓食的)。如解1,Xlif=中的和交換得到,解2 同理進行交換得到,進而得到解3 為,則人工魚A 的位置變為,其狀態為。如果,則將XA替換成如果上述行為執行了TryNum 次后依然沒有成功則執行2.3.4 的隨機行為。
2.聚群。人工魚A 的聚群中心為RΔ,其狀態為FΔ。如果FΔ>FA,表明中心RΔ的食物濃度更高,則將人工魚A 的位置替換為RΔ,否則執行覓食行為。
3.追尾。針對人工魚A,探索其當前所有鄰居中食物濃度最大的伙伴B。如果滿足FB>FA,表明伙伴B 的周圍食物濃度更高,則將人工魚A 替換為人工魚B,否則執行覓食行為。
4.隨機行為。如果某條人工魚覓食行為執行失敗,則執行隨機行為。隨機行為即在視野范圍內,人工魚隨機挑選若干個位置進行隨機賦值。
5.公告板行為。各人工魚在自身尋優活動結束后,自動與公告板上狀態進行比較,如果自身狀態優于公告板狀態,則將公告板狀態替換為自身狀態,這樣可以使公告板狀態始終是歷史最優。
1.控制參數的設置,包括人工魚編號p、魚群規模Popsize、覓食行為執行的最大次數TryNum、視野大小Visual、種群迭代計數器g、最大迭代次數GenNum。
2.根據上述編碼機制,進行人工魚群的隨機初始化,取優值賦給公告板。
3.For g=1…GenNum
For p=1…Popsize
(a)第p 條人工魚進行覓食、聚群、追尾行為;p 自增1。
(b)執行上述行為后,更新人工魚p 的狀態并與公告板進行比較,若優于公告板則進行替換。
4.輸出公告板上的值,結束算法。
以某制造型企業為例,該企業擁有兩個異地制造工廠Q1和Q2,且兩個工廠都擁有3 個制造單元。該企業可以加工生產3 種產品,每種產品有4 道工序(安裝、拋光、打磨、組裝),對應的加工機器也是4 種。每個制造單元最多可容納3 臺機器,最少擁有1 臺機器。原材料可以從附近的供應商f1和f2處進購,固定進購成本分別為100和84。工廠l 的產品i 從供應商f 處采購的單位成本如表1 所示。產品i 的工序j 在機器m上加工所需要的時間(tijm)如表2 所示。每臺機器固定使用成本(MFCm)以及單位時間使用成本(MVCm)如表3 所示。單個在制品從一個工廠運往另一個工廠的運費為80,單個在制品在工廠內的單元之間移動成本為20。

表1 不同原材料的采購價格

表2 不同工序所需時間

表3 機器的固定使用成本和變動使用成本
采用Java 語言編程,IDE 為Intellij IDEA,控制參數中Popsize 取100,TryNum 取60,Visual 取16,GenNum 取60,經過多次試驗,可以穩定得到一個較優的結果。
某次典型實驗的初始解如下,其目標函數值為123 973。

該次實驗的最終解如下,其目標函數值為33 115。這表明算法具有較強尋優的能力。

該實驗中每次迭代公告板的目標函數值如圖1 所示。

圖1 實驗收斂圖
本文將供應鏈集成在單元制造系統中,一方面允許在制品在工廠之間產生物流以共享制造單元的產能,另一方面決策者可以自由決定從任一供應商處進購原材料。該模型可以同時優化生產設施配置和供應商選擇過程,為供應鏈中主要合作企業節省大量制造及采購成本。根據模型的特點,采用了改進的離散型人工魚群算法進行求解,所得最終解相對于隨機挑選的初始解得到很大的提升,表明該算法有較強的尋優性能。人工魚的覓食行為奠定了算法收斂的基礎,聚群行為增強了算法收斂的穩定性以及全局性,追尾行為則增強了算法收斂的快速性和全局性。未來還可以考慮勞動力的雇傭與配置,以及銷售市場對單元制造系統帶來的影響,使勞動密集型企業可以利用面向供應鏈的單元制造系統更有效地組織資源進行生產。