




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、本科畢業(yè)設(shè)計題 目 粒子濾波算法性能研究 學(xué) 院 管理科學(xué)與工程學(xué)院 專 業(yè) 電子信息工程 班 級 091信工2班 學(xué) 號 2009830101 姓 名 王少華 指導(dǎo)老師 段凱宇 講師 2013年 6月摘要粒子濾波算法是一種基于社會型生物群體智能的全局搜索算法,粒子濾波算法通過粒子群中粒子間的合作在復(fù)雜的搜索空間中找到全局的最優(yōu)解。這種算法具有易理解、易實現(xiàn)、參數(shù)少、搜索能力強等特點,受到了學(xué)術(shù)界廣泛關(guān)注,已經(jīng)成為發(fā)展最快的優(yōu)化算法之一。論文介紹了粒子濾波算法的原理、特點。圍繞粒子濾波算法的原理特點和參數(shù)的設(shè)置進行了各方面的闡述和論證,利用程序迭代多次觀察粒子分布的方法,系統(tǒng)的分析了粒子濾波算
2、法中的各個參數(shù),論證評估了各種改進粒子濾波算法的方法的性能和可行性。最后對粒子濾波算法的研究和應(yīng)用提出了一些建議和展望。關(guān)鍵詞:粒子濾波算法;改進;最優(yōu)解;參數(shù)設(shè)置AbstractParticle swarm optimization algorithm is a social Humanoid swarm intelligence-based global search algorithm, particle swarm optimization algorithm to find the global optimal solution in a complex search space t
3、hrough cooperation between particles in particle swarm. PSO algorithm is easy to understand, easy to implement, parameters, search ability, has been widespread concern in academic circles, has become the fastest growing one of the optimization algorithm. The paper describes the principles, character
4、istics of particle swarm optimization algorithm. Around the principle characteristics and parameters of particle swarm optimization algorithm settings exposition and demonstration by an iterative repeatedly observed particle distribution method to analyze the various parameters of the particle swarm
5、 algorithm demonstrated a variety of improved particle swarm algorithm performance and feasibility of the method. Finally, the study and application of the particle swarm optimization algorithm put forward some proposals and outlook.Key words: Particle Swarm Optimization; improved; optimal solution;
6、parameter settings目錄1.引言11.1相關(guān)背景11.2研究內(nèi)容和實際意義22.粒子濾波算法22.1粒子濾波算法的起源22.2粒子濾波算法算法原理和參數(shù)分析32.3粒子濾波算法流程52.4標(biāo)準(zhǔn)粒子濾波算法舉例63.粒子濾波算法性能和改進93.1標(biāo)準(zhǔn)粒子濾波算法93.2粒子濾波算法的改進103.2.1帶壓縮因子的粒子濾波算法103.2.2線性遞減權(quán)重的粒子濾波算法113.2.3自適應(yīng)權(quán)重法133.2.4隨機權(quán)重法143.2.5同步變化學(xué)習(xí)因子法153.2.6異步變化的學(xué)習(xí)因子法163.2.7二階粒子濾波算法173.2.8二階振蕩粒子濾波算法174.總結(jié)和展望20粒子濾波算法性能研
7、究1.引言1.1相關(guān)背景最近幾年,人們通過對社會型生物的群體行為觀察模擬,提出了一種新的生物啟發(fā)式計算方法群體智能算法。群體智能算法中最具有代表性的兩種算法是基于螞蟻尋找路徑的螞蟻算法和通過鳥類覓食行為總結(jié)的粒子濾波算法。自從群體智能算法提出以來,引發(fā)了各個領(lǐng)域?qū)<覀兊膹V泛關(guān)注,成為了人工智能以及電子,生物,經(jīng)濟等尖端的跨學(xué)科研究領(lǐng)域。在大自然中我們經(jīng)??梢钥吹竭@樣想現(xiàn)象:一群鳥尋找食物,這個過程是隨機的。在搜索區(qū)域里有一只蟲子,任何一只鳥不知道蟲子在哪里,但是他們知道自己當(dāng)前所處位置到蟲子的距離。鳥群找到蟲子最佳方法是什么?最簡單的方法是從離蟲子最近的鳥周圍的區(qū)域開始搜索,利用搜索過程中的離
8、蟲子最近的那只鳥的經(jīng)驗以及每只鳥自身的經(jīng)驗,鳥群便能很快找到蟲子的位置。我們將鳥兒尋找食物的過程和粒子濾波算法相比較:每個最優(yōu)解都是定義域里的一只鳥,將每只鳥都看成定義域里的一個微粒,這個粒子沒有質(zhì)量沒有體積,只有速度和位置。這些粒子的適應(yīng)值是由優(yōu)化函數(shù)所決定的,每個粒子在進行初始化的時候都有一個隨機的速度和隨機的位置,其中微粒的速度確定了微粒飛行的方向和距離。假設(shè),鳥類記錄了到其當(dāng)前位置所經(jīng)歷過的最佳位置。這是微粒的飛行經(jīng)驗。每個微粒都知道所有的微粒在整個鳥群中找到的最優(yōu)解。這是整個種群的經(jīng)驗。所以,這個問題解決的過程,可以看作是一群鳥,在一起合作尋找蟲子,蟲子的位置是最佳的解決方案。 粒子
9、濾波算法反映的是鳥群中信息的共享。可以看出,粒子濾波算法是簡化的社會系統(tǒng)的仿真。在1995年,J.Kennedy和R.C.Eberhart首次提出粒子濾波算法。這種算法是一種基于群體的優(yōu)化技術(shù),通過一組群體在搜索空間進行搜索。并且它不需要梯度信息,對問題的依賴性小,概念簡單,程序易實現(xiàn),參數(shù)較少。所以自從PSO粒子濾波算法誕生之日起就引來了各個國家的研究人員的關(guān)注,掀起了一股研究熱潮,在諸多領(lǐng)域?qū)W科得到了成功的應(yīng)用。由于粒子濾波算法研究歷史尚短,算法的理論基礎(chǔ)比較薄弱,其理論研究和實踐應(yīng)用范圍還都需要進一步拓展。本課題正是在這樣一個背景下開展了對粒子濾波算法性能方面的研究和改進。1.2研究內(nèi)容
10、和實際意義粒子濾波算法從隨機解出發(fā),迭代來尋找問題的最優(yōu)解。通過答案的適應(yīng)度來評價解的品質(zhì)。其具有精度高,收斂快,實現(xiàn)容易等特點粒子濾波算法在各類優(yōu)化問題中應(yīng)用十分廣泛,如求解旅行商問題、背包問題、車間調(diào)度問題、自動目標(biāo)檢測、生物信號識別、基于粒子濾波算法的神經(jīng)網(wǎng)絡(luò)訓(xùn)練、物流配送中心選址等。2.粒子濾波算法2.1粒子濾波算法的起源粒子濾波算法的產(chǎn)生來源于簡化的社會模型。它是人們受到鳥群、魚群和我們?nèi)祟愖约旱纳鐣袨榈膯l(fā)而提出來的。大自然界中存在許多群居生活的生物,如魚群、鳥群。許多科學(xué)家對這種群居生活的生物的行為進行過大量研究。上世紀(jì)80年代,生物學(xué)家C.W.Reynolds提出了模擬鳥群飛
11、行的模型,這是一個影響力非常大的鳥群聚集模型。我們可以這么設(shè)定這個模型,每只鳥的運動只受它周圍的鳥兒的影響,每只鳥的運動都需要符合這三個規(guī)則:(1)避免碰撞:鳥兒的運動過程中不能和臨近的鳥兒發(fā)生碰撞;(2)速度一致:和周圍的鳥兒的平均速度相等;(3)向中心聚集:向周圍鳥群的平均位置運動。模擬實驗發(fā)現(xiàn)在初始時段處于隨機狀態(tài)的鳥通過自我組織逐漸聚集在一起,形成許多個小群落,并以同樣的速度運行,然后一些小的群落聚集在一起,形成了巨大的群落,群落可分散成若干小的群落。粒子的這些行為和現(xiàn)實生活中鳥類的飛行特性基本相同。從生物學(xué)觀點來看,一個鳥類的群體里所有的鳥兒一起起飛這個整體的行為是建立在每只鳥對周圍
12、的局部感知上面,這中間并不存在一個集中控制者。也就是說整個種群是組織起來的,但是沒有一個組織者,群體之間相互協(xié)調(diào)過程中也沒有一個協(xié)調(diào)者。人們在對于一個事情做出決定的時候,都是基于兩種信息:自己的經(jīng)歷和他人的意見。我們也可以這么理解,人們根據(jù)自己的經(jīng)驗和自己交際圈中他人的經(jīng)歷進行綜合考慮,做出決策。粒子濾波算法的核心思想就是種群中每個個體之間對自我經(jīng)歷的經(jīng)驗分享,有利于整個生物種群的進化。1995年,美國的J.Kennedy和R.C.Eberhart正式提出粒子濾波算法。 2.2粒子濾波算法算法原理和參數(shù)分析所有微粒的適應(yīng)值finess都是由函數(shù)所決定的,我們在初始化粒子的時候還會賦予他一個隨機
13、的初始速度來控制微粒飛行的方向和距離。所有的微粒都存儲了自己所經(jīng)歷過的所有的位置和其中的最優(yōu)的位置,這些存儲的數(shù)據(jù)都是屬于粒子自己的經(jīng)驗。每個粒子還存儲了整個粒子群中全部的粒子所經(jīng)歷過的所有的位置中最優(yōu)的點,這是粒子群的經(jīng)驗。粒子根據(jù)自己的經(jīng)驗和粒子群的經(jīng)驗來做繼續(xù)運動的方向和速度的決策。粒子濾波算法第一步隨機初始化一定數(shù)量的微粒,然后微粒們就開始跟著目前的最優(yōu)解的微粒運動搜索整個定義域,在不斷的迭代終尋找到整個空間的最好的位置。我們可以假設(shè),在D維空間中第i個粒子的位置是 ,它的速度是 ,每迭代一次,微粒都會跟蹤自身所找到的最好的位置和全局搜索到的最好的位置來更新自己,如下即粒子更新自己的公
14、式: (2.2.1) (2.2.2)方程2.2.1的右邊是有三部分相加而成,第一部分是慣性權(quán)重w和粒子在t時刻的速度的乘積,代表粒子有維持先前速度的趨勢,w是表示粒子對t時刻速度的繼承了多少,w的值在0到1之間;第二部分是粒子對本身經(jīng)驗的記憶,代表著粒子對本身歷史最佳的位置靠近的趨勢;第三部分是粒子間的協(xié)同合作和共享信息的粒子群的經(jīng)驗,代表粒子有向群體的最優(yōu)解的位置靠近的趨勢。w是慣性權(quán)重,r1和r2是0到1之間均勻分布的隨機數(shù)或者高斯隨機變量,c1和c2為學(xué)習(xí)因子。粒子濾波算法的性能根本上就是取決于算法中參數(shù)的設(shè)置,下面是粒子濾波算法中各個參數(shù)的設(shè)置原則:慣性權(quán)重w:慣性權(quán)重是粒子濾波算法中
15、非常重要的改進參數(shù),慣性權(quán)重決定了粒子現(xiàn)在飛行的速度對前一時刻粒子飛行速度的繼承程度,慣性權(quán)重的更改可以用來平衡粒子濾波算法在整個優(yōu)化函數(shù)定義區(qū)間內(nèi)的搜索能力和對于某個局部區(qū)間內(nèi)的搜索能力。慣性權(quán)重的取值越小,算法對于整個定義域的搜索能力越弱,對局部的精細(xì)搜索能力越強,慣性權(quán)重越大,算法對局部的搜索能力越強,對于整個定義域的搜索能力就越弱。因此,慣性權(quán)重取恰當(dāng)?shù)闹?,可以提高算法性能,減少迭代次數(shù),提高算法尋找最優(yōu)解的能力,減少程序運行的時間。但是,要想達(dá)到算法性能最優(yōu),還存在一定的難度,因為當(dāng)慣性權(quán)重的取值較大時,有利于全局搜索,雖然收斂速度快,但是不易得到比較精確的解;慣性權(quán)重值較小時有利于
16、局部搜索和得到更為精確的解,但是收斂速度慢而且容易陷入局部極值。w的取值范圍是0到1之間。粒子數(shù):即粒子的數(shù)量,根據(jù)要解決的問題決定。一般來說取1530個足夠,對于非常簡單的優(yōu)化問題810個粒子就可以,比較復(fù)雜的函數(shù)則需要50個以上的粒子。粒子的維度d:即未知數(shù)個數(shù)。粒子范圍:優(yōu)化問題的定義域。學(xué)習(xí)因子:學(xué)習(xí)因子決定了粒子本身的經(jīng)驗和群體經(jīng)驗對于粒子運動的影響,反應(yīng)了粒子之間的經(jīng)驗交流。學(xué)習(xí)因子,顧名思義,就是粒子的學(xué)習(xí)能力,粒子的學(xué)習(xí)能力包括粒子對于自己經(jīng)歷的經(jīng)驗總結(jié)和整個種群中優(yōu)秀個體的學(xué)習(xí)能力。如果設(shè)置較大或者較小的c1、c2值都不利于粒子的探索。在搜索的末期,粒子應(yīng)該避免陷入局部極值。
17、通常取c1=c2=2,也可以取其他值,一般來說c1和c2的值在1到2.5之間。其他參數(shù):粒子濾波算法中參數(shù)較少,所以每個參數(shù)的設(shè)置對算法性能有較大的影響,種群大?。戳W訑?shù)目),最大迭代次數(shù)對于算法的影響也是非常大的,一般的,迭代次數(shù)和粒子數(shù)目都是和求得的解的精確程度是正相關(guān)的。但是問題并不是絕對的,因為算法本質(zhì)是一種隨機求解的算法,即使設(shè)置相同的參數(shù),每次求得的結(jié)果也是不同的。如果對于多峰函數(shù),粒子濾波算法還有可能陷入局部最優(yōu)解。粒子的數(shù)目也不是越多越好,關(guān)鍵是在于我們合理搭配各個參數(shù),這樣才能求得更精確的解。2.3粒子濾波算法流程如圖2.3是粒子濾波算法的流程圖:圖2.3 粒子濾波算法流程
18、圖基本粒子濾波算法的基本步驟如下:(1) 初始化種群中所有的微粒所在位置和運動速度,賦兩個隨機值給這兩個量;(2) 計算全部粒子的適應(yīng)值,將所有粒子所經(jīng)過的所有位置的最優(yōu)解存儲于pbest中,將所有pbest中的最優(yōu)解賦予gbest。(3) 利用下面的方程來控制微粒速度、位移的改變;(4) 對于每個粒子,將其目前所在的適應(yīng)值與最優(yōu)解pbest進行比較,如果適應(yīng)值較好,則將適應(yīng)值賦給最優(yōu)解pbest;(5) 比較pbest和gbest,將更優(yōu)的解賦給gbest;(6) 如果滿足迭代的終止次數(shù),停止搜索,輸出gebst,否則返回步驟(3)繼續(xù)運行算法。輸出得到的結(jié)果2.4標(biāo)準(zhǔn)粒子濾波算法舉例測試函
19、數(shù): 通過matlab我們可以得到這個函數(shù)的圖象如圖2.4.1所示:圖2.4.1 函數(shù)圖像該函數(shù)的極值是在(0,0)處, 我們在運行程序的時候得到xm,fv,r三個值,其中r表示得到點到的最優(yōu)解的距離,我們把整個程序重復(fù)運行500次,把得到的r做成柱狀圖。取40個粒子,c1=c2=2,慣性權(quán)重w=0.78,迭代次數(shù)M=100,可以得到一組解,然后將這個程序循環(huán)500次,得到500組解,并且將500次的r做成柱狀圖,如圖2.4.2所示:圖2.4.2 M=100時程序運行結(jié)果柱狀圖里每個柱從左到右表示的意思分布是r在,以上這十個區(qū)間以內(nèi)的頻數(shù),我們可以觀察到r有一大半的數(shù)量級是的,可是還有30%多
20、粒子的r是在這個數(shù)量級的這次M=1000的時候迭代500次得到的r的分布柱狀圖2.4.3 :圖2.4.3 M=1000時程序運行結(jié)果我們可以看到,當(dāng)M=1000的時候,r的所有的值都是處于數(shù)量級的,并且大部分都是在以下,可以說增加迭代次數(shù)M,r的取值更小,也就是我們求出來的解距離最優(yōu)值更近,算法的性能得到的明顯的提高。但是,是不是M的值可以無限度的提高從而優(yōu)化算法的性能呢?下面我們將迭代次數(shù)M設(shè)置為5000,然后將程序運行500次,得到r的分布圖如圖2.4.4:圖2.4.4 M=5000時得到的r的分布圖我們可以看到r在各個區(qū)間內(nèi)的取值變化并不大,也就是說增加迭代次數(shù)到5000的時候算法的性能
21、并沒有多大的提高,只是增加了程序運行中的計算量。無限次的迭代并不能無限度的提高算法的性能,算法進行過程中迭代1000次已經(jīng)是足夠的了。一般來說,各種優(yōu)化算法都是有各自的局限性。我們需要做的就是改良參數(shù)的搭配,引入其他參數(shù)來改進粒子濾波算法。3.粒子濾波算法性能和改進3.1標(biāo)準(zhǔn)粒子濾波算法在算法的改進這一節(jié)中有關(guān)r的柱狀圖中從左到右共11欄的意義分別是:010-30,10-3010-27,10-2710-24,10-2410-21,10-2110-18,10-1810-15,10-1510-12,10-1210-9,10-910-6,10-610-3,10-31。這一節(jié)中我們用的測試函數(shù)是:函數(shù)
22、圖象如圖3.1.1:圖3.1.1 函數(shù)2圖象此函數(shù)的最小點是,最小值是0。這個函數(shù)用標(biāo)準(zhǔn)粒子濾波算法,粒子數(shù)目N=40,學(xué)習(xí)因子c1=c2=2,慣性權(quán)重w=0.78,迭代次數(shù)M=1000; 程序運行500次得到的r的分布柱狀圖是圖3.1.2:圖3.1.2 標(biāo)準(zhǔn)粒子濾波算法程序運行結(jié)果我們計算得到的500個r的平均值是3.0562x10-11。因為這個函數(shù)比較簡單,所以得到的r也比較小,大部分r在這個區(qū)間內(nèi)。3.2粒子濾波算法的改進3.2.1帶壓縮因子的粒子濾波算法學(xué)習(xí)因子c1和c2反應(yīng)粒子群中微粒間信息的交流和共享。當(dāng)c1的取值較大時,粒子會具有較強的局部搜索能力,而c2值較大時,粒子會過早的
23、收斂。為了更好的控制粒子的飛行速度,使算法對于全局的搜索能力和對于局部的搜索能力達(dá)到更加平衡的效果,Clerc構(gòu)造了帶壓縮因子的粒子濾波算法,其速度公式更改為: 為了使算法更好的求解,c1與c2的和要求大于4。粒子數(shù)目N=30,c1=2.8,c2=1.3,迭代次數(shù)M=1000的時候,程序運行500次,得到的柱狀圖如圖3.2.1:圖3.2.1 壓縮因子粒子濾波算法程序運行結(jié)果我們得到的500個r的平均值是6.2548x10-22,通過圖3.2.1可以看到算法得到的結(jié)果已經(jīng)明顯改善,不但r的分布更加集中,而且80%以上的粒子都是在區(qū)間范圍內(nèi)的。3.2.2線性遞減權(quán)重的粒子濾波算法較大的慣性權(quán)重可以
24、控制微粒進行全局的大范圍的探索,而較小的慣性權(quán)重則使算法更加精細(xì)的搜索更小的范圍,使算法的結(jié)果更加收斂。因此,針對粒子濾波算法容易早熟以及算法后期在全局最優(yōu)解附近的震蕩現(xiàn)象,我們可以采用線性變化的權(quán)重,讓慣性權(quán)重從最大值線性減小到最小值,這樣w隨著算法迭代的進行的變化公式為:,其中、分別指w的最大值和最小值,t表示當(dāng)前迭代次數(shù),表示最大迭代次數(shù),通常取=0.9,=0.4。這樣粒子群更新速度和位移的公式還是2.2.1和2.2.2,不過又加上了一個w更新的公式:。同樣采用上面的測試函數(shù): 取N=40,c1=c2=2,慣性權(quán)重最大值取0.9,最小值取0.4,我們得到的r的分布圖如圖3.2.2所示:圖
25、3.2.2 線性遞減慣性權(quán)重粒子濾波算法程序運行結(jié)果500個r的平均值為5.2360x10-25,其中絕大部分r的取值都在區(qū)間內(nèi),大部分在區(qū)間內(nèi)。比標(biāo)準(zhǔn)粒子濾波算法精確的多,也比帶有壓縮因子的粒子濾波算法更加精確。但是可以看到r更加分散了,分散在兩個區(qū)間內(nèi),所以我們可以說,對于例子中的函數(shù),線性遞減的粒子濾波算法是不夠穩(wěn)定的。就這個函數(shù)而言,線性遞減權(quán)重粒子濾波算法得到的非常精確的最優(yōu)解,但是因為權(quán)重的線性遞減matlab多計算了一次,所以這個算法所對應(yīng)的程序在matlab中運行速度明顯比標(biāo)準(zhǔn)粒子濾波算法慢。3.2.3自適應(yīng)權(quán)重法下面我們采用一種非線性變化的慣性權(quán)重來平衡算法對于對全局和局部優(yōu)
26、化搜索能歷:上式中的表示w的最大值、表示的是w的最小值,f表示粒子當(dāng)前目標(biāo)函數(shù)值,表示所有粒子的平均值,表示目標(biāo)最小值。在這個粒子濾波算法改進方法中,目標(biāo)函數(shù)在最優(yōu)解的變化影響改變慣性權(quán)重的值,所以我們把他稱為自適應(yīng)權(quán)重法。這種方法得到的r的500次結(jié)果做出來的圖象如圖3.2.3:圖3.2.3 自適應(yīng)權(quán)重粒子濾波算法程序運行結(jié)果自適應(yīng)權(quán)重法所得到的500個r的平均值是3.0589x10-28,所有的r全部是位于區(qū)間內(nèi)的,其中有一部分是在區(qū)間內(nèi),自適應(yīng)權(quán)重法比線性遞減權(quán)重法得到的最優(yōu)解的精度更高,也更加集中。3.2.4隨機權(quán)重法將標(biāo)準(zhǔn)粒子濾波算法中的慣性權(quán)重設(shè)定為隨機數(shù),而且隨機數(shù)是復(fù)合某種隨機
27、分布的(例如高斯分布),這樣可以減輕一部分w線性遞減的不足。首先,如果在微粒尋找初期就接近了嘴有點,隨機的w可能會產(chǎn)生比較小的w,這樣可以加快算法在這個點的收斂速度。另外,如果算法迭代初期得不到最優(yōu)解,并且w是線性遞減的,那么算法就無法收斂到這個最好的點,而隨機生成的w將會克服這種局限性。w的計算公式:其中N(0,1)表示符合正態(tài)分布的隨機數(shù),rand(0,1)表示0到1之間的隨機數(shù)。這個算法取40個粒子,學(xué)習(xí)因子c1=c2都取2,慣性權(quán)重的平均值的最大值取0.8,慣性權(quán)重的平均值的最小值取0.5,隨機權(quán)重平均值方差取0.2,每進行一次算法要迭代5000次,然后將程序運行1000次,得到100
28、0個r,r的分布圖如3.2.4所示:圖3.2.4 隨機權(quán)重粒子濾波算法程序運行結(jié)果我們得到的500個r的平均值是8.0234x10-22,從上圖中我們可以看出來,隨機權(quán)重法相對于標(biāo)準(zhǔn)粒子濾波算法也有了較大的改善,整個圖中r集中在區(qū)間內(nèi),但是相比較前幾種改進方法,隨機權(quán)重法還不算太精確,而且隨機權(quán)重法得到的r的分布也是比較分散的,說明對于測試函數(shù)來說,隨機權(quán)重法也不是一個非常穩(wěn)定的算法3.2.5同步變化學(xué)習(xí)因子法這種改進方法是把兩個學(xué)習(xí)因子設(shè)定在一個范圍,當(dāng)算法進行迭代到第t次的時候,兩個學(xué)習(xí)因子的取值是:這樣學(xué)習(xí)因子就隨著迭代次數(shù)不斷的變化,這樣運行程序之后得到的結(jié)果如圖2.3.5所示:圖2.
29、3.5 同步學(xué)習(xí)因子的粒子濾波算法從圖中我們可以看到大部分的r在區(qū)間內(nèi),計算500個r的平均值是5.1287x10-28,對于這個函數(shù)來說,同步變化的學(xué)習(xí)因子粒子濾波算法也是一種非常好的改進方法。3.2.6異步變化的學(xué)習(xí)因子法異步變化學(xué)習(xí)因子法,顧名思義,兩個學(xué)習(xí)因子隨著程序的運行算法的迭代而進行異步變化。這樣可以使得算法在一開始的時候粒子具有比較強的自我經(jīng)歷總結(jié)能力和較弱的群體經(jīng)驗學(xué)習(xí)能力。而在后期粒子就會具有更強的群體經(jīng)驗學(xué)習(xí)能力和較弱的自我經(jīng)歷總結(jié)能力。也就是說算法在前期可以更好的探索全局,后期更精細(xì)的收斂到整個問題的最優(yōu)解,學(xué)習(xí)因子的公式: , 我們一般設(shè)定c1的初始值=c2的終值=2
30、.5、c2的初始值=c1的終值=0.5,慣性權(quán)重w=0.9時,程序運行1000次得到的r的分布圖:圖3.2.6圖3.2.6 異步學(xué)習(xí)因子程序運行結(jié)果異步變化的學(xué)習(xí)因子粒子濾波算法是目前為止所有的PSO改進策略里比較好的一種,其對于標(biāo)準(zhǔn)粒子濾波算法已經(jīng)有了較大的改善,得到的r絕大部分位于區(qū)間內(nèi),通過圖3.2.6我們可以看到r的分布是非常集中的。500個r的平均值是2.7514x10-16,并且算法需要進行的計算量比較大。3.2.7二階粒子濾波算法在標(biāo)準(zhǔn)的粒子濾波算法中,粒子當(dāng)前飛行速度是粒子所處位置的函數(shù),而如果我們采用二階粒子濾波算法,粒子飛行速度的改變與微粒位置變化有關(guān),粒子的速度變化公式是
31、:根據(jù)算法的具體實現(xiàn)步驟,把這個速度公式帶入算法步驟中,不過這個算法中c1+c2的值最好在2附近。圖3.2.7是r的柱狀圖:圖3.2.7 二階粒子濾波算法程序運行結(jié)果從圖3.2.7中我們可以看到,二階粒子濾波算法得到的解大部分是在之間。所以說二階粒子濾波算法還不如普通的標(biāo)準(zhǔn)粒子濾波算法。我們可以通過引入一個振蕩來優(yōu)化二階粒子濾波算法。3.2.8二階振蕩粒子濾波算法這是一個漸近收斂的算法,我們?yōu)榱诉M一步提高粒子群的多樣性,現(xiàn)在在粒子群中引入一個振蕩環(huán)節(jié),用來改善算法全局收斂性。其速度更新方程為:其中是隨機數(shù)。在算法前期取, ,使得算法具有較強的整體搜索能力,算法后期取,使得算法漸進收斂。此算法的
32、步驟和標(biāo)準(zhǔn)粒子濾波算法有些差別,具體實現(xiàn)步驟如下:(1)初始化種群中所有的微粒所在位置和運動速度,賦兩個隨機值給這兩個量;(2)觀察每個粒子的適應(yīng)值,用pbest存儲微粒所經(jīng)歷最好的位置和適應(yīng)值,gbest存儲pbest的最好的值。(3)如果當(dāng)前的進化代數(shù)小于最大的進化代數(shù)的一半,根據(jù)下面的方差對粒子的速度和位置進化; 其中 , ;如果當(dāng)前進化代數(shù)大于或者等于最大迭代次數(shù)的1/2,根據(jù)下面的方程對粒子的速度和位置進行進化; 其中,;(4)將每個粒子的目前所在的適應(yīng)值與最優(yōu)解pbest進行比較,將更好的值賦給最優(yōu)解pbest;(5) 比較pbest和gbest,將更優(yōu)的解賦給gbest;(6)若
33、滿足停止條件,搜索終止,輸出結(jié)果,否則返回(3)繼續(xù)搜索此算法運行結(jié)果r的分布如圖3.2.8:圖3.2.8二階振蕩粒子濾波算法程序運行結(jié)果從圖中得到的結(jié)果我們可以看到,加入振蕩之后,二階振蕩粒子濾波算法比二階粒子濾波算法好了很多,并且比粒子濾波算法更好。但是我們可以看到得到的r是非常分散的,這說明這種改進方法并不穩(wěn)定。r的平均值是7.2158x10-18,但是算法的運算量顯著增大,程序運行非常緩慢。4.總結(jié)和展望對于一個復(fù)雜函數(shù)的極值,我們在物理學(xué)、數(shù)學(xué)中不等式的證明、市場營銷問題、蜂房的最優(yōu)化問題、現(xiàn)代軍事戰(zhàn)爭、物流管理等實際問題中有著廣泛的應(yīng)用。粒子濾波算法作為一個新的求極值的算法,有關(guān)它
34、的研究還是處于初級階段。粒子濾波算法可以和遺傳算法,神經(jīng)計算,模糊系統(tǒng),螞蟻算法,模擬退火算法等各種算法結(jié)合適應(yīng),它的應(yīng)用是非常廣泛的。本文中只是就其中的一部分問題進行了相關(guān)的研究,還有許多領(lǐng)域需要我們進一步的研究和開拓。參考文獻(xiàn):1 陳水利,蔡國榮,等.粒子濾波算法加速因子的非線性策略研究J.長江大學(xué)學(xué)報(自然版)理工卷,2007,14(4):142 崔紅梅,朱慶保,等.微粒群算法中的參數(shù)選擇 J.計算機應(yīng)用,2007,23(23):89913 馮翔,崔國龍,郭文忠.PSO中加速因子的設(shè)置與試驗J.集美大學(xué)學(xué)報,2006,11(2):1461514 韓
35、江洪,李正榮,魏振春.一種自適應(yīng)粒子濾波算法及其仿真研究J.系統(tǒng)仿真學(xué)報,2006,18(10):296929715 胡建秀,曾建潮.具有隨機慣性權(quán)重的粒子濾波算法J.計算機的仿真,2007,22(8):1631676 余炳輝,王金文.隨機攝動粒子濾波算法J.計算機工程與應(yīng)用,2008,22(11):79837 李士勇,等.蟻群算法及應(yīng)用M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004:55588 崔紅梅,陳國龍.微粒群算法中慣性權(quán)重的調(diào)整策略J.計算機仿真,2007,22(7):22329 龔純,王正林.精通MATLAB最優(yōu)化計算M.北京:電子工業(yè)出版社,2
36、009,26931210 李麗,牛奔.粒子濾波算法M(第一版).北京:冶金工業(yè)出版社,2009.10,51011 欒麗君,譚麗靜,牛奔.基于粒子濾波算法與差分進化算法算法的一種新型全局優(yōu)化算法J.2007,33(5):30835512 王俊偉.粒子濾波算法的改進和應(yīng)用D.沈陽:東北大學(xué)博士學(xué)位論文,200613 俞歡軍,許寧.混合粒子濾波算法研究J.信息與控制,2005,8:40841114 高海冰.基于粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法研究J.電子學(xué)報,2004.31(8).151715 楊靜宇.群體智能算法及其應(yīng)用M(第二版).北京:水利水電出版社.2006.2329附錄:程序1:函數(shù)表達(dá)式程序
37、:fitness.mfunction F = fitness(x)F=0.5+(sin(x(1)2+x(2)2)2-0.5)/(1.0+0.001*(x(1)2+x(2)2)2); % if x(1)=0% x(1)=x(1)+1e-09;% end% if x(2)=0% x(2)=x(2)+1e-09;% end%F=-(sin(10*x(1)*sin(10*x(2)/(100*x(1)*x(2)-0.45*cos(5*x(1)*cos(5*x(2);%F=-(0.5-(sin(x(1)2+x(2)2)2-0.5)/(1.0+0.001*(x(1)2+x(2)2)2)*exp(-0.01*
38、(x(1)2+x(2)2);%F=-(sin(10*x(1)/(10*x(1)*(sin(10*x(2)/(10*x(2);程序2:粒子濾波算法程序PSO.mfunction xm,fv,r = PSO(fitness,N,c1,c2,w,M,D)%´ýÓÅ»¯µÄÄ¿±êº¯Êý£ºfitness%Á£×ÓÊýÄ¿£º
39、;N%ѧϰÒò×Ó1£ºc1%ѧϰÒò×Ó2£ºc2%¹ßÐÔȨÖØ£ºw%×î´óµü´ú´ÎÊý£ºM%ÎÊÌ
40、26;µÄάÊý£ºD£¨¾ÍÊÇÓÐD¸öδ֪Êý£©%Ä¿±êº¯ÊýÈ¡×îСֵµÄ×Ô±äÁ
41、¿Öµ£ºxm%Ä¿±êº¯ÊýµÄ×îСֵ£ºfvformat long; %-³õʼ»¯ÖÖȺµÄ¸öÌå- for i=1:N for j=1:D x(i,j)=randn; %Ë
42、30;»ú³õʼ»¯Î»Öà v(i,j)=randn; %Ëæ»ú³õʼ»¯ËÙ¶È end end %-ÏȼÆËã¸÷¸öÁ£×ÓµÄÊÊÓ
43、¦¶È£¬²¢³õʼ»¯PiºÍPg- for i=1:N p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg = x(N,:); %PgΪȫ¾Ö×îÓÅ for i=1:(N-1) if fitness(x(i,:)<fitness(pg) pg=x(i,:); end end %-½
44、48;ÈëÖ÷Ҫѻ·£¬°´ÕÕ¹«Ê½ÒÀ´Îµü´ú- for t=1:M for i=1:N v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)<p(i)
45、p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)<fitness(pg) pg=y(i,:); end end Pbest(t)=fitness(pg);endxm = pg'fv = fitness(pg);r=(dot(xm,xm)0.5;%計算得到的點到(0,0)的距離程序3:帶壓縮因子的粒子濾波算法:YSPSO.mfunction xm,fv,r = YSPSO(fitness,N,c1,c2,M,D)phi = c1 + c2;if phi <= 4 disp('c1 Óë c2 µ
46、;Ä ºÍ ±Ø Ðë ´ó ÓÚ 4 £¡'); xm = NaN; fv = NaN; return;endformat long; %-³õʼ»¯ÖÖȺµÄ¸öÌå- for i=1:N for j=1:D x(i,j)=randn; %Ëæ»ú
47、79;õʼ»¯Î»Öà v(i,j)=randn; %Ëæ»ú³õʼ»¯ËÙ¶È end end %-ÏȼÆËã¸÷¸öÁ£×ÓµÄÊÊÓ¦¶È
48、£¬²¢³õʼ»¯PiºÍPg- for i=1:N p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg = x(N,:); %PgΪȫ¾Ö×îÓÅ for i=1:(N-1) if fitness(x(i,:)<fitness(pg) pg=x(i,:); end end %-½øÈë
49、14;÷Ҫѻ·£¬°´ÕÕ¹«Ê½ÒÀ´Îµü´ú- for t=1:M for i=1:N ksi = 2 / abs(2 - phi - sqrt(phi2 - 4*phi); v(i,:) = v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); v(i,:) = ksi*v(i,:); x
50、(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)<p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)<fitness(pg) pg=y(i,:); end end Pbest(t)=fitness(pg);endxm = pg'fv = fitness(pg);r=(dot(xm,xm)0.5; 程序4:線性權(quán)重遞減的粒子濾波算法:LinWPSO.mfunction xm,fv,r = LinWPSO(fitness,N,c1,c2,wmax,wmin,M,D)format long; %-&
51、#179;õʼ»¯ÖÖȺµÄ¸öÌå- for i=1:N for j=1:D x(i,j)=randn; %Ëæ»ú³õʼ»¯Î»Öà v(i,j)=randn; %Ëæ»ú³õʼ»¯Ë
52、217;¶È end end %-ÏȼÆËã¸÷¸öÁ£×ÓµÄÊÊÓ¦¶È£¬³õʼ»¯PiºÍPg- for i=1:N p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg=x(N,:); %PgΪ
53、;È«¾Ö×îÓÅ for i=1:(N-1) if fitness(x(i,:)<fitness(pg) pg=x(i,:); end end %-½øÈëÖ÷Ҫѻ·£¬°´ÕÕ¹«Ê½ÒÀ´Îµü´ú-
54、for t=1:M for i=1:N w = wmax - (t-1)*(wmax-wmin)/(M-1); v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)<p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)<fitness(pg) pg=y(i,:); end end Pbest(t)=fitness(pg);endxm = pg'fv = fitness(pg);r=
55、(dot(xm,xm)0.5;程序5:自適應(yīng)權(quán)重法SAPSO.mfunction xm,fv,r = SAPSO(fitness,N,c1,c2,wmax,wmin,M,D)format long;%-³õʼ»¯ÖÖȺµÄ¸öÌå- for i=1:N for j=1:D x(i,j)=randn; %Ëæ»ú³õʼ»¯Î
56、»Öà v(i,j)=randn; %Ëæ»ú³õʼ»¯ËÙ¶È end end %-ÏȼÆËã¸÷¸öÁ£×ÓµÄÊÊÓ¦¶È- for i=1:N p(i)=fitness(x(i,:); y(i,:)
57、=x(i,:); end pg=x(N,:); %PgΪȫ¾Ö×îÓÅ for i=1:(N-1) if fitness(x(i,:)<fitness(pg) pg=x(i,:); end end %-½øÈëÖ÷Ҫѻ·- for t=1:M for j=1:N fv(j) = fitness(x(j,:); end fvag = sum(fv)/N; fmin
58、 = min(fv); for i=1:N if fv(i) <= fvag w = wmin + (fv(i)-fmin)*(wmax-wmin)/(fvag-fmin); else w = wmax; end v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*rand*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)<p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)<fitness(pg) pg=y(i,:); end end e
59、nd xm = pg' fv = fitness(pg);r=(dot(xm,xm)0.5; 程序6:隨機權(quán)重法:function xm,fv,r = RandWPSO(fitness,N,c1,c2,mean_max,mean_min,sigma,M,D) format long; %-³õʼ»¯ÖÖȺµÄ¸öÌå- for i=1:N for j=1:D x(i,j)=randn; %Ëæ»
60、ú³õʼ»¯Î»Öà v(i,j)=randn; %Ëæ»ú³õʼ»¯ËÙ¶È end end %-ÏȼÆËã¸÷¸öÁ£×ÓµÄÊÊÓ¦
61、82;È£¬²¢³õʼ»¯PiºÍPg- for i=1:N p(i)=fitness(x(i,:); y(i,:)=x(i,:); end pg = x(N,:); %PgΪȫ¾Ö×îÓÅ for i=1:(N-1) if fitness(x(i,:)<fitness(pg) pg=x(i,:); end end %-½øÈ
62、ëÖ÷Ҫѻ·£¬°´ÕÕ¹«Ê½ÒÀ´Îµü´ú- for t=1:M for i=1:N miu = mean_min + (mean_max - mean_min)*rand(); w = miu + sigma*randn(); v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:)+c2*ra
63、nd*(pg-x(i,:); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:)<p(i) p(i)=fitness(x(i,:); y(i,:)=x(i,:); end if p(i)<fitness(pg) pg=y(i,:); end end Pbest(t)=fitness(pg);endxm = pg'fv = fitness(pg);r=(dot(xm,xm)0.5; 程序7.同步變化學(xué)習(xí)因子的粒子濾波算法:LnCPSO.mfunction xm,fv,r = LnCPSO(fitness,N,cmax,cmin,w,M,D) format long; %-³õʼ»¯ÖÖȺµÄ¸öÌå- for i=1:N for j=1:D x(i,j)=randn; %Ëæ»ú³õʼ»¯Î»Öà v(i,j)=randn; %&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共建電站合同范本
- 場地服務(wù)合作合同范本
- 汽車出口貿(mào)易合同范本
- 車輛抵押欠款合同范本
- 在農(nóng)村買土地合同范本
- 醫(yī)藥銷售人員合同范本
- 單位圍墻改造工程合同范本
- 勞動合同范本小企業(yè)
- 專家工作合同范本模板范文
- 合同范例電視劇
- 2024版Visio入門到精通完整教程
- 2024年團校考試入團考試題庫及答案
- 西鐵城手表H149機芯中文使用說明書
- 2024年執(zhí)業(yè)藥師繼續(xù)教育專業(yè)答案
- 非ST段抬高型急性冠脈綜合征診斷和治療指南(2024)解讀
- 報廢汽車拆解項目可行性研究報告
- 小學(xué)三年級下冊英語(牛津上海一起點)全冊語法知識點總結(jié)
- 2024年計算機考試-ISTQB認(rèn)證考試近5年真題附答案
- 云南省2021年中考生物真題試卷(+答案+解析)
- 腦出血中醫(yī)診療方案
- 2022年1月福建省合格性考試生物真題卷
評論
0/150
提交評論