用matlab編寫pso算法及實例

用matlab編寫pso算法及實例

ID:26197748

大小:106.96 KB

頁數(shù):7頁

時間:2018-11-25

用matlab編寫pso算法及實例_第1頁
用matlab編寫pso算法及實例_第2頁
用matlab編寫pso算法及實例_第3頁
用matlab編寫pso算法及實例_第4頁
用matlab編寫pso算法及實例_第5頁
資源描述:

《用matlab編寫pso算法及實例》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫

1、用MATLAB編寫PSO算法及實例1.1粒子群算法PSO從這種模型中得到啟示并用于解決優(yōu)化問題。PSO中,每個優(yōu)化問題的潛在解都是搜索空間中的一只鳥,稱之為粒子。所有的粒子都有一個由被優(yōu)化的函數(shù)決定的適值(fitnessvalue),每個粒子還有一個速度決定它們飛翔的方向和距離。然后粒子們就追隨當前的最優(yōu)粒子在解空間中搜索。PSO初始化為一群隨機粒子(隨機解),然后通過迭代找到最優(yōu)解。在每一次迭代中,粒子通過跟蹤兩個極值來更新自己;第一個就是粒子本身所找到的最優(yōu)解,這個解稱為個體極值;另一個極值是整個種群目前找到的最優(yōu)解,這個極值是全局極值。另外也可以不用整個種群而只是用其中一部

2、分作為粒子的鄰居,那么在所有鄰居中的極值就是局部極值。假設在一個維的目標搜索空間中,有個粒子組成一個群落,其中第個粒子表示為一個維的向量,。第個粒子的“飛行”速度也是一個維的向量,記為,。第個粒子迄今為止搜索到的最優(yōu)位置稱為個體極值,記為,。整個粒子群迄今為止搜索到的最優(yōu)位置為全局極值,記為在找到這兩個最優(yōu)值時,粒子根據(jù)如下的公式(1.1)和(1.2)來更新自己的速度和位置:(1.1)(1.2)其中:和為學習因子,也稱加速常數(shù)(accelerationconstant),和為[0,1]范圍內的均勻隨機數(shù)。式(1.1)右邊由三部分組成,第一部分為“慣性(inertia)”或“動量(

3、momentum)”部分,反映了粒子的運動“習慣(habit)”,代表粒子有維持自己先前速度的趨勢;第二部分為“認知(cognition)”部分,反映了粒子對自身歷史經驗的記憶(memory)或回憶(remembrance),代表粒子有向自身歷史最佳位置逼近的趨勢;第三部分為“社會(social)”部分,反映了粒子間協(xié)同合作與知識共享的群體歷史經驗。二、算法設計2.1算法流程圖2.2算法實現(xiàn)算法的流程如下:①初始化粒子群,包括群體規(guī)模,每個粒子的位置和速度②計算每個粒子的適應度值;%它的適應度就是指目標函數(shù)的值。一般來說,目標函數(shù)的選擇由具體問題來決定,假如是背包問題,適應度即放

4、入包中物體的總價格。初始粒子位置和速度的位置一般隨機產生。但是在某些領域,如果已有其他的算法可以產生可行解的話,可以用這個可行解來初始化,這樣更容易得到最優(yōu)的解③對每個粒子,用它的適應度值和個體極值比較,如果,則用替換掉;④對每個粒子,用它的適應度值和全局極值比較,如果則用替;⑤根據(jù)公式(1.1),(1.2)更新粒子的速度和位置;⑥如果滿足結束條件(誤差足夠好或到達最大循環(huán)次數(shù))退出,否則返回②。2.3參數(shù)選擇本算法中主要的參數(shù)變量為(慣性權值),,(加速因子),N(種群數(shù)),M(迭代次數(shù)),D(粒子維數(shù))。(1)種群規(guī)模通常,種群太小則不能提供足夠的采樣點,以致算法性能很差;種

5、群太大盡管可以增加優(yōu)化信息,阻止早熟收斂的發(fā)生,但無疑會增加計算量,造成收斂時間太長,表現(xiàn)為收斂速度緩慢。種群規(guī)模一般設為100~1000。本文選擇種群規(guī)模為100。(2)最大迭代次數(shù)迭代次數(shù)越多能保證解的收斂性,但是影響運算速度,本文選1000次。(3)慣性權值慣性權重表示在多大程度上保留原來的速度。較大,全局收斂能力強,局部收斂能力弱;較小,局部收斂能力強,全局收斂能力弱。本文選0.6。(4)加速因子加速常數(shù)和分別用于控制粒子指向自身或鄰域最佳位置的運動。文獻[20]建議,并通常取。本文也取。(5)粒子維數(shù)本文中粒子維數(shù)取決于待優(yōu)化函數(shù)的維數(shù)。需要說明的是,本文的程序允許改變

6、這些參數(shù),因為本文編寫的程序參照matlab工具箱,留給用戶解決這類問題一個接口函數(shù),上述的各個參數(shù)正是接口函數(shù)的參數(shù),因此允許改變。另外對于和c也可采用變參數(shù)法,即隨迭代次數(shù)增加,利用經驗公式使它們動態(tài)調整,本文采用固定值。3.1求三維函數(shù)f=x(1).^2+x(2).^2+x(3).^2的最小值步驟:1.初始化x,v;2.求出每個粒子的適應值;3.初始化pb,pg個體最優(yōu)和全局最優(yōu);4.根據(jù)式子更新x,v;5.是否滿足條件,滿足跳出循環(huán),否則重復2-4步嘗試編碼:(1)pso.m文件%此算法是PSO算法,汪汪的20161024號版本function[xm,fv]=PSO(fi

7、tness,N,c1,c2,w,M,D)%{xm,fv算法最后得到的最優(yōu)解時的x及最優(yōu)解,fitness為適應度,即要優(yōu)化的目標函數(shù),N為種群數(shù)量,c1,c2為學習因子,w為慣性權重,M為迭代次數(shù),D為粒子的維數(shù)%}formatlong;%初始化種群fori=1:Nforj=1:Dx(i,j)=randn;%隨機初始化位置v(i,j)=randn;%隨機初始化速度endend%先計算各個粒子的適應度pi,并初始化y-粒子個體極值,pg-全局極值fori=1:Np(i)=fitne

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。