張 煜,徐亞軍,梁曉磊,李 斌
(1.福建工程學院交通運輸學院,福建 福州 350108;2.武漢理工大學物流工程學院,湖北 武漢 430063;3.武漢科技大學汽車與交通工程學院,湖北 武漢 430065)
當前龍門吊等大型裝卸設備普遍應用于鋼鐵物流園區(qū),并且通常需要多臺陸續(xù)工作才能完成鋼材裝卸作業(yè),常會出現前裝卸任務未結束,后續(xù)裝卸車輛已到達的情況,繼而造成排隊等待時間過長,物流園區(qū)交通堵塞。同時,在任務非均衡情況下,也會出現當前龍門吊有大量的任務需完成,而其它區(qū)域設備卻處于空閑狀態(tài)的情況。因此設備利用率低、作業(yè)任務不均等問題在鋼鐵物流園區(qū)作業(yè)中十分突出,如何克服瓶頸,提園區(qū)作業(yè)效率成為了研究重點。而目前針對解決鋼鐵物流園區(qū)存在的上述問題的研究還比較少,相關研究多集中在集裝箱碼頭堆場研究,如考慮場橋區(qū)域動態(tài)平衡以改善龍門吊作業(yè)時間[1-2],利用啟發(fā)式算法優(yōu)化龍門吊的配置問題[3-4],以低碳低成本為目標的龍門吊進行路徑規(guī)劃[5]及優(yōu)化港口運輸車輛的路徑[6-7]減少堆場場橋的吊裝成本,也提出了一些求解方法[8-9]。而鋼鐵物流園區(qū)作業(yè)中,貨物型號較多、出入庫頻率差別大、貨場堆放不規(guī)則等因素使得與集裝箱港口堆場中具有標準集裝箱類型和規(guī)范作業(yè)環(huán)境等特征具有較大區(qū)別,導致針對集裝箱堆場優(yōu)化方法并不適用于鋼鐵物流園區(qū)。在物流園區(qū)中一般龍門吊不能隨意移動,只在限定的局部區(qū)域進行作業(yè),但可以通過改變鋼材倉位布局或運輸車輛裝卸路徑,將任務合理分配于各龍門吊,從而提升整體作業(yè)效率。目前針對鋼鐵貨場的貨位布局和路徑優(yōu)化研究較少,少量相關研究中也將兩個方面割裂進行分析。通過分析影響堆場作業(yè)效率的因素,從作業(yè)量均衡角度入手,綜合考慮堆場儲存、提貨規(guī)則等約束,構建了面向龍門吊作業(yè)任務量均衡的兩階段模型,分別設計了鐘擺式啟發(fā)式算法和鯨魚智能優(yōu)化算法對其進行求解,實現對龍門吊作業(yè)和車輛等待時間的優(yōu)化。
考慮作業(yè)量均衡的堆場倉位布局及路徑優(yōu)化是要實現在滿足堆場內存儲方式、存儲數量、裝卸條件等約束下,對儲存鋼材的貨位和車輛取貨路徑進行優(yōu)化,從而均衡堆場內各龍門吊作業(yè)量,提升大型設備利用率和降低車輛作業(yè)等待時間。這里分別從鋼材存儲位置、車輛提貨路徑兩個階段進行建模和算法設計,實現作業(yè)量均衡化。在鋼材存儲優(yōu)化設計中,以每個堆場為對象,引入二維裝箱問題,以均衡單個堆場中的各龍門吊作業(yè)任務量為目標,構建倉位布局優(yōu)化的數學模型;在車輛提貨路徑設計上,將車輛路徑問題轉化為確定每輛車各單品鋼材取貨位置問題,以均衡全部堆場龍門吊作業(yè)任務量為目標建立路徑優(yōu)化模型。上述兩個模型依次解決,從而實現堆場整體作業(yè)的優(yōu)化。
根據實際作業(yè)要求,模型假設條件如下:(1)堆場布局確定,路徑單向通行;(2)每個堆場對應一個或多個龍門吊,且僅能裝卸本堆場的貨物;(3)同一鋼材單品可以存放于不同堆場,同一堆場可以存放不同種類的鋼材;(4)裝載車輛一次可以裝載單品種或多品種鋼材,但需按照規(guī)定順序裝載。(5)裝載車輛相互獨立,功能相同。
面向作業(yè)量的倉位布局問題可描述為:當鋼材進行存儲時,需按照鋼材出入庫頻率、存儲方式對其合理分配,使各龍門吊工作任務量較為均衡。此處,這里以單堆場雙龍門吊為例,構建倉位布局優(yōu)化模型,并將鋼材儲存擺放的倉位布局優(yōu)化轉換為二維裝箱問題,使鋼材合理放置于堆場,并均衡堆場左右兩側鋼材的價值量。
模型符號定義:i—堆場的編號,共N個堆場(i=1,2,…,N);j—裝卸鋼材單品編號,j=1,2,…;Li—堆場的長(i=1,2,…,N);Bi—堆場的寬(i=1,2,…,N);b—子堆場寬度;Ni—堆場i分配的倉位數;ak—第k個倉位的長(k=1,2,…,N)i;bk—第k個倉位的寬(k=1,2,…,N)i;xk—堆場中第k個倉位的左下角橫坐標位置;yk—堆場中第k個倉位的左下角縱坐標位置;nj.m—j種鋼材倉位能存放最大件數;wj—每件j鋼材的重量;ci—各倉位任務指標,衡量倉位出入庫任務;Ci—任務指標,衡量堆場i出入庫作業(yè)任務;VL—堆場以橫向中線將堆場均分為左右半區(qū)的堆場左半區(qū)總價值量;VR—堆場以橫向中線將堆場均分為左右半區(qū)的堆場右半區(qū)總價值量;zk—0~1決策變量,zk=0表示第k個倉位在子堆場一,zk=1則表示在子堆場二。以堆場過道為分界,上半區(qū)堆場稱為子堆場二,下半區(qū)堆場稱為子堆場一,堆場分區(qū),如圖1所示。
圖1 堆場分區(qū)示意圖Fig.1 Storage Area Diagram
約束條件:
式(1)為目標函數,表示堆場對稱區(qū)域鋼材價值量盡量均衡,即使不同區(qū)域龍門吊總工作任務量差值最?。皇剑?)表示每件鋼材的價值量,即一個倉位存儲鋼材數量越多、出入庫頻率與重量越大,該鋼材單品價值量越高;式(3)、式(4)分別表示堆場左右半區(qū)的總價值量;約束式(5)、式(6)表示對于任何一個倉位,在堆場長度方向要全部在堆場內部;約束式(7)、式(8)為倉位滿足堆場寬度方向的要求,且由決策變量zk決定倉位在子堆場一或子堆場二;約束式(9)表示任何一個倉位都可以在子堆場一或子堆場二。
面向作業(yè)量的提貨車輛路徑規(guī)劃問題可描述為:當有裝載車輛進行提貨任務時,需要統(tǒng)一調度全部龍門吊,安排不同裝卸任務車輛前往指定位置進行作業(yè),以均衡各龍門吊的作業(yè)量,同時減少排隊時間。
相關符號定義如下:
i—堆場的編號,共N個堆場(i=1,2,…,N);j—裝卸鋼材單品編號,j=1,2,…;wj—每件j鋼材的重量;m—每個堆場對應的龍門吊個數;Cm—園區(qū)內同時容納最大車輛數;k—車輛編號,k=1,2,…,Cm;Li—各堆場車道長度,與相應堆場長度相同;Lc—裝載車輛縱向長度;gap—車輛間縱向間隔;vi—龍門吊裝卸速度;Gjk—表示車輛k中待提取的j鋼材單品;Gjk(n)—車輛k中待提取的j鋼材單品提貨量;Gjk(t)—車輛k中待提取的j鋼材單品所需裝載時間;Gj(i)—堆場i中存放的所有j鋼材單品數量;Ri—堆場i的裝車作業(yè)任務量—決策變量=1,表示在堆場i裝卸貨物=0表示不在i堆場裝卸。
約束條件:
式(10)為目標函數,表示每個堆場分配的龍門吊裝卸任務量盡量均衡,即堆場的最大裝卸工作量Rmax與堆場最小裝卸工作量Rmin的差值最小;約束條件式(11)表示堆場內最大容納的車輛數;式(12)表示車輛k中的j鋼材單品所需裝卸時間;式(13)表示堆場i的裝卸任務量;式(14)表示在每個堆場裝卸鋼材的數量不能超過該單品的存放量;式(15)表示一輛裝卸車輛上待提的一種鋼材單品至少在一個堆場取貨;式(16)表示堆場內每種鋼材單品的存放量非負;式(17)定義0~1決策變量。
針對倉位布局優(yōu)化模型,這里提出了鐘擺式啟發(fā)策略,該策略模擬鐘擺在搖擺過程中因能量損失而最終靜止于中間位置的操作。將求解的價值量差異作為鐘擺擺向能量,在左右擺動過程中以縮小甚至消除差異為目的控制擺動方向,依次選取布局位置,當能量損失耗盡即價值量差異達到最小則鐘擺趨于靜止,布局優(yōu)化完成。鋼材根據出入庫頻率與庫存量等分為A、B、C三類,且A類鋼材采用“井字形”碼放方式,B、C類鋼材則采用“一字形”。采用A類鋼材均分到五個堆場、B類鋼材分到一個或多個堆場、C類鋼材利用隨機函數生成(1~5)的整數隨機分配堆場的策略進行擺放分配。
以每個堆場左下角點為(0,0)原點建立坐標系,按照A、B類鋼材靠近過道擺放、C類鋼材靠近堆場橫向邊緣擺放的原則,根據左右龍門吊作業(yè)量,將倉位左右擺動分配,分別確定各倉位橫、縱坐標,如圖2所示。
圖2 鐘擺式分配示意圖Fig.2 Pendulum Distribution Diagram
基于鐘擺啟發(fā)式策略求解步驟如下:
(1)將堆場i分配的所有倉位,按照倉位最大存放件數nj,m非增排序;nj.m相等時,按出入庫頻率fj非增排序,將A、B、C三類中的鋼材,分別形成三個任務指標序列集合CA={c1,c2,…,cm}、CB={cm+1,cm+2,…,cn}、CC={cn+1,cn+2,…,cN}i。
(2)確定A、B、C三類鋼材中各鋼材單品倉位左下角橫坐標,具體規(guī)則如下:
①對CA={c1,c2,…,cm},計算堆場的左右龍門吊任務量VL、VR,當VL≤VR時,將同類鋼材(即nj.m相同且fj相等)所有倉位從左端按照CA順序擺放;當VL>VR時,從右端將同類鋼材所有倉位按順序擺放,確定倉位的橫坐標xk。完成一種鋼材擺放后重新計算VL、VR,按照上述操作完成所有A類鋼材倉位的擺放。B類倉位“一字形”垂直于堆場長擺放,與A類倉位一樣鐘擺式擺放,記錄最后的B類鋼材倉位橫坐標。
(3)對倉位縱坐標進行確定,具體規(guī)則如下:
①設定A、B類倉位靠近堆場中間過道擺放,即yk=b-bk或yk=Bi-b。
②C類倉位放在堆場寬度方向的兩側,即yk=Bi-bk或yk=0。
(4)輸出各倉位的位置坐標。
針對本文問題,構建了如下鯨魚個體編碼方式:以1個一維數組表示一條鯨魚的位置,代表Cm輛車的裝卸貨物路徑。一輛車可能需提取j(j=1,2,…)種鋼材,每種鋼材可能在N個堆場中的任意一個或多個位置取貨,用位置向量中的N個維度表示一種貨物單品在N個堆場的取貨順序,因此一輛裝卸車對應的數組長度為N×j,Cm輛車對應的數組按到達堆場時間順序依次拼接起來即為一條鯨魚的位置向量。
以某輛車提取三種不同規(guī)格螺紋鋼為例,其編碼解碼流程,如圖3所示。編碼的每個基因位對應一個堆場,基因位的數值在(0~1)之間隨機生成。按照基因位數值由小到大,確定裝卸車輛遍歷各個堆場的順序,如果同一單品多個堆場對應的基因位數值相同,按照先左后右的順序遍歷。
圖3 隨機密鑰編碼解碼過程Fig.3 Random Key Encoding and Decoding Process
如果前一個堆場的存貨量滿足,則不需要繼續(xù)遍歷其它堆場;如不滿足,則需要遍歷下一個堆場進行提貨。遍歷某堆場提貨后,需要對被遍歷的堆場進行貨物數量的更新。按照解碼規(guī)則,三種鋼材的先后遍歷順序分別為:堆場五-堆場二-堆場一-堆場四-堆場三,堆場五-堆場三-堆場二-堆場一-堆場四,堆場五-堆場三-堆場二-堆場一-堆場四。
分析2:當直線PQ的斜率趨向于+∞時,其中一條(不妨設PF)的長度趨向于+∞,而另一條趨向于OF,從而可求得答案C.通過分析直線PQ的斜率不斷增大的情形,有效地激發(fā)學生的創(chuàng)造性動機,提高學生的思維能力.
Cm輛車在數組中的位置,由到達園區(qū)時間決定,先到則排在前面,示意圖,如圖4所示。同輛車各鋼材單品在數組中位置,由鋼材的裝車順序決定。先裝車鋼材單品在前,后裝車鋼材單品在后。
圖4 鯨魚位置向量解碼Fig.4 Decoding of Whale Position Vector
綜上,將各輛車數組依次拼接即得到一條鯨魚位置向量,即可以確定鯨魚位置向量中各維度的意義。
利用鯨魚算法(WOA)對模型求解步驟如下:
(1)輸入相關參數。每次計算的車輛數量Cm,迭代的次數tm,鯨魚種群數量M,每輛提貨車輛訂單信息,各堆場存貨信息等。
(2)按車輛到達的先后順序排序,利用隨機函數生成各求解鯨魚的初始位置。根據當前的堆場存貨信息檢驗初始解是否符合約束,若不符合,則進行調整。
(3)通過鯨魚算法對初始位置進行更新,更新當前最優(yōu)解,并檢驗校正鯨魚位置。
(4)更新堆場存貨信息與堆場龍門吊作業(yè)任務量信息。
(5)重復上述步驟,直到達到迭代次數tm。
某鋼鐵物流園貨物品種多,日工作任務超萬噸,日出入園車流最高可達450輛。該園區(qū)具有5個存放鋼鐵的堆場,長度分別為l1=98m,l2=111m,l3=125m,l4=125m,l5=125m。每個堆場配有2臺龍門吊,其裝卸速度為vi=100t/h。結合前面建立的堆場倉位布局與路徑優(yōu)化模型,確定下述模型參數:N=5,Lc=15m,gap=2.5m,Cm=30 輛。鯨魚算法迭代次數tm=200,鯨魚種群數量M=20。將倉位布局優(yōu)化模型與提貨路徑優(yōu)化模型依次進行求解。
利用倉位布局優(yōu)化模型,對該物流園區(qū)各類鋼材進行倉位布局優(yōu)化?;赑ython 3.7編寫鐘擺式策略程序,并進行模型求解,如表1所示。
表1 倉位布局優(yōu)化結果Tab.1 Warehouse Layout Optimization Results
表1中記錄了各規(guī)格鋼材所在堆場以及倉位個數,圖5則表示堆場內各倉位位置。倉位采用i-l(jk)的編號形式。i—倉位所在堆場;lj—此倉位存放鋼材的種類;k—此倉位是這個堆場中同類倉位的第k個。圖5中,從左向右依次為5個堆場,每個堆場配有兩臺龍門吊,分別負責左右半區(qū)的裝卸任務。實線、虛線的箭頭方向均表示行駛方向,出入主干道箭頭方向代表進出園區(qū),堆場中箭頭方向為雙車道行車方向。且有以下規(guī)則:(1)右四車道進,左四車道出;(2)主干道與通行車道不允許車輛停留;(3)場內兩車道一條用于通行,一條用于裝卸,方向指向主干道;(4)園區(qū)內所有道路單向行駛,車輛可以直接穿越主干道,但需避讓直行車輛。根據求解結果,可以得出每個堆場左右半區(qū)價值量,根據式(18)相對偏差公式,計算左右半區(qū)相對偏差,如表2所示。
表2 單堆場左右半區(qū)任務量Tab.2 Single Yard Left and Right Half Capacity
圖5 堆場倉位布局優(yōu)化圖Fig.5 Layout Optimization Diagram of Storage Yard
五個堆場中相對偏差均低于2%,說明各堆場內兩臺龍門吊的作業(yè)任務量相差較小,處于均衡的狀態(tài)。在此倉位分布情況下,單堆場內兩臺龍門吊工作量差值較低,即龍門吊出現瓶頸機問題的可能性較小,由此驗證了倉位布局模型和鐘擺式策略的可行性及優(yōu)化性。
在優(yōu)化后的堆場倉位布局基礎上,對車輛提貨路徑模型進行求解。由模型參數可知,園區(qū)內最多可容納30輛裝載車,而每筆訂單只能由一輛車完成運輸。因此,這里選取該園區(qū)2017年10月1日的前30筆出庫訂單為例,對其作業(yè)過程進行優(yōu)化求解,確定取貨路徑。
該鋼鐵物流園區(qū)出庫作業(yè)情況可描述為:提貨車輛按照訂單內容進入堆場裝載螺紋鋼。若需要提多種規(guī)格的單品,則在園區(qū)中多個位置進行龍門吊裝車操作。多種鋼材裝載規(guī)則為:優(yōu)先裝載直徑粗、長度長的鋼材,車廂按照優(yōu)先裝載的原則依次裝車。
各車輛提貨位置的求解結果,如表3所示。并利用式(18)計算相對偏差來判斷任務分配的均衡程度。其中,`R表示龍門吊平均工作任務量,R(i)是各堆場的作業(yè)任務量。由求解結果可知5個堆場的任務量分配,如表4所示。
表3 提貨堆場分配結果Tab.3 Distribution Results of Pick-up Yard
從表4 中可以得到,`R=140.80t,Rmax=R3=140.96t,Rmin=R2=140.46t,差值為0.50t,僅占平均工作量的0.36%。各堆場相對平偏差均小于1%,表明其提貨分配量處于均衡狀態(tài)。基于上述的任務分配結果,參照裝載順序結合,如圖4所示。規(guī)劃了30輛裝載車的取貨路徑,如表5所示。道路節(jié)點采用倉位位置表示,優(yōu)先選取車輛進入堆場后距離最近的同類倉位進行提貨。由車輛在園區(qū)內的平均駐留時間,如表6所示。30輛車的行駛時間與等待時間遠小于裝卸時間,減少了車輛非作業(yè)時間。上述結果證明了這里構建的提貨模型及用鯨魚算法求解園區(qū)取貨過程優(yōu)化問題,能夠很好地均衡龍門吊的裝車作業(yè)時間,實現工作任務的合理分配。
表5 車輛的取貨路徑Tab.5 Vehicle Pick-up Path
表6 30輛裝載車的平均駐留時間Tab.6 30 Average Dwell Time of Loaders
這里針對鋼鐵堆場作業(yè)瓶頸現狀,提出綜合考慮作業(yè)量均衡的倉位布局與提貨路徑優(yōu)化問題,構建了面向作業(yè)量均衡的兩階段模型。首先,將園區(qū)中的倉位布局優(yōu)化轉化為二維裝箱問題,提出鐘擺式啟發(fā)策略,利用擺動過程的能量損失來逐步縮小布局位置的價值量差異,合理分配堆場兩邊的倉位。然后針對路徑優(yōu)化模型,利用鯨魚算法設計隨機密鑰的解碼、編碼策略求解車輛的提貨路徑?;谀澄锪鲌@區(qū)的實際情況進行仿真分析,實驗結果表明,單堆場與全部堆場的龍門吊作業(yè)量偏差均能達到2%以內,車輛提貨等待時間遠遠小于裝卸時間,說明這里提出的考慮作業(yè)量均衡的堆場布局與路徑優(yōu)化模型及求解算法可以均衡各龍門吊作業(yè)任務,有效解決排隊問題,提升堆場運作效率。由于鋼鐵堆場作業(yè)存在較多復雜因素,如貨物需求量隨機性變動以及設備周期性維護等,考慮復雜多因素影響,這將是進一步研究的重點。