人工魚群算法matlab實(shí)現(xiàn)_第1頁(yè)
人工魚群算法matlab實(shí)現(xiàn)_第2頁(yè)
人工魚群算法matlab實(shí)現(xiàn)_第3頁(yè)
人工魚群算法matlab實(shí)現(xiàn)_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、functionlhl_AFclc;clearall;closeall;formatlongVisual=2.5;%人工魚的感知距離Step=0.3;%人工魚的移動(dòng)最大步長(zhǎng)N=10;%人工魚的數(shù)量Try_number=50;%迭代的最大次數(shù)delta=0.618;%擁擠度因子a1=-10;b1=10;a2=-10;b2=10;d=;%存儲(chǔ)50個(gè)狀態(tài)下的目標(biāo)函數(shù)值;k=0;m=50;%迭代次數(shù)X1=rand(N,1)*(b1-a1)+a1;%-1010之間,隨機(jī)生成50個(gè)數(shù);X2=rand(N,1)*(b2-a2)+a2;X=X1X2;%X=ones(N,2);%fori=1:N%X(i,1)=

2、-10;%X(i,2)=10;%end%人工魚數(shù)量,兩個(gè)狀態(tài)變量X1和X2;%計(jì)算50個(gè)初始狀態(tài)下的;fori=1:Nwww=X(i,1),X(i,2);d(i)=maxf(www);end%公告牌用于記錄人工魚個(gè)體的歷史最好狀態(tài)w,i=max(d);%求出初始狀態(tài)下的最大值w和最大值的位置i;maxX=X(i,1),X(i,2);%初始公告板記錄,最大值位置;maxY=w;%初始化公告板記錄,最大值;figurex=;figurey=;figurez=;figurex(numel(figurex)+1)=maxX(1);%將maxX(1)放入figurex中,figurey(numel(fi

3、gurey)+1)=maxX(2);%numel返回?cái)?shù)組或者向量中所含元素的總數(shù),matlab數(shù)組下標(biāo)默認(rèn)是從1開始的figurez(numel(figurez)+1)=maxY;while(km)fori=1:NXX=X(i,1),X(i,2);%拿出其中一條魚來看他的四種行為判斷%囑一種行為:聚群行為:伙伴多且不擠,就向伙伴中心位置移動(dòng)%群聚行為是伙伴的中心點(diǎn),凸規(guī)劃下,中心點(diǎn)一定還在約束內(nèi)%群聚行為不是一種maxf(Xc)的比較,就是看伙伴位置nf1=0;Xc=0;label_swarm=0;%群聚行為發(fā)生標(biāo)志forj=1:NXX_1=X(j,1),X(j,2);if(norm(XX_1

4、-XX)delta*maxf(XX)&(norm(Xc-XX)=0)XXR1=rand*Step*(Xc-XX)/norm(Xc-XX);XXnext1=XX+XXR1;if(XXnext1(1)b1)XXnext1(1)=b1;endif(XXnext1(1)b2)XXnext1(2)=b2;endif(XXnext1(2)a2)XXnext1(2)=a2;endlabel_swarm=1;temp_y_XXnext1=maxf(XXnext1);elselabel_swarm=0;temp_y_XXnext1=-inf;end%囑二種行為:追尾行為:周圍伙伴有最大值且附近不擠,向其伙伴方向

5、移動(dòng)%追尾行為追尋伙伴行為,還是在約束內(nèi)temp_maxY=-inf;%按照理論來說這塊應(yīng)該初始化為-無窮小,label_follow=0;%追尾行為發(fā)生標(biāo)記forj=1:NXX_2=X(j,1),X(j,2);if(norm(XX_2-XX)temp_maxY)temp_maxX=XX_2;temp_maxY=maxf(XX_2);endendnf2=0;forj=1:NXX_2=X(j,1),X(j,2);if(norm(XX_2-temp_maxX)delta*maxf(XX)&(norm(temp_maxX-XX)=0)%附近有Yj最大的伙伴,并且不太擁擠XXR2=rand*Step*

6、(temp_maxX-XX)/norm(temp_maxX-XX);%rand不是隨機(jī)反向,是隨機(jī)步長(zhǎng)XXnext2=XX+XXR2;if(XXnext2(1)b1)XXnext2(1)=b1;endif(XXnext2(1)b2)XXnext2(2)=b2;endif(XXnext2(2)b1)%下面這四個(gè)是一套,如果超出約束條件,就選值為邊界條件XX_3(1)=b1;endif(XX_3(1)b2)XX_3(2)=b2;endif(XX_3(2)a2)XX_3(2)=a2;endif(maxf(XX)b1)%下面這四個(gè)是一套,如果超出約束條件,就選值為邊界條件XXnext3(1)=b1;e

7、ndif(XXnext3(1)b2)XXnext3(2)=b2;endif(XXnext3(2)b1)%下面這四個(gè)是一套,如果超出約束條件,就選值為邊界條件XX(1)=b1;endif(XX(1)b2)XX(2)=b2;endif(XX(2)temp_y_XXnext2)if(temp_y_XXnext1temp_y_XXnext3)temp_XX=XXnext1;elsetemp_XX=XXnext3;endelseif(temp_y_XXnext2temp_y_XXnext3)temp_XX=XXnext2;elsetemp_XX=XXnext3;endendendXX=temp_XX;X

8、(i,1)=XX(1);X(i,2)=XX(2);%end%至此,所有人工魚,完成一次行為判斷和移動(dòng)%這塊是更新公告牌信息fori=1:NXXX=X(i,1),X(i,2);if(maxf(XXX)maxY)maxY=maxf(XXX);maxX=XXX;figurex(numel(figurex)+1)=maxX(1);figurey(numel(figurey)+1)=maxX(2);figurez(numel(figurez)+1)=maxY;endendx=X(:,1);y=X(:,2);plot(x,y,*r);axis(-1010-1010);k=k+1endmaxXmaxYplot3(figurex,fi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論