版權(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)群的捕食行為。 設(shè)想這樣一個(gè)場(chǎng)景:一群鳥(niǎo)
2、在隨機(jī)搜索食物,在這個(gè)區(qū)域里只有一塊食物,所有的鳥(niǎo)都不知道食物在那里,但是它們知道當(dāng)前的位置離食物還有多遠(yuǎn),那么找到食物的最優(yōu)策略是什么呢? 最簡(jiǎn)單有效的就是搜尋目前離食物最近的鳥(niǎo)的周圍區(qū)域。都向這片區(qū)域靠攏。,3。抽象,PSO中,將問(wèn)題的搜索空間類比于鳥(niǎo)類的飛行空間,將每只鳥(niǎo)抽象為一個(gè)無(wú)質(zhì)量無(wú)體積的微粒,用以表征優(yōu)化問(wèn)題的一個(gè)候選解,我們稱之為“粒子”,優(yōu)化所需要尋找的最優(yōu)解則等同于要尋找的食物。所有的粒子都有一個(gè)由被優(yōu)化的函
3、數(shù)決定的適應(yīng)值(fitness value),每個(gè)粒子還有一個(gè)速度決定他們飛翔的方向和距離,然后粒子們就追隨當(dāng)前的最優(yōu)粒子在解空間中搜索。,3。抽象,PSO初始化為一群隨機(jī)粒子(隨機(jī)解、一群鳥(niǎo)),然后通過(guò)迭代找到最優(yōu)解。在每一次迭代中,粒子(鳥(niǎo))通過(guò)跟蹤兩個(gè)“極值”來(lái)更新自己的位置。一個(gè)就是粒子本身所找到的最優(yōu)解,這個(gè)解叫做個(gè)體極值pBest,另一個(gè)極值是整個(gè)種群目前找到的最優(yōu)解,這個(gè)極值是全局極值gBest。(gBest是pBest中
4、最好值),3。算法介紹,在找到這兩個(gè)最優(yōu)值時(shí),粒子根據(jù)如下的公式來(lái)更新自己的速度和位置: 其中 ,V 是粒子的速度,Present 是粒子的當(dāng)前位置 ,pBest 與 gBest見(jiàn)前面定義。rand ( )是(0 ,1)之間的隨機(jī)數(shù) ,c1和c2被稱作學(xué)習(xí)因子。通常 ,c1 = c2 = 2。w 是加權(quán)系數(shù)(慣性權(quán)重),取值在 0. 1到0. 9之間。粒子通過(guò)不斷學(xué)習(xí)更新 ,最終飛至解空間中最優(yōu)解所在的位置 ,搜索過(guò)程結(jié)
5、束。最后輸出的 gBest 就是全局最優(yōu)解。在更新過(guò)程中 ,粒子每一維的最大速率限被限制為 Vmax ,如果某一維更新后的速度超過(guò)設(shè)定的Vmax,那么這一維的速度就被限定為Vmax。,3。算法介紹,將粒子延伸到N維空間,粒子i在N維空間里的位置表示為一個(gè)矢量,每個(gè)粒子的飛行速度也表示為一個(gè)矢量。粒子數(shù)(鳥(niǎo)的個(gè)數(shù)): 一般取 1~40. 其實(shí)對(duì)于大部分的問(wèn)題10個(gè)粒子已經(jīng)足夠可以取得好的結(jié)果;粒子的長(zhǎng)度(維度): 這是由優(yōu)化問(wèn)
6、題決定, 就是問(wèn)題解的長(zhǎng)度(決策變量個(gè)數(shù));粒子的范圍: 由優(yōu)化問(wèn)題決定,每一維可以設(shè)定不同的范圍;,Vmax: 最大速度,決定粒子在一個(gè)循環(huán)中最大的移動(dòng)距離, 通常設(shè)定為粒子的范圍寬度,例如,粒子 (x1, x2, x3) ,x1 屬于 [-10, 10], 那么 Vmax 的大小就是 20。學(xué)習(xí)因子: 使粒子具有自我總結(jié)和向群體中優(yōu)秀個(gè)體學(xué)習(xí)的能力,從而向群體內(nèi)或鄰域內(nèi)最優(yōu)點(diǎn)靠近,c1 和 c2 通常等于2,并且范圍在 0 和
7、4 之間。中止條件: 最大循環(huán)數(shù)以及最小錯(cuò)誤要求。慣性權(quán)重w :決定了對(duì)粒子當(dāng)前速度繼承多少,合適的選擇可以使粒子具有均衡的探索能力和開(kāi)發(fā)能力,慣性權(quán)重的取法有常數(shù)法、線性遞減法、自適應(yīng)法等。,3。算法介紹,例:對(duì)于問(wèn)題 f(x) = x1^2 + x2^2+x3^2 求解,粒子可以直接編碼為 (x1, x2, x3),而適應(yīng)度函數(shù)就是f(x),接著我們就可以利用前面的過(guò)程去尋優(yōu),尋優(yōu)過(guò)程是一個(gè)迭代過(guò)程, 中止條件一般為設(shè)置為達(dá)到最
8、大循環(huán)數(shù)或者最小錯(cuò)誤要求。,3。算法介紹,PSO框架圖,粒子群優(yōu)化算法Matlab工具箱簡(jiǎn)介,Matlab粒子群工具箱(PSOt)提供了非常先進(jìn)的粒子群優(yōu)化算法 ,可指定慣性因子的起始值和中止值 ,可約定各維變量的取值范圍 、粒子在遇到邊界時(shí)是否反彈等各種參數(shù) 。除此以外 ,粒子群工具箱既可以在用戶約定的范圍內(nèi)自動(dòng)隨機(jī)生成指定群體規(guī)模的初始粒子群 ,也可人工輸入小于群體規(guī)模的任意數(shù)目的初始粒子 ,具備非常強(qiáng)的靈活性 。,粒子群優(yōu)化算法M
9、atlab工具箱簡(jiǎn)介,粒子群優(yōu)化算法Matlab工具箱簡(jiǎn)介,PSOt具有非常強(qiáng)的靈活性,在實(shí)際計(jì)算中,用戶只要根據(jù)需求編寫好目標(biāo)函數(shù),并設(shè)置好函數(shù)自變量的取值范圍和每步迭代允許的最大變化量,PSOt即可自動(dòng)進(jìn)行優(yōu)化計(jì)算。,該工具箱的使用方法主要分為一下幾個(gè)步驟:(1)在MATLAB的命令窗口中點(diǎn)擊“File”,“Set Path”,設(shè)置工具箱的路徑。(2)編寫待優(yōu)化的函數(shù)(test_func),保存為同名m文件,粒子群優(yōu)化算法Mat
10、lab工具箱簡(jiǎn)介,(3)調(diào)用粒子群算法的核心模塊:pso_Trelea_vectorized.m,其調(diào)用格式為:pso_Trelea_vectorized(functname, D, mv, VarRange , minmax, PSOparams, plotfcn, PSOseedValue),pso_Trelea_vectorized(functname, D, mv, VarRange, minmax,
11、 PSOparams, plotfcn, PSOseedValue)Functname:目標(biāo)函數(shù)名D:待優(yōu)化問(wèn)題的維數(shù);mv:粒子飛行的最大速度;VarRange:參數(shù)變化范圍矩陣;Minmax:尋優(yōu)類型,取0代表求目標(biāo)函數(shù)最小值,取1代表求目 標(biāo)函數(shù)最大值);PSOparams:參數(shù)矩陣,包括最大迭代次數(shù)、粒子群規(guī)模、慣性因子、學(xué)習(xí)因子、終止
12、迭代條件等;Plotfcn:尋優(yōu)過(guò)程中用于展示尋優(yōu)過(guò)程的畫圖函數(shù);PSOseedValue:可允許用戶輸入任意多組初始粒子。,求非線性函數(shù)極大值,工具箱應(yīng)用實(shí)例,工具箱應(yīng)用實(shí)例,(1)編寫待優(yōu)化函數(shù)程序function z = test_func(in)nn=size(in); %輸入的是矩陣 ,即算法中隨機(jī)產(chǎn)生一組x和y ,按[x(nn, 1), y(nn, 1)]排列x=in(:,1);y=in(:,2);nx=n
13、n(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í)例,(2)編寫調(diào)用函數(shù)x_range=[-2,2];y_range=[-2,2];range=[x_range; y_range];Max_V=0.2*
14、(range(:,2) - range(:,1)); %最大速度取范圍的 10%~ 20%n=2; %粒子維數(shù)PSOparams=[10 300 20 2 2 0.9 0.4 1500 1e-25 250 NaN 0 0] %個(gè)體數(shù)目 20 ,進(jìn)化次數(shù) 300 PSO_Trelea_vectorized('test_func', n, Max_V, range, 1, PSOp
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab遺傳算法工具箱函數(shù)及實(shí)例講解
- matlab遺傳算法工具箱函數(shù)及實(shí)例講解
- creator建模工具箱的使用方法
- matlab遺傳算法工具箱函數(shù)及實(shí)例講解(轉(zhuǎn)引).txt
- matlab遺傳算法工具箱及應(yīng)用
- matlab優(yōu)化工具箱的使用
- matlab工具箱簡(jiǎn)介
- matlab工具箱總匯
- matlab 工具箱函數(shù)
- matlab擬合工具箱
- matlab工具箱介紹
- matlab擬合工具箱cftool使用指南
- matlab工具箱函數(shù)匯總
- matlab工具箱函數(shù)匯總
- matlab工具箱命令匯總
- matlab統(tǒng)計(jì)工具箱
- matlab部分工具箱
- matlab相機(jī)定標(biāo)工具箱程序的算法原理
- 使用matlab遺傳算法工具實(shí)例(詳細(xì))
- matlab的曲線擬合工具箱cftool使用簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論