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