基于全局最优的快速人工鱼群算法及其应用研究

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

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

if(i ,jd Y){ jmaxY = Y;jmaxX = X;} fn =0;

for ( j=0; j

if ( max , jd< Visual ) {fn ++; }

Else

returnAF_foodconsistence (

i |nextX );

2 人工鱼群算法在各领域的应用

2.1 电力系统规划中的应用 在电力系统中人工鱼群算法是通过禁忌搜索方式的使

用,并对人工鱼的一些行为加以改进,让人工鱼在游动完成

各种位置的探索的时候具备一定的记忆能力。然后会将探索

过的地方设置为记忆禁区,这样能提高工作效率,最大程度 状态加以标记,这样能更好的确保搜索有更高的效率和更好 的质量。

2.2 在多级梯阶物流中转的运输系统中起优化作用 在这个领域内应用人工鱼群算法,要对变量的约束条件

以及求解的精确程度进行重点考虑,要使需要求解的空间有 离散化特性,使一个比较大的变量空间变成大小适中的网格, 用人工鱼群的相关计算形式能使各级的中转站和网路点之 间的关系更加明确,并能在一定程度上消除相邻的两级中转 站之间的约束条件,并利用对算法的改良使问题的优化方式AF_prey (); 避免出现重复的搜索情况。并对搜索记忆中

些比较好的

相关文档
最新文档