羅 東
(陜西服裝工程學(xué)院,陜西咸陽 712046)
在新時(shí)代背景下,物流業(yè)越來越凸顯其在社會(huì)經(jīng)濟(jì)發(fā)展過程中占有的不可或缺的戰(zhàn)略地位[1-3]. 在整個(gè)物流網(wǎng)絡(luò)運(yùn)行過程中,物流中心作為供貨點(diǎn)和需求點(diǎn)之間的溝通橋梁,在物流系統(tǒng)中有著極其重要的作用,因此選取合適的物流中心將對物流經(jīng)濟(jì)效益的提高產(chǎn)生重要影響. 我國物流行業(yè)存在起步較晚,物流系統(tǒng)存在結(jié)構(gòu)不完善和企業(yè)經(jīng)驗(yàn)少等諸多問題,特別是物流中心選址問題存在較多的弊端,為此,眾多學(xué)者對其進(jìn)行了相關(guān)探索和研究.
劉育玲[4]提出,根據(jù)各替代配電站的建設(shè)和運(yùn)營成本以及產(chǎn)品損壞和腐爛成本的計(jì)算結(jié)果,構(gòu)建了一種雙層規(guī)劃選址模型,為物流中心選址提供了一種新的方法;王剛[5]提出,煤炭物流中心選址看作一個(gè)復(fù)雜的系統(tǒng)性問題,存在多種目標(biāo)和要求,文章研究了層次分析法、灰色模型和模糊評價(jià)法的成功之處,用多屬性指標(biāo)體系對目標(biāo)進(jìn)行綜合性的評價(jià);Yang等[6]針對生鮮農(nóng)產(chǎn)品物流配送中心選址存在的不確定性,以預(yù)算成本參數(shù)為例,建立了基于主成分得分最大化的穩(wěn)健模型,很大程度上改善了物流選址難的問題,提高了效率;陳姝宇等[7]針對呼和浩特市農(nóng)產(chǎn)品物流配送的實(shí)際情況,根據(jù)交通條件、地理?xiàng)l件、地價(jià)、政策需求等八項(xiàng)影響因素構(gòu)建農(nóng)產(chǎn)品配送中心選址的評價(jià)指標(biāo)體系.
以上方法雖然很大程度上對物流選址提供了一種方法,但這些方法存在一些問題. 首先,通過專家打分法來確定影響物流中心的權(quán)重,人為因素較為嚴(yán)重;其次,利用層次分析法確定物流中心選址問題,雖然可以弱化人為因素,但值得注意的是利用層次分析法的前提是要求影響物流的因素之間必須相互獨(dú)立,但現(xiàn)實(shí)是指標(biāo)之間往往存在相互依賴的關(guān)系;最后,學(xué)者利用模糊綜合評判法時(shí),影響物流中心的因素權(quán)重又無法具體給出. 由于智能算法擁有較好的尋優(yōu)能力和求解精度,在物流中心選址問題研究過程中得到了較多學(xué)者的關(guān)注和青睞.
仇明艷等[8]提出一種基于DEA-GP方法來解決應(yīng)急物流中心選址問題,將傳統(tǒng)選址問題和DEA-GP 方法相結(jié)合,通過調(diào)整不同目標(biāo)的優(yōu)先級(jí)和目標(biāo)值,幫助制定應(yīng)急物流中心的選址決策;趙世安和屈遲文[9]采用基于適應(yīng)度值排序的自適應(yīng)方法改進(jìn)基本布谷鳥算法的慣性權(quán)重,以平衡算法的全局開發(fā)能力和局部探索能力;韓慶蘭和梅運(yùn)先[10]利用BP神經(jīng)網(wǎng)絡(luò)模型對物流配送中心選址地點(diǎn),從地質(zhì)條件、運(yùn)輸、水文等八個(gè)因素入手進(jìn)行合理決策,取得了較好的效果;夏晶和黃凱[11]將BP神經(jīng)網(wǎng)絡(luò)和模糊綜合評價(jià)法相結(jié)合,建立了四級(jí)綜合評估指標(biāo)體系;劉娟和劉祥偉[12]提出一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)模型,基于8個(gè)指標(biāo)建立了相對應(yīng)的模糊評價(jià)矩陣,從定量和定性兩方面進(jìn)行,在10個(gè)方案中選出最優(yōu)物流中心選址,驗(yàn)證了改進(jìn)BP算法是科學(xué)有效的;倪衛(wèi)紅和陳太[13]采用免疫算法時(shí)單點(diǎn)交叉會(huì)產(chǎn)生超級(jí)個(gè)體以及固定概率會(huì)影響搜索能力的情況,分別以均勻交叉和自適應(yīng)化的方法,在原算法上做出改進(jìn),為物流中心選址問題研究提供了一種更好的方法;張丹露[14]提出影響物流配送中心選址的因素存在很多,如何精確選址優(yōu)化問題亟待解決,最后,文章中將免疫規(guī)劃算法引入到物流配送選址優(yōu)化中,證明了所提出的免疫優(yōu)化算法來改善物流選址問題的有效性;湯杼彬[15]提出基于和聲搜索算法的多層級(jí)物流中心選址問題,利用和聲算法來優(yōu)化物流中心選址問題,通過驗(yàn)證得到改進(jìn)后的算法擁有更好的效果;徐小平等[16]提出求解物流配送中心選址問題的蜘蛛猴算法,改善了物流中心選址難的問題,提高了選址的效果;劉善球和樊兵鵬[17]借助遺傳算法優(yōu)化和改進(jìn)快遞物流配送中心選址,提高了算法的性能和節(jié)省了選址時(shí)間;趙江利[18]將改進(jìn)蟻群算法應(yīng)用到低碳物流配送中心優(yōu)化選址系統(tǒng)中,通過仿真結(jié)果表明,基于改進(jìn)蟻群算法的選址系統(tǒng)具有更強(qiáng)的收斂性能,指標(biāo)碳排放更趨近于理論值;裴時(shí)域和李元香[19]提出一種改進(jìn)的模擬退火算法,并和物流配送中心選址相結(jié)合,解決了物流選址困難的問題.
在以上學(xué)者研究的基礎(chǔ)上,文章提出一種基于IBA-BP神經(jīng)網(wǎng)絡(luò)物流選址方法,從而在運(yùn)行Matlab軟件時(shí),訓(xùn)練速度更快、誤差更小,能更迅速準(zhǔn)確地選取最優(yōu)選址方案.
蝙蝠算法是學(xué)者Yang于2010年通過模擬蝙蝠發(fā)出聲吶來尋找食物和躲避障礙物行為提出的一種新型智能算法[20]. 和其他智能算法一樣,BA算法全局搜尋能力強(qiáng)、算法易實(shí)現(xiàn)、可用范圍廣,日益成為學(xué)者們研究的焦點(diǎn).
蝙蝠算法原理:初始化每個(gè)蝙蝠個(gè)體的位置和速度,將每個(gè)蝙蝠位置作為求解最優(yōu)化問題的解,求出每個(gè)蝙蝠個(gè)體所對應(yīng)的適應(yīng)度函數(shù)值,然后隨著迭代次數(shù)的增加,通過調(diào)整脈沖速率和響度,蝙蝠朝著最優(yōu)蝙蝠位置移動(dòng),最終尋找到全局最優(yōu)解.
假設(shè)第i只蝙蝠在時(shí)刻t的位置為,速度是,那么在下一時(shí)刻蝙蝠的位置和速度更新公式為:
其中:Fi、Fmax和Fmin分別代表了第i個(gè)蝙蝠其在當(dāng)前位置的頻率、聲波頻率的最大值和最小值;β為0到1中的一個(gè)隨機(jī)數(shù);x*代表了當(dāng)前最優(yōu)解.
若rand>R,最優(yōu)蝙蝠會(huì)按照公式(4)生成新的局部解:
上述公式描述的是蝙蝠算法局部搜尋過程. 其中:R表示脈沖頻率;xold代表了從當(dāng)前最優(yōu)解中隨機(jī)選的一個(gè);ε為-1到1的一個(gè)隨機(jī)量;At代表了蝙蝠種群響度的平均值.
蝙蝠算法在覓食過程中,隨著蝙蝠和獵物距離的接近,響度A(i)逐漸減小,但r(i)會(huì)隨著接近獵物而提高. 蝙蝠i的響度和發(fā)射速率更新公式如下:
其中:0 <α<1 和λ>0 都是常量. 隨著迭代次數(shù)的增加,蝙蝠與獵物的距離越來越近,蝙蝠發(fā)出的響度會(huì)逐漸降低到0,而脈沖發(fā)射速率會(huì)逐漸升高.
擬蒙特卡羅方法的基本原理是通過確定性的超均勻分布來替換隨機(jī)數(shù)序列. 由于其均勻性,將引用擬蒙特卡羅方法中的Hammersley序列對蝙蝠個(gè)體位置進(jìn)行更為合理地初始化.
Hammersley序列是通過將給定的整數(shù)表示成某個(gè)素?cái)?shù)的形式,下面為Hammersley序列的生成步驟.
1)對任一自然數(shù)n,都可以用設(shè)定好的素?cái)?shù)p來表示:
2)用基數(shù)生成的表達(dá)式的系數(shù){am,…,a2,a1,a0},進(jìn)行反序排列,并在前面加上小數(shù)點(diǎn),求解
3)對于整數(shù)n,設(shè)置對應(yīng)的維度d,可以得到d維空間的均勻序列值:
其中:p是根據(jù)維度確定的素?cái)?shù);p1是第一個(gè)素?cái)?shù);pd-1是所選的最后一個(gè)素?cái)?shù). 通過擬蒙特卡羅方法初始化的蝙蝠種群擁有更為合理的位置,提高了種群的多樣性.
其次,針對原始蝙蝠算法飛行速度恒定不變,導(dǎo)致算法多樣性較差、求解精度低的問題,因此提出一種新型自適應(yīng)速度因子,根據(jù)算法迭代過程,自適應(yīng)調(diào)整飛行速度. 在算法迭代前期,較大的速度可以增大解得搜索空間,在迭代后期,自適應(yīng)減小算法的速度,以提高解的精度. 下面為自適應(yīng)速度調(diào)整因子公式:
其中:t為迭代次數(shù),tmax為最大迭代次數(shù).
改進(jìn)后蝙蝠算法步驟如下:
Step1 初始化蝙蝠算法參數(shù),利用擬蒙特卡羅方法初始化蝙蝠種群位置,隨機(jī)產(chǎn)生響度A和脈沖速率R;
Step2 初始蝙蝠位置,找出全局最優(yōu)個(gè)體并記錄最優(yōu)位置;
Step3 在種群迭代過程中,蝙蝠調(diào)整頻率仍為公式(1)進(jìn)行調(diào)整,速度變化調(diào)整為公式(10):
Step4 利用適應(yīng)度來進(jìn)行評測蝙蝠個(gè)體,更新最優(yōu)值;
Step5 隨機(jī)產(chǎn)生rand,若rand >R,則進(jìn)行局部搜索,生成新解;
Step6 利用公式(5)和公式(6)更新A和R;
Step7 完成一次迭代,判斷結(jié)果是不是達(dá)到最大迭代次數(shù)或者滿足設(shè)定的求解精度,則輸出最優(yōu)位置以及最優(yōu)值,否則轉(zhuǎn)到Step3.
選取10個(gè)測試函數(shù)分別對BA、CS和IBA進(jìn)行仿真實(shí)驗(yàn),參數(shù)設(shè)置為:種群規(guī)模n=40,最大迭代次數(shù)為1000,最大脈沖音強(qiáng)A=0.25,搜索脈沖頻率范圍[-1,1],最大脈沖頻度R=0.5. 操作系統(tǒng)為Windows 10,測試平臺(tái)為Matlab7.0,IBA、CS 和BA 均獨(dú)立運(yùn)行1000 次. 在固定最大迭代次數(shù)前提下,測試BA、CS 與IBA 的收斂速度、尋優(yōu)精度. 測試函數(shù)定義及基本特征見表1,測試函數(shù)最優(yōu)值變化趨勢圖見圖1~圖10,三種算法搜索到的最優(yōu)值、最差值、平均值和算法搜尋時(shí)間見表2.
圖1 Ackley函數(shù)迭代曲線圖Fig.1 Iteration curves of Ackley function
圖2 Bohachevsky函數(shù)迭代曲線圖Fig.2 Iteration curves of Bohachevsky function
圖3 Booth函數(shù)迭代曲線圖Fig.3 Iteration curves of Booth function
圖4 Griewank函數(shù)迭代曲線圖Fig.4 Iteration curves of Griewank function
圖5 Hump函數(shù)迭代曲線圖Fig.5 Iteration curves of Hump function
圖6 Rastrigin函數(shù)迭代曲線圖Fig.6 Iteration curves of Rastrigin function
圖7 Rosenbrock函數(shù)迭代曲線圖Fig.7 Iteration curves of Rosenbrock function
圖8 Zakharov函數(shù)迭代曲線圖Fig.8 Iteration curves of Zakharov function
圖9 Beale函數(shù)迭代曲線圖Fig.9 Iteration curves of Beale function
圖10 Matyas函數(shù)迭代曲線圖Fig.10 Iteration curves of Matyas function
表1 測試函數(shù)Tab.1 Test functions
表2 IBA算法、CS算法和BA算法的求解精度對比Tab.2 Comparison of solution accuracies of IBA algorithm,CS algorithm and BA algorithm
為了展示改后算法的性能,已將效果最好算法進(jìn)行加粗處理. 由表2 可知,一方面,對于Ackley 函數(shù)、Bohachevsky 函數(shù)、griewank 函數(shù)、Hump 函數(shù)、Beale 函數(shù)和Matyas 函數(shù),IBA 算法搜索到的最優(yōu)值、最差值和平均值均收斂于測試函數(shù)本身的最優(yōu)解,這說明IBA算法在求解精度上更加優(yōu)于BA算法和CS算法;對于其他函數(shù),IBA算法在收斂精度上優(yōu)于BA算法和CS算法;同時(shí),通過收斂速度可知,就Booth函數(shù)而言,CS算法和IBA算法收斂速度相同,對于Matyas函數(shù)而言,CS算法收斂速度比IBA算法要快,對于其余8個(gè)測試函數(shù),IBA算法收斂速度明顯優(yōu)于BA算法和CS算法. 另一方面,對于Hump函數(shù)而言,BA算法和IBA算法收斂時(shí)間相同,均為9 s,對于其他函數(shù),IBA算法收斂時(shí)間均比BA算法和CS算法要短.
由圖1可知,在迭代1000次的條件下,原始BA算法收斂速度較慢,在迭代200次時(shí)收斂,CS算法在迭代次數(shù)為550 次時(shí)收斂,改進(jìn)后的蝙蝠算法在迭代初期收斂速度就非常快,在第20 次出現(xiàn)拐點(diǎn),進(jìn)入局部最優(yōu),然后跳出局部最優(yōu),在迭代100 次時(shí)收斂到最小值,收斂速度遠(yuǎn)遠(yuǎn)優(yōu)于原始蝙蝠算法和布谷鳥算法;由圖2可知,原始BA算法收斂速度較慢,在300次時(shí)才收斂到最小值,改進(jìn)后的蝙蝠算法和布谷鳥算法收斂速度較快,但二者相比,IBA算法收斂速度仍快于CS算法;由圖3~圖7可知,IBA算法和CS算法的收斂速度均優(yōu)于BA算法,但通過對比收斂到最優(yōu)解的程度,IBA收斂精度遠(yuǎn)遠(yuǎn)優(yōu)于BA算法和CS算法;從圖8~圖10中可以看出,IBA算法、CS算法和BA算法在算法迭代初期,收斂速度均非常迅速收斂到最優(yōu)解,通過對比三者的收斂精度,可以看出IBA算法擁有更好的算法性能.
BP神經(jīng)網(wǎng)絡(luò)是一種應(yīng)用最為廣泛的人工神經(jīng)網(wǎng)絡(luò),其學(xué)習(xí)分為兩部分:正向傳播和反向傳播,其主要原理是通過對輸入樣本數(shù)據(jù)進(jìn)行訓(xùn)練,通過不斷修正網(wǎng)絡(luò)連接權(quán)值等參數(shù)使誤差函數(shù)沿著負(fù)梯度方向下降,進(jìn)而達(dá)到逼近期望輸出的目的. BP神經(jīng)網(wǎng)絡(luò)采用誤差反向傳播學(xué)習(xí)算法,網(wǎng)絡(luò)結(jié)構(gòu)由輸入層、隱含層和輸出層組成. 輸入層和輸出層都只有一層,隱含層可以為一層或多層,同層的網(wǎng)絡(luò)節(jié)點(diǎn)之間沒有連接. 其中,在BP神經(jīng)網(wǎng)絡(luò)中,以單隱層的BP神經(jīng)網(wǎng)絡(luò)為最多. 單隱層的BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖11所示.
圖11 單隱層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.11 Structure of single hidden layer neural network
下面利用改進(jìn)的蝙蝠算法來搜索BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,從而對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化. IBA-BP算法步驟如下.
步驟1:利用擬蒙特卡羅方法隨機(jī)生成m個(gè)蝙蝠位置x(t)=[x…,]T,并使用每個(gè)蝙蝠位置作為一組初始連接權(quán)值和閾值,并通過BP網(wǎng)絡(luò)權(quán)值和閾值進(jìn)行排序. 蝙蝠位置的維度為:輸入層的節(jié)點(diǎn)數(shù)目×隱層節(jié)點(diǎn)數(shù)目+隱層節(jié)點(diǎn)數(shù)目+隱層節(jié)點(diǎn)數(shù)目×輸出層節(jié)點(diǎn)數(shù)目+輸出層節(jié)點(diǎn)數(shù)目. 將權(quán)值和閾值解碼,計(jì)算每組蝙蝠位置的預(yù)測誤差,得到當(dāng)前最優(yōu)位置(i=1,2,…,n)以及最好的適應(yīng)度值;步驟2:根據(jù)改進(jìn)的蝙蝠飛行速度更新如下式:
其中:w為速度因子,在蝙蝠位置更新過程中引入動(dòng)態(tài)變異機(jī)制,位置變化調(diào)整為公式變異概率機(jī)制進(jìn)行調(diào)整,當(dāng)rand <p(t)時(shí),則執(zhí)行公式:
對其他蝙蝠位置進(jìn)行更新,其中,將新的位置與原始蝙蝠位置進(jìn)行比較,留下適應(yīng)度較好的位置,得到一組較好的蝙蝠位置;
步驟3:在BA算法的局部搜尋過程中,如果rand >R,則更新新的解決方案;
步驟4:判斷搜尋到的最優(yōu)值的誤差是否達(dá)到所需精度或者達(dá)到最大迭代次數(shù),若滿足,則停止搜尋,輸出最優(yōu)值,否則返回步驟2繼續(xù)迭代;
步驟5:對蝙蝠算法搜尋到的最優(yōu)解進(jìn)行解碼處理,并作為BP網(wǎng)絡(luò)的最優(yōu)初始參數(shù).
物流中心的選取,一般要遵循經(jīng)濟(jì)性原則、適應(yīng)性原則和戰(zhàn)略性原則. 影響物流中心的因素有很多,主要分為以下幾類:自然因素、交通運(yùn)輸條件、經(jīng)營環(huán)境、政府支持、公共設(shè)施等幾大類. 通過查閱相關(guān)文獻(xiàn)和歷史資料,經(jīng)過細(xì)化得到以下八個(gè)影響物流中心選址的指標(biāo):地質(zhì)條件、交通運(yùn)輸、水文條件、候選地地價(jià)、經(jīng)營環(huán)境、通信條件、候選地面積、道路設(shè)施. 為了建立評價(jià)指標(biāo)和評價(jià)結(jié)果間的模型,采用模糊評價(jià)法,根據(jù)以上八個(gè)影響指標(biāo)對物流中心的影響程度,采用不同的隸屬度函數(shù),來得到相對應(yīng)的模糊評價(jià)矩陣,如表3所示.
表3 模糊評價(jià)矩陣Tab.3 Fuzzy evaluation matrix
表3中的方案1~10是已經(jīng)運(yùn)營的企業(yè)數(shù)據(jù)資料,文章將此作為BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù),方案11~20作為物流中心選址的測試數(shù)據(jù),利用MATLAB 軟件分別建立BP神經(jīng)網(wǎng)絡(luò)算法、BA-BP 算法、IPSO-BP 算法以及IBA-BP算法. 網(wǎng)絡(luò)參數(shù)確定:BP神經(jīng)網(wǎng)絡(luò)算法的網(wǎng)絡(luò)層數(shù)為3,傳遞函數(shù)為logsig和purelin算法,訓(xùn)練目標(biāo)為e=0.000 01,學(xué)習(xí)速度為0.15,訓(xùn)練次數(shù)為500,蝙蝠算法迭代次數(shù)為1000. 同時(shí)運(yùn)用專家賦值法給予每種方案評價(jià),其中方案1為最好的中心選址方案. 通過對方案1至方案10的訓(xùn)練可以看出IBA-BP神經(jīng)網(wǎng)絡(luò)運(yùn)算的結(jié)果與專家賦值法的結(jié)果相同,可以通過此算法迅速選出最好的方案.
利用MATLAB7.0軟件進(jìn)行編程訓(xùn)練,利用BP網(wǎng)絡(luò)算法、BA-BP網(wǎng)絡(luò)算法、CS-BP神經(jīng)網(wǎng)絡(luò)算法和IBA-BP神經(jīng)網(wǎng)絡(luò)算法對方案1 至方案10 進(jìn)行訓(xùn)練,得到如圖12~圖15 所示的神經(jīng)網(wǎng)絡(luò)誤差曲線,通過對比可知,IBA-BP神經(jīng)網(wǎng)絡(luò)算法收斂速度最快,精度最高.
圖12 CS-BP神經(jīng)網(wǎng)絡(luò)算法誤差曲線Fig.12 Error curves of CS-BP neural network algorithm
圖13 BA-BP神經(jīng)網(wǎng)絡(luò)算法誤差曲線Fig.13 Error curves of BA-BP neural network algorithm
圖14 IBA-BP神經(jīng)網(wǎng)絡(luò)算法誤差曲線Fig.14 Error curves of IBA-BP neural network algorithm
圖15 BP神經(jīng)網(wǎng)絡(luò)算法誤差曲線Fig.15 Error curves of BP neural network algorithm
運(yùn)用訓(xùn)練樣本對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,分別采用BP網(wǎng)絡(luò)算法、BA-BP網(wǎng)絡(luò)算法、CS-BP神經(jīng)網(wǎng)絡(luò)算法和IBA-BP神經(jīng)網(wǎng)絡(luò)算法對測試結(jié)果進(jìn)行檢驗(yàn),結(jié)果如表4. 通過表4可以看出,與BP網(wǎng)絡(luò)算法、CS-BP算法和BA-BP算法相比,基于IBA-BP神經(jīng)網(wǎng)絡(luò)算法相對誤差最小,尋優(yōu)精度最高,預(yù)測誤差最小.
表4 BP網(wǎng)絡(luò)、CS-BP網(wǎng)絡(luò)、BA-BP網(wǎng)絡(luò)與IBA-BP網(wǎng)絡(luò)評價(jià)Tab.4 Evaluation of BP network,CS-BP network,BA-BP network and IBA-BP network
本文以物流中心的選址作為研究對象,就物流中心影響因素構(gòu)建評價(jià)指標(biāo)體系,得到以下結(jié)論:為了保證指標(biāo)選取的科學(xué)性,文章運(yùn)用了BP神經(jīng)網(wǎng)絡(luò)算法、CS-BP神經(jīng)網(wǎng)絡(luò)算法、BA-BP神經(jīng)網(wǎng)絡(luò)算法和IBA-BP神經(jīng)網(wǎng)絡(luò)算法,通過橫向?qū)Ρ龋贛ATLAB 軟件中運(yùn)行時(shí)可以很大程度上減少訓(xùn)練的誤差并提高算法運(yùn)行速度,解決了BP神經(jīng)網(wǎng)絡(luò)嚴(yán)重依賴初始權(quán)值和閾值的問題,因此,選用IBA-BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行預(yù)測具有更大的優(yōu)越性.