簡(jiǎn)介:粒子群算法工具箱應(yīng)用簡(jiǎn)介,,1。引言,粒子群算法(PSO算法)定義粒子群算法,又稱(chēng)粒子群優(yōu)化算法(PARTICALSWARMOPTIMIZATION),縮寫(xiě)為PSO,是近年來(lái)發(fā)展起來(lái)的一種新的進(jìn)化算法(EVOLUTIONARYALGORITHMEA),由EBERHART博士和KENNEDY博士于1995年提出,其源于對(duì)鳥(niǎo)群捕食的行為研究。,2。算法思想,PSO模擬鳥(niǎo)群的捕食行為。設(shè)想這樣一個(gè)場(chǎng)景一群鳥(niǎo)在隨機(jī)搜索食物,在這個(gè)區(qū)域里只有一塊食物,所有的鳥(niǎo)都不知道食物在那里,但是它們知道當(dāng)前的位置離食物還有多遠(yuǎn),那么找到食物的最優(yōu)策略是什么呢最簡(jiǎn)單有效的就是搜尋目前離食物最近的鳥(niǎo)的周?chē)鷧^(qū)域。都向這片區(qū)域靠攏。,3。抽象,PSO中,將問(wèn)題的搜索空間類(lèi)比于鳥(niǎo)類(lèi)的飛行空間,將每只鳥(niǎo)抽象為一個(gè)無(wú)質(zhì)量無(wú)體積的微粒,用以表征優(yōu)化問(wèn)題的一個(gè)候選解,我們稱(chēng)之為“粒子”,優(yōu)化所需要尋找的最優(yōu)解則等同于要尋找的食物。所有的粒子都有一個(gè)由被優(yōu)化的函數(shù)決定的適應(yīng)值FITNESSVALUE,每個(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中最好值),3。算法介紹,在找到這兩個(gè)最優(yōu)值時(shí),粒子根據(jù)如下的公式來(lái)更新自己的速度和位置其中,V是粒子的速度,PRESENT是粒子的當(dāng)前位置,PBEST與GBEST見(jiàn)前面定義。RAND是0,1之間的隨機(jī)數(shù),C1和C2被稱(chēng)作學(xué)習(xí)因子。通常,C1C22。W是加權(quán)系數(shù)(慣性權(quán)重),取值在01到09之間。粒子通過(guò)不斷學(xué)習(xí)更新,最終飛至解空間中最優(yōu)解所在的位置,搜索過(guò)程結(jié)束。最后輸出的GBEST就是全局最優(yōu)解。在更新過(guò)程中,粒子每一維的最大速率限被限制為VMAX,如果某一維更新后的速度超過(guò)設(shè)定的VMAX,那么這一維的速度就被限定為VMAX。,3。算法介紹,將粒子延伸到N維空間,粒子I在N維空間里的位置表示為一個(gè)矢量,每個(gè)粒子的飛行速度也表示為一個(gè)矢量。粒子數(shù)(鳥(niǎo)的個(gè)數(shù))一般取140其實(shí)對(duì)于大部分的問(wèn)題10個(gè)粒子已經(jīng)足夠可以取得好的結(jié)果粒子的長(zhǎng)度(維度)這是由優(yōu)化問(wèn)題決定,就是問(wèn)題解的長(zhǎng)度(決策變量個(gè)數(shù))粒子的范圍由優(yōu)化問(wèn)題決定,每一維可以設(shè)定不同的范圍;,VMAX最大速度,決定粒子在一個(gè)循環(huán)中最大的移動(dòng)距離,通常設(shè)定為粒子的范圍寬度,例如,粒子X(jué)1,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和4之間。中止條件最大循環(huán)數(shù)以及最小錯(cuò)誤要求。慣性權(quán)重W決定了對(duì)粒子當(dāng)前速度繼承多少,合適的選擇可以使粒子具有均衡的探索能力和開(kāi)發(fā)能力,慣性權(quán)重的取法有常數(shù)法、線(xiàn)性遞減法、自適應(yīng)法等。,3。算法介紹,例對(duì)于問(wèn)題FXX12X22X32求解,粒子可以直接編碼為X1,X2,X3,而適應(yīng)度函數(shù)就是FX,接著我們就可以利用前面的過(guò)程去尋優(yōu),尋優(yōu)過(guò)程是一個(gè)迭代過(guò)程,中止條件一般為設(shè)置為達(dá)到最大循環(huán)數(shù)或者最小錯(cuò)誤要求。,3。算法介紹,PSO框架圖,粒子群優(yōu)化算法MATLAB工具箱簡(jiǎn)介,MATLAB粒子群工具箱(PSOT)提供了非常先進(jìn)的粒子群優(yōu)化算法,可指定慣性因子的起始值和中止值,可約定各維變量的取值范圍、粒子在遇到邊界時(shí)是否反彈等各種參數(shù)。除此以外,粒子群工具箱既可以在用戶(hù)約定的范圍內(nèi)自動(dòng)隨機(jī)生成指定群體規(guī)模的初始粒子群,也可人工輸入小于群體規(guī)模的任意數(shù)目的初始粒子,具備非常強(qiáng)的靈活性。,粒子群優(yōu)化算法MATLAB工具箱簡(jiǎn)介,粒子群優(yōu)化算法MATLAB工具箱簡(jiǎn)介,PSOT具有非常強(qiáng)的靈活性,在實(shí)際計(jì)算中,用戶(hù)只要根據(jù)需求編寫(xiě)好目標(biāo)函數(shù),并設(shè)置好函數(shù)自變量的取值范圍和每步迭代允許的最大變化量,PSOT即可自動(dòng)進(jìn)行優(yōu)化計(jì)算。,該工具箱的使用方法主要分為一下幾個(gè)步驟(1)在MATLAB的命令窗口中點(diǎn)擊“FILE”,“SETPATH”,設(shè)置工具箱的路徑。(2)編寫(xiě)待優(yōu)化的函數(shù)(TEST_FUNC,保存為同名M文件,粒子群優(yōu)化算法MATLAB工具箱簡(jiǎn)介,(3)調(diào)用粒子群算法的核心模塊PSO_TRELEA_VECTORIZEDM,其調(diào)用格式為PSO_TRELEA_VECTORIZEDFUNCTNAME,D,MV,VARRANGE,MINMAX,PSOPARAMS,PLOTFCN,PSOSEEDVALUE,PSO_TRELEA_VECTORIZEDFUNCTNAME,D,MV,VARRANGE,MINMAX,PSOPARAMS,PLOTFCN,PSOSEEDVALUEFUNCTNAME目標(biāo)函數(shù)名D待優(yōu)化問(wèn)題的維數(shù);MV粒子飛行的最大速度;VARRANGE參數(shù)變化范圍矩陣;MINMAX尋優(yōu)類(lèi)型,取0代表求目標(biāo)函數(shù)最小值,取1代表求目標(biāo)函數(shù)最大值);PSOPARAMS參數(shù)矩陣,包括最大迭代次數(shù)、粒子群規(guī)模、慣性因子、學(xué)習(xí)因子、終止迭代條件等;PLOTFCN尋優(yōu)過(guò)程中用于展示尋優(yōu)過(guò)程的畫(huà)圖函數(shù);PSOSEEDVALUE可允許用戶(hù)輸入任意多組初始粒子。,求非線(xiàn)性函數(shù)極大值,工具箱應(yīng)用實(shí)例,工具箱應(yīng)用實(shí)例,(1)編寫(xiě)待優(yōu)化函數(shù)程序FUNCTIONZTEST_FUNCINNNSIZEIN輸入的是矩陣,即算法中隨機(jī)產(chǎn)生一組X和Y,按XNN,1,YNN,1排列XIN,1YIN,2NXNN1FORI1NXTEMPSINSQRTXI2YI2/SQRTXI2YI2EXPCOS2PIXICOS2PIYI/2271289ZI,TEMPEND,工具箱應(yīng)用實(shí)例,(2)編寫(xiě)調(diào)用函數(shù)X_RANGE2,2Y_RANGE2,2RANGEX_RANGEY_RANGEMAX_V02RANGE,2RANGE,1最大速度取范圍的10%20N2粒子維數(shù)PSOPARAMS103002022090415001E25250NAN00個(gè)體數(shù)目20,進(jìn)化次數(shù)300PSO_TRELEA_VECTORIZEDTEST_FUNC,N,MAX_V,RANGE,1,PSOPARAMS,工具箱應(yīng)用實(shí)例,,,,,,
下載積分: 4 賞幣
上傳時(shí)間:2024-01-06
頁(yè)數(shù): 22
大小: 2.01(MB)
子文件數(shù):