人工魚群算法Matlab實現(xiàn)_第1頁
人工魚群算法Matlab實現(xiàn)_第2頁
人工魚群算法Matlab實現(xiàn)_第3頁
人工魚群算法Matlab實現(xiàn)_第4頁
人工魚群算法Matlab實現(xiàn)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、人工魚群算法Matlal實現(xiàn)人工魚群算法Matlab實現(xiàn)1基本思想人工魚群算法是一種基于模擬魚群行為的優(yōu)化算法,是由李曉磊等在2002年提出的一種新型的尋優(yōu)算法。在一片水域中,魚生存的數(shù)目最多的地方就是本水域中富含營養(yǎng)物質最多的地方,依據這一特點來模仿魚群的覓食等行為,從而實現(xiàn)全局尋優(yōu),這就是魚群算法的基本思想。在魚類的活動中,可以分為覓食行為、聚群行為、追尾行為和隨機行為這四種行為,如何利用簡單有效的方式來構造實現(xiàn)這些行為將是算法實施的主要問題。覓食行為主要就是循著食物多的方向游動的一種行為,在尋優(yōu)中則是向較優(yōu)方向進行的迭代方式,如魚群模式中的視覺概念;在聚群行為中,借鑒的思想對每條人工魚規(guī)

2、定了這樣兩個規(guī)則:1盡量向鄰近伙伴的中心移動;2)避免過分擁擠,這樣就能基本實現(xiàn)人工魚的聚群能力;追尾行為就是一種向臨近的最活躍者追逐的行為,在尋優(yōu)算法中可以理解為是向附近的最優(yōu)化伙伴前進的過程;隨機行為就是人工魚在其視野內隨機移動的行為,在尋優(yōu)算法中這種行為有助于解跳出局部最優(yōu)。2算法剖析假設在一個n維的目標搜索空間中,有N條組成一個群體的人工魚,每天人工魚個體的狀態(tài)可表示為向量沒=(x1,x2,,xj,其中Xi(i=1,n)為欲尋優(yōu)的變量:人工魚當前所在位置的食物濃度表示為Y=f(X),其中f()為目標函數(shù);人工魚個體間距離表示為d=|XiXjll(這是二范數(shù));visual表示人工魚的感

3、知范圍,step為人工魚移動步長,6為擁擠度因子;trynumber表示人工魚每次覓食最大試探次數(shù)。2.覓1食行為指魚循著食物多的方向游動的一種行為,人工魚百在其視野內隨機選擇一個狀態(tài)Xj,分別計算它們的目標函數(shù)值進行比較,如果發(fā)現(xiàn)Yj比逅優(yōu)(Y和逅分別為Xj和兀的適應度值),lXi向Xj的方向移動一步;否則,兀繼續(xù)在其視野內選擇狀態(tài)Xj,判斷是否滿足前進條件,反復嘗試trynumber次后,仍沒有滿足前進條件,則隨機移動一步使Xg到達一個新的狀態(tài)。表達式如下:Xj=Xg+rand()*visual(1)(2)(3)XjXiXnext=Xi+rand()*step*|XjXi|1Xnext=X

4、i+rand()*step其中rand()是介于0和1之間的隨機數(shù)。人工魚的視覺描述框架圖如下所示:偽代碼段如下:fori=1:Nforj=1:Try_numberXj=x(i)+VisuaL*rand();%人工魚Xi按式在其視野內隨機選擇一個狀態(tài)Xjiff(Xj)f(x(i)%比較Xj和Xi的適應度X_next=刈i)+rand()*step*(Xj-x(i)/norm(Xj-x(i);%人工魚Xi按式(2)朝著Xj方向移動一步,norm()函數(shù)表示二范數(shù)break;elseX_next=x(i)+step*rand();endendend2.2聚群行為魚在游動過程中為了保證自身的生存和躲

5、避危害會自然地聚集成群。人工魚百搜索其視野內(dijvisual)的伙伴數(shù)目/子及中心位置Xc,若Yc/nf*(求極小值時使用小于號,在求極大值時則相反;乙和逅分別為Xc和兀的適應度值)表明伙伴中心位置狀態(tài)較優(yōu)且不太擁擠,則Xi朝伙伴的中心位置移動一步,否則執(zhí)行覓食行為;框架圖如下所示:偽代碼段如下:nf=0;X_inside=0;fori=1:Nforj=1:Nifnorm(x(j)-x(i)Visual%求人工魚Xi與其他人工魚之間的距離nf=nf+1;%統(tǒng)計在視野范圍內的魚數(shù)量X_inside=X_inside+x(j);%將視野范圍內的魚進行累加endX_inside=X_inside

6、-x(i);%需要去除Xi本身;因為在一開始計算時,i=j,把中心的魚也進行了一次計算nf=nf-1;Xc=X_inside/nf;%此時Xc表示Xi感知范圍其他伙伴的中心位置;iff(Xc)/nf6*f(x(i)x_next=x(i)+rand*Step*(Xc-x(i)/norm(Xc-x(i);else進行覓食行動endendend2.3追尾行為指魚向其視野區(qū)域內的最優(yōu)方向移動的一種行為。人工魚百搜索其視野內(dijvisual)適應度最高的個體Xj,其適應度值為旳,并探索人工魚Xj視野內的伙伴數(shù)目nf若Yj/nf6乙,表明Xj狀態(tài)較優(yōu)且不太擁擠,貝lXi朝Xj位置移動一步,否則執(zhí)行覓食

7、行為;框架圖如下所示:偽代碼段如下:Y_max=inf;nf=O;fori=1:N%搜索人工魚Xi視野范圍內的最高適應度個體Xjforj=1:Nifnorm(x(j)-x(i)Visual&f(x(j)Y_max%求人工魚Xi與其他人工魚之間的距離X_max=x(j);Y_max=f(x(j);endend%搜索人工魚Xj視野范圍內的伙伴數(shù)量forj=1:Nif(norm(x(j)-X_max)Visual)nf=nf+1;endendnf=nf-1;%去掉他本身ifY_max/nfdelta*f(x(i)x_nex=x(i,:)+rand*Step.*(temp_maxX-x(i,:)./n

8、orm(temp_maxX-x(i,:);else進行覓食行為;endend2.4算法總述綜上所述,算法在運算過程中,會同時進行聚群和追尾行為。而覓食行為屬于這兩種行為中發(fā)現(xiàn)聚群對象或者追尾對象附近擁擠度過大時,人工魚選擇的行為方式,若在覓食過程中,未發(fā)現(xiàn)比自身適應度高的人工魚,則按步長step隨機移動。最后對聚群行為和追尾行為得到的適應度值進行比較,選擇優(yōu)秀的人工魚作為下一代的個體。其總框架圖如下:分析擁擠度因子61擁擠度因子的取值在求極小值問題中:6=anmax,ae(0,1在求極大值問題中:6=a爲觀e(0,1其中a為極值接近水平,nmax為期望在該鄰域內聚集的最大人工魚數(shù)目。擁擠度因子

9、的作用機理對追尾行為的描述圖中afO為人工魚af1-5在各自視野內的最優(yōu)人工魚,其實物濃度為Yj,C1為以af0為圓心,以視野范圍為半徑的圓,即能探知af0的最遠距離,人工魚越靠近afO,狀態(tài)越優(yōu)。求極大值情況下:當磯子1時,所有人工魚af1-5都執(zhí)行追尾行為,向af0游動;16=anmaxnf6nf=anmax1當a=1的時候,可以明顯看出來nf1時,若C2的食物濃度為爲的等濃度食物圈,則C2與C1間的人工魚af1、af2、af3執(zhí)行追尾行動,向afO游動,人工魚af4、af5執(zhí)行覓食行為。此時dnf越大執(zhí)行追尾行動的人工魚越少,反之越多。3.2擁擠度因子的影響以極大值為例(極小值的情況正好

10、和極大值相反),6越大,表明允許的擁擠程度越小,人工魚擺脫局部最優(yōu)的能力越強;但是收斂的速度會有所減緩,這主要因為人工魚在逼近極值的同時,會因避免過分擁擠而隨機走開或者受其它人工魚的排斥作用,不能精確逼近極值點??梢?,6的引入避免了人工魚過度擁擠而陷入局部極值,另一方面,該參數(shù)會使得位于極值點附近的人工魚之間存在相互排斥的影響,而難以向極值點精確逼近,所以,對于某些局部極值不是很嚴重的具體問題,可以忽略擁擠的因素,從而在簡化算法的同時也加快了算法的收斂速度和提高結果的精確程度。4算法實現(xiàn)%sum(sin(x)./x)極小值clearall;closeall;clc;Visual=25;%人工魚

11、的感知距離Step=3;%人工魚的移動最大步長N=30;%人工魚的數(shù)量dim=10;%人工魚維度Try_number=50;%迭代的最大次數(shù)delta=27;%擁擠度因子%測試函數(shù)f=(x)sum(x.A2);f=(x)sum(xS2);ub=100;%邊界上限lb=-100;%邊界下限d=;%存儲50個狀態(tài)下的目標函數(shù)值;Iteration=1;%Max_iteration=500;%迭代次數(shù)%初始化人工魚種群x=lb+rand(N,dim).*(ub-lb);%計算10個初始狀態(tài)下的適應度值;fori=1:Nfitness_fish(i)=f(x(i,:);endbest_fitness,

12、I=min(fitness_fish);%求出初始狀態(tài)下的最優(yōu)適應度;best_x=刈I,:);%最優(yōu)人工魚;whileIteration=Max_iterationfori=1:N%聚群行為nf_swarm=0;Xc=0;label_swarm=0;%群聚行為發(fā)生標志%確定視野范圍內的伙伴數(shù)目與中心位置forj=1:Nifnorm(x(j,:)-x(i,:)Visualnf_swarm=nf_swarm+1;%統(tǒng)計在感知范圍內的魚數(shù)量Xc=Xc+x(j,:);%將感知范圍內的魚進行累加endendXc=Xc-x(i,:);%需要去除本身;因為在一開始計算時,i=j,把中心的魚也進行了一次計算

13、nf_swarm=nf_swarm-1;Xc=Xc/nf_swarm;%此時Xc表示視野范圍其他伙伴的中心位置;%判斷中心位置是否擁擠if(f(Xc)/nf_swarmub;lb_flac=x_swarmub;lblag2=x_prey_randf(x_prey_rand)x_swarm=x(i,:)+rand*Step.*(x_prey_rand-x(i,:)./norm(x_prey_rand-x(i,:);ub_flag2=x_swarmub;lb_flag2=x_swarmub;lblag2=x_swarmlb;x_swarm=(x_swarm.*(ub_flag2+lblag2)+u

14、b.*ub_flag2+lb.*lblag2;x_swarmitness=f(x_swarm);endend%追尾行為fitness_follow=inf;label_follow=0;%追尾行為發(fā)生標記%搜索人工魚Xi視野范圍內的最高適應度個體Xjforj=1:Nif(norm(x(j,:)-x(i,:)Visual)&(f(x(j,:)fitnessfollow)best_pos=x(j,:);fitness_follow=f(x(j,:);endend%搜索人工魚Xj視野范圍內的伙伴數(shù)量nf_follow=0;forj=1:Nifnorm(x(j,:)-best_pos)Visualnf

15、_follow=nf_follow+1;endendnf_follow=nf_follow-1;%去掉他本身%判斷人工魚Xj位置是否擁擠if(fitnessollow/nfollow)delta*f(x(i,:)&(fitness_followub;lb_flag2=x_followub;lblag2=x_prey_randf(x_prey_rand)x_follow=x(i,:)+rand*Step.*(x_prey_rand-x(i,:)./norm(x_prey_rand-x(i,:);ub_flag2=x_followub;lb_flag2=xollowub;lb_flag2=x_fo

16、llowlb;x_follow=(xollow.*(ub_flag2+lblag2)+ub.*ub_flag2+lb.*lblag2;x_follow_fitness=f(x_follow);x_follow_fitness=f(xollow);endend%兩種行為找最優(yōu)ifx_follow_fitnessx_swarm_fitnessx(i,:)=x_follow;elsex(i,:)=x_swarm;endend%更新信息fori=1:Nif(f(x(i,:)best_fitness)best_fitness=f(x(i,:);best_x=x(i,:);endendConvergence_curve(Iteration)=best_fitness;Iteration=Iteration+1;ifmod(Iteration,50)=0display(迭代次數(shù):,num2str(Iteration),最優(yōu)適應度:,num2str(best_fitness);display(最優(yōu)人工魚:,num2str(best_x);endendfigure(Position,284214660290)subplot(1,2,1);x=-100:1:100;y=x;L=length(x);fori=1:Lforj=

溫馨提示

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

評論

0/150

提交評論