人工鱼群算法综述

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人工鱼群改进算法研究综述

摘要:人工鱼群算法源于对鱼群运动行为的研究,是一种新型的群体智能随机全局优化算法,人工鱼群算法(AFSA)起步较晚,还存在着许多不足之处。因此本文主要通过阐述鱼群算法的基本理论的同时,对人工鱼群算法的改进方法进行文献综述,并根据这些改进方法指出了人工鱼群算法未来的改进与研究方向。

关键词:人工鱼群算法算法改进综述

1.引言

1.1 人工鱼群算法的基本概念

人工鱼群算法是李晓磊等[1]人于2002年提出的一种基于动物自治体[2-3]的优化方法,是集群智能思想[4]的一个具体应用,该算法根据水域中鱼生存数目最多的地方就是本水域中富含营养物质最多的地方这一特点来模拟鱼群的觅食行为而实现寻优。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工鱼个体的局部寻优行为,最终在群体中使全局最优值突现出来,有着较快的收敛速度[5]。

人工鱼群算法主要利用鱼的三大基本行为:觅食、聚群和追尾行为,采用自上而下的寻优模式从构造个体的底层行为开始,通过鱼群中各个体的局部寻优,达到全局最优值在群体中凸显出来的目的[6]。

(1)觅食行为:这是鱼趋向食物的一种活动,一般认为它是通过视觉或味觉来感知水中的食物两或食物浓度来选择行动的方向[6]。

(2)聚群行为:大量或少量的鱼聚集成群,进行集体觅食和躲避敌害,这是它们在进化过程中形成的一种生存方式[6]。

(3)追尾行为:当某一条鱼或几条鱼发现食物时,它们附近的鱼会尾随而来,导致更远处的鱼也会尾随过来[6]。

人工鱼群算法就是通过模拟鱼类的觅食、聚群、追尾等行为在搜索域中进行寻优的。

1.2 人工鱼群算法的行为描述

觅食行为:设置人工鱼当前状态,并在其感知范围内随机选择另一个状态,如果得到的状态的目标函数大于当前的状态,则向新选择得到的状态靠近一步,反之,重新选取新状态,判断是否满足条件,选择次数达到一定数量后,如果仍然不满足条件,则随机移动一步[6]。

聚群行为:人工鱼探索当前邻居内的伙伴数量,并计算伙伴的中心位置,然后把新得到的中心位置的目标函数与当前位置的目标函数相比较,如果中心位置的目标函数优于当前位置的目标函数并且不是很拥挤,则当前位置向中心位置移动一步,否则执行觅食行为[6]。

追尾行为:人工鱼探索周围邻居鱼的最优位置,当最优位置的目标函数值大于当前位置的目标函数值并且不是很拥挤,则当前位置向最优邻居鱼移动一步,否则执行觅食[6]。

根据所要解决的问题性质,对人工鱼当前所处的环境进行评价,从而选择一种行为。较常用的评估方法是:选择各行为中使得向最优方向前进最大的方向,也就是各行为中使得人工鱼的下一步状态最优的行为,如果没有能使下一个状态优于当前状态的行为,则采用随机行为。

1.3 人工鱼群算法步骤[6]

Step1:设定鱼群的参数,包括鱼群的规模m, 最大迭代次数gen,人工鱼的感知范围Visual,最大移动步长step,拥挤度因子d等;

Step2:在参数区间内随机生成m条人工鱼个体作为初始鱼群;

Step3:计算每条鱼的食物浓度函数(目标函数),把最优的值放入公告板[7]中;

Step4:对于每条人工鱼执行以下操作

(1)计算出追尾行为、聚群行为的值,采用行为选择策略,选择最优的行为作为鱼的移动方向,缺省行为是觅食行为。

(2)计算出每条鱼的食物浓度函数(目标函数),其最优值与公告板中的值

进行比较,最终公告板中始终保持最优的值。

Step5:判断是否满足结束条件,如果满足结束,否则转Step4。

最终公告板中的值就是最优值。

2. 人工鱼群算法的改进

2.1 初始化的改进

初始化种群是算法进行搜索的起点。AFSA 算法的初始种群生成是随机的,通常情况下可以保证初始鱼群分布均匀,但对于个体的质量不能保证,解群中有一部分远离最优解。宋潇潇等[8]提出了基于极坐标编码的改进人工鱼群算法。它通过设定编码规则,并将此编码方式运用到三种行为当中,计算出每一个编码母体获得的人工鱼的概率,选择大概率的母体作为算法初始化的起点,有效提高算法的收敛性。曲良东等[9]利用混沌系统产生混沌变量,并在参数允许范围内随机产生各个人工鱼个体的初始状态。陈广洲等[10]引入了免疫算法中的消亡算子,经算子运算更新,相互比较,摒弃非优个体,将其重新初始化,以此保持种群的多样性。

2.2 算法参数的改进

王联国等[11]首先提出了一个全局版鱼群算法,并应用该算法对参数进行了详细的分析,实验表明步长step 越小,求解精度越高,当step 的值在1-6之间时,视野visual 的值对于优化精度影响较小。当step 的值比较大时,随着visual 值的增加,优化精度会震荡。针对拥挤因子λ,实验表明该数值越小,鱼进行随机游动和觅食行为的几率较大,摆脱极值束缚的能力就会越强。

为了提高鱼群算法的求解能力和精度,王联国等[12-13]提出了一种动态参数调整的人工鱼群算法,使算法在早期能够进行较大范围的全局搜索,后期保证局部精细搜索。文献提出的参数调整如公式如下:

3max ))/(30exp(T t ⨯-=α

min visual visual visual +⨯=α

min step step step +⨯=α

实验证明引入该机制的鱼群算法,求解精度明显较原始鱼群算法有了较大的提高。

任彦军等[14]提出了在觅食行为过程中采用基于交换列表的排序法,在随机移动行为中采用自适应的小范围移动行为来改进人工鱼群算法,并应用在置换Flow Shop调度,其仿真实验结果表明这种改进算法具有较强的全局搜索能力、更高的搜索效率。李会等[15]依据学者韩江洪[16]在粒子群算法领域提出的自适应调整策略,将鱼群根据个体鱼适应值和鱼群平均适应值进行比较,根据比较结果将鱼群分为三组:较优鱼群,一般鱼群和较差鱼群。并由此提出了自适应调整人工鱼群算法参数的方法,该方法采用个体鱼适应值与整个鱼群的平均适应值作比较,将整个鱼群分为三组,再采用自适应调整每组鱼群的视野范围和步长的方法,对基本鱼群算法进行了优化和改进。结果表明改进后的算法能够较快地收敛至全局较优解,并具有较好的寻优性能。

XiaoJianmei[17]采用另一种方法实现自适应参数调整,使步长step、视野visual、拥挤因子δ等参数随着计算的进行自动调整,以保证算法后期能够进行精细的局部搜索,提高算法的求解精度。它运用适应值变化率和变化方差来决定是否进行参数的调整。该文献将自适应鱼群算法(AAFSA)与原始鱼群算法、自适应粒子群算法、模拟退火粒子群算法进行了对比,其搜索范围和求解精度明显优于其它算法。

王冬冬等[18]提出了分段优化的思想,令食物浓度η为分界线,大于η时,为前期过程,采用较大的step和Visual,能使算法较快地得到一个相对较优的解; 小于η时为后期过程,采用较小的step和Visual,得到一个精度更高的解。黄华娟等[19]通过在人工鱼群的搜索过程中引进自适应的改变步长和拥挤度因子,其目的是加快算法的收敛速度,当寻优陷入平坦区时,对陷入的人工鱼以一定的概率对其变量加以扰动,使部分人工鱼改变状态,从而进入解空间的其他区域进行搜索,避免陷入局部最优。

2.3 与其他算法结合的改进

2.3.1 与模拟退火算法的结合改进

借鉴其他的智能算法的优点,进行优势互补是群体智能算法进行改进的一种有效手段。张梅凤等[20]首先在AFSA 中引进了变异算子,预先设置一个阈值beststep 标记公告板上的最优值,如果在一定的迭代次数内,公告板上的最优值没有变化或者变化率极小,则在保留当前最佳个体的情况下,以一定的概率对

相关文档
最新文档