APP下载

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

2016-07-10郭荣艳

电子技术与软件工程 2016年7期

人工鱼群算法是一种有关动物行为的算法,这种算法具有一定的智能性,是最近几年国内学者提出来的。这种人工鱼群算法是从行为方面进行的主要研究,并对原来存在的问题进行解决。

【关键词】人工鱼群算法 优化方法 群体智能

众多实验能够证明,群体智能优化的相关算法在很多问题的解决上都发挥了至关重要的作用,也得到了十分广泛的应用。

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 代表目标函数值;

登录APP查看全文