粒子濾波算法性能研究本科畢業(yè)設(shè)計(jì).docx_第1頁(yè)
粒子濾波算法性能研究本科畢業(yè)設(shè)計(jì).docx_第2頁(yè)
粒子濾波算法性能研究本科畢業(yè)設(shè)計(jì).docx_第3頁(yè)
粒子濾波算法性能研究本科畢業(yè)設(shè)計(jì).docx_第4頁(yè)
粒子濾波算法性能研究本科畢業(yè)設(shè)計(jì).docx_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本科畢業(yè)設(shè)計(jì)題 目 粒子濾波算法性能研究 學(xué) 院 管理科學(xué)與工程學(xué)院 專 業(yè) 電子信息工程 60安徽財(cái)經(jīng)大學(xué)管理科學(xué)與工程學(xué)院本科畢業(yè)論文摘要粒子濾波算法是一種基于社會(huì)型生物群體智能的全局搜索算法,粒子濾波算法通過(guò)粒子群中粒子間的合作在復(fù)雜的搜索空間中找到全局的最優(yōu)解。這種算法具有易理解、易實(shí)現(xiàn)、參數(shù)少、搜索能力強(qiáng)等特點(diǎn),受到了學(xué)術(shù)界廣泛關(guān)注,已經(jīng)成為發(fā)展最快的優(yōu)化算法之一。論文介紹了粒子濾波算法的原理、特點(diǎn)。圍繞粒子濾波算法的原理特點(diǎn)和參數(shù)的設(shè)置進(jìn)行了各方面的闡述和論證,利用程序迭代多次觀察粒子分布的方法,系統(tǒng)的分析了粒子濾波算法中的各個(gè)參數(shù),論證評(píng)估了各種改進(jìn)粒子濾波算法的方法的性能和可行性。最后對(duì)粒子濾波算法的研究和應(yīng)用提出了一些建議和展望。關(guān)鍵詞:粒子濾波算法;改進(jì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 through 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, characteristics 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 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;parameter settings安徽財(cái)經(jīng)大學(xué)管理科學(xué)與工程學(xué)院本科畢業(yè)論文目錄1.引言21.1相關(guān)背景21.2研究?jī)?nèi)容和實(shí)際意義22.粒子濾波算法22.1粒子濾波算法的起源22.2粒子濾波算法算法原理和參數(shù)分析22.3粒子濾波算法流程22.4標(biāo)準(zhǔn)粒子濾波算法舉例23.粒子濾波算法性能和改進(jìn)23.1標(biāo)準(zhǔn)粒子濾波算法23.2粒子濾波算法的改進(jìn)23.2.1帶壓縮因子的粒子濾波算法23.2.2線性遞減權(quán)重的粒子濾波算法23.2.3自適應(yīng)權(quán)重法23.2.4隨機(jī)權(quán)重法23.2.5同步變化學(xué)習(xí)因子法23.2.6異步變化的學(xué)習(xí)因子法23.2.7二階粒子濾波算法23.2.8二階振蕩粒子濾波算法24.總結(jié)和展望2安徽財(cái)經(jīng)大學(xué)管理科學(xué)與工程學(xué)院本科畢業(yè)論文粒子濾波算法性能研究1.引言1.1相關(guān)背景最近幾年,人們通過(guò)對(duì)社會(huì)型生物的群體行為觀察模擬,提出了一種新的生物啟發(fā)式計(jì)算方法群體智能算法。群體智能算法中最具有代表性的兩種算法是基于螞蟻尋找路徑的螞蟻算法和通過(guò)鳥類覓食行為總結(jié)的粒子濾波算法。自從群體智能算法提出以來(lái),引發(fā)了各個(gè)領(lǐng)域?qū)<覀兊膹V泛關(guān)注,成為了人工智能以及電子,生物,經(jīng)濟(jì)等尖端的跨學(xué)科研究領(lǐng)域。在大自然中我們經(jīng)??梢钥吹竭@樣想現(xiàn)象:一群鳥尋找食物,這個(gè)過(guò)程是隨機(jī)的。在搜索區(qū)域里有一只蟲子,任何一只鳥不知道蟲子在哪里,但是他們知道自己當(dāng)前所處位置到蟲子的距離。鳥群找到蟲子最佳方法是什么?最簡(jiǎn)單的方法是從離蟲子最近的鳥周圍的區(qū)域開始搜索,利用搜索過(guò)程中的離蟲子最近的那只鳥的經(jīng)驗(yàn)以及每只鳥自身的經(jīng)驗(yàn),鳥群便能很快找到蟲子的位置。我們將鳥兒尋找食物的過(guò)程和粒子濾波算法相比較:每個(gè)最優(yōu)解都是定義域里的一只鳥,將每只鳥都看成定義域里的一個(gè)微粒,這個(gè)粒子沒(méi)有質(zhì)量沒(méi)有體積,只有速度和位置。這些粒子的適應(yīng)值是由優(yōu)化函數(shù)所決定的,每個(gè)粒子在進(jìn)行初始化的時(shí)候都有一個(gè)隨機(jī)的速度和隨機(jī)的位置,其中微粒的速度確定了微粒飛行的方向和距離。假設(shè),鳥類記錄了到其當(dāng)前位置所經(jīng)歷過(guò)的最佳位置。這是微粒的飛行經(jīng)驗(yàn)。每個(gè)微粒都知道所有的微粒在整個(gè)鳥群中找到的最優(yōu)解。這是整個(gè)種群的經(jīng)驗(yàn)。所以,這個(gè)問(wèn)題解決的過(guò)程,可以看作是一群鳥,在一起合作尋找蟲子,蟲子的位置是最佳的解決方案。 粒子濾波算法反映的是鳥群中信息的共享??梢钥闯?,粒子濾波算法是簡(jiǎn)化的社會(huì)系統(tǒng)的仿真。在1995年,J.Kennedy和R.C.Eberhart首次提出粒子濾波算法。這種算法是一種基于群體的優(yōu)化技術(shù),通過(guò)一組群體在搜索空間進(jìn)行搜索。并且它不需要梯度信息,對(duì)問(wèn)題的依賴性小,概念簡(jiǎn)單,程序易實(shí)現(xiàn),參數(shù)較少。所以自從PSO粒子濾波算法誕生之日起就引來(lái)了各個(gè)國(guó)家的研究人員的關(guān)注,掀起了一股研究熱潮,在諸多領(lǐng)域?qū)W科得到了成功的應(yīng)用。由于粒子濾波算法研究歷史尚短,算法的理論基礎(chǔ)比較薄弱,其理論研究和實(shí)踐應(yīng)用范圍還都需要進(jìn)一步拓展。本課題正是在這樣一個(gè)背景下開展了對(duì)粒子濾波算法性能方面的研究和改進(jìn)。1.2研究?jī)?nèi)容和實(shí)際意義粒子濾波算法從隨機(jī)解出發(fā),迭代來(lái)尋找問(wèn)題的最優(yōu)解。通過(guò)答案的適應(yīng)度來(lái)評(píng)價(jià)解的品質(zhì)。其具有精度高,收斂快,實(shí)現(xiàn)容易等特點(diǎn)粒子濾波算法在各類優(yōu)化問(wèn)題中應(yīng)用十分廣泛,如求解旅行商問(wèn)題、背包問(wèn)題、車間調(diào)度問(wèn)題、自動(dòng)目標(biāo)檢測(cè)、生物信號(hào)識(shí)別、基于粒子濾波算法的神經(jīng)網(wǎng)絡(luò)訓(xùn)練、物流配送中心選址等。2.粒子濾波算法2.1粒子濾波算法的起源粒子濾波算法的產(chǎn)生來(lái)源于簡(jiǎn)化的社會(huì)模型。它是人們受到鳥群、魚群和我們?nèi)祟愖约旱纳鐣?huì)行為的啟發(fā)而提出來(lái)的。大自然界中存在許多群居生活的生物,如魚群、鳥群。許多科學(xué)家對(duì)這種群居生活的生物的行為進(jìn)行過(guò)大量研究。上世紀(jì)80年代,生物學(xué)家C.W.Reynolds提出了模擬鳥群飛行的模型,這是一個(gè)影響力非常大的鳥群聚集模型。我們可以這么設(shè)定這個(gè)模型,每只鳥的運(yùn)動(dòng)只受它周圍的鳥兒的影響,每只鳥的運(yùn)動(dòng)都需要符合這三個(gè)規(guī)則:(1)避免碰撞:鳥兒的運(yùn)動(dòng)過(guò)程中不能和臨近的鳥兒發(fā)生碰撞;(2)速度一致:和周圍的鳥兒的平均速度相等;(3)向中心聚集:向周圍鳥群的平均位置運(yùn)動(dòng)。模擬實(shí)驗(yàn)發(fā)現(xiàn)在初始時(shí)段處于隨機(jī)狀態(tài)的鳥通過(guò)自我組織逐漸聚集在一起,形成許多個(gè)小群落,并以同樣的速度運(yùn)行,然后一些小的群落聚集在一起,形成了巨大的群落,群落可分散成若干小的群落。粒子的這些行為和現(xiàn)實(shí)生活中鳥類的飛行特性基本相同。從生物學(xué)觀點(diǎn)來(lái)看,一個(gè)鳥類的群體里所有的鳥兒一起起飛這個(gè)整體的行為是建立在每只鳥對(duì)周圍的局部感知上面,這中間并不存在一個(gè)集中控制者。也就是說(shuō)整個(gè)種群是組織起來(lái)的,但是沒(méi)有一個(gè)組織者,群體之間相互協(xié)調(diào)過(guò)程中也沒(méi)有一個(gè)協(xié)調(diào)者。人們?cè)趯?duì)于一個(gè)事情做出決定的時(shí)候,都是基于兩種信息:自己的經(jīng)歷和他人的意見。我們也可以這么理解,人們根據(jù)自己的經(jīng)驗(yàn)和自己交際圈中他人的經(jīng)歷進(jìn)行綜合考慮,做出決策。粒子濾波算法的核心思想就是種群中每個(gè)個(gè)體之間對(duì)自我經(jīng)歷的經(jīng)驗(yàn)分享,有利于整個(gè)生物種群的進(jìn)化。1995年,美國(guó)的J.Kennedy和R.C.Eberhart正式提出粒子濾波算法。 2.2粒子濾波算法算法原理和參數(shù)分析所有微粒的適應(yīng)值finess都是由函數(shù)所決定的,我們?cè)诔跏蓟W拥臅r(shí)候還會(huì)賦予他一個(gè)隨機(jī)的初始速度來(lái)控制微粒飛行的方向和距離。所有的微粒都存儲(chǔ)了自己所經(jīng)歷過(guò)的所有的位置和其中的最優(yōu)的位置,這些存儲(chǔ)的數(shù)據(jù)都是屬于粒子自己的經(jīng)驗(yàn)。每個(gè)粒子還存儲(chǔ)了整個(gè)粒子群中全部的粒子所經(jīng)歷過(guò)的所有的位置中最優(yōu)的點(diǎn),這是粒子群的經(jīng)驗(yàn)。粒子根據(jù)自己的經(jīng)驗(yàn)和粒子群的經(jīng)驗(yàn)來(lái)做繼續(xù)運(yùn)動(dòng)的方向和速度的決策。粒子濾波算法第一步隨機(jī)初始化一定數(shù)量的微粒,然后微粒們就開始跟著目前的最優(yōu)解的微粒運(yùn)動(dòng)搜索整個(gè)定義域,在不斷的迭代終尋找到整個(gè)空間的最好的位置。我們可以假設(shè),在D維空間中第i個(gè)粒子的位置是 ,它的速度是 ,每迭代一次,微粒都會(huì)跟蹤自身所找到的最好的位置和全局搜索到的最好的位置來(lái)更新自己,如下即粒子更新自己的公式: (2.2.1) (2.2.2)方程2.2.1的右邊是有三部分相加而成,第一部分是慣性權(quán)重w和粒子在t時(shí)刻的速度的乘積,代表粒子有維持先前速度的趨勢(shì),w是表示粒子對(duì)t時(shí)刻速度的繼承了多少,w的值在0到1之間;第二部分是粒子對(duì)本身經(jīng)驗(yàn)的記憶,代表著粒子對(duì)本身歷史最佳的位置靠近的趨勢(shì);第三部分是粒子間的協(xié)同合作和共享信息的粒子群的經(jīng)驗(yàn),代表粒子有向群體的最優(yōu)解的位置靠近的趨勢(shì)。w是慣性權(quán)重,r1和r2是0到1之間均勻分布的隨機(jī)數(shù)或者高斯隨機(jī)變量,c1和c2為學(xué)習(xí)因子。粒子濾波算法的性能根本上就是取決于算法中參數(shù)的設(shè)置,下面是粒子濾波算法中各個(gè)參數(shù)的設(shè)置原則:慣性權(quán)重w:慣性權(quán)重是粒子濾波算法中非常重要的改進(jìn)參數(shù),慣性權(quán)重決定了粒子現(xiàn)在飛行的速度對(duì)前一時(shí)刻粒子飛行速度的繼承程度,慣性權(quán)重的更改可以用來(lái)平衡粒子濾波算法在整個(gè)優(yōu)化函數(shù)定義區(qū)間內(nèi)的搜索能力和對(duì)于某個(gè)局部區(qū)間內(nèi)的搜索能力。慣性權(quán)重的取值越小,算法對(duì)于整個(gè)定義域的搜索能力越弱,對(duì)局部的精細(xì)搜索能力越強(qiáng),慣性權(quán)重越大,算法對(duì)局部的搜索能力越強(qiáng),對(duì)于整個(gè)定義域的搜索能力就越弱。因此,慣性權(quán)重取恰當(dāng)?shù)闹?,可以提高算法性能,減少迭代次數(shù),提高算法尋找最優(yōu)解的能力,減少程序運(yùn)行的時(shí)間。但是,要想達(dá)到算法性能最優(yōu),還存在一定的難度,因?yàn)楫?dāng)慣性權(quán)重的取值較大時(shí),有利于全局搜索,雖然收斂速度快,但是不易得到比較精確的解;慣性權(quán)重值較小時(shí)有利于局部搜索和得到更為精確的解,但是收斂速度慢而且容易陷入局部極值。w的取值范圍是0到1之間。粒子數(shù):即粒子的數(shù)量,根據(jù)要解決的問(wèn)題決定。一般來(lái)說(shuō)取1530個(gè)足夠,對(duì)于非常簡(jiǎn)單的優(yōu)化問(wèn)題810個(gè)粒子就可以,比較復(fù)雜的函數(shù)則需要50個(gè)以上的粒子。粒子的維度d:即未知數(shù)個(gè)數(shù)。粒子范圍:優(yōu)化問(wèn)題的定義域。學(xué)習(xí)因子:學(xué)習(xí)因子決定了粒子本身的經(jīng)驗(yàn)和群體經(jīng)驗(yàn)對(duì)于粒子運(yùn)動(dòng)的影響,反應(yīng)了粒子之間的經(jīng)驗(yàn)交流。學(xué)習(xí)因子,顧名思義,就是粒子的學(xué)習(xí)能力,粒子的學(xué)習(xí)能力包括粒子對(duì)于自己經(jīng)歷的經(jīng)驗(yàn)總結(jié)和整個(gè)種群中優(yōu)秀個(gè)體的學(xué)習(xí)能力。如果設(shè)置較大或者較小的c1、c2值都不利于粒子的探索。在搜索的末期,粒子應(yīng)該避免陷入局部極值。通常取c1=c2=2,也可以取其他值,一般來(lái)說(shuō)c1和c2的值在1到2.5之間。其他參數(shù):粒子濾波算法中參數(shù)較少,所以每個(gè)參數(shù)的設(shè)置對(duì)算法性能有較大的影響,種群大?。戳W訑?shù)目),最大迭代次數(shù)對(duì)于算法的影響也是非常大的,一般的,迭代次數(shù)和粒子數(shù)目都是和求得的解的精確程度是正相關(guān)的。但是問(wèn)題并不是絕對(duì)的,因?yàn)樗惴ū举|(zhì)是一種隨機(jī)求解的算法,即使設(shè)置相同的參數(shù),每次求得的結(jié)果也是不同的。如果對(duì)于多峰函數(shù),粒子濾波算法還有可能陷入局部最優(yōu)解。粒子的數(shù)目也不是越多越好,關(guān)鍵是在于我們合理搭配各個(gè)參數(shù),這樣才能求得更精確的解。2.3粒子濾波算法流程如圖2.3是粒子濾波算法的流程圖:圖2.3 粒子濾波算法流程圖基本粒子濾波算法的基本步驟如下:(1) 初始化種群中所有的微粒所在位置和運(yùn)動(dòng)速度,賦兩個(gè)隨機(jī)值給這兩個(gè)量;(2) 計(jì)算全部粒子的適應(yīng)值,將所有粒子所經(jīng)過(guò)的所有位置的最優(yōu)解存儲(chǔ)于pbest中,將所有pbest中的最優(yōu)解賦予gbest。(3) 利用下面的方程來(lái)控制微粒速度、位移的改變;(4) 對(duì)于每個(gè)粒子,將其目前所在的適應(yīng)值與最優(yōu)解pbest進(jìn)行比較,如果適應(yīng)值較好,則將適應(yīng)值賦給最優(yōu)解pbest;(5) 比較pbest和gbest,將更優(yōu)的解賦給gbest;(6) 如果滿足迭代的終止次數(shù),停止搜索,輸出gebst,否則返回步驟(3)繼續(xù)運(yùn)行算法。輸出得到的結(jié)果2.4標(biāo)準(zhǔn)粒子濾波算法舉例測(cè)試函數(shù): 通過(guò)matlab我們可以得到這個(gè)函數(shù)的圖象如圖2.4.1所示:圖2.4.1 函數(shù)圖像該函數(shù)的極值是在(0,0)處, 我們?cè)谶\(yùn)行程序的時(shí)候得到xm,fv,r三個(gè)值,其中r表示得到點(diǎn)到的最優(yōu)解的距離,我們把整個(gè)程序重復(fù)運(yùn)行500次,把得到的r做成柱狀圖。取40個(gè)粒子,c1=c2=2,慣性權(quán)重w=0.78,迭代次數(shù)M=100,可以得到一組解,然后將這個(gè)程序循環(huán)500次,得到500組解,并且將500次的r做成柱狀圖,如圖2.4.2所示:圖2.4.2 M=100時(shí)程序運(yùn)行結(jié)果柱狀圖里每個(gè)柱從左到右表示的意思分布是r在,以上這十個(gè)區(qū)間以內(nèi)的頻數(shù),我們可以觀察到r有一大半的數(shù)量級(jí)是的,可是還有30%多粒子的r是在這個(gè)數(shù)量級(jí)的這次M=1000的時(shí)候迭代500次得到的r的分布柱狀圖2.4.3 :圖2.4.3 M=1000時(shí)程序運(yùn)行結(jié)果我們可以看到,當(dāng)M=1000的時(shí)候,r的所有的值都是處于數(shù)量級(jí)的,并且大部分都是在以下,可以說(shuō)增加迭代次數(shù)M,r的取值更小,也就是我們求出來(lái)的解距離最優(yōu)值更近,算法的性能得到的明顯的提高。但是,是不是M的值可以無(wú)限度的提高從而優(yōu)化算法的性能呢?下面我們將迭代次數(shù)M設(shè)置為5000,然后將程序運(yùn)行500次,得到r的分布圖如圖2.4.4:圖2.4.4 M=5000時(shí)得到的r的分布圖我們可以看到r在各個(gè)區(qū)間內(nèi)的取值變化并不大,也就是說(shuō)增加迭代次數(shù)到5000的時(shí)候算法的性能并沒(méi)有多大的提高,只是增加了程序運(yùn)行中的計(jì)算量。無(wú)限次的迭代并不能無(wú)限度的提高算法的性能,算法進(jìn)行過(guò)程中迭代1000次已經(jīng)是足夠的了。一般來(lái)說(shuō),各種優(yōu)化算法都是有各自的局限性。我們需要做的就是改良參數(shù)的搭配,引入其他參數(shù)來(lái)改進(jìn)粒子濾波算法。3.粒子濾波算法性能和改進(jìn)3.1標(biāo)準(zhǔn)粒子濾波算法在算法的改進(jì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é)中我們用的測(cè)試函數(shù)是:函數(shù)圖象如圖3.1.1:圖3.1.1 函數(shù)2圖象此函數(shù)的最小點(diǎn)是,最小值是0。這個(gè)函數(shù)用標(biāo)準(zhǔn)粒子濾波算法,粒子數(shù)目N=40,學(xué)習(xí)因子c1=c2=2,慣性權(quán)重w=0.78,迭代次數(shù)M=1000; 程序運(yùn)行500次得到的r的分布柱狀圖是圖3.1.2:圖3.1.2 標(biāo)準(zhǔn)粒子濾波算法程序運(yùn)行結(jié)果我們計(jì)算得到的500個(gè)r的平均值是3.0562x10-11。因?yàn)檫@個(gè)函數(shù)比較簡(jiǎn)單,所以得到的r也比較小,大部分r在這個(gè)區(qū)間內(nèi)。3.2粒子濾波算法的改進(jìn)3.2.1帶壓縮因子的粒子濾波算法學(xué)習(xí)因子c1和c2反應(yīng)粒子群中微粒間信息的交流和共享。當(dāng)c1的取值較大時(shí),粒子會(huì)具有較強(qiáng)的局部搜索能力,而c2值較大時(shí),粒子會(huì)過(guò)早的收斂。為了更好的控制粒子的飛行速度,使算法對(duì)于全局的搜索能力和對(duì)于局部的搜索能力達(dá)到更加平衡的效果,Clerc構(gòu)造了帶壓縮因子的粒子濾波算法,其速度公式更改為: 為了使算法更好的求解,c1與c2的和要求大于4。粒子數(shù)目N=30,c1=2.8,c2=1.3,迭代次數(shù)M=1000的時(shí)候,程序運(yùn)行500次,得到的柱狀圖如圖3.2.1:圖3.2.1 壓縮因子粒子濾波算法程序運(yùn)行結(jié)果我們得到的500個(gè)r的平均值是6.2548x10-22,通過(guò)圖3.2.1可以看到算法得到的結(jié)果已經(jīng)明顯改善,不但r的分布更加集中,而且80%以上的粒子都是在區(qū)間范圍內(nèi)的。3.2.2線性遞減權(quán)重的粒子濾波算法較大的慣性權(quán)重可以控制微粒進(jìn)行全局的大范圍的探索,而較小的慣性權(quán)重則使算法更加精細(xì)的搜索更小的范圍,使算法的結(jié)果更加收斂。因此,針對(duì)粒子濾波算法容易早熟以及算法后期在全局最優(yōu)解附近的震蕩現(xiàn)象,我們可以采用線性變化的權(quán)重,讓慣性權(quán)重從最大值線性減小到最小值,這樣w隨著算法迭代的進(jìn)行的變化公式為:,其中、分別指w的最大值和最小值,t表示當(dāng)前迭代次數(shù),表示最大迭代次數(shù),通常取=0.9,=0.4。這樣粒子群更新速度和位移的公式還是2.2.1和2.2.2,不過(guò)又加上了一個(gè)w更新的公式:。同樣采用上面的測(cè)試函數(shù): 取N=40,c1=c2=2,慣性權(quán)重最大值取0.9,最小值取0.4,我們得到的r的分布圖如圖3.2.2所示:圖3.2.2 線性遞減慣性權(quán)重粒子濾波算法程序運(yùn)行結(jié)果500個(gè)r的平均值為5.2360x10-25,其中絕大部分r的取值都在區(qū)間內(nèi),大部分在區(qū)間內(nèi)。比標(biāo)準(zhǔn)粒子濾波算法精確的多,也比帶有壓縮因子的粒子濾波算法更加精確。但是可以看到r更加分散了,分散在兩個(gè)區(qū)間內(nèi),所以我們可以說(shuō),對(duì)于例子中的函數(shù),線性遞減的粒子濾波算法是不夠穩(wěn)定的。就這個(gè)函數(shù)而言,線性遞減權(quán)重粒子濾波算法得到的非常精確的最優(yōu)解,但是因?yàn)闄?quán)重的線性遞減matlab多計(jì)算了一次,所以這個(gè)算法所對(duì)應(yīng)的程序在matlab中運(yùn)行速度明顯比標(biāo)準(zhǔn)粒子濾波算法慢。3.2.3自適應(yīng)權(quán)重法下面我們采用一種非線性變化的慣性權(quán)重來(lái)平衡算法對(duì)于對(duì)全局和局部?jī)?yōu)化搜索能歷:上式中的表示w的最大值、表示的是w的最小值,f表示粒子當(dāng)前目標(biāo)函數(shù)值,表示所有粒子的平均值,表示目標(biāo)最小值。在這個(gè)粒子濾波算法改進(jìn)方法中,目標(biāo)函數(shù)在最優(yōu)解的變化影響改變慣性權(quán)重的值,所以我們把他稱為自適應(yīng)權(quán)重法。這種方法得到的r的500次結(jié)果做出來(lái)的圖象如圖3.2.3:圖3.2.3 自適應(yīng)權(quán)重粒子濾波算法程序運(yùn)行結(jié)果自適應(yīng)權(quán)重法所得到的500個(gè)r的平均值是3.0589x10-28,所有的r全部是位于區(qū)間內(nèi)的,其中有一部分是在區(qū)間內(nèi),自適應(yīng)權(quán)重法比線性遞減權(quán)重法得到的最優(yōu)解的精度更高,也更加集中。3.2.4隨機(jī)權(quán)重法將標(biāo)準(zhǔn)粒子濾波算法中的慣性權(quán)重設(shè)定為隨機(jī)數(shù),而且隨機(jī)數(shù)是復(fù)合某種隨機(jī)分布的(例如高斯分布),這樣可以減輕一部分w線性遞減的不足。首先,如果在微粒尋找初期就接近了嘴有點(diǎn),隨機(jī)的w可能會(huì)產(chǎn)生比較小的w,這樣可以加快算法在這個(gè)點(diǎn)的收斂速度。另外,如果算法迭代初期得不到最優(yōu)解,并且w是線性遞減的,那么算法就無(wú)法收斂到這個(gè)最好的點(diǎn),而隨機(jī)生成的w將會(huì)克服這種局限性。w的計(jì)算公式:其中N(0,1)表示符合正態(tài)分布的隨機(jī)數(shù),rand(0,1)表示0到1之間的隨機(jī)數(shù)。這個(gè)算法取40個(gè)粒子,學(xué)習(xí)因子c1=c2都取2,慣性權(quán)重的平均值的最大值取0.8,慣性權(quán)重的平均值的最小值取0.5,隨機(jī)權(quán)重平均值方差取0.2,每進(jìn)行一次算法要迭代5000次,然后將程序運(yùn)行1000次,得到1000個(gè)r,r的分布圖如3.2.4所示:圖3.2.4 隨機(jī)權(quán)重粒子濾波算法程序運(yùn)行結(jié)果我們得到的500個(gè)r的平均值是8.0234x10-22,從上圖中我們可以看出來(lái),隨機(jī)權(quán)重法相對(duì)于標(biāo)準(zhǔn)粒子濾波算法也有了較大的改善,整個(gè)圖中r集中在區(qū)間內(nèi),但是相比較前幾種改進(jìn)方法,隨機(jī)權(quán)重法還不算太精確,而且隨機(jī)權(quán)重法得到的r的分布也是比較分散的,說(shuō)明對(duì)于測(cè)試函數(shù)來(lái)說(shuō),隨機(jī)權(quán)重法也不是一個(gè)非常穩(wěn)定的算法3.2.5同步變化學(xué)習(xí)因子法這種改進(jìn)方法是把兩個(gè)學(xué)習(xí)因子設(shè)定在一個(gè)范圍,當(dāng)算法進(jìn)行迭代到第t次的時(shí)候,兩個(gè)學(xué)習(xí)因子的取值是:這樣學(xué)習(xí)因子就隨著迭代次數(shù)不斷的變化,這樣運(yùn)行程序之后得到的結(jié)果如圖2.3.5所示:圖2.3.5 同步學(xué)習(xí)因子的粒子濾波算法從圖中我們可以看到大部分的r在區(qū)間內(nèi),計(jì)算500個(gè)r的平均值是5.1287x10-28,對(duì)于這個(gè)函數(shù)來(lái)說(shuō),同步變化的學(xué)習(xí)因子粒子濾波算法也是一種非常好的改進(jìn)方法。3.2.6異步變化的學(xué)習(xí)因子法異步變化學(xué)習(xí)因子法,顧名思義,兩個(gè)學(xué)習(xí)因子隨著程序的運(yùn)行算法的迭代而進(jìn)行異步變化。這樣可以使得算法在一開始的時(shí)候粒子具有比較強(qiáng)的自我經(jīng)歷總結(jié)能力和較弱的群體經(jīng)驗(yàn)學(xué)習(xí)能力。而在后期粒子就會(huì)具有更強(qiáng)的群體經(jīng)驗(yàn)學(xué)習(xí)能力和較弱的自我經(jīng)歷總結(jié)能力。也就是說(shuō)算法在前期可以更好的探索全局,后期更精細(xì)的收斂到整個(gè)問(wèn)題的最優(yōu)解,學(xué)習(xí)因子的公式: , 我們一般設(shè)定c1的初始值=c2的終值=2.5、c2的初始值=c1的終值=0.5,慣性權(quán)重w=0.9時(shí),程序運(yùn)行1000次得到的r的分布圖:圖3.2.6圖3.2.6 異步學(xué)習(xí)因子程序運(yùn)行結(jié)果異步變化的學(xué)習(xí)因子粒子濾波算法是目前為止所有的PSO改進(jìn)策略里比較好的一種,其對(duì)于標(biāo)準(zhǔn)粒子濾波算法已經(jīng)有了較大的改善,得到的r絕大部分位于區(qū)間內(nèi),通過(guò)圖3.2.6我們可以看到r的分布是非常集中的。500個(gè)r的平均值是2.7514x10-16,并且算法需要進(jìn)行的計(jì)算量比較大。3.2.7二階粒子濾波算法在標(biāo)準(zhǔn)的粒子濾波算法中,粒子當(dāng)前飛行速度是粒子所處位置的函數(shù),而如果我們采用二階粒子濾波算法,粒子飛行速度的改變與微粒位置變化有關(guān),粒子的速度變化公式是:根據(jù)算法的具體實(shí)現(xiàn)步驟,把這個(gè)速度公式帶入算法步驟中,不過(guò)這個(gè)算法中c1+c2的值最好在2附近。圖3.2.7是r的柱狀圖:圖3.2.7 二階粒子濾波算法程序運(yùn)行結(jié)果從圖3.2.7中我們可以看到,二階粒子濾波算法得到的解大部分是在之間。所以說(shuō)二階粒子濾波算法還不如普通的標(biāo)準(zhǔn)粒子濾波算法。我們可以通過(guò)引入一個(gè)振蕩來(lái)優(yōu)化二階粒子濾波算法。3.2.8二階振蕩粒子濾波算法這是一個(gè)漸近收斂的算法,我們?yōu)榱诉M(jìn)一步提高粒子群的多樣性,現(xiàn)在在粒子群中引入一個(gè)振蕩環(huán)節(jié),用來(lái)改善算法全局收斂性。其速度更新方程為:其中是隨機(jī)數(shù)。在算法前期取, ,使得算法具有較強(qiáng)的整體搜索能力,算法后期取,使得算法漸進(jìn)收斂。此算法的步驟和標(biāo)準(zhǔn)粒子濾波算法有些差別,具體實(shí)現(xiàn)步驟如下:(1)初始化種群中所有的微粒所在位置和運(yùn)動(dòng)速度,賦兩個(gè)隨機(jī)值給這兩個(gè)量;(2)觀察每個(gè)粒子的適應(yīng)值,用pbest存儲(chǔ)微粒所經(jīng)歷最好的位置和適應(yīng)值,gbest存儲(chǔ)pbest的最好的值。(3)如果當(dāng)前的進(jìn)化代數(shù)小于最大的進(jìn)化代數(shù)的一半,根據(jù)下面的方差對(duì)粒子的速度和位置進(jìn)化; 其中 , ;如果當(dāng)前進(jìn)化代數(shù)大于或者等于最大迭代次數(shù)的1/2,根據(jù)下面的方程對(duì)粒子的速度和位置進(jìn)行進(jìn)化; 其中,;(4)將每個(gè)粒子的目前所在的適應(yīng)值與最優(yōu)解pbest進(jìn)行比較,將更好的值賦給最優(yōu)解pbest;(5) 比較pbest和gbest,將更優(yōu)的解賦給gbest;(6)若滿足停止條件,搜索終止,輸出結(jié)果,否則返回(3)繼續(xù)搜索此算法運(yùn)行結(jié)果r的分布如圖3.2.8:圖3.2.8二階振蕩粒子濾波算法程序運(yùn)行結(jié)果從圖中得到的結(jié)果我們可以看到,加入振蕩之后,二階振蕩粒子濾波算法比二階粒子濾波算法好了很多,并且比粒子濾波算法更好。但是我們可以看到得到的r是非常分散的,這說(shuō)明這種改進(jìn)方法并不穩(wěn)定。r的平均值是7.2158x10-18,但是算法的運(yùn)算量顯著增大,程序運(yùn)行非常緩慢。4.總結(jié)和展望對(duì)于一個(gè)復(fù)雜函數(shù)的極值,我們?cè)谖锢韺W(xué)、數(shù)學(xué)中不等式的證明、市場(chǎng)營(yíng)銷問(wèn)題、蜂房的最優(yōu)化問(wèn)題、現(xiàn)代軍事戰(zhàn)爭(zhēng)、物流管理等實(shí)際問(wèn)題中有著廣泛的應(yīng)用。粒子濾波算法作為一個(gè)新的求極值的算法,有關(guān)它的研究還是處于初級(jí)階段。粒子濾波算法可以和遺傳算法,神經(jīng)計(jì)算,模糊系統(tǒng),螞蟻算法,模擬退火算法等各種算法結(jié)合適應(yīng),它的應(yīng)用是非常廣泛的。本文中只是就其中的一部分問(wèn)題進(jìn)行了相關(guān)的研究,還有許多領(lǐng)域需要我們進(jìn)一步的研究和開拓。參考文獻(xiàn):1陳水利,蔡國(guó)榮,等.粒子濾波算法加速因子的非線性策略研究J.長(zhǎng)江大學(xué)學(xué)報(bào)(自然版)理工卷,2007,14(4):142崔紅梅,朱慶保,等.微粒群算法中的參數(shù)選擇 J.計(jì)算機(jī)應(yīng)用,2007,23(23):89913馮翔,崔國(guó)龍,郭文忠.PSO中加速因子的設(shè)置與試驗(yàn)J.集美大學(xué)學(xué)報(bào),2006,11(2):1461514韓江洪,李正榮,魏振春.一種自適應(yīng)粒子濾波算法及其仿真研究J.系統(tǒng)仿真學(xué)報(bào),2006,18(10):296929715胡建秀,曾建潮.具有隨機(jī)慣性權(quán)重的粒子濾波算法J.計(jì)算機(jī)的仿真,2007,22(8):1631676余炳輝,王金文.隨機(jī)攝動(dòng)粒子濾波算法J.計(jì)算機(jī)工程與應(yīng)用,2008,22(11):79837李士勇,等.蟻群算法及應(yīng)用M.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004:55588 崔紅梅,陳國(guó)龍.微粒群算法中慣性權(quán)重的調(diào)整策略J.計(jì)算機(jī)仿真,2007,22(7):22329龔純,王正林.精通MATLAB最優(yōu)化計(jì)算M.北京:電子工業(yè)出版社,2009,26931210 李麗,牛奔.粒子濾波算法M(第一版).北京:冶金工業(yè)出版社,2009.10,51011 欒麗君,譚麗靜,牛奔.基于粒子濾波算法與差分進(jìn)化算法算法的一種新型全局優(yōu)化算法J.2007,33(5):30835512 王俊偉.粒子濾波算法的改進(jìn)和應(yīng)用D.沈陽(yáng):東北大學(xué)博士學(xué)位論文,200613 俞歡軍,許寧.混合粒子濾波算法研究J.信息與控制,2005,8:40841114 高海冰.基于粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法研究J.電子學(xué)報(bào),2004.31(8).151715 楊靜宇.群體智能算法及其應(yīng)用M(第二版).北京:水利水電出版社.2006.2329附錄:程序1:函數(shù)表達(dá)式程序: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*(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%N%1c1%2c2%w%M%DD%xm%fvformat long; %- for i=1:N for j=1:D x(i,j)=randn; % v(i,j)=randn; % end end %-PiPg- 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 %- 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) 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;%計(jì)算得到的點(diǎn)到(0,0)的距離程序3:帶壓縮因子的粒子濾波算法:YSPSO.mfunction xm,fv,r = YSPSO(fitness,N,c1,c2,M,D)phi = c1 + c2;if phi = 4 disp(c1 c2 4 ); xm = NaN; fv = NaN; return;endformat long; %- for i=1:N for j=1:D x(i,j)=randn; % v(i,j)=randn; % end end %-PiPg- 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 %- 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(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; %- for i=1:N for j=1:D x(i,j)=randn; % v(i,j)=randn; % end end %-PiPg- 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 %- 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=(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; % v(i,j)=randn; % end end %- 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 %- for t=1:M for j=1:N fv(j) = fitness(x(j,:); end fvag = sum(fv)/N; fmin = 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 end xm = pg; fv = fitness(pg);r=(dot(xm,xm)0.5; 程序6:隨機(jī)權(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; % v(i,j)=randn; % end end %-PiPg- for i=1:N p

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論