魯建廈,陳壽伍,易文超,湯洪濤
(1.浙江工業(yè)大學 機械工程學院,浙江 杭州 310032;2.浙江匯智物流裝備技術有限公司,浙江 湖州 313028)
跨層穿梭車倉儲系統(tǒng)[1](Tier-to-Tier Multi-Shuttle Warehouse System, TTMSWS)是近年來出現(xiàn)的一種新型智能立體倉庫。相比多層穿梭車倉儲系統(tǒng),穿梭車通過提升機實現(xiàn)跨層運動,以到達貨架的不同層工作,具有更高的柔性和魯棒性,從而減少穿梭車的數(shù)量??鐚哟┧筌噦}儲系統(tǒng)存在兩種作業(yè)方式:①單一作業(yè)方式:單入庫作業(yè)、單出庫作業(yè);②復合作業(yè)方式:當系統(tǒng)同時有出庫和入庫指令時,穿梭車即執(zhí)行出入庫交叉作業(yè)。為提高系統(tǒng)存儲效率,穿梭車采用復合作業(yè)方式運作??鐚哟┧筌噦}儲系統(tǒng)中每個任務都可以選擇不同的穿梭車,導致穿梭車的路線選擇也不同,進而有不同的任務作業(yè)時間,并會對提升機的移載過程產(chǎn)生影響,從而導致這些不同的組合、順序有不同的結果,因此在跨層穿梭車倉儲系統(tǒng)中對多穿梭車和提升機的協(xié)同調(diào)度具有重要意義。
目前,為了適應穿梭車式倉儲系統(tǒng)的發(fā)展與應用,國內(nèi)外學者進行了相關研究。WANG等[2]提出基于穿梭車和提升機的任務作業(yè)時序模型,并利用非支配排序遺傳算法進行求解。楊瑋等[3]在每層一臺穿梭車的立體倉庫中,提出雙載式穿梭車路徑優(yōu)化問題,建立了雙載式多層穿梭車倉儲系統(tǒng)復合作業(yè)模型,并運用混合植物繁殖算法對該模型進行優(yōu)化求解。CARLO等[4]針對在多個巷道可共享使用兩個提升機的多層穿梭車立體倉庫進行了研究,以進出庫作業(yè)時間最短為目標函數(shù)建立調(diào)度模型,確定了兩個提升機的調(diào)用順序。ZHAO等[5]在Carlo的基礎上考慮了穿梭車與提升機的加減速特性。楊瑋等[6]針對子母式穿梭車倉儲系統(tǒng)復合作業(yè)路徑優(yōu)化問題,在提升機數(shù)量與子母穿梭車數(shù)量為1∶2的前提下,利用改進的自適應粒子群算法進行了求解。郭紅麗[7]介紹了每層一臺穿梭車和m層n臺穿梭車兩種形式的自動化立體倉庫,對立體倉庫的揀選作業(yè)進行了分析。張娜[8]對單出庫的跨層穿梭車系統(tǒng)進行建模,并采用Gurobi求解器進行求解。Marchet等[9]完成了每層一臺穿梭車和m層n臺穿梭車兩種形式的自動小車存取系統(tǒng)(Automated Vehicle Storage and Retrieval System, AVS/RS)研究,并利用仿真分析了不同自動小車存取系統(tǒng)的配置下的立庫吞吐量。方彥軍等[10]研究了AVS/RS復合作業(yè)三維路徑優(yōu)化問題,并采用改進人工狼群算法求解,驗證了算法的有效性。鄒霞等[11]針對集中式和分散式的自動存儲系統(tǒng)(Automated Storage and Retrieval System, AS/RS)倉儲中,考慮了設備的加減速,通過分析設備運行時間模型研究了貨架結構和訂單密度對系統(tǒng)的影響。
跨層穿梭車倉儲系統(tǒng)相對于多層穿梭車倉儲系統(tǒng),能最大程度地避免訂單量較少而穿梭車閑置的情形并減少投資成本,目前在部分企業(yè)已得到使用。但是,國內(nèi)外對于跨層穿梭車倉儲系統(tǒng)的相關文獻較少,在該類倉儲系統(tǒng)的調(diào)度優(yōu)化中存在著較大的進步空間。而關于穿梭車的跨層作業(yè)研究,多見于自動小車存取系統(tǒng)和子母穿梭車存取系統(tǒng),這對于跨層穿梭車倉儲系統(tǒng)的研究有一定的參考價值。關于多層穿梭車倉儲系統(tǒng)的已有文獻研究主要集中在單層作業(yè)模式下,對于跨層作業(yè)模式的研究很少,且其研究對象僅針對單出庫或單入庫任務,并且相關研究的模型中均未考慮設備的運動特性,與實際情況有較大誤差,求解方式多為規(guī)劃器求解或單一的優(yōu)化算法,對于跨層穿梭車倉儲系統(tǒng)調(diào)度路徑規(guī)劃有一定的局限性。
倉儲系統(tǒng)復合作業(yè)路徑規(guī)劃問題是一個NP難問題[12],使用確定性算法獲得精確解是耗時且困難的,故學者通常采用智能算法求解。而由李曉磊[13]提出的通過構造人工魚來模仿魚群覓食、聚群及追尾行為,實現(xiàn)尋優(yōu)的優(yōu)化算法——人工魚群算法(Artificial Fish Swarm Algorithm, AFSA),因其具有初值魯棒性強、全局性、簡單性等優(yōu)點而被廣泛應用。目前,已有很多針對人工魚群算法的改進算法及應用實例:如馬憲民等[14]提出自適應視野的改進人工魚群算法,僅對人工魚的覓食視野進行調(diào)整,求解路網(wǎng)最短路徑問題。趙敏等[15]采用了步長參數(shù)分解和柔性參數(shù)設置等改進策略,提出了一種基于改進ASFA求解柔性作業(yè)車間調(diào)度問題(Flexible Job shop Scheduling Problem, FJSP)問題;周永權等[16]引入交叉算子和去交叉策略對人工魚群算法進行改進,并將其用于解決旅行商問題(Traveling Salesman Problem,TSP)。
本文從作業(yè)排序和作業(yè)路徑的角度,以跨層穿梭車倉儲系統(tǒng)出入庫復合作業(yè)為研究對象,考慮提升機和穿梭車的加減速特性,根據(jù)倉儲系統(tǒng)實際作業(yè)運行過程建立TTMSWS出入庫復合作業(yè)數(shù)學模型,并設計了改進人工魚群算法(Improved Artificial Fish Swarm Algorithm, IAFSA),對不同條目訂單的出入庫作業(yè)問題進行優(yōu)化求解,力求在接近實際作業(yè)的情況下最小化出入庫的總行程時間。最后,將結果與遺傳算法和基本人工魚群算法對比,驗證了算法的有效性。
跨層穿梭車倉儲系統(tǒng)主要由穿梭車、提升機、軌道和存儲貨架等組成。其中,穿梭車在貨架軌道上運行,負責貨物的水平搬運,提升機安裝在巷道口,實現(xiàn)穿梭車的跨層運動。如圖1所示為其貨架立面圖。
圖2為穿梭車一次出入庫復合作業(yè)示意圖。其中X軸為巷道布置方向,代表穿梭車運動方向;Y軸為提升機布置方向,代表提升機運行方向。提升機與穿梭車共同完成一次出入庫復合作業(yè)需要經(jīng)歷3次節(jié)點變化:
(1)穿梭車從當前節(jié)點運行至出庫貨位節(jié)點;
(2)穿梭車從出庫貨位節(jié)點運行至出入庫節(jié)點(I/O點);
(3)穿梭車從出入庫節(jié)點(I/O點)運行至入庫貨位節(jié)點。
對于出入庫復合作業(yè)過程中的3個指令,皆可以表示為穿梭車從初始位置運行至目標位置的過程。如圖3所示,該過程可分為穿梭車初始位置與目標位置是否同層兩種情況。
(1)穿梭車初始位置與目標位置同層
1)系統(tǒng)下達指令給穿梭車;
2)穿梭車從當前位置(即上次任務終止的位置)啟動,直接水平運行至目標位置。
(2)穿梭車初始位置與目標位置不同層
1)系統(tǒng)下達指令給穿梭車;
2)穿梭車從當前位置啟動,水平運行至該層提升機工作站臺處;
3)穿梭車請求提升機,并等待提升機到達該層;
4)穿梭車搭乘提升機垂直運行至目標位置所在層;
5)穿梭車從該層提升機工作站臺水平運動至目標位置。
TTMSWS出入庫復合作業(yè)的每個指令可以視為3階段的混合流水作業(yè)[17]。
不同于一般的混合流水線調(diào)度問題,TTMSWS特點如下:
(1)跨層穿梭車倉儲系統(tǒng)的出入庫復合作業(yè)單元(將出庫任務和入庫任務結合作業(yè)定義為一個作業(yè)單元)之間存在一部分先后順序約束,即出庫任務優(yōu)先于入庫任務。
(2)一組出入庫復合作業(yè)單元中所用到的穿梭車為同一輛穿梭車。
(3)在執(zhí)行任務之前,必須將提升機移動到指定位置。提升機的調(diào)整時間即提升機的空跑時間,取決于任務執(zhí)行序列。
(4)一組出入庫復合作業(yè)單元中,當穿梭車執(zhí)行完某一階段的指令時,馬上開始下一階段的執(zhí)行,中間過程不中斷,直至該組出入庫復合作業(yè)單元執(zhí)行完畢。
根據(jù)TTMSWS運行現(xiàn)狀,為研究方便且不失一般性,假設如下:
(1)貨物采用隨機存儲策略,出庫貨物或入庫貨物都有一個確定的貨位;
(2)提升機和穿梭車運動過程均存在加(減)速度;
(3)提升機和穿梭車執(zhí)行完系統(tǒng)分配的任務后,若無新任務到達,則就近停止;
(4)設備空載和負載的移動速度相同;
(5)對同一輛穿梭車或提升機同一時刻只能執(zhí)行一個任務;
(6)當該層有穿梭車時,不允許其他穿梭車進入;
(7)當穿梭車或提升機開始執(zhí)行一個任務時,必須執(zhí)行完該任務,不允許中斷。
在此基礎上,進行參數(shù)與變量定義:已知每個出入庫復合作業(yè)必須依次經(jīng)過3個階段設備的操作。設i為操作階段索引,i=1,2,3,依此表示穿梭車從當前位置至提升機所在位置的運行階段,提升機搭載穿梭車至目標層的運行階段,穿梭車出提升機至到達目標節(jié)點的運行階段。因此,本文所研究的問題可以轉化為三階段的混合流水線調(diào)度問題,貨物出入庫復合作業(yè)單元為n(n=1,2,3,…,N)。則根據(jù)對穿梭車的作業(yè)指令分析,將每個作業(yè)單元都劃分為3個任務,即第n個作業(yè)單元可分為第3n-2個任務、第3n-1個任務和第3n個任務。記b為任務序號,b=1,2,3…,3n-2,3n-1,3n,…,3N-2,3N-1,3N,其中n為單元編號。s為階段編號,s=1,2,3;k為作業(yè)設備編號,k=1,2,…,ms;ms為第s階段的作業(yè)設備數(shù),其中m1=m3=Q,表示第一階段和第三階段的設備數(shù)量即穿梭車的數(shù)量;m2=2,該階段的第一個設備為實際運行的提升機,第二個為虛擬提升機,選擇該提升機表示該階段無需進行跨層運動。tbs為任務b在s階段的開始時間;pbs為任務b在s階段的作業(yè)時間;wbb′sk為s階段機器k操作的兩個連續(xù)任務b和b′之間的準備時間,而僅存在于第二階段的第一個設備中,即提升機在連續(xù)作業(yè)之間的空載時間;G為足夠大的數(shù);Cmax為所有任務的最大完成時間。
因此,TTMSWS復合作業(yè)調(diào)度模型可以表示為
minCmax。
(1)
s.t.
(2)
tbs≥0;
b=1,2,3,…,3N;s=1,2,3;
(3)
tbs≥t(b-1)s;
b=3n-1,3n,n=1,2,…,N;
s=1,2,3;
(4)
tbs+pbs≤tb(s+1);
b=1,2,3,…,3N;s=1,2;
(5)
xb1k=xb3k;
b=1,2,…,3N;k=1,2,…,Q;
(6)
xb1k=x(b-1)1k;
b=3n-1,3n,n=1,2,…,N;
k=1,2,…,Q;
(7)
tb′2-wbb′21-(tb2+pb2)≥G(ybb′21-1);
b、b′=1,2,…,3N;
(8)
tb′1-(tb3+pb3)≥G(ybb′3k-1);
b、b′=1,2,…,3N;k=1,2,…,Q;
(9)
b=1,2,…,3N;s=1,2,3;k=1,2,…,ms;
(10)
b=1,2,…,3N;s=1,2,3;k=1,2,…,ms;
(11)
Cmax≥tb3+pb3;
b=3n,n=1,2,…,N;
(12)
(13)
(14)
其中:式(1)為調(diào)度性能指標;式(2)確保每個任務在每個階段僅由一臺設備執(zhí)行;式(3)保證所有任務開始時間均在系統(tǒng)開始作業(yè)之后;式(4)保證屬于同一作業(yè)單元的3個任務的先后關系;式(5)定義了每個任務在不同階段開始時間的關系;式(6)保證每個任務的階段1和階段3由同一設備完成;式(7)保證同一單元的前后任務的階段1由同一設備完成,即式(6)和式(7)表明同一個單元由一輛穿梭車開始執(zhí)行至該單元結束;式(8)表示提升機連續(xù)的前后任務開始時間的關系;式(9)表示穿梭車連續(xù)的前后任務開始時間的關系;式(10)和式(11)表示在每臺設備作業(yè)序列中,每個任務最多有一個前序任務與后續(xù)任務。式(12)定義了Cmax,Cmax大于等于每一個作業(yè)單元的完成時間。式(13)和式(14)為變量取值定義。
人工魚群算法通過模擬魚的追尾、聚群和覓食等行為指導人工魚在解空間進行尋優(yōu)。人工魚個體的狀態(tài)可表示為向量X=(x1,x2,…,xn),代表問題的一個解;人工魚當前所在位置的食物濃度表示為Y=f(X),即適應度函數(shù)值。visual表示其視野范圍,移動步長為Step,魚群的擁擠度因子為δ,魚群中可以互相交換彼此間的信息,包括當前位置、食物濃度等。魚群的具體行為描述如下:
(1)覓食行為 人工魚個體在其視野范圍內(nèi)隨機選取一個位置Xj,若該位置所具有的食物濃度優(yōu)于當前所在位置,則人工魚向該位置移動一步;否則超過規(guī)定試探次數(shù)Try_number而找不到符合條件的Xj,則在其視野范圍內(nèi)隨機移動一步。
(2)追尾行為 人工魚個體在其視野范圍內(nèi)找到食物濃度最佳的伙伴Xmax,并且該伙伴周圍不太擁擠,則向該位置隨機移動一步;否則轉而執(zhí)行覓食行為。
(3)聚群行為 人工魚個體在其視野范圍內(nèi)找到處于中心位置的伙伴Xc,并且并且該伙伴周圍不太擁擠,則向該位置隨機移動一步;否則轉而執(zhí)行覓食行為。
人工魚選擇其中最優(yōu)的行為,并將最優(yōu)位置及其對應的食物濃度記錄在公告板中,當達到最大迭代次數(shù)時,停止迭代并輸出公告板上的最優(yōu)解。
如圖4所示為IAFSA流程圖。本文在基本的人工魚群算法上,采用自適應視野,并提出帶吸引性的覓食行為,同時引進變鄰域搜索算子來尋找最優(yōu)解決方案。該算法中,AFSA通過魚群的追尾、聚群和覓食行為,來對公布板進行更新,找到全局最優(yōu)解位置,當算法陷入局部最優(yōu)時,利用變鄰域搜索算法(Variable Neighborhood Search, VNS)搜索該位置及其鄰域范圍,以此來使算法在早熟收斂時跳出局部最優(yōu)解。最后重復IAFSA的迭代過程,直到滿足終止條件。
2.2.1 采用自適應視野
在基本AFSA中,所有人工魚的視野visual都是固定值。而人工魚視野是尋優(yōu)的重要參數(shù)。對于人工魚視野的改進,其主要目的是在全局探索較優(yōu)解時,利用較大的視野充分開拓搜索空間,在局部搜索時,應縮短視野,提高尋優(yōu)精度[18]?;诖?,本文結合全局最優(yōu)值,建立了考慮迭代與收斂速度的人工魚視野自適應變化。
(14)
2.2.2 帶吸引性的覓食行為
通常魚群會趨向于水塘中食物越多的位置,食物越多,該位置對于魚群個體的吸引性就越強,故提出帶吸引性的覓食行為,在原覓食行為的基礎上加入全局最優(yōu)信息。即在人工魚隨機移動狀態(tài)Xj(Yj Xi|next=comb(Xj,Xbest)。 (15) 具體實現(xiàn)方式:比較Xj和Xbest解序列,保留兩序列中都出現(xiàn)的連續(xù)n個序列放入Xi|next,其余部分按Xi排列填充并去除重復節(jié)點。 2.2.3 引入變鄰域搜索策略 在算法的不斷迭代下,人工魚群中的人工魚個體會逐漸游向相同或近似的位置,即表現(xiàn)為人工魚個體的編碼會趨向相同的情況。所以在每次的迭代中,魚群中并不一定能產(chǎn)生更優(yōu)的狀態(tài),將沒有產(chǎn)生更優(yōu)狀態(tài)的迭代稱為無效迭代[19]。為了改善人工魚群算法陷入多次無效迭代,本文基于VNS[20]的思想,對人工魚進行擾動,用多種鄰域結構,系統(tǒng)改變其鄰域,拓展搜索范圍,增強算法跳出局部最優(yōu)的能力。 根據(jù)TTMSWS的編碼特點,本文設置了3種鄰域結構: (1)Swap鄰域 在去除標志位的人工魚解序列中隨機選擇兩個不同位置x和y,為保證人工魚的合法性,此時x和y必須都為奇數(shù)或偶數(shù),即對應的任務類型需一致,都為出庫任務或入庫任務,互換其對應的任務。 (2)Insert鄰域 將一組出入庫作業(yè)視作一個復合單元,即在編碼中將其作為單元數(shù)組(cell array),則原人工魚的解序列可視作包含cell數(shù)組的數(shù)組形式,在該數(shù)組中隨機選擇兩個不同的位置x和y,把位置x對應的cell數(shù)組插入位置y中。 (3)2-opt鄰域 同(2)中對人工魚解序列的操作,形成新的數(shù)組形式,在該數(shù)組中隨機選擇兩個不同的位置x和y,將x到y(tǒng)之間的路徑翻轉其編號后添加到新路徑中,其余路徑不變。 2.3.1 編碼 基于TTMSWS調(diào)度模型的特點,采用出入庫混合整數(shù)編碼方式,編碼序號代表任務的編號。若存在X個出庫任務和Y個入庫任務,則當X=Y時,直接可進行出入庫復合作業(yè);而當X≠Y時,則利用(0,0)(I/O節(jié)點)將出入庫任務補充完整后再進行出入庫復合作業(yè)。假設出入庫復合作業(yè)任務為N對,即存在N個出庫任務和N個入庫任務,將N個出庫任務隨機編碼為1~N,N個入庫任務則隨機編碼為N+1~2N,每條人工魚的編碼第奇數(shù)個元素為出庫任務,第偶數(shù)個元素為入庫貨位。例如X=(x1,x2,…,x2k-1,x2k,…,x2n-1,x2n),其中x2k-1為出庫任務,x2k為入庫任務,即調(diào)度時按照順序依次進行x1,x2,…,x2k-1,x2k,…,x2n-1,x2n對應的出庫任務和入庫任務。在解中的偶數(shù)位置插入標志位以區(qū)分不同穿梭車的任務執(zhí)行序列。 圖5為復合作業(yè)人工魚編碼方式,采用3個穿梭車執(zhí)行10組出入庫任務,標志位-1用以將各穿梭車的執(zhí)行任務分開,穿梭車1的執(zhí)行任務序列為2→12→10→20→8→14,穿梭車2的執(zhí)行任務序列為1→13→5→18→7→17→6→11,穿梭車3的執(zhí)行任務序列為3→16→4→19→9→15。 2.3.2 適應度函數(shù) 本文目標是完成所有任務的作業(yè)時間最短,即求解極小化問題,則適應度函數(shù)為: fitness=T=Cmax。 (16) 式中Cmax為人工魚個體代表的所有任務完成的最大時間。 2.3.3 TTMSWS調(diào)度模型的IAFSA算法步驟 具體算法步驟如下: 步驟1初始化種群和參數(shù)。 步驟2開始迭代。先執(zhí)行追尾行為,若追尾失敗,則執(zhí)行聚群行為;若聚群失敗,則執(zhí)行覓食行為。 步驟3計算人工魚的適應度值,并在公告板記錄最優(yōu)值。 步驟4視野參數(shù)更新。根據(jù)公布板更新情況,進行人工魚視野的自適應更新。 步驟5變鄰域搜索算子。若滿足條件,則執(zhí)行變鄰域搜索,并更新公布板;否則轉步驟6。 步驟6判斷是否達到最大迭代次數(shù),若達到則輸出公告板最優(yōu)解,否則轉步驟2。 其核心偽代碼如下: Begin 1.AF_Initialization:%算法初始化 2.人工魚數(shù)量、人工魚初始視野、擁擠度因子、最大試探次數(shù)等相關參數(shù)初始化 3.令當前迭代次數(shù)為gen=1,Ybest=inf;%Ybest為公告板最優(yōu)值 4.初始化人工魚群個體X; 5.%進入人工魚群迭代過程: 6.while gen≤Max_gen%當達到預設的最大迭代次數(shù),則停止循環(huán) 7. for i =1:n 8. [Xi,flag1]=AF_follow(X,n,visual,δ); %嘗試追尾行為,以flag1標記追尾行為結果,若為1則表示追尾成功,否則表示追尾失敗 9. if flag1 == 0 %追尾失敗 10. [Xi,flag2]=AF_swarm(X,n,visual,δ); %嘗試聚群行為,以flag2標記追尾行為結果,若為1則表示追尾成功,否則表示追尾失敗 11. if flag2 == 0 %聚群失敗 12. Xi=AF_prey(X,n,visual,δ); %進行覓食行為 13. end 14. end 15. Xnew_best=Xi; %魚群經(jīng)過追尾、聚群、覓食后得到的最優(yōu)解 16. bulletin_update; %將得到的最優(yōu)解與公告板進行比較 17. visual_update; %根據(jù)公告板更新情況對人工魚視野進行更新 18. if 公告板未更新 19. beststep=beststep+1; %beststep記錄連續(xù)失效的迭代次數(shù) 20. else 21. beststep=1; %連續(xù)失效迭代次數(shù)重置為1 22. end 23. if beststep=Invalid_gen%當連續(xù)失效迭代次數(shù)達到預設的最大連續(xù)失效次數(shù)時,執(zhí)行鄰域搜索 24. 保留公布板的最優(yōu)解,將其作為當前解Xcur; 25. 定義鄰域結構集合N={Nk,k=1,2,3}; 26. for i = 1:L %L表示鄰域搜索次數(shù) 27. 在Xcur的鄰域集合N中隨機選擇一個進行擾動并生成解x′,令Xcur=x′; 28. 尋找Xcur的局部最優(yōu)解x″,令Xcur=x″;若Xcur 29. end 30. end 31. end 32.end 33.可視化結果 End 根據(jù)實際項目中的設備性能參數(shù)以及跨層穿梭車倉儲系統(tǒng)的存儲規(guī)格,本文研究設置了跨層穿梭車倉儲系統(tǒng)的模擬場景,貨架層數(shù)為15層,深度為60個儲位,穿梭車數(shù)量為3,其余具體跨層穿梭車倉儲系統(tǒng)的參數(shù)設置如表1所示。 表1 跨層穿梭車倉儲系統(tǒng)參數(shù)表 為驗證IAFSA求解該問題的有效性,隨機生成20個出入庫任務對,30個出入庫任務對,50個出入庫任務對跨層穿梭車的出入庫復合作業(yè)進行分析。其中20個出入庫任務對列表如表2所示。 表2 出入庫任務表 續(xù)表2 復合作業(yè)時間計算:設出庫貨物i和入庫貨物j坐標分別為(xi,yi)和(xj,yj),則穿梭車初始位置即上一入庫作業(yè)結束位置為(xj-1,yj-1),復合作業(yè)時間如下所示: Tij= (17) 式中:t1為穿梭車從初始位置運行至提升機站臺的時間,t2為穿梭車前往取出庫貨物過程中等待提升機的時間,t3為穿梭車從當前所在層搭載提升機運行至出庫貨物所在層的時間,t4為穿梭車從提升機站臺運行至出庫貨物i所在位置的時間,t5為穿梭車前往取入庫貨物過程中等待提升機的時間,t6為穿梭搭載提升機從出庫貨物所在層到達I/O站臺并返回入庫貨物所在層的時間,t7為穿梭車從提升機站臺運行至入庫貨物所在位置的時間,t8為提升機裝(卸)穿梭車的時間,t9為穿梭車裝(卸)貨物的時間,t10為穿梭車從當前位置運行至出庫貨物所在位置的時間。其中t2和t5為穿梭車等待提升機的時間,與設定的作業(yè)任務序列有關;t1、t3、t4、t6、t7和t10可根據(jù)設備運動距離及其速度、加速度計算;t8和t9為定值。 根據(jù)程序隨機得到各穿梭車一組出入庫復合作業(yè)任務序列為:穿梭車1的作業(yè)任務序列為:1→29→2→28→11→22→15→30→6→40→20→24→19→23;穿梭車2的作業(yè)任務序列為:14→32→18→35→13→38→16→31→10→27→9→36;穿梭車3的作業(yè)任務序列為:8→33→4→34→5→21→17→39→7→37→12→25→3→26。其作業(yè)時間總和為482.3 s。 利用改進人工魚群算法進行優(yōu)化。根據(jù)對魚群算法參數(shù)的分析[21],選擇人工魚數(shù)量n=10,人工魚初始視野visual0=10,最小視野visualmin=1,擁擠度因子δ=8,最大試探次數(shù)Try_number=20,最大無效迭代次數(shù)Invalid_gen=5,人工魚群最大迭代次數(shù)Max_gen=200。優(yōu)化后所得的一組出入庫復合作業(yè)任務序列為:穿梭車1:12→29→20→26→18→33→4→30→11→35→13→21→7→32;穿梭車2:17→22→19→24→1→38→16→27→5→36→8→31→2→28;穿梭車3:6→34→15→23→14→40→10→37→9→39→3→25。其作業(yè)時間總和為349.1 s。 為驗證算法求解該問題的有效性,分別用經(jīng)典啟發(fā)式算法——遺傳算法、基本人工魚群算法和改進人工魚群算法對其出入庫復合作業(yè)調(diào)度進行對比,其中遺傳算法參數(shù)為:種群規(guī)模size=500,交叉概率pc=0.8,交叉算子選用部分匹配交叉,變異概率pm=0.1,變異算子選用交換變異;基本人工魚群算法參數(shù)為:人工魚數(shù)量n=10,人工魚視野visual=10,擁擠度因子δ=8,最大試探次數(shù)Try_number=20。為比較算法運行時間,將算法終止條件統(tǒng)一設置為連續(xù)迭代100次最優(yōu)值不變;采用MATLAB編程,測試環(huán)境為WIN 10系統(tǒng)、CPU為i5-7200U、內(nèi)存為4 G,并進行30次運算,結果如表3所示。 表3 3種算法的實驗結果 如圖6所示為算例的3種算法各獨立運行30次的平均收斂過程曲線。 由表3和圖6可知,遺傳算法收斂較快,但很快陷入局部最優(yōu),求解精度差;基本人工魚群算法在前期具備一定的搜索能力,但其搜索能力有限,容易陷入局部最優(yōu),無法使魚群集中在最優(yōu)值附近;本文提出的改進人工魚群算法,采用了自適應視野與改進覓食行為,加快收斂速度且增強了局部搜索能力,且變鄰域算子的加入,使得魚群能跳出局部最優(yōu),較之其他兩種算法其求解精度優(yōu)勢較大,且對比基本人工魚群算法,其平均運行時間相差不大,說明了其能在增強求解精度的同時也保證了運算速度。 進一步驗證算法的有效性與穩(wěn)定性,利用3種算法對不同任務量求解。表4為30任務對和50任務對的作業(yè)規(guī)模下運行30次的實驗結果。 表4 三種算法在不同規(guī)模下的實驗結果 由上述求解結果可以看出,遺傳算法隨著任務規(guī)模的增大,其算法平均收斂迭代次數(shù)增加十分明顯,且其優(yōu)化效率也有一定的損失;而本文提出的改進人工魚群算法,在任務規(guī)模增大時,仍保持良好的優(yōu)化效率,且解的標準偏差在隨任務規(guī)模增大時,其效果更加明顯,故能說明本文提出的改進人工魚群算法求解該問題的有效性和穩(wěn)定性。 針對TTMSWS出入庫復合作業(yè)問題,分析其出入庫復合作業(yè)流程,考慮提升機與穿梭車的加減速,建立以出入庫復合作業(yè)時間最短為目標的調(diào)度模型。針對該問題,本文提出利用改進人工魚群算法進行求解。仿真實驗結果表明,所建立的調(diào)度時間數(shù)學模型及改進的人工魚群算法是可行有效的,在一定程度上能夠減少作業(yè)時間,提高倉儲作業(yè)效率。未來將結合跨層穿梭車倉儲系統(tǒng)的資源配置和企業(yè)投資等方面進行深入研究,在最小化資源配置和投資成本的條件下,滿足企業(yè)倉儲與運行效率。2.3 求解TTMSWS路徑的改進人工魚群算法設計
3 仿真實驗研究
4 結束語