汪其
摘要:研究物流配送問題,可以提高物流服務(wù)質(zhì)量。在一般的傳統(tǒng)物流配送中,路徑選擇較多采用人工搜索的方法,效率低、成本較高。人工魚群算法是一種智能啟發(fā)式算法,具有搜索速度快,精度高等特點(diǎn),被廣泛應(yīng)用于解決路徑搜索問題。文章在傳統(tǒng)的人工魚群算法基礎(chǔ)上,通過采用魚群視野自適應(yīng)、移動(dòng)步長(zhǎng)自適應(yīng)、參數(shù)設(shè)置等改進(jìn)策略,提出了一種改進(jìn)人工魚群算法的物流配送方法,該方法能加快算法收斂速度,提高算法的精度和效率。仿真結(jié)果表明,改進(jìn)后的人工魚群算法優(yōu)于傳統(tǒng)配送方法和蟻群算法,有效地解決了物流配送問題,提高了物流配送效率。
關(guān)鍵詞:魚群算法;改進(jìn)的人工魚群算法;自適應(yīng);物流配送
中圖分類號(hào):TP391? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)33-0013-04
1 概述
物流配送是指物流企業(yè)依據(jù)客戶要求,對(duì)貨物進(jìn)行備貨、儲(chǔ)存、分揀及配貨、配裝、配送運(yùn)輸、送達(dá)服務(wù)、配送加工等一系列的物流活動(dòng)過程。
目前,在平時(shí)物流配送過程中,由于用戶多、路線復(fù)雜,有時(shí)可能會(huì)因?yàn)槔@路、走重復(fù)的路、交通堵塞或者上一環(huán)節(jié)的延誤而耽誤時(shí)效性,還會(huì)出現(xiàn)比如:身體出現(xiàn)情況,紀(jì)律性比較低等物流運(yùn)輸過程中出現(xiàn)遲到的人為因素等,但這也是可以避免的,只要提前做好物流運(yùn)輸路線的確定工作,就可以避免在后續(xù)物流運(yùn)輸過程中出現(xiàn)繞路及重復(fù)搬運(yùn)的情況,這也是確保物流運(yùn)輸效率的一種方式。
因此,如何選擇物流配送運(yùn)輸?shù)淖罴崖窂?,使配裝和配送路徑有效搭配是物流配送的關(guān)鍵環(huán)節(jié)。合理確定配送路徑就是用最少的動(dòng)力、走最短的里程、花最少的費(fèi)用,以最快的速度把貨物送達(dá)客戶。因此,如何合理優(yōu)化配送路徑,制定高效的運(yùn)輸路線,直接影響著物流運(yùn)輸?shù)乃俣群托б妗?/p>
配送路徑問題是NP-hard問題。目前,智能算法解決組合優(yōu)化問題得到了廣泛的應(yīng)用。國(guó)內(nèi)外很多專家學(xué)者運(yùn)用遺傳算法[1-7]、蟻群算法[8-17]、人工魚群算法[9-33]等智能啟發(fā)式算法求解物流配送問題,取得了不錯(cuò)的研究效果。
人工魚群算法 (AFSA) [25-28]最早由李曉磊博士于2003年提出,該算法通過模擬自然界中魚群的覓食行為,提出一種基于動(dòng)物自治體的優(yōu)化方法,很好地解決非線性函數(shù)優(yōu)化等問題。人工魚群算法主要是通過模擬魚的覓食、聚群以及追尾行為,并通過魚的個(gè)體行為實(shí)現(xiàn)局部尋優(yōu),從而最終得到全局最優(yōu)解。具有初始值要求不高、算法實(shí)時(shí)性高等特點(diǎn),通常應(yīng)用到一些精度要求不高、快速找到可行解的優(yōu)化問題。但是,人工魚群算法也存在后期收斂速度慢等缺點(diǎn),因此,本文基于傳統(tǒng)魚群算法原理,通過采用自適應(yīng)魚群移動(dòng)步長(zhǎng)和感知距離等改進(jìn)方法,并將其運(yùn)用到物流配送路徑中。仿真實(shí)驗(yàn)表明,采用的改進(jìn)人工魚群算法與傳統(tǒng)算法相比,具有精度更高、更節(jié)省運(yùn)輸成本等特點(diǎn)。
2 物流配送問題
物流配送問題是系統(tǒng)中的配送中心向多個(gè)客戶運(yùn)送貨物,要求合理安排配送路徑,使整個(gè)配送運(yùn)行費(fèi)用最小, 條件約定如下:
(1)整個(gè)系統(tǒng)中有且僅有一個(gè)配送中心,編號(hào)為:0;
(2)每個(gè)客戶均勻分布于配送平面區(qū)域中,位置坐標(biāo)和需求量一定,且是可到達(dá)的;
(3)每個(gè)客戶只能由一輛汽車送貨,且只能送貨一次;
(4)每條配送路徑上各客戶的需求總和不超過配送車輛的最大載重量,且汽車的載量一定;
(5)運(yùn)費(fèi)以路徑費(fèi)用總和計(jì)算。
當(dāng)然,本文為了簡(jiǎn)化研究便于數(shù)據(jù)比較,一些因素暫時(shí)未考慮,諸如:每個(gè)客戶所需貨物在承諾時(shí)間內(nèi)送達(dá),不同汽車的不同載量等。
3 魚群算法
魚群算法的基本思想是依據(jù)魚群中魚生存的數(shù)目最多的地方是營(yíng)養(yǎng)最豐富地方的特點(diǎn),通過模擬魚群尋找食物的過程,尋找算法最優(yōu)解。
首先,假設(shè)人工魚狀態(tài)為[Xi=x1,x2,???,xn],其中,[Yi=f(xi)]為當(dāng)前人工魚[Xi]對(duì)應(yīng)的食物濃度;[dij=Xi-Xj]表示人工魚[i]和[j]距離;人工魚的感知距離用[Visual]表示;[Step]為人工魚移動(dòng)步長(zhǎng);[δ]為擁擠度因子,[try_number]為嘗試次數(shù),[Rand()]為[(0,1)]之間的隨機(jī)數(shù)。
3.1? 覓食行為
將當(dāng)前人工魚[Xi]的食物濃度[Yi]與其感知內(nèi)的任意人工魚[Xj]的食物濃度[Yj]進(jìn)行比較,當(dāng)[Yi<Yj],則向[Xj]移動(dòng)一步;反之,重新選擇[Xj];直至[try_number]次后,仍不滿足[Yi<Yj],則隨機(jī)移動(dòng)一步。狀態(tài)轉(zhuǎn)移公式如式(1)、(2)。
[Xj=Xi+Rand()?Visual]? ? ? ? ? ? ? ? ? ? ? (1)
[Xi/next=Xi+Rand()?Step?Xj-XiXj-Xi,Yi<YjXi+Rand()?Step,else]? ? ?(2)
3.2 聚群行為
當(dāng)[dij<Visual]時(shí),目前人工魚[Xi]所在鄰域內(nèi)人工魚的總數(shù)量為[nf],中心位置狀態(tài)用[Xc]表示,當(dāng)[Ycnf>δYi],說明當(dāng)前中心位置食物濃度較高,且無明顯擁擠,人工魚就向其移動(dòng)一步,即向中心逐步聚集,形成聚群行為;反之,向其他區(qū)域進(jìn)行搜索,形成覓食行為。
[Xi/next=Xi+Rand()?Step?Xc-XiXc-Xi,Ycnf>δYiAF_prey(),else]? ?(3)
3.3 追尾行為
當(dāng)[dij<Visual]時(shí),當(dāng)前人工魚[Xi]鄰域內(nèi)的最大伙伴魚[Xj]對(duì)應(yīng)的食物濃度為[Yj],如果[Yjnf>δYi],說明伙伴魚[Xj]位置食物濃度較高,擁擠度較低,則人工魚向伙伴魚[Xj]的方向移動(dòng)一步,這就是追尾行為;反之,向其他區(qū)域進(jìn)行搜索,形成覓食行為。
[Xi/next=Xi+Rand()?Step?Xmax-XiXmax-Xi,Yjnf>δYiAF_prey(),else]? ?(4)
4? 改進(jìn)人工魚群算法
針對(duì)基本魚群算法存在精度不高、后期收斂慢等不足,本文提出采用自適應(yīng)魚群視野和移動(dòng)步長(zhǎng)等新方法,更好地解決了物流配送路徑問題,節(jié)省了運(yùn)輸成本。
4.1 感知距離自適應(yīng)變化
在基本魚群算法中,人工魚的感知距離[Visual]通常是設(shè)定的一個(gè)固定值,其值的大小直接決定了算法的好壞,若[Visual]值過大,則人工魚收斂速度快,全局搜索能力強(qiáng),但是搜索解不夠精確;若[Visual]值過小,局部搜索能力強(qiáng),算法的速度慢。因此,筆者采用公式(5)進(jìn)行視野自適應(yīng)變化。
[Visual=Visual0?L-SL]? ? ? ? ? ? ? ? ? ?(5)
其中:[L]為算法總迭代次數(shù),[Visual0]人工魚感知距離初始值,[S]為算法目前已迭代次數(shù)。由公式(5)可以看出,人工魚的感知距離會(huì)隨著算法迭代次數(shù)的增加而逐漸變小。在算法的初期,魚群的感知距離比較大,可以保證算法的全局搜索性,隨著算法運(yùn)行,此時(shí)的搜索也更靠近最優(yōu)解,感知距離逐漸變小,更能保證算法求解的精度。
4.2 移動(dòng)步長(zhǎng)自適應(yīng)變化
基本的魚群算法中,移動(dòng)步長(zhǎng)是隨機(jī)設(shè)定的,步長(zhǎng)越大,算法后期容易出現(xiàn)震蕩現(xiàn)象,導(dǎo)致算法結(jié)果精度不高;小步長(zhǎng)搜索提高了算法精度,但速度較慢,易陷入局部最優(yōu)解。因此,本文提出一種自適應(yīng)移動(dòng)步長(zhǎng)方法,即在算法初期采用固定大步長(zhǎng)進(jìn)行算法求解,保證算法求解速度,減少搜索時(shí)間,在算法的中后期,則采用公式(6)進(jìn)行自適應(yīng)移動(dòng)步長(zhǎng)計(jì)算。
[Step=Rand()?dij]? ? ? ? ? ? ? ? ? ? ? (6)
該計(jì)算公式主要依據(jù)當(dāng)前魚群中人工魚狀態(tài)[Xi]對(duì)應(yīng)的濃度[Yi],以及其感知范圍內(nèi)一個(gè)狀態(tài)[Xj]對(duì)應(yīng)的濃度[Yj],當(dāng)[Yi<Yj]時(shí),則進(jìn)行算法計(jì)算。該自適應(yīng)方法將人工魚個(gè)體之間的距離因子[dij]、隨機(jī)函數(shù)[Rand()]作為計(jì)算依據(jù),能在算法中后期提高搜索精度、增強(qiáng)局部搜索能力、求解到全局最優(yōu)解。
4.3魚群規(guī)模[N]、嘗試次數(shù)[try_number]等參數(shù)的討論分析
人工魚群算法也是一種群體智能算法,經(jīng)研究表明,同其他群智能算法一樣,人工魚數(shù)目越多,全局搜索能力越強(qiáng),但是算法迭代的計(jì)算工作量也越大。因此,在實(shí)際應(yīng)用中,在保證收斂精度和速度的前提下,人工魚數(shù)目不宜過大,應(yīng)選擇適中。
嘗試次數(shù)[try_number]是在魚群覓食行為中的一個(gè)特定參數(shù),表示人工魚需要移動(dòng)到下一個(gè)合適狀態(tài)時(shí)需要嘗試的次數(shù)。當(dāng)小于嘗試次數(shù)[try_number]時(shí),人工魚進(jìn)行覓食行為,當(dāng)大于嘗試次數(shù)[try_number]時(shí),表示在范圍內(nèi)沒有符合條件的狀態(tài),則結(jié)束覓食行為,執(zhí)行隨機(jī)行為。實(shí)驗(yàn)研究表明:嘗試次數(shù)[try_number]的次數(shù)較少時(shí),人工魚能較容易跳出局部值,從而提高搜索效率。
5? 實(shí)驗(yàn)仿真及分析
5.1 實(shí)驗(yàn)環(huán)境及計(jì)算過程
在本仿真實(shí)驗(yàn)中,筆者以參考文獻(xiàn)[31]的數(shù)據(jù)為例,同時(shí)在實(shí)驗(yàn)中對(duì)比了文獻(xiàn)[31]中的兩種算法,結(jié)果表明本文改進(jìn)的人工魚群算法的優(yōu)越性。
結(jié)合參考文獻(xiàn)[31]的數(shù)據(jù),本實(shí)驗(yàn)的數(shù)據(jù)如下:某公司有一個(gè)物流中心,有1臺(tái)載重12噸的貨車,該車的油耗為20L/百公里,車速為60km/h,平面中有7個(gè)客戶點(diǎn)(編號(hào)為1~7),1個(gè)物流中心(編號(hào)為0),物流中心和客戶點(diǎn)的坐標(biāo)及需求量如表1所示。
(1)基本物流配送
依據(jù)參考文獻(xiàn)[31],基本物流配送如圖1:
從分析結(jié)果可以看到,路線1:0→5→7→6→0,總長(zhǎng)度為108.121km,路線2:0→4→2→3→1→0,總長(zhǎng)度為110.547km,合計(jì)218.668km。
車速為60km/h,總時(shí)間為:
[t1=218.668km/(60km/h)≈3.644h]
貨車的油耗為20L/百公里,總耗油量為:
[Q1=20L/百公里×(218.668公里/100)≈43.734L]
(2)蟻群算法的物流配送路徑
在實(shí)驗(yàn)中,蟻群算法的各個(gè)參數(shù)參見參考文獻(xiàn)[31],蟻群算法的物流配送如圖2:
路線1:0→4→2→3→0,總長(zhǎng)度為64.491km,路線2:0→1→5→7→6→0,總長(zhǎng)度為144.177km,合計(jì)208.668km。
車速為60km/h,總時(shí)間為:
[t2=208.668km/(60km/h)≈3.478h]
總耗油量為:
[Q2=20L/百公里×(208.668公里/100)≈41.734L]
(3)本文改進(jìn)的人工魚群算法
在實(shí)驗(yàn)中,本文改進(jìn)的人工魚群算法的各個(gè)參數(shù)設(shè)置如下:其中人工魚群中的參數(shù)[Trynumber=50],[Visual0=2.5],[δ=2],[L=30],魚群種群數(shù)量[N=30],改進(jìn)的人工魚群算法的物流配送路徑如圖3所示。
路線:0→4→2→3→1→5→7→6→0,總長(zhǎng)度為187.65km。
車速為60km/h,總時(shí)間為:
[t3=187.65km/(60km/h)≈3.128h]
總耗油量為:
[Q3=20L/百公里×(187.65公里/100)≈37.53L]
5.2 結(jié)果分析
從仿真計(jì)算結(jié)果可以看到,本文改進(jìn)人工魚群算法規(guī)劃的物流配送路徑總長(zhǎng)度是三種方案中最短的,所用的配送時(shí)間也是最少的,從計(jì)算的耗油量來看,改進(jìn)人工魚群算法方案比原始方案縮短了14%左右,比蟻群算法方案縮短了10%左右,這充分說明了本文改進(jìn)算法的有效性。
另外,本文實(shí)驗(yàn)中選取的坐標(biāo)數(shù)據(jù)都是在100以下的10數(shù)量級(jí),在實(shí)際的物流配送中,客戶的數(shù)量級(jí)往往在幾百甚至幾千,從節(jié)油的角度分析,本文的改進(jìn)人工魚群算法方案能節(jié)省更多的成本,因此,本文方法更適用于實(shí)際的工程應(yīng)用中,是值得推廣的。
6 結(jié)束語
本文針對(duì)物流配送中路線選擇等方面的不足,在傳統(tǒng)人工魚群算法的基礎(chǔ)上,提出了自適應(yīng)魚群感知距離和移動(dòng)步長(zhǎng)等新方法,并改進(jìn)魚群的參數(shù)設(shè)置,最后通過仿真實(shí)驗(yàn)表明。本文算法能加快全局收斂速度,提高算法精度,在解決物流配送路徑等優(yōu)化問題中具有較好的效果。
參考文獻(xiàn):
[1] 馬永杰,云文霞.遺傳算法研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,2012,29(4):1201-1206,1210.
[2] 邊霞,米良.遺傳算法理論及其應(yīng)用研究進(jìn)展[J].計(jì)算機(jī)應(yīng)用研究,2010,27(7):2425-2429,2434.
[3] 葛繼科,邱玉輝,吳春明,等.遺傳算法研究綜述[J].計(jì)算機(jī)應(yīng)用研究,2008,25(10):2911-2916.
[4] 張恒.基于改進(jìn)遺傳算法的鐵路物流中心功能區(qū)布局優(yōu)化研究[J].鐵道貨運(yùn),2022,40(1):46-52.
[5] 李英杰.基于遺傳算法的低碳物流運(yùn)輸網(wǎng)絡(luò)優(yōu)化分析[J].物流工程與管理,2021,43(10):60-62.
[6] 劉善球,樊兵鵬.基于遺傳算法的快遞物流配送中心選址[J].湖南工業(yè)大學(xué)學(xué)報(bào),2021,35(5):70-76.
[7] 王龍,姚文明.基于Spark的并行遺傳算法在物流配送問題中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2018(1):19-22.
[8] 段海濱,王道波,朱家強(qiáng),等.蟻群算法理論及應(yīng)用研究的進(jìn)展[J].控制與決策,2004,19(12):1321-1326,1340.
[9] 詹士昌,徐婕,吳俊.蟻群算法中有關(guān)算法參數(shù)的最優(yōu)選擇[J].科技通報(bào),2003,19(5):381-386.
[10] 吳斌,史忠植.一種基于蟻群算法的TSP問題分段求解算法[J].計(jì)算機(jī)學(xué)報(bào),2001,24(12):1328-1333.
[11] 張強(qiáng).基于改進(jìn)蟻群算法的物流運(yùn)輸最優(yōu)路徑優(yōu)化模型構(gòu)建[J].自動(dòng)化技術(shù)與應(yīng)用,2021(11):122-126.
[12] 何亞輝.基于改進(jìn)蟻群算法的物流配送路徑規(guī)劃算法[J].計(jì)算機(jī)與數(shù)字工程,2021,49(5):920-924.
[13] 葉杭璐,何利力.基于改進(jìn)蟻群算法的智慧物流調(diào)度規(guī)劃[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2021,30(1):207-213.
[14] 羅梓瑄,劉學(xué)文.基于蟻群算法的物流配送路徑優(yōu)化研究[J].重慶工商大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,37(4):89-94.
[15] 馬貴平,潘峰.基于改進(jìn)蟻群算法的物流運(yùn)輸路徑研究[J].計(jì)算機(jī)工程與科學(xué),2020,42(3):523-528.
[16] 高月仁,吳濤,高峽.基于蟻群算法優(yōu)化的路由頻率動(dòng)態(tài)擇徑的研究[J].計(jì)算機(jī)與現(xiàn)代化,2020(12):32-37,42.
[17] 葉家琪,符強(qiáng),賀亦甲,等.基于聚類集成的蟻群算法求解大規(guī)模TSP問題[J].計(jì)算機(jī)與現(xiàn)代化,2020(2):31-35.
[18] 白響恩,李豹,徐笑鋒.基于改進(jìn)人工魚群算法的船舶進(jìn)港排序[J].上海海事大學(xué)學(xué)報(bào),2021,42(3):85-90.
[19] 吳劍杰.改進(jìn)的人工魚群算法求解TSP問題的研究[J].科技通報(bào),2021,37(8):66-70.
[20] 何新佳,馬中亮,代淑蘭.基于人工魚群算法的加農(nóng)炮內(nèi)彈道參數(shù)優(yōu)化研究[J].火炮發(fā)射與控制學(xué)報(bào),2022,43(1):36-41.
[21] 張朝煒,柳云祥,朱永利.基于改進(jìn)人工魚群算法的大規(guī)模多目標(biāo)機(jī)組組合優(yōu)化[J].電力系統(tǒng)保護(hù)與控制,2021,49(8):100-108.
[22] 李素,袁志高,王聰,等.群智能算法優(yōu)化支持向量機(jī)參數(shù)綜述[J].智能系統(tǒng)學(xué)報(bào),2018,13(1):70-84.
[23] 吳小文,李擎.果蠅算法和5種群智能算法的尋優(yōu)性能研究[J].火力與指揮控制,2013,38(4):17-20,25.
[24] 王聯(lián)國(guó),洪毅,趙付青,等.一種改進(jìn)的人工魚群算法[J].計(jì)算機(jī)工程,2008,34(19):192-194.
[25] 李曉磊,路飛,田國(guó)會(huì),等.組合優(yōu)化問題的人工魚群算法應(yīng)用[J].山東大學(xué)學(xué)報(bào)(工學(xué)版),2004,34(5):64-67.
[26] 李曉磊,錢積新.基于分解協(xié)調(diào)的人工魚群優(yōu)化算法研究[J].電路與系統(tǒng)學(xué)報(bào),2003,8(1):1-6.
[27] 李曉磊.一種新型的智能優(yōu)化方法-人工魚群算法[D].杭州:浙江大學(xué),2003.
[28] 李曉磊,邵之江,錢積新.一種基于動(dòng)物自治體的尋優(yōu)模式:魚群算法[J].系統(tǒng)工程理論與實(shí)踐,2002,22(11):32-38.
[29] 陳營(yíng),馬繼紅,陳浩如.基于改進(jìn)魚群算法在管道最優(yōu)搶修路徑的研究[J].管道技術(shù)與設(shè)備,2014(1):4-6.
[30] 王闖.人工魚群算法的分析及改進(jìn)[D].大連:大連海事大學(xué),2008.
[31] 魏星,李志遠(yuǎn),李燕.改進(jìn)型蟻群算法在煤炭運(yùn)輸中的應(yīng)用研究[J].煤礦機(jī)械,2013,34(7):225-228.
[32] 田鈞.基于改進(jìn)蟻群算法的物流配送應(yīng)用研究[J].制造業(yè)自動(dòng)化,2013,35(16):88-90,109.
[33] 朱旭輝,倪志偉,程美英.變步長(zhǎng)自適應(yīng)的改進(jìn)人工魚群算法[J].計(jì)算機(jī)科學(xué),2015,42(2):210-216,246.
【通聯(lián)編輯:唐一東】