1701011672
1701011673
考虑鱼群的追尾行为如图10-13所示。
1701011674
1701011675
1701011676
1701011677
1701011678
图10-13 鱼群追尾行为
1701011679
1701011680
1701011681
追尾行为指鱼向其可视区域内的最优方向移动的一种行为。人工鱼xi搜索其视野内所有伙伴中的函数最优伙伴xi,如果,表明最优伙伴的周围不太拥挤,则人工鱼xi朝函数最优伙伴xi移动一步,否则执行觅食行为。
1701011682
1701011683
鱼群的追尾行为编程如下:
1701011684
1701011685
function [Xnext,Ynext]=AF_follow(X,i,visual,step,deta,try_number,LBUB, lastY) %追尾行为 %输入: %X 所有人工鱼的位置 %i 当前人工鱼的序号 %visual 感知范围 %step 最大移动步长 %deta 拥挤度 %try_number 最大尝试次数 %LBUB 各个数的上下限 %lastY 上次的各人工鱼位置的食物浓度 %输出: %Xnext Xi人工鱼的下一个位置 %Ynext Xi人工鱼的下一个位置的食物浓度 Xi=X(
:,i); D=AF_dist(Xi,X); index=find(D>0 & D
0 XX=X(:,index); YY=lastY(index); [Ymax,Max_index]=max(YY); Xmax=XX(:,Max_index); Yi=lastY(i); if Ymax/nf>deta*Yi; Xnext=Xi+rand*step*(Xmax-Xi)/norm(Xmax-Xi); for i=1:length(Xnext) if Xnext(i)>LBUB(i,2) %上限设置 Xnext(i)=LBUB(i,2); end if Xnext(i):,i),i,visual,step,try_number,LBUB, lastY); end else [Xnext,Ynext]=AF_prey(X(:,i),i,visual,step,try_number,LBUB,lastY); end
1701011686
1701011687
求解完成,相应的画图程序如下:
1701011688
1701011689
%%画图显示 figure(‘color’,[1,1,1]) %设置图形背景为白色 [X1,X2] = meshgrid(-10
:0.1:10,-10:0.1:10); %平面栅格化 Y=sin(X1)./X1.*sin(X2)./X2; %目标函数 mesh(X1,X2,Y) %曲面 hold on %图形保持句柄 plot3(bestx(1),bestx(2),besty,‘b.’,‘Markersize’,40) %画图
1701011690
1701011691
运行程序输出结果如下:
1701011692
1701011693
最优解X: 0.00906 0.01187 最优解Y: 0.99996 时间已过 6.528033 秒。
1701011694
1701011695
输出图形如图10-14~图10-16所示。
1701011696
1701011697
1701011698
1701011699
1701011700
图10-14 最优鱼位置更新 图10-15 目标优化值适应度曲线
1701011701
1701011702
图10-16 寻优点
1701011703
1701011704
如图10-14~图10-16所示,采用人工鱼群算法,能够精确地进行函数寻优,因此生物智能算法不愧堪称为21世纪最璀璨的明星算法。
1701011705
1701011706
生物信息学是一门涵盖生物学、数学、化学、物理学和计算机科学等学科的年轻科学,也是近年来发展非常迅速的研究领域。目前,生物信息学研究工作者大都依据各自的知识背景采用擅长的数学方法,独门利器,庖丁解牛,从初等数学到高等数学,可谓是“十八般武艺、各显神通”。巧用生物智能算法,如你所想,一切尽在人与自然。
1701011707
1701011708
1701011709
[
上一页 ]
[ :1.70101166e+09 ]
[
下一页 ]