在服裝制造業中,碎片化生產的現象在生產實際中越來越多地出現。某服裝制造企業為了擴充產品種類、款式以適應豐富多變的市場需求,采用多種類、小批量的生產方式。多種類小規模生產在適應市場的同時也帶來各種問題。企業生產實際中多采用立體倉庫以提高庫存占地利用率,但是多種類小規模的生產方式會產生更多種類的庫存。與此同時,新制造的產品與舊庫存混合堆放,導致商品訂單到來時立體倉庫的分揀過程過于繁瑣,耗費人力物力,增加企業生產成本。
對于立體倉庫的應用,國內外相關研究主要集中于貨位的優化和調度任務以及路徑的分配[1]。Lee等[2]采用啟發式算法求解方形立體倉庫的出庫入庫最優揀選路徑問題。Kim等[3,4]采用聚類算法結合排序算法應用于立體倉庫的作業揀選問題以優化最短揀選路徑。常發亮等[5,6]應用離散大系統的分級遞階控制原理解決倉庫作業任務分配以及調度問題。衛三軍等[7]采用結合遺傳算法與模擬退火算法的遺傳退火算法求解堆垛機最優作業路徑問題。目前對于立體倉庫的建模多集中于貨位優化和調度路徑優化問題,對于面向小批量多種類制造方式的立體倉庫分揀的相關問題還少有學者研究。
針對企業實際生產中遇到的小批量多種類制造方式分揀過程繁瑣的問題,本文提出有針對性的立體倉庫分揀問題建模,并將改進的遺傳算法應用于企業數據中,證明遺傳算法對于此類立體倉庫庫存分揀問題有較好的適應性,最后通過某服裝制造企業的訂單數據實驗驗證了算法的有效性。
在實際生產場景中,立體倉庫可能存在一個貨箱中存放多種貨物,或同一種貨物被存放在不同的貨箱中的情況,如圖1所示。
在收到分揀訂單后,算法決定符合訂單要求的取貨方式,需要滿足揀取貨箱數M最小。
訂單分揀問題首先要保證訂單上的所有貨物需求得到滿足,故有約束條件,對于訂單上的任意第q種貨物,均滿足:
∑Ni=1i=1Νxqi≥Lq(q=1,2,3,…,Q) (1)
其中,N表示分揀結果中的貨箱數;xqi表示貨物q在第i個箱子中的存貨數;Lq為訂單對第q種貨物的需求數;Q為訂單貨物種類總數。
本問題的優化目標為使得分揀過程最簡單,也即達到訂單目標時取出的貨箱數N最小,故目標函數定義為:
minN=card(A1∪A2∪…∪An) (2)
其中,card表示集合中元素的個數;n表示訂單中不同貨品的種類數;An表示分揀結果中第n種貨物所在的貨箱集合。
相對于傳統立體倉庫優化問題,本文結合企業生產實際,針對立體倉庫分揀過程的優化問題建立數學模型。與傳統模型相比,本文提出的立體倉庫分揀模型結構更加簡單,對企業實際問題的針對性更強。
本文提出的數學模型是一個典型的0-1整數規劃模型。針對0-1規劃問題,進化算法在并行性、隨機性、非線性問題的搜索能力方面體現出優于其他算法的特點[8]。其中遺傳算法在0-1規劃問題方面有一種先天的優越性,因為0-1規劃中的問題變量非常有利于遺傳算法編碼,故在0-1整數規劃問題的應用中,遺傳算法通常有較好的結果[9]。故本文采用遺傳算法求解針對小批量多種類制造模式下立體倉庫的分揀優化問題。
經典遺傳算法通常采用二進制編碼,經過選擇、交叉、變異后得到子代基因。
首先進行選擇計算,經典遺傳算法通常采用輪盤賭方法,基于適應度比例確定選擇的策略,每個個體i被選中的概率:
pi=fi∑Nj=1fi (3)pi=fi∑j=1Νfi(3)
其中:
fi=kFi (4)fi=kFi(4)
式中,k為比例系數;Fi為個體適應度值,由于本文采用的優化策略是減小適應度,故帶比例的適應度fi取比例系數k與個體適應度Fi的比值; N為種群中個體的數目。
經典遺傳算法的第m個染色體am和第n個染色體an在第k位交叉的過程如下:
{amk_new=amk(1?b)+ankbank_new=ank(1?b)+amkb (5){amk_new=amk(1-b)+ankbank_new=ank(1-b)+amkb(5)
其中,b是[0,1]之間的隨機數。
經典遺傳算法中選取的第i個體的第j位基因進行變異的操作方法如下:
aij={aij+(aij?amax)*f(g),r≥0.5aij+(amin?aij)*f(g),r<0.5 (6)aij={aij+(aij-amax)*f(g),r≥0.5aij+(amin-aij)*f(g),r<0.5(6)
其中:
f(g)=d1?g/Gmax (7)f(g)=d1-g/Gmax(7)
式中,d為一個隨機比例系數;r為[0,1]之間的隨機數;g為當前迭代次數;Gmax是最大進化次數;amax和amin分別為基因aij的上下界。
經典遺傳算法在基因選擇時采用的輪盤賭方法是基于概率確定子代的,此方法的缺點是可能會存在統計誤差導致無法保證結果穩定收斂至最優解,故引入精英主義原則。精英主義原則也被稱為保存最優原則,Eiben[10]用馬爾可夫鏈理論證明采用精英主義原則的遺傳算法可以彌補傳統選擇算子可能導致的統計誤差,保證得到全局最優解。
精英主義原則在產生子代種群時,除了通過選擇算子生成的子代種群外,還要求另外按精英比率保留適應度值最低的幾個最優個體,選擇過程如圖2所示。
圖2中假設親代種群P1到P10按適應度值從低到高的順序排列。根據精英主義原則,在產生子代種群C1到C10時,先按一定比例將親代種群最優個體直接復制到子代中,如圖2中C1、C2。再采用輪盤賭方法產生其余個體,如圖2中C3~C10。
分揀訂單中每個貨箱分為“取到”和“未取到”兩種狀態,故采用二進制編碼。如圖3所示,在分揀結果中,每個貨箱對應基因的一位,編碼“1”表示“本次分揀取到此貨箱”,編碼“0”表示“本次分揀未取到此貨箱”。
在分揀問題中首先要保證分揀任務的完成情況。本文對于個體適應度函數分情況討論,分揀結果未滿足訂單要求時,個體適應度函數直接取個體基因位數即貨箱的總數;分揀結果滿足訂單要求時,個體適應度函數的值取個體基因編碼為“1”的位的個數,即分揀結果中取出的貨箱數。
步驟1:初始化種群;
步驟2:計算適應度值;
步驟3:輪盤賭算子配合精英主義原則生成子代;
步驟4:交叉操作;
步驟5:變異操作;
步驟6:判斷是否滿足迭代終止條件,若滿足執行下一步,否則返回步驟2;
步驟7:輸出迭代結果。
整體流程圖如圖4所示。
本次實驗采用多個不同規模的訂單數據,針對每個訂單,由改進的遺傳算法給出最優分揀方案。實驗數據如下:采用某企業的生產庫存數據,共有379個貨箱,庫存商品有523種,庫存商品個數總計5617個,設置4個不同規模的訂單,每組數據中包含貨箱庫存量數據和一個需求訂單數據。庫存量數據包括貨箱編號、每個貨箱中的商品編號以及每種商品的庫存量。需求訂單數據包括所需商品的編號以及數量。4組數據的規模設置如表1所示。
表1 訂單優化數據設置 導出到EXCEL
組別 |
庫存商品種類 | 訂單商品種類 | 訂單商品數量 |
1 |
523 | 100 | 463 |
2 |
523 | 200 | 1270 |
3 |
523 | 300 | 1909 |
4 |
523 | 400 | 2466 |
為了得到比較理想的結果,遺傳算法的具體參數設置如下:種群數為100、交叉率為0.7、變異率為0.1、精英主義原則保留比率為0.05、最大迭代次數為2000次。對于本算法,采用Java語言編程進行實驗,每次實驗得到分揀結果中包括需要取出的貨箱和貨箱中取出的每種商品數量。由于遺傳算法存在隨機性,每組數據進行20次實驗,表2記錄了每次分揀結果中的貨箱數。
表2 實驗結果貨箱數記錄 導出到EXCEL
實驗 次數 |
第一組貨箱 數/個 |
第二組貨箱 數/個 |
第三組貨箱 數/個 |
第四組貨箱 數/個 |
1 |
33 | 50 | 65 | 79 |
2 |
35 | 52 | 60 | 80 |
3 |
33 | 51 | 63 | 79 |
4 |
32 | 50 | 65 | 82 |
5 |
33 | 48 | 59 | 77 |
6 |
32 | 49 | 62 | 85 |
7 |
32 | 50 | 64 | 82 |
8 |
33 | 47 | 61 | 80 |
9 |
31 | 51 | 65 | 79 |
10 |
30 | 49 | 61 | 80 |
11 |
35 | 49 | 65 | 80 |
12 |
34 | 50 | 64 | 80 |
13 |
33 | 52 | 64 | 83 |
14 |
36 | 52 | 63 | 85 |
15 |
33 | 48 | 65 | 82 |
16 |
31 | 48 | 63 | 83 |
17 |
32 | 51 | 63 | 80 |
18 |
32 | 53 | 62 | 80 |
19 |
30 | 50 | 61 | 82 |
20 |
33 | 53 | 60 | 84 |
經統計,四組訂單數據中商品分別分布于217、260、295、334個貨箱中,為了更直觀地體現算法的分揀能力,本文提出分揀比率的評價方法,分揀比率R的計算方式如下:
R=card(A1∪A2∪A3∪?∪An)card(B1∪B2∪B3∪?∪Bn) (8)R=card(A1∪A2∪A3∪?∪An)card(B1∪B2∪B3∪?∪Bn)(8)
其中,card表示集合中元素的個數;An表示分揀結果中第n種貨物所在的貨箱集合;Bn表示第n種貨物所分布的貨箱集合。根據表2實驗結果記錄,得到分揀比率如圖5所示。
由分揀比率的計算方法易知,分揀結果中的貨箱數占總貨箱數的比例越低,即分揀比率的數值越低,則可以認為算法對于此訂單的分揀效果越好。從圖5可以看出,對于本次實驗數據的第一組訂單,分揀結果的分揀比率在15%左右,第二組在19%左右,第三組在21%左右,第四組在25%左右。說明針對本次實驗的數據集在各種規模的訂單下均有較好的分揀效果,訂單商品種類較少時效果更好。
本文對立體倉庫分揀問題進行分析建模,并采用改進的遺傳算法應用于該問題,同時提出“分揀比率”的評價方式對分揀結果進行分析。由于遺傳算法的優化過程存在隨機性,實驗過程中記錄了多次結果,實驗結果顯示,算法可以達到較理想的分揀結果且多次實驗分揀結果較為穩定。算法對不同規模數據集的分揀結果有一定區別,總體而言對較小規模的訂單分揀結果更優。針對遺傳算法存在的統計誤差,算法采用引入精英主義原則保留最優個體的方法解決。本文利用遺傳算法給企業多種類小批量生產中遇到的立體倉庫出庫分揀問題提出一種可能的解決方案,為類似的倉庫分揀問題提供了理論依據。