丁 玲,范 平,聞 彬
(湖北科技學院計算機科學與技術學院 421009)
最優化問題就是從所有的解決方案中選取最合理的方案,達到國民經濟、學科技術等領域,小到人們的日常生活等各個問題,均涉及到優化選擇。粒子群優化算法又稱為粒子群算法、微粒群算法、微粒群優化算法,是一種新型的優化計算技術。這種技術是由Eberhart博士和Kennedy博士通過模擬鳥群進食行為而提出的一種隨機搜索的算法。通過對每個隨機值進行搜索和比較可以得到最優答案,因而粒子群優化算法可以用于解決優化的問題。因為這種算法具有全局優化的特點,所以被廣泛的用于函數優化和計算機神經網絡等領域中。目前,國內對于粒子群優化算法的研究尚處于發展階段,今后還有很多工作要逐步展開。本文將針對現有的研究,對粒子群優化算法的產生和發展以及其在神經網絡中的應用進行論述,同時對粒子群優化算法的未來發展趨勢進行展望。
無論實際的生活還是科學研究,經常都會遇到一個問題有多個解決方案,需要從這些解決方案中尋求最合理的解決方案的情況。最經典的案例莫過于工程經濟學中的資源分配問題了,如何讓合理的分配有限的資源已選求最大的利益。對于這類問題可以通過數學建模的方法,通過轉化為約定條件下,找出對應參數值的函數來解決問題,這就是通常所說的優化。對問題進行優化研究一直以來都是數學和工程經濟學領域的研究熱點,其研究算法也得到了不斷的發展。隨著研究的進行,配方法、數形結合法、不等式法等優化算法相繼被人們所提出,但是這些優化算法均帶有一定的局限性,只對特定的優化問題有效。不過導數的問世又給優化問題帶了新的解決辦法,研究者發現通過對導函數進行求解也可以解決優化問題。但是這種求導的解決方法也有一個很大的缺陷就是導函數只能對一些簡單的并且滿足一定條件的問題進行優化,對于復雜問題的優化就需要悍匪很大的精力和時間,因此,實際運用并不是很理想。
就在研究者走投無路的時候,數值算法應運而生。所謂數值算法就是通過設定一個初始值,根據優化問題的限制條件進行反復的迭代,最終得到優化問題的解的算法。隨著科技的不斷發展,模擬生物群體的行為特征也被應用到數值算法中。模擬生物的數值算法的迭代過程一般都很簡單,只是迭代的次數比較大。隨著計算機技術的飛速發展和不斷普及,計算機的快速工作性為這類多次迭代的工作提供了保障。模擬生物算法包括蟻群算法和粒子群算法,粒子群算法最初是為了圖形化地模擬鳥群優美而不可測的運動。研究者通過對鳥群運動的計算機仿真,發現通過對每個鳥運動軌跡的搜索和比較,最終可以得到鳥群的最優路徑選,而這一發現正好適用于日常生活中的優化問題。
粒子群優化算法不同于遺傳算法的個體選擇,而是將整個群體中的每一個個體視為一個個微粒,這些微粒都具有各自的特性(包括地理方位、運行速度、本身的飛行經驗等),通過對每個選擇路徑進行不斷的調整,最終得出最優的選擇路徑。
設想這樣一個場景:一群鳥在隨機的搜索食物。在這個區域里只有一塊食物,所有的鳥都不知道食物在那。但是它們知道自己當前的位置距離食物還有多遠。那么找到食物的最優策略是什么?最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。鳥被抽象為沒有質量和體積的微粒(點),并延伸到N維空間,粒子I 在N維空間的位置表示為矢量。
Xi=(x1,x2,…,xn),飛行速度表示為矢量Vi=(v1,v2,…,vn),每個粒子都有一個由目標函數決定的適應值(fitness value);并且知道自己到目前為止發現的最好位置(pbest) ;除此之外,每個粒子還知道到目前為止整個群體中所有粒子發現的最好位置(gbest)

在式(1)、(2)中,i=1,2,…,M,M是該群體中粒子的總數。
粒子怎么樣到達下一步的運動? 在找到這兩個最優值后,粒子通過下面的公式來更新自己的速度和位置。Vi 是粒子的速度;pbest和gbest如前定義;rand()是介于(0、1)之間的隨機數; Xi 是粒子的當前位置;c1和c2是學習因子,通常取c1= c2=2;在每一維,粒子都有一個最大限制速度Vmax,如果某一維的速度超過設定的值,那么這一維的速度就被限定為 Vmax 。( Vmax >0)

其中,Vi 是粒子的速度;pbest和gbest如前定義;rand()是介于(0、1)之間的隨機數;Xi 是粒子的當前位置;c1和c2是學習因子,通常取c1= c2=2;在每一維,粒子都有一個最大限制速度Vmax,如果某一維的速度超過設定的值,那么這一維的速度就被限定為Vmax 。
從社會學的角度來看,公式(1)的第一部分稱為記憶項,表示上次速度大小和方向的影響;公式第二部分稱為自身認知項,是從當前點指向粒子自身最好點的一個矢量,表示粒子的動作來源于自己經驗的分;公式的第三部分稱為群體認知項,是一個從當前點指向種群最好點的矢量,反映了粒子間的協同合作和知識共享。粒子就是通過自己的經驗和同伴中最好的經驗來決定下一步的運動。以上面兩個公式為基礎,形成了后來PSO 的標準形式。
1998年shi等人在進化計算的國際會議上發表了一篇論文《A modified particle swarm optimizer》對前面的公式(1)進行了修正。引入慣性權重因子。

W為非負數,稱為慣性因子;公式(2)和(3)是一直被沿用到現在的標準的粒子群優化算法公式。
現代生活中很多地方軍涉及到優化選擇問題,傳統的優化方法都有很大的局限性,因此有必要進一步擴大粒子群優化算法在各個工程項目中的應用,本段接下來將對粒子群優化算法在計算機神經網絡中的應用進行論述。
計算機神經網絡是模擬大腦的思維能力,進行各種數據處理的數學模型。神經網絡計算機除了具有許多處理器之外,還有許多類似人腦神經的節點,并且每個節點之間按照一定的規律進行連接。如果將處理的過程細分為一個個微程序并交給處理器進行處理,這樣所有的微程序同時工作起來就像一條流水線進行迭代的工作,計算機的信息處理速度也會大大提高。粒子群優化算法在計算機神經網絡中的應用包括神經網路訓練、參數優化、組合優化等方面。粒子群優化算法在計算機神經網絡中的應用主要包括鏈接權重、網絡拓撲結構和傳遞函數、學習算法三個方面。通過將個體視為微粒(包括神經網絡中所使用到的參數),經過一系列重復的工序,最終達到預期的訓練結果。傳統的神經訓練一般使用的是BP算法,但是這種算法需要使用梯度信息和可微的函數,并且運行效率相比而言也較低。
粒子群優化算法在參數優化中的應用,主要是指用于各種離散性的問題(包括信號處理、路徑規劃、模式匹配等)。粒子群優化算法在組合優化中的應用最典型的莫過于在工程經濟問題中的應用。工程經濟學的目的就在于合理的組合各種資源從而達到經濟效益最大化。對于這種有序性和有約束條件的組合問題就可以使用粒子群優化算法,通過不斷的嘗試最終得到最優的解決方案。粒子群優化算法除了應用于上述三個方面外,在其他的領域,像是電力系統、計算機輔助設計、游戲開發、軟件編程等各個領域均有所應用,這里就不一一細說了。
粒子群優化算法的研究目前在國內還處于一個初始階段,其未來還有很長的一段路要走。從最初的求解簡單的優化問題到現在的稍微復雜的問題,粒子群優化算法的發展趨勢主要表現在以下幾個方面:①逐步用于求解帶有約束性的優化問題,像是求解各種幾何問題;②用于求解隨機性問題,像是對于汽車的隨機路徑問題的求解等;③用于最優控制問題的解決,例如對于航天器的太陽板在伸展過程中,航天器運動的最優控制問題;④多目標化問題,這類問題主要是針對水文等問題進行求解。隨著粒子群優化算法對于復雜問題的求解,其改進也變得越來越精細。任何算法的研究不能僅限于對原有的研究成果的改進和應用,更多應該在于能夠從改進達到技術的成熟和擴展,最好能夠再進一步改進的基礎上研發出更為完善的技術。粒子群優化算法作為一種數值算法,其收斂性分析將是未來的一個研究熱點。粒子群優化算法的收斂性分析就是進一步對最優解進行分析,分析其是否真是問題的最優解,因為一般情況下得到的解是人們理想中的解決方案,但并非真正意義上的最優解。目前對于粒子群優化算法的收斂性分析的研究已經收到部分學者的關心,但是目前的研究結果只能說明通過粒子群優化算法所得到的解是否是最優解,但是并不能進行證明。因此,如何能夠證明粒子群優化算法是收斂到優化問題的最優解將是未來的一個發展熱點。
粒子群優化算法是一類新興的群智能優化算法,該種方法實現簡單并且具有全局優化的優勢,因此被應用到各種優化問題中。本文對粒子群優化算法的產生、發展、原理以及其在計算機神經網絡中的應用進行了詳細的闡述,并在最后指出了其今后的研究熱點。相信在廣大學者的不懈研究下,粒子群優化算法將被更為廣泛的應用到各種優化問題中。
[1]楊維,李歧強;粒子群優化算法綜述[J];中國工程科學 ,2004
[2]李愛國,覃征,鮑復民;粒子群優化算法[J ];計算機工程應用,2002