王重彬,李益兵
(武漢理工大學 機電工程學院,武漢 430070)
隨著經濟的快速發展,導致企業面臨的競爭越發激烈,企業必須時刻關注市場動態,最大程度滿足客戶需求。單純依靠企業自己固定地生產定量的產品已經不能夠滿足市場的需求。為了能夠了解生產產品的數量,就必須要求能夠準確地知道客戶的需求。然而由于客戶的需求量是不確定的,使得企業必須按照客戶的需求量變化而變化,因此,企業與客戶之間的訂單就顯得尤為重要。通過企業與客戶的訂單,企業能夠快速準確地按照客戶的訂單進行企業的采購、生產、配送等一系列企業活動,從而極大地提高企業及供應鏈的柔性,有效地縮短整條供應鏈的提前期,同時還能降低生產庫存成本[1]。正是在這種背景下,企業對于訂單的預測就顯得尤為重要。
現在對于預測已經有很多種方法,主要有趨勢預測、時間序列預測、灰色預測以及神經網絡預測等,但是這些方法總是在某個方面會有缺陷。趨勢預測和時間序列預測突出時間的影響因素,因此容易受到外界因素的影響,當外界發生較大的變化時,偏差會比較大;灰色預測模型主要集中在單因素,不能很好地適應現實社會中多因素共同變化,導致預測的效果不好;神經網絡預測對數據樣本有一定的要求,預測的差異性較大,預測的穩定性有待提高。為了對預測方法進行優化,許多學者利用現有的例如蟻群算法、遺傳算法、粒子群算法等對這些預測方法進行優化,從而提高預測精度和穩定性。本文結合自適應權重粒子群算法與BP 神經網絡,通過某企業以往的訂單數
據,對訂單進行預測。
粒子群優化算法(Particle Swarm Optimaization,PSO)是一種基于群體智能理論的全局優化方法,又稱微粒群算法。最初是模擬鳥群覓食的過程,由美國的Kennedy 和Eberhart 于1995 年最早提出的一種啟發式優化算法[2-3]。在該算法中,個體僅僅是通過自身的簡單行為以及對同伴的追蹤,可以使群體最終達到最優的位置。每個個體抽象為一個粒子,沒有質量和體積,僅包含位置和速度的信息。每個個體都有一定的記憶能力,能夠記下自身和種群中的最好速度和位置,其中把粒子的最優速度和位置稱為個體最優解,把目前找到的種群中粒子的最優速度和位置稱為全局最優解。當全局最優解優于粒子的個體最優解時,粒子的速度和位置會及時更新。
粒子在t 時刻速度和位置的更新方程為:

式中,xi,j表示粒子在每次迭代中的位置,vi,j表示粒子在每次迭代中的速度,c1和c2表示粒子群算方法中的學習因子,r1、r2為0 到1 之間均勻分布的隨機數。pi,j和pg,j表示粒子在每次迭代中的個體最優解和全局最優解。
在粒子群算法中,慣性權重w的大小反映了粒子擴展搜索空間的能力,w 越大,粒子能夠搜索的范圍也越大,從而增加找到最優解的可能,但是會影響搜索效率;w 越小,算法的局部搜索能力加強,但容易陷入局部最小點,求解精度低[4]。該算法在進行運算時,適當改變慣性權重的大小,可以改變算法的搜索范圍,從而提高求得最優解的能力。目前慣性權重的取法有很多種,常見的有線性遞減權重法、自適應權重法、隨機權重法。本文中用到的是自適應權重法。這種方法是當微粒的目標函數值達到局部最優時,適當增加慣性權重,可以擴大搜索范圍,防止陷入局部最小點,而當微粒的目標函數值比較分散時,減少慣性權重值,減小搜索空間,從而起到平衡粒子群算法的全局搜索能力和局部改良能力的目的。
自適應權重的粒子群算法中慣性權重的表達式如下[5]:

其中wmax、wmin分別表示ω的最大值和最小值,f 表示粒子當前的目標函數,fa和fmin分別表示當前所有粒子的平均目標值和最小目標值。在上式中,慣性權重隨著粒子的目標函數值而變動,因此稱為自適應權重。
人工神經網絡是由大量簡單的處理單元組成的非線性、自適應性、自組織性系統,它是在現代神經科學研究成果的基礎上,試圖通過模擬人類神經系統對信息進行加工、記憶和處理的方式,設計出的一種具有人腦風格的信息處理系統。神經網絡系統理論首先是由心理學家McCulloch 和數學家Pitts 提出的神經元生物學模型(簡稱M-P 模型)[6],通過一系列的發展,至今神經網絡已經運用到很多領域,在模式識別、智能機器人、自動控制、預測估計、生物、醫學、經濟等眾多研究領域取得了廣泛的成功[7]。
BP 神經網絡是一種單向傳播的多層前向網絡,是一種具有三層或三層以上的神經網絡,包括有輸入層、隱含層和輸出層。在運用BP 神經網絡時,必須提前給神經網絡一對學習樣本,其中每個神經元中都包含有一個閾值,神經元之間的傳導也有一個權值,輸入值與權值相乘后與下一層神經元的閾值進行比較,當超過這個閾值后,神經元將被激活,從而傳導到下一個神經元,最終傳導到輸出層,在輸出層的各神經元獲得網絡的輸入相應。然后,按照輸出層到中間層、再到輸入層的方向,從輸出層經過各中間層修正各連接權值,最后返回到輸入層,這種算法稱為BP 算法。
BP 神經網絡在進行預測前要建立神經網絡結果,然后經過訓練,使網絡具有預測能力。通過預測得到的預測值與實際值進行比較,得到的誤差來調整網絡權值和閾值,從而使BP 神經網絡預測值不斷逼近期望輸出值。而自適應權重粒子群算法是通過把預測得到的誤差值作為個體適應度值,從而優化神經網絡的初始權值和閾值,然后將最優的網絡權值和閾值代入到BP 神經網絡中進行運算,得到預測值。流程圖如圖1 所示。

圖1 算法流程
具體步驟如下:(1)初始化數據。確定神經網絡各個層的個數;建立神經網絡拓撲結構,初始化粒子群算法的種群大小、迭代次數等;(2)隨機初始化神經網絡的權值和閾值,運用神經網絡進行訓練,得到的誤差和作為自適應權重粒子群算法的個體適應度值;(3)運用自適應權重粒子群算法進行數據處理;(4)評價每個粒子的適應度,存儲各個粒子的信息,同時選擇并保存最優的粒子的信息作為全局最優解;(5)按式(1)、(2)、(3)計算并更新粒子的速度和位置;(6)然后返回到(3),反復進行迭代,直至達到精度要求或者滿足最大的迭代次數;(7)把得到的最優權值和閾值代入到神經網絡中,進行訓練和預測;(8)算法結束。
為了驗證算法的正確性,本次實例中采用的是某企業在兩年內獲得的訂單統計數據,通過得到的訂單數據,運用BP 神經網絡對數據進行訓練,并預測最后一組數據值,與實際值比較,從而驗算算法的準確性。預測數據經過歸一化后,如表1 所示。

表1 某企業在兩年內獲得的訂單數據
預測時選擇的參數如下:粒子群規模為40,學習因子都為1.5,最大慣性權重取0.9,最小慣性權重取0.6,迭代次數選100 次。BP 神經網絡的輸入層個數為6個,中間層為12個,輸出層為1個。
通過運用MATLAB 工具箱,編制粒子群算法程序和BP 神經網絡程序。圖2為自適應權重粒子群算法的進化次數,把自適應權重粒子群算法得到的最優的權值和閾值賦值給BP 神經網絡,然后用已知的數據進行訓練,得到最后一組數據的預測值。圖3表示的是BP 神經網絡經過訓練后達到的精度要求時訓練結果。
與只使用BP神經網絡預測得到的比較結果如表2 所示。通過比較得到的數據結果可以看出,自適應權重粒子群算法和BP 神經網絡可以用來對訂單進行預測。

圖2 粒子群算法進化次數

圖3 訓練結果

表2 BP 神經網絡與混合算法比較
通過對算法進行實例仿真,得到的數據誤差能夠滿足實際預測要求,說明本次算法是可行的,能夠進行準確的預測。通過運用自適應權重粒子群算法對BP 神經網絡的權值和閾值進行優化,從而可以得到更準確的預測結果,而且方法易于實現,能夠很快得到最優解。
[1]華曉暉,閆秀霞.基于神經網絡的訂單預測研究[J].華東經濟管理,2007(2):108-110.
[2]KENNEDY J,EBERHAR R C.Particle swarm optimizat ion[C]//Proc.IEEE Int'l Conf .on Neural Networks,Perth Australia,1995:1942-1948.
[3]EBERHART R C,KENNEDY J.A new optimizer using particle swarmtheory[C]//Proc.the Sixth Int.Symposium on Micro Machine and Human Science.Nagoya,Japan:IEEE Service Center,1995:39-43.
[4]龔純,王正林.精通MATLAB 最優化計算[M].北京:電子工業出版社,2012.
[5]李軍,許麗佳,游志宇.一種帶壓縮因子的自適應權重粒子群算法[J].西南大學學報,2011(7):118-122.
[6]MCCULLOCH W S,PITTS W.A logical calculus of the ideas immanent in nervous activity [J].Bulletin of Mathematical Biophysics,1990,52(1/2):99-115.
[7]毛健,趙紅東,姚婧婧.人工神經網絡的發展及應用[J].電子設計工程,2011(24):62-65