楊粟涵 于蕾
摘 要
BP神經(jīng)網(wǎng)絡(luò)算法的初始值和閾值用遺傳算法來進(jìn)行優(yōu)化,用此優(yōu)化后的遺傳神經(jīng)網(wǎng)絡(luò)算法對城市區(qū)域圈物流量進(jìn)行預(yù)測。以合肥都市圈為例,用2013-2018年與物流量相關(guān)的六個指標(biāo)作為輸入來預(yù)測2019年城市圈的物流貨運量。使用Matlab7.0軟件編碼運行,結(jié)果證明,該算法時間少、精度高,預(yù)測效果更好。
關(guān)鍵詞
物流量預(yù)測;遺傳算法;BP神經(jīng)網(wǎng)絡(luò)
中圖分類號: TP301.6 ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A
DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 06 . 80
0 引言
區(qū)域經(jīng)濟(jì)一體化近年來發(fā)展迅速,各城市間生產(chǎn)要素自由流動,互利互惠,形成命運共同體。各城市間頻繁地進(jìn)行物資和信息的交換,僅僅一個城市的各種數(shù)據(jù)已不能滿足相關(guān)部門對當(dāng)?shù)亟?jīng)濟(jì)發(fā)展水平的衡量。城市區(qū)域圈內(nèi)數(shù)據(jù)共享,形成協(xié)同效應(yīng),方能體現(xiàn)數(shù)據(jù)統(tǒng)計的準(zhǔn)確性。本文以合肥都市圈為例,研究合肥,馬鞍山,蕪湖,淮南,六安,滁州六個城市的相關(guān)物流數(shù)據(jù),通過對歷史數(shù)據(jù)的分析來對下一年的物流數(shù)據(jù)進(jìn)行預(yù)測。
城市的物流貨運量反映了城市經(jīng)濟(jì)發(fā)展對物流運輸?shù)男枨螅诂F(xiàn)代高速變化的經(jīng)濟(jì)形勢下,物流貨運需求量不斷變化,及時準(zhǔn)確地預(yù)測顯得尤為重要。但是城市區(qū)域圈貨運量受很多因素的影響,而且與其影響因素存在著復(fù)雜的非線性映射關(guān)系[1],很多傳統(tǒng)的數(shù)據(jù)預(yù)測方法是基于時間序列,或者是因果關(guān)系[2],其數(shù)據(jù)的內(nèi)部結(jié)構(gòu)與復(fù)雜性不能完全被反映。因此,尋找有效較優(yōu)的城市區(qū)域圈物流貨運量預(yù)測方法甚為必要。
1 城市區(qū)域圈物流預(yù)測
對物流數(shù)據(jù)的預(yù)測方法很多,一般有兩種:定性預(yù)測法和定量預(yù)測法。一般情況下的常用定性預(yù)測是專家預(yù)測法,常用的定量預(yù)測法主要包括概率統(tǒng)計和運籌學(xué)中的回歸分析預(yù)測法、時間序列預(yù)測法、灰色預(yù)測法、彈性預(yù)測法等。合肥都市圈物流貨運量受該區(qū)域經(jīng)濟(jì)形勢、產(chǎn)業(yè)結(jié)構(gòu)布局、貨物運輸量等其他因素影響,且其與影響因子之間存在非線性關(guān)系,因此采用傳統(tǒng)的預(yù)測方法難以為繼。合肥都市區(qū)域圈主要的物流貨運量影響因子有:產(chǎn)業(yè)結(jié)構(gòu)布局,包括第一產(chǎn)業(yè)、第二產(chǎn)業(yè)和第三產(chǎn)業(yè)增加值;區(qū)域社會居民消費,即區(qū)域社會消費品零售總額;區(qū)域進(jìn)出口貿(mào)易,即區(qū)域進(jìn)出口貿(mào)易總額;區(qū)域人口,即年末常住人口總量。因此,采集以上6個影響因子的數(shù)據(jù),通過啟發(fā)式算法建立模型來預(yù)測城市區(qū)域圈的物流貨運量。
2 遺傳神經(jīng)網(wǎng)絡(luò)算法
2.1 遺傳算法
遺傳算法是參照達(dá)爾文生物進(jìn)化論和遺傳學(xué)機(jī)理的一種模擬計算算法模型,是通過模擬生物進(jìn)化來從可行解中搜尋最優(yōu)解的方法[3]。遺傳算法是從代表問題可行解解集的其中一個種群開始,種群則由經(jīng)過編碼的一定數(shù)目的個體所組成。個體實際上是帶有特征的染色體實體。染色體是多個基因的集合,基因型決定了個體的外部表現(xiàn)。開始需要進(jìn)行編碼工作,初始代種群產(chǎn)生之后,按適者生存、優(yōu)勝劣汰的原理,逐代演化出越來越優(yōu)的近似解。在每一代進(jìn)行個體選擇時,是根據(jù)問題域中個體的適應(yīng)度大小,并借助于自然遺傳學(xué)的遺傳算子進(jìn)行組合、交叉、變異,產(chǎn)生出代表新的種群。
遺傳算法的三種操作:(1)選擇-復(fù)制:一個種群S,規(guī)模為N,每個染色體xi∈S的被選擇概率為P(xi), 分N次從S中隨機(jī)選定N個染色體,進(jìn)行復(fù)制。
(2)交叉:就是互換兩個染色體某些位上的基因。種群中產(chǎn)生了新個體,決定了遺傳算法的全局搜索能力。把交叉率記為參加交叉運算的染色體占染色體總數(shù)的比例,記為Pc,取值范圍可以從0.4到0.99。(3)變異:就是改變?nèi)旧w某個(些)位上的基因。決定了遺傳算法的局部搜索能力,同時保持種群的多樣性。把變異率記為發(fā)生變異的基因位數(shù)占染色體基因總位數(shù)的比例,記為Pm,取值范圍可以從0.0001到0.1。
算法步驟:(1)群體中個體適應(yīng)度值的計算;(2)利用比例選擇算子,計算個體被選中遺傳到下一代的概率;(3)采用模擬輪盤賭操作來確定個體是否被遺傳到下一代中。
2.2 BP神經(jīng)網(wǎng)絡(luò)算法
BP神經(jīng)網(wǎng)絡(luò)算法具有大規(guī)模地進(jìn)行并行處理、分布式的信息存儲方式、良好的自組織學(xué)習(xí)能力等優(yōu)良性能[4],理論上可以逼近任意一個函數(shù),有非常強(qiáng)的非線性映射的能力,并且網(wǎng)絡(luò)中的中間的層數(shù)、各層的處理單元數(shù)、網(wǎng)絡(luò)的學(xué)習(xí)系數(shù)等各項參數(shù)都可以根據(jù)實際情況來進(jìn)行設(shè)定,靈活性非常大。
一般為兩層BP網(wǎng)絡(luò)結(jié)構(gòu),學(xué)習(xí)階段有兩個:(1)把學(xué)習(xí)樣本輸入,通過網(wǎng)絡(luò)結(jié)構(gòu)和上一次迭代的權(quán)值和閾值,從網(wǎng)絡(luò)的第一層開始向后把各神經(jīng)元的輸出計算出來;(2)修改權(quán)值和閾值,從最后一層開始,向前計算各權(quán)值、閾值對總誤差的影響,然后進(jìn)行修改。兩個階段交替反復(fù),直至達(dá)到條件收斂。
2.3 遺傳神經(jīng)網(wǎng)絡(luò)算法建模
圖1 BP神經(jīng)網(wǎng)絡(luò)算法流程圖
BP神經(jīng)網(wǎng)絡(luò)算法能夠解決大規(guī)模復(fù)雜非線性問題,但是其有局部尋優(yōu)的特性,易陷入局部最優(yōu),引起震蕩、收斂速度慢等。遺傳算法是一種全局優(yōu)化算法,通過其選擇交叉變異操作,能夠有效的擺脫陷入局部最優(yōu)的困境,獲得全局最優(yōu)解。因此,可以采用遺傳算法來優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值、閾值[5],并賦給神經(jīng)網(wǎng)絡(luò)作為初始權(quán)值與閾值,即可解決其局部最優(yōu)的困境。
3 遺傳神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)
根據(jù)合肥區(qū)域圈物流貨運量的影響因素,選取合肥,馬鞍山,蕪湖,淮南,六安,滁州六個城市的2013-2018年第一產(chǎn)業(yè)增加值、第二產(chǎn)業(yè)增加值、第三產(chǎn)業(yè)增加值、區(qū)域社會消費品零售總額、區(qū)域進(jìn)出口貿(mào)易總額、年末常住人口總量六項指標(biāo)作為城市區(qū)域圈物流貨運量預(yù)測的輸入變量。由于上述各個指標(biāo)的數(shù)量級不一樣、單位不一樣,比如億元和萬元單位之間在量級上差別很大。該類數(shù)據(jù)直接輸入,會使得神經(jīng)網(wǎng)絡(luò)發(fā)生震蕩,難以收斂,同時也會使得遺傳網(wǎng)絡(luò)收斂速度降低,因此需要對原始數(shù)據(jù)進(jìn)行歸一處理,公式為:
其中,X(t)為數(shù)據(jù)歸一化處理后的結(jié)果,min(d(t))為原始數(shù)據(jù)中的最小值,max(d(t))為原始數(shù)據(jù)中的最大值。歸一化處理后保證后續(xù)數(shù)據(jù)處理的準(zhǔn)確性,實驗顯示,歸一后的數(shù)據(jù)在(0,1)之間。
使用 MATLAB 7.0軟件環(huán)境進(jìn)行遺傳神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練與測試,用合肥城市區(qū)域圈2013-2018年相關(guān)物流影響因子數(shù)據(jù)作為輸入,2019年城市圈物流貨運量作為輸出。主要部分為利用遺傳算法對BP神經(jīng)網(wǎng)絡(luò)的權(quán)重以及初值進(jìn)行優(yōu)化。
(1)確定遺傳算法個體編碼的長度。設(shè)置全局變量,把輸入所需的權(quán)值和閾值合并成一個個體,神經(jīng)網(wǎng)絡(luò)的權(quán)重包括兩部分,輸入層與隱含層之間的權(quán)值以及隱含層與輸出層的權(quán)值。閾值包括中間隱含層的各神經(jīng)元的閾值和輸出層神經(jīng)元的閾值,由此確定編碼長度。
(2)根據(jù)解編碼函數(shù),將每一個個體拆分,分別賦權(quán)值,并通過傳輸函數(shù),計算輸出,并計算網(wǎng)絡(luò)輸出與實際值的誤差平方和。
(3)計算各個體的適應(yīng)值,用適應(yīng)度函數(shù)確定,并返回給遺傳算法主函數(shù)。
(4)遺傳算法主函數(shù)中通過選擇、交叉、變異,直至誤差滿足設(shè)定的值。
(5)BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和測試。是個不斷迭代選擇最佳參數(shù)的過程,不斷訓(xùn)練計算各個神經(jīng)元的權(quán)重,從而使輸出誤差結(jié)果能越來越小。
(6)結(jié)果輸出。
4 結(jié)論
根據(jù)實驗結(jié)果采用反歸一法得到2019年合肥城市區(qū)域圈的物流貨物量的預(yù)測值。可在本年末與真實數(shù)據(jù)進(jìn)行對比,驗證該算法的有效性。本文中的遺傳神經(jīng)網(wǎng)絡(luò)算法是用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,算法運行在收斂時間及解的質(zhì)量精度上都比原始神經(jīng)算法要有所改進(jìn),具有一定的可行性。城市區(qū)域圈物流量以及其他相似數(shù)據(jù)可以借助遺傳神經(jīng)算法進(jìn)行預(yù)測,提供了一種客觀,科學(xué)、有效的決策方法,為城市區(qū)域圈的經(jīng)濟(jì)發(fā)展及規(guī)劃制定提供幫助。
參考文獻(xiàn)
[1]王穎林,賴笈宇,郭豐敏.建設(shè)需求量預(yù)測分析中的人工神經(jīng)網(wǎng)絡(luò)和多元回歸方法[J].武漢工程大學(xué)學(xué)報,2013:77-80,86.
[2]程學(xué)珍,林曉曉,朱春華,等.基于時序信息的模糊Petri 網(wǎng)電網(wǎng)故障診斷方法[J].電工技術(shù)學(xué)報,2017,32(14):229-237.
[3]王小平,曹立明.遺傳算法:理論、應(yīng)用及軟件實現(xiàn)[M].西安:西安交通大學(xué)出版社,2002.
[4]侯媛彬,杜京義,汪梅.神經(jīng)網(wǎng)絡(luò)[M].西安:西安電子科技大學(xué)出版社,2007:8.
[5]馬銀軍.基于BP 神經(jīng)網(wǎng)絡(luò)的物流量預(yù)測方法研究[J].物流科技,2010(05):81-83.