基本人工鱼群算法

上传人:s****a 文档编号:108137369 上传时间:2022-06-15 格式:DOCX 页数:16 大小:118.62KB
收藏 版权申诉 举报 下载
基本人工鱼群算法_第1页
第1页 / 共16页
基本人工鱼群算法_第2页
第2页 / 共16页
基本人工鱼群算法_第3页
第3页 / 共16页
资源描述:

《基本人工鱼群算法》由会员分享,可在线阅读,更多相关《基本人工鱼群算法(16页珍藏版)》请在装配图网上搜索。

1、基本人工鱼群算法摘要人工鱼群算法(ArtificialFish-SwarmAlgorithm,AFSA是由李晓磊等在2002年提出的,源于对鱼群运动行为的研究,是一种新型的智能仿生优化算法。它具有较强的鲁棒性、优良的分布式计算机制易于和其他方法结合等优点。目前对该算法的研究、应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。人工鱼群算法已经成为交叉学科中一个非常活跃的前沿性学科。本文主要对鱼群算法进行了概述,引入鱼群模式的概念,然后给出了人工鱼的结构,接下来总结出了人工鱼的寻优原理,并对人工鱼群算法的寻优过程进行仿真,通过四个标准函数选取不同的拥挤度因子进行仿

2、真实验,证实了利用人工鱼群算法进行全局寻优确实是有效的。关键词:人工鱼群算法;拥挤度因子;寻优0引言动物在进化过程中,经过漫长的优胜劣汰,形成了形形色色的觅食和生存方式,这些方式为人类解决生产生活中的问题带来了不少启发和灵感。动物不具备复杂逻辑推理能力和综合判断等高级智能,但他们通过个体的简单行为和相互影响,实现了群体的生存和进化。动物行为具有以下几个特点。(1)适应性:动物通过感觉器官来感知外界环境,并应激性的做出各种反应,从而影响环境,表现出与环境交互的能力。(2)自治性:在不同的时刻和不同的环境中能够自主的选取某种行为,而无需外界的控制或指导。(3)盲目性:单个个体的行为是独立的,与总目

3、标之间没有直接的关系。(4)突现性:总目标的完成是在个体行为的运动过程中突现出来的。(5)并行性:各个个体的行为是并行进行的。人工鱼群算法是根据鱼类的活动特点提出的一种基于动物行为的自治体寻优模式。1鱼群模式描述1.1鱼群模式的提出20世纪90年代以来,群智能(swarmintelligenee,SI)的研究引起了众多学者的极大关注,并出现了蚁群优化、粒子群优化等一些著名的群智能方法。集群是生物界中常见的一种现象,如昆虫、鸟类、鱼类、微生物乃至人类等等。生物的这种特性是在漫长的进化过程中逐渐形成的,对其生存和进化有着重要的影响,同时这些方式也为人类解决问题的思路带来不少启发和鼓舞。因此,近年来

4、有不少科学家对生物行为进行了广泛研究,并逐渐形成了一种基于生物行为的人工智能模式。这种基于生物行为的人工智能模式与经典的人工智能模式是不同的,它不是采取自上而下的设计方法,而是采取自下而上的设计方法:首先设计单个实体的感知、行为机制,然后将一个或一群实体放置于环境中,让它们在与环境的交互作用中解决问题。它是内嵌的、物化的、自治的、突现的。一个集群通常定义为一群自治体的集合,他们利用相互直接或间接的通信,从而通过全体的活动来解决一些分布式难题。在这里,自治体是指在一个环境中具备自身活动能力的一个实体,其自身力求简单,通常不必具有高级智能。但是,它们的集群活动所表现出来的则是一种高级智能才能达到的

5、活动,这种活动可以称为集群智能。动物自治体通常指自主机器人或动物模拟实体,它主要用来展示动物在复杂多变的环境中能够自主产生自适应的智能行为的一种方式。自治体的行为受到环境的影响同时每一个自治体又是环境的构成因素。环境的下一个状态是当前状态和自治体活动的函数,自治体的下一个刺激是在环境的当前状态和其自身活动的函数,自治体的合理架构就是能在环境的刺激下做出最好的应激活动。将动物自治体的概念引入鱼群优化算法中,采用自下而上的设计思路,应用基于行为的人工智能方法,形成一种新的解决问题的模式,因为是从分析鱼类活动而出发的,所以称为鱼群模式。该模式用于寻优中,形成人工鱼群算法。在一片水域中,鱼生存数目最多

6、的地方一般就是该水域中富含营养物质最多的地方,依据这一点来模仿鱼群的觅食、群聚、追尾等行为,从而实现全局寻优,这就是人工鱼群算法的基本思想。1.2人工鱼的结构模型人工鱼(artificialfish,AF)是真实鱼的一个虚拟实体,用来进行问题的分析和说明。人工鱼的结构模型和行为描述可以借助面向对象的分析方法,如图1.1所示。可以认为人工鱼就是封装了自身数据和一系列行为的实体,可以通过感官来接收环境的刺激信息,并通过控制尾鳍来做出相应的应激活动。图1.1人工鱼的结构人工鱼所在的环境主要是问题的解空间和其人工鱼的状态,它在下一刻的行为取决于目前自身状态和目前环境状态,并且它还通过自身活动来影响环境

7、,进而影响其他同伴的活动。人工鱼对外界的感知是靠视觉来实现的。生物的视觉是极其复杂的,为了实施的简单有效,在人工鱼的模型中应用如下方法实现虚拟人工鱼的视觉。如图1.2所示,一条虚拟人工鱼当前状态为X,Visual为其视野范围状态Xv为其某时刻视点所在的位置,若该位置的状态由于当前状态,则考虑向当前位置方向前进一步,即到达状态Xnext;若状态Xv不比当前状态更优,则继续巡视视野内的其他位置。巡视的次数越多,对视野的状态了解的越全面,从而对周围的环境有一个全方位立体的认知,这有助于做出相应的判断和决策。当然,对于状态多状态无限的环境也不必全部遍历,允许人工鱼具有一定的不确定性的局部寻优,从而对寻

8、找全局最优是有帮助的。图1.2人工鱼视觉的概念其中,状态X=(XX2,Xn),状态Xv=(Xw,X2v,Xnv),则该过程可以表示如下:Xv=xVisual*Rand()neXt=xXtHXStep*Rand()式中,Rand()函数为产生0到1之间的随机数;Step为移动步长。由于环境中同伴的数目是有限的,因此在视野中感知同伴(如图1.2中X1,X2等)的状态,并相应的调整自身状态,方法与上式类似。通过模拟鱼类的四种行为一一觅食行为、聚群行为、追尾行为和随机行为,来使鱼类活动在周围的环境。这些行为在不同的条件下会相互转换。鱼类通过对行为的评价,选择一种当前最优的行为进行执行,以达到食物浓度更

9、高的位置,这是与鱼类生存有着密切关系的。算法采用面向对象的技术重构人工鱼的模型,将人工鱼封装成变量和函数两部分。变量部分包括人工鱼的总数N人工鱼个体的状态X=(为公2,Xj(其中Xii=1,2,.,n为欲寻优的变量)、人工鱼移动的最大步长Step、人工鱼的视野Visual、尝试次数Try_number、拥挤度因子6、人工鱼个体i,j之间的距离dj=XjXj。函数部分包括人工鱼当前所在位置的食物浓度Y=f(X)(丫为目标函数值)、人工鱼的各种行为函数(觅食行为Prey()、聚群行为Swarm()、追尾行为Follow()、随机行为Move()以及行为评价函数Evaluate。)。通过这种圭寸装,

10、人工鱼的状态可以被其他同伴所感知。2人工鱼的四种基本行为算法描述鱼类不具备人类所具有的复杂逻辑推理能力和综合判断能力等高级智能,它们的目的是通过个体的简单行为或通过简单行为而达到或突现出来的。这里,对人工鱼定义了四种基本行为。1.觅食行为这是人工鱼的一种基本行为,也就是趋向食物的一种活动,一般可以认为它是通过视觉或味觉来感知水中的食物量或浓度进而来选择趋向的,因此前面讲到的视觉概念可以应用于该行为。行为描述:设人工鱼i当前状态为Xj,在其感知范围内随机选择一个状态Xj(2.1)丫Yj,(2.2)Xj=XiVisual*Rand()式中,Rand()是一个介于0和1之间的随机数,如果在求极大值问

11、题中,则向该方向前进一步t+tXjXX;X:jtStepRand()Xj-Xi()反之,再重新随机选择状态Xj,判断是否满足前进条件,反复尝试Try_number次后,若仍不满足前进条件,则随机移动一步伪代码描述如下:FloatArtificial_fish:AF_prey()For(i=0;itrynumber;i+)Xj=Xi+Rand()*Visual;if(YivYj)Xi/next二XiRand()StepXi-XjXjXiElseXi/nextRand()-StepReturnAF_fooodconsistence(Xi/next);2聚群行为鱼在游动过程中会自然的聚集成群,这也是

12、为了保证群体的生存和躲避危害而形成的一种生活习性。鱼群的形成也是一种突现的生动实例,一般认为鸟类和鱼类聚群的形成并不需要一个领头者,只需每只鸟或每条鱼遵循一些局部的相互作用规则,然后集群现象作为整体模式从个体的局部相互作用中突现出来。行为描述:自然界中鱼在游动过程中为保证群体的生存和躲避危害,会自然的聚集成群。在人工鱼群算法中对每条人工鱼做如下规定:一是尽量向邻近伙伴的中心移动;二是避免过分拥挤,设人工鱼当前状态为Xi,探索当前领域内dj:Visual的伙伴数目nf及中心位置X。若YJnfYi,表明伙伴中心有较多食物且不太拥挤,则朝伙伴中心位置方向前进一步+StepRand()(2.4)IXc

13、-XiII否则执行觅食行为。伪代码描述如下:FloatArtificial_fish:AF_swarm()nf=o;Xc=o;for(j=0;jvfriend_number;j+)If(dj,jVisual)nf+;X二XjelseXcX;nf,YIf(Y);nfi/next=XiRand()*StepXXcxAF_prey();ReturnAF_foodconsistence(Xi/next);3.追尾行为鱼群在游动过程中,当其中一条鱼或几条鱼发现食物时,其邻近的伙伴会尾随其快速达到食物点。行为描述:追尾行为是一种向邻近的有着最高适应度的人工鱼追逐的行为,在寻优算法中可以理解为是向附近的最优

14、伙伴前进的过程。设人工鱼i当前状态为Xi,探索当前邻域内djVisual的伙伴中Yj为最大值的伙伴Xj。若Yj/nf,Y,表明伙伴Xj的状态具有较高的食物浓度并且其周围不太拥挤,则朝Xj的方向前进一步t1tXj-X;Xi=Xj+StepRand()(2.5)|Xj-x;否则执行觅食行为。伪代码描述如下:FloatArtificial_fish:AF_follow()Ymax=-::;for(j=0;jvfriend_number;j+)If(dj,j:Visual&YjYmax)Ymax二Yj/max二Xjnf=0;For(j=0;j1b_value(passed_times)=b_value

15、(passed_times-1);elseb_x=0;b_y=0;b_value(1)=-1;endbest_af=af();best_x=O;best_y=O;best_num=O;fori=1:1:af_totalafsi=evaluate(afsi);iffoodconsistence(afsi)foodconsistence(best_af)best_af=afsi;endafs_x(i)=get(afsi,x);afs_y(i)=get(afsi,y);iffoodconsistence(afsi)b_value(passed_times)b_x=get(afsi,x);b_y=ge

16、t(afsi,y);b_value(passed_times)=foodconsistence(afsi);endendfori=1:1:af_totalifdstc(afsi,best_af)foodconsistence(af_best)af_best=af_swarm;endiffoodconsistence(af_prey)foodconsistence(af_best)af_best=af_prey;endiffoodconsistence(af_best)foodconsistence(af)af=af_best;elseaf=move(af);endFollow.mfunctio

17、naf=follow(af)globalafs;globalaf_total;n=0;f_max=-Inf;max_i=1;xo=af.x;yo=af.y;fori=1:1:af_totalif(dstc(af,afsi)f_max)f_max=foodconsistence(afsi);max_i=i;endendendif(f_max/n)(af.delta*foodconsistence(af)&(afsmax_i.x=af.x)r_step=abs(1-(foodconsistence(af)/f_max)*af.step;angle2max=atan(afsmax_i.y-af.y)

18、/(afsmax_i.x-af.x);af.x=af.x+r_step*cos(angle2max);af.y=af.y+r_step*sin(angle2max);if(af.x10|af.x10|af.y-10)af.y=yo;endelseaf=prey(af);EndFoodconsistence.mfunctionout=foodconsistence(af)out=foo(af.x,af.y);Get.mfunctionout=get(af,argin)switchargincasexout=af.x;caseyout=af.y;casevisualout=af.visual;ca

19、sestepout=af.step;casetry_numberout=af.try_number;casedeltaout=af.delta;otherwisefprintf(参数错误!n);endMove.mfunctionaf=move(af)r_angle=rand()*2*pi;r_step=rand()*af.step;af.x=af.x+r_step*cos(r_angle);af.y=af.y+r_step*sin(r_angle);Prey.mfunctionaf=prey(af)xo=af.x;yo=af.y;fori=1:1:af.try_numberr_angle=ra

20、nd()*2*pi;r_visual=rand()*af.visual;x_interval=r_visual*cos(r_angle);y_interval=r_visual*sin(r_angle);x_next=af.x+x_interval;y_next=af.y+y_interval;if(foodconsistence(af)10|af.x10|af.y-10)af.y=yo;endreturn;endendaf=move(af);Set.mfunctionaf=set(af,argin1,argin2)switcharginlcasexaf.x=argin2;caseyaf.y=

21、argin2;casestepaf.step=argin2;casevisualaf.visual=argin2;casetry_numberaf.try_number=argin2;casedeltaaf.delta=argin2;otherwisefprintf(参数错误!n);endSwarm.mfunctionaf=swarm(af)globalafs;globalaf_total;n=0;x_center=0;y_center=0;xo=af.x;yo=af.y;fori=1:1:af_totalifdstc(af,afsi)foodconsistence(af)*af.delta*n)&(x_center=af.x)r_step=abs(1-(foodconsistence(af)/foo(x_center,y_center)*af.step;angle2center=atan(y_center-af.y)/(x_center-af.x);af.x=af.x+r_step*cos(angle2center);af.y=af.y+r_step*sin(angle2center);if(af.x10|af.x10|af.y-10)af.y=yo;endreturnendendaf=prey(af);仿真结果:鱼群算法0Il051015202530354045迭代次数

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!