Matlab粒子群算法工具箱使用方法及實例演示_第1頁
Matlab粒子群算法工具箱使用方法及實例演示_第2頁
Matlab粒子群算法工具箱使用方法及實例演示_第3頁
Matlab粒子群算法工具箱使用方法及實例演示_第4頁
Matlab粒子群算法工具箱使用方法及實例演示_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、粒子群算法工具箱應用簡介1。引言。引言 粒子群算法(粒子群算法(PSO算法)算法) 定義:粒子群算法,又稱粒子群優化算法(Partical Swarm Optimization),縮寫為 PSO, 是近年來發展起來的一種新的進化算法(Evolutionary Algorithm - EA),由Eberhart 博士和kennedy 博士于1995年提出,其源于對鳥群捕食的行為研究。2。算法思想。算法思想 PSO模擬鳥群的捕食行為。模擬鳥群的捕食行為。 設想這樣一個場景:一群鳥在隨機搜索食物,在這個區域里設想這樣一個場景:一群鳥在隨機搜索食物,在這個區域里只有一塊食物,所有的鳥都不知道食物在那里

2、,但是它們只有一塊食物,所有的鳥都不知道食物在那里,但是它們知道當前的位置離食物還有多遠,那么找到食物的最優策知道當前的位置離食物還有多遠,那么找到食物的最優策略是什么呢?略是什么呢? 最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。最簡單有效的就是搜尋目前離食物最近的鳥的周圍區域。都向這片區域靠攏。都向這片區域靠攏。 3。抽象。抽象 PSO中,將問題的搜索空間類比于鳥類的飛行空間,將中,將問題的搜索空間類比于鳥類的飛行空間,將每只鳥抽象為一個無質量無體積的微粒,用以表征優化問題每只鳥抽象為一個無質量無體積的微粒,用以表征優化問題的一個候選解,我們稱之為的一個候選解,我們稱之為“粒子粒子”,

3、優化所需要尋找的,優化所需要尋找的最優最優解解則等同于要尋找的食物。則等同于要尋找的食物。所有的粒子都有一個由被優化的函數決定的所有的粒子都有一個由被優化的函數決定的適應值適應值(fitness value),每個粒子還有一個,每個粒子還有一個速度速度決定他們飛翔的方向和距離決定他們飛翔的方向和距離,然后粒子們就追隨當前的最優粒子在解空間中搜索。,然后粒子們就追隨當前的最優粒子在解空間中搜索。 3。抽象。抽象 PSO初始化為一群隨機粒子初始化為一群隨機粒子(隨機解、一群鳥隨機解、一群鳥),然后通,然后通過迭代找到最優解。在每一次迭代中,粒子(鳥)通過跟過迭代找到最優解。在每一次迭代中,粒子(鳥

4、)通過跟蹤兩個蹤兩個“極值極值”來更新自己的位置。一個就是粒子本身所找來更新自己的位置。一個就是粒子本身所找到的最優解,這個解叫做個體極值到的最優解,這個解叫做個體極值pBest,另一個極值是,另一個極值是整個種群目前找到的最優解,這個極值是全局極值整個種群目前找到的最優解,這個極值是全局極值gBest。(。(gBest是是pBest中最好值)中最好值)3。算法介紹。算法介紹 在找到這兩個最優值時,粒子根據如下的公式來更新自己在找到這兩個最優值時,粒子根據如下的公式來更新自己的速度和位置:的速度和位置: 其中其中 ,V 是粒子的速度,是粒子的速度,Present 是粒子的當前位置是粒子的當前位

5、置 ,pBest 與與 gBest見前面定義。見前面定義。rand ( )是是(0 ,1)之間的隨機數之間的隨機數 ,c1和和c2被稱作學習因子。通常被稱作學習因子。通常 ,c1 = c2 = 2。w 是加權系是加權系數(慣性權重),取值在數(慣性權重),取值在 0. 1到到0. 9之間。粒子通過不斷學之間。粒子通過不斷學習更新習更新 ,最終飛至解空間中最優解所在的位置,最終飛至解空間中最優解所在的位置 ,搜索過,搜索過程結束。最后輸出的程結束。最后輸出的 gBest 就是全局最優解。在更新過程就是全局最優解。在更新過程中中 ,粒子每一維的最大速率限被限制為粒子每一維的最大速率限被限制為 Vm

6、ax ,如果某一維如果某一維更新后的速度超過設定的更新后的速度超過設定的Vmax,那么這一維的速度就被,那么這一維的速度就被限定為限定為Vmax。3。算法介紹。算法介紹 將粒子延伸到N維空間,粒子i在N維空間里的位置表示為一個矢量,每個粒子的飛行速度也表示為一個矢量。p 粒子數(鳥的個數)粒子數(鳥的個數): 一般取一般取 140. 其實對于大部分的問其實對于大部分的問題題10個粒子已經足夠可以取得好的結果個粒子已經足夠可以取得好的結果;p 粒子的長度(維度)粒子的長度(維度): 這是由優化問題決定這是由優化問題決定, 就是問題解就是問題解的長度(決策變量個數)的長度(決策變量個數);p 粒子

7、的范圍粒子的范圍: 由優化問題決定,每一維可以設定不同的由優化問題決定,每一維可以設定不同的范圍;范圍;p Vmax: 最大速度,決定粒子在一個循環中最大的移動距最大速度,決定粒子在一個循環中最大的移動距離,離, 通常設定為粒子的范圍寬度通常設定為粒子的范圍寬度,例如,粒子例如,粒子 (x1, x2, x3) ,x1 屬于屬于 -10, 10, 那么那么 Vmax 的大小就是的大小就是 20。p 學習因子學習因子: 使粒子具有自我總結和向群體中優秀個體學習使粒子具有自我總結和向群體中優秀個體學習的能力,從而向群體內或鄰域內最優點靠近,的能力,從而向群體內或鄰域內最優點靠近,c1 和和 c2 通

8、常通常等于等于2,并且范圍在,并且范圍在 0 和和 4 之間。之間。p 中止條件中止條件: 最大循環數以及最小錯誤要求。最大循環數以及最小錯誤要求。p 慣性權重慣性權重w :決定了對粒子當前速度繼承多少,合適的選決定了對粒子當前速度繼承多少,合適的選擇可以使粒子具有均衡的探索能力和開發能力,慣性權重的擇可以使粒子具有均衡的探索能力和開發能力,慣性權重的取法有常數法、線性遞減法、自適應法等。取法有常數法、線性遞減法、自適應法等。3。算法介紹。算法介紹 例:對于問題 f(x) = x12 + x22+x32 求解,粒子可以直接編碼為 (x1, x2, x3),而適應度函數就是f(x),接著我們就可

9、以利用前面的過程去尋優,尋優過程是一個迭代過程, 中止條件一般為設置為達到最大循環數或者最小錯誤要求。3。算法介紹。算法介紹 PSO框架圖框架圖粒子群優化算法粒子群優化算法Matlab工具箱簡介工具箱簡介 Matlab粒子群工具箱(粒子群工具箱(PSOt)提供了非常先進的粒子群)提供了非常先進的粒子群優化算法優化算法 ,可指定慣性因子的起始值和中止值,可指定慣性因子的起始值和中止值 ,可約定各,可約定各維變量的取值范圍維變量的取值范圍 、粒子在遇到邊界時是否反彈等各種參、粒子在遇到邊界時是否反彈等各種參數數 。除此以外。除此以外 ,粒子群工具箱既可以在用戶約定的范圍內,粒子群工具箱既可以在用戶

10、約定的范圍內自動隨機生成指定群體規模的初始粒子群自動隨機生成指定群體規模的初始粒子群 ,也可人工輸入,也可人工輸入小于群體規模的任意數目的初始粒子小于群體規模的任意數目的初始粒子 ,具備非常強的靈活,具備非常強的靈活性性 。粒子群優化算法粒子群優化算法Matlab工具箱簡介工具箱簡介粒子群優化算法粒子群優化算法Matlab工具箱簡介工具箱簡介PSOt具有非常強的靈活性,在實際計算中,用戶只要根據具有非常強的靈活性,在實際計算中,用戶只要根據需求編寫好需求編寫好目標函數目標函數,并設置好函數自變量的,并設置好函數自變量的取值范圍取值范圍和和每步迭代允許的每步迭代允許的最大變化量最大變化量,PSO

11、t即可自動進行優化計算即可自動進行優化計算。該該工具箱的使用方法主要分為為一下幾個個步驟驟:(1)在MATLAB的命令窗口中點擊擊“File”,“Set Path”,設設置工具箱的路徑徑。(2)編寫編寫待優優化的函數數(test_func),保存為為同名m文件粒子群優化算法粒子群優化算法Matlab工具箱簡介工具箱簡介( 3 ) 調 用 粒 子 群 算 法 的 核 心 模 塊 :) 調 用 粒 子 群 算 法 的 核 心 模 塊 :pso_Trelea_vectorized.m,其調用格式為:,其調用格式為:pso_Trelea_vectorized(functname, D, mv, Var

12、Range , minmax, PSOparams, plotfcn, PSOseedValue)pso_Trelea_vectorized(functname, D, mv, VarRange, minmax, PSOparams, plotfcn, PSOseedValue)l Functname:目標函數名:目標函數名l D:待優化問題的維數;:待優化問題的維數;l mv:粒子飛行的最大速度;:粒子飛行的最大速度;l VarRange:參數變化范圍矩陣;:參數變化范圍矩陣;l Minmax:尋優類型,取:尋優類型,取0代表求目標函數最小值,取代表求目標函數最小值,取1代表求代表求目目 標

13、函數最大值);標函數最大值);l PSOparams:參數矩陣,包括最大迭代次數、粒子群規模、:參數矩陣,包括最大迭代次數、粒子群規模、慣性因子、學習因子、終止迭代條件等;慣性因子、學習因子、終止迭代條件等;l Plotfcn:尋優過程中用于展示尋優過程的畫圖函數;:尋優過程中用于展示尋優過程的畫圖函數;l PSOseedValue:可允許用戶輸入任意多組初始粒子。:可允許用戶輸入任意多組初始粒子。求非線性函數極大值求非線性函數極大值工具箱應用實例工具箱應用實例cos2cos222222sin,2.71289xyxyf(x y)exy工具箱應用實例工具箱應用實例(1)編寫待優化函數程序)編寫待

14、優化函數程序function z = test_func(in)nn=size(in); %輸入的是矩陣輸入的是矩陣 ,即算法中隨機產生一組,即算法中隨機產生一組x和和y ,按,按x(nn, 1), y(nn, 1)排列排列x=in(:,1);y=in(:,2);nx=nn(1);for i=1:nx temp=sin(sqrt(x(i)2+y(i)2)/sqrt(x(i)2+y(i)2)+exp(cos(2*pi*x(i)+cos(2*pi*y(i)/2)-2.71289;z(i,:)=temp;end工具箱應用實例工具箱應用實例(2)編寫調用函數)編寫調用函數x_range=-2,2;y_range=-2,2;range=x_range; y_range;Max_V=0.2* (

溫馨提示

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

評論

0/150

提交評論