Matlab粒子群算法工具箱使用方法及實(shí)例演示_第1頁(yè)
Matlab粒子群算法工具箱使用方法及實(shí)例演示_第2頁(yè)
Matlab粒子群算法工具箱使用方法及實(shí)例演示_第3頁(yè)
Matlab粒子群算法工具箱使用方法及實(shí)例演示_第4頁(yè)
Matlab粒子群算法工具箱使用方法及實(shí)例演示_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

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

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

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

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

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

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

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

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

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

10、約定的范圍內(nèi)自動(dòng)隨機(jī)生成指定群體規(guī)模的初始粒子群自動(dòng)隨機(jī)生成指定群體規(guī)模的初始粒子群 ,也可人工輸入,也可人工輸入小于群體規(guī)模的任意數(shù)目的初始粒子小于群體規(guī)模的任意數(shù)目的初始粒子 ,具備非常強(qiáng)的靈活,具備非常強(qiáng)的靈活性性 。粒子群優(yōu)化算法粒子群優(yōu)化算法Matlab工具箱簡(jiǎn)介工具箱簡(jiǎn)介粒子群優(yōu)化算法粒子群優(yōu)化算法Matlab工具箱簡(jiǎn)介工具箱簡(jiǎn)介PSOt具有非常強(qiáng)的靈活性,在實(shí)際計(jì)算中,用戶只要根據(jù)具有非常強(qiáng)的靈活性,在實(shí)際計(jì)算中,用戶只要根據(jù)需求編寫好需求編寫好目標(biāo)函數(shù)目標(biāo)函數(shù),并設(shè)置好函數(shù)自變量的,并設(shè)置好函數(shù)自變量的取值范圍取值范圍和和每步迭代允許的每步迭代允許的最大變化量最大變化量,PSO

11、t即可自動(dòng)進(jìn)行優(yōu)化計(jì)算即可自動(dòng)進(jìn)行優(yōu)化計(jì)算。該該工具箱的使用方法主要分為為一下幾個(gè)個(gè)步驟驟:(1)在MATLAB的命令窗口中點(diǎn)擊擊“File”,“Set Path”,設(shè)設(shè)置工具箱的路徑徑。(2)編寫編寫待優(yōu)優(yōu)化的函數(shù)數(shù)(test_func),保存為為同名m文件粒子群優(yōu)化算法粒子群優(yōu)化算法Matlab工具箱簡(jiǎn)介工具箱簡(jiǎn)介( 3 ) 調(diào) 用 粒 子 群 算 法 的 核 心 模 塊 :) 調(diào) 用 粒 子 群 算 法 的 核 心 模 塊 :pso_Trelea_vectorized.m,其調(diào)用格式為:,其調(diào)用格式為: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:目標(biāo)函數(shù)名:目標(biāo)函數(shù)名l D:待優(yōu)化問(wèn)題的維數(shù);:待優(yōu)化問(wèn)題的維數(shù);l mv:粒子飛行的最大速度;:粒子飛行的最大速度;l VarRange:參數(shù)變化范圍矩陣;:參數(shù)變化范圍矩陣;l Minmax:尋優(yōu)類型,?。簩?yōu)類型,取0代表求目標(biāo)函數(shù)最小值,取代表求目標(biāo)函數(shù)最小值,取1代表求代表求目目 標(biāo)

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

14、優(yōu)化函數(shù)程序function z = test_func(in)nn=size(in); %輸入的是矩陣輸入的是矩陣 ,即算法中隨機(jī)產(chǎn)生一組,即算法中隨機(jī)產(chǎn)生一組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工具箱應(yīng)用實(shí)例工具箱應(yīng)用實(shí)例(2)編寫調(diào)用函數(shù))編寫調(diào)用函數(shù)x_range=-2,2;y_range=-2,2;range=x_range; y_range;Max_V=0.2* (

溫馨提示

  • 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)論