基于全局最优的快速人工鱼群算法及其应用研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于全局最优的快速人工鱼群算法及其应用研究
人工鱼群算法是一种有关动物行为的算法,这种算法
具有一定的智能性,是最近几年国内学者提出来的。
这种人工鱼群算法是从行为方面进行的主要研究,并对原来存在的问题进行解决。
关键词】人工鱼群算法优化方法群体智能
众多实验能够证明,群体智能优化的相关算法在很多问
题的解决上都发挥了至关重要的作用,也得到了十分广泛的应用。
1人工鱼群算法
1.1鱼群及其算法的基本思想人工鱼群算法主要依据的是鱼群的行为启
发,在2002
年被提出的一种有关动物行为的比较优化的算法。
一般情况
个范围之内,鱼群中的鱼会跟随群体中的其它成员
起找到食物比较多的地方。
而通常情况下,一片水域范围内食物最多的地方往往会有最多的鱼群数目。
根据这个特点,使用人工制作的鱼对鱼群的各种行为进行模拟,进而完成直线寻优的目的。
1.2人工鱼模型有关人工鱼模型的算法使用的是基于animats 的模
式,
设计采用的顺序是从上到下的,因此先进行的步骤就是人工 鱼模型的建造。
通常情况下使用的是面向对象的技术方式, 并用会用C++语言的伪代码形式来加以说明。
人工鱼一般的 模型描述方式如下:
Various : float AF_swarm (); //the behavior of swarm float AF_evaluate (); //evaluate and select the behavior float AF_init (); //to initialize the AF
Aritificial_fish (); float AF_X[n] ;
//AF 's position step
float AF_step ;
//the distance that AF can moue for each float AF_visual ;
//the visual diatance of AF float try_number ; //attempt time in the behavior of prey float AF_delta ;
//the condition of jamming Functions :
float AF_foodconsistence (); //the food consistence of AF ' s current position
float AF_move (); //AF move to the next position
float AF_follow ();
//the behavior of follow float AF_prey ();
//the behavior of prey
Virtual 〜Aritificial_fish ();
};
通过上述模型的设置,会让人工鱼相关信息能被同伴收
到,并能将人工鱼的一些行为规划到种群类型之中,会在鱼中间有所感知。
对人工鱼个体的状态表示通常表示为向量X=(x1,x2,
x3 .. xn),其中xi (i=1,……,n )表示要寻优的变量;
然后将人工鱼处在环境的食物多少表示为丫 = f ( X),丫代
表目标函数值;人工鱼个体之间的距离表示为dij= |Xi-Xj| ;挤情
况。
Step 表示人工鱼移动的最长/距离;S表示和其他鱼之家的拥
1.2.1 聚群行为有关人工鱼的聚群行为可以用伪代码形式加以说
明,可
以设人工鱼当前状态是Xi,要完成的任务是对周围一定范围
内有伙伴的数目fn及中心位置Xc进行测量,要是得到的两个数相比的比值小于S 丫,则表示人工鱼中心位置食物比较
充足,也没有很多同伴在周围,然后可以向食物方向游动次;如果情况相反那么就不执行觅食行为。
伪代码描述如下:
float Artificial_fish ::AF_swarm()
f n=0;Xc =0;for( j=0;j<friend_number ;j++)
if(i ,dj< Visual){nf ++;Xc +=Xj;} else
AF_prey();
Return AF_foodconsistence (
i |next
X );
1.2.2追尾行为有关追尾行为同样可以使用伪代码方式进行表示,首
先
设人工鱼当前状态设置为Xi ,要完成的任务书要对一定范
围内的的伙伴数量Yj进行探索,其中最大的伙伴Xj的数量
如果比拥挤度S大,表明伙伴Xj周围具食物比较充分,并且其周围环境没有很多同伴,于是应该执行朝伙伴Xj 的方向前进一步命令;如果得到的结果相反,就不执行觅食行为。
伪代码描述如下:
float Artificial_fish ::AF_follow ()
丫max= 8 for (j=0;j<friend_number ;j++)
if(i ,jd Y){ jmaxY = Y;jmaxX = X;} fn =0;
for ( j=0; j<friend_number ;j++)
if ( max , jd< Visual ) {fn ++; }
Else
returnAF_foodconsistence (
i |nextX );
2 人工鱼群算法在各领域的应用
2.1 电力系统规划中的应用 在电力系统中人工鱼群算法是通过禁忌搜索方式的使
用,并对人工鱼的一些行为加以改进,让人工鱼在游动完成
各种位置的探索的时候具备一定的记忆能力。
然后会将探索
过的地方设置为记忆禁区,这样能提高工作效率,最大程度 状态加以标记,这样能更好的确保搜索有更高的效率和更好 的质量。
2.2 在多级梯阶物流中转的运输系统中起优化作用 在这个领域内应用人工鱼群算法,要对变量的约束条件
以及求解的精确程度进行重点考虑,要使需要求解的空间有 离散化特性,使一个比较大的变量空间变成大小适中的网格, 用人工鱼群的相关计算形式能使各级的中转站和网路点之 间的关系更加明确,并能在一定程度上消除相邻的两级中转 站之间的约束条件,并利用对算法的改良使问题的优化方式AF_prey (); 避免出现重复的搜索情况。
并对搜索记忆中
些比较好的
更容易使用。
实践中能够看出,这种算法在多级梯阶的运输系统的问题处理上会得到很好的应用。
3结束语人工鱼群算法根据自然界鱼群的行为作为使用原理,通
过不断更新和升级会应用在更多领域中。
总而言之,基于全算方式在各个领域中也能加以运用。
局最优的快速人工鱼群相关算法在实际应用中分实用,计参考文献
[1]潘海珠,杜晓昕,王波.基于人工鱼群的交通诱导系统
最优查询研究[J].齐齐哈尔大学学报(自然科学版),2012
05).
[2]胡青,孙才新,杜林,李剑.核主成分分析与随机森林
相结合的变压器故障诊断方法[J].高电压技术,2010 ( 07).
[3]符杨,田振宁,江玉蓉,曹家麟.加权模糊核聚类法在
电力变压器故障诊断中的应用[J].高电压技术,2010 ( 02).
[4]王联国,洪毅,赵付青,余冬梅.一种简化的人工鱼群
算法[J].小型微型计算机系统,2009( 08).
作者简介郭荣艳( 1 97 7- ) ,女,河南省周口市人。
硕士学位。
现
为周口师范学院副教授。
主要研究方向为信号与信息处理。
史水娥,现供职于河南师范大学。
作者单位
1.周口师范学院河南省周口市466001
2.河南师范大学河南省新
乡市453007。