改进的人工鱼群算法(1)

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

改进的人工鱼群算法

江铭炎、袁东风、程永明著

山东大学信息科学与工程学院

Email:jiangmingyan@

摘要:

人工鱼群算法(AFSA)是一种新型的智能优化算法。它有许多优点,比如鲁棒性好、全局搜索能力强、参数公差的设定,而且它也被证明对初始值不敏感。然而,它有一些弱点,表现为在后期优化的优化精度和收敛速度比较差。在本文中,提出了一种改进AFSA(IAFSA),在更新的过程中它将全局信息添加到人工鱼的位置。这实验结果表明,该优化精度和收敛速度的方法与原AFSA相比有明显地改善。

1.简介

人工鱼群算法(AFSA)[1]是(SAS)鱼群优化算法的一种。近年来,如蚁群优化(ACO)的算法的SA [2],粒子群优化(PSO)[3]算法,蜂群算法(BA)[4]越来越多的应用到工程应用中,由此他们在研究领域成为了热点。

这是一种把鱼群行为寻找食物比为社会行为的基础上智能优化算法AFSA。在鱼群行为包括觅食,聚群行为,尾随行为[1],随机行为[5]和觅食行为[6]。与其他(SAS)相似,和它工作在一起的每个种群的个体被称为一个人工鱼(AF),每个人工鱼在“游”的搜索空间根据自己的经验及附近的伙伴来寻找有食物的地区。结果, 随着共享的社会信息、来自于之前人工鱼附近搜索的经验和发现的食物浓度, AFSA可以像其他SA有能力在很宽的空间找到更好的解决方案,有效地搜索全局最优的自适应。

仿照AFSA动物行为的过程,并通过个人的局部优化找出全局最优。在这种算法中,有时人工鱼个体的行为很难避免个体为时过早的

寻找局部最优[1][5]。在这种情况下,许多人工鱼陷入局部最优,只有少数的鱼能达到全局最优的区域。因此,AFSA的优化精度和收敛速度的往往不是十分令人满意。为了提高AFSA的性能, 在IAFSA更新过程中全区域最好的AFSA数据被加到了这个位置。三个基准函数是用来检测新算法的性能;实验结果表明,该IAFSA提高了AFSA的性能,并保留其很多优点,如鲁棒性、公差的参数的设置,寻找适应性等。2.人工鱼群算法

在自然界中,鱼能通过个体独立的搜索还有跟随其它鱼找到更有营养的区域,这个地区的鱼所在的地方通常是营养最丰富的。AFSA 的基本思想是模仿鱼类行为,如觅食,聚群和追尾使鱼个体局部搜索并达到全局最优[1][5]。人工鱼所在环境主要包括解的空间和其它人工鱼的状态。它的下一个行为取决于它现在的状态和地方环境状况(包括解决目前问题的特性和周围同伴的状态)。一人工鱼将会通过其自己的活动影响环境和它的同伴的活动。

从算数角度来讲,把一群人工鱼的N popsize,AF i

和位置向量X i相联系,(D是最优参数)在一个最优的问题中是一种可行的解决方案。让X i(t)表示一个人工鱼现在的位置,X i(t+1)是下一个选择的位置。每次迭代步长t+1,

人工鱼的行为的执行和位置矢量X i(t+1)的更新是通过增加一个增量更新向量△X i(t+1),仅包括局部最优信息。向量的增加是通过当前状态X i(t)和更好的状态X better (t+1),方程如下:

△X i(t+1)=Rand()·(X better (t+1)-X i(t)) (1)

△X i(t+1)= X i(t)+ X i(t) △X i(t+1)(2)

当Rand()的值在区间[0,1]上,并且af_step代表了人工鱼移动步长的参数,该算法程序会继续云集直到符合标准,并且这形成迭代AFSA过程的基础。

从公式(1)及(2)中可以知道,人工鱼可以根据自己的信息和所处环境信息自动修改其位置。该AFSA很简单,只需要一些算法参数进行调整。因此,AFSA吸引了众多来自不同领域的学者的关注。一般来说,在AFSA被证明是可以稳健快速的解决工程优化问题的方法[5-9]。然而,作为一个新型的优化方法, AFSA仍处于起步阶段,并且进一步发展和研究是很必要的。例如,原始AFSA的优化精度和收敛速度并不令人满意,因为它仅使用本地和个人的信息搜索“更好的”的位置。因此,为提高AFSA的性能,全局信息这个增量向量被添加进来是必要的。

3.IAFSA与增强的性能

人工鱼模型包括变量和行为函数。这些变量包括:X是当前的位置的AF,af_step是移动步长,af_visual是可视距离,try_number是尝试次数和AF_detal是拥挤因子,best_af是在全部范围内含有最高的食物的范围。AF的行为包括:AF_Prey,AF_Swarm,AF_Follow,AF_Move和AF_Evaluate[1] [5-9]。

3.1改进的IAFSA基本性能

为了提高AFSA,性能全局最好的AF信息被添加到AF的行为上。该行为在IAFSA实现如下:

(1)觅食行为(AF_Prey):

设X i是人工鱼的当前状态,并可视距离之内随机选择一个状态

X j ,Y=F(X)是人工鱼的食物浓度:

X j= X i+af_visual·Rand() (3)

如果Y j

否则,再次随机选择一个状态X j判断是否满足前进要求。如果进行try_number次不能满足前进的要求,则人工鱼会随机移动一步;这可以帮助人工鱼逃离局部极值。

(2)聚群行为(AF_Swarm):

设X i是人工鱼的当前状态,X c是人工鱼的中心位置,n f是人工鱼视野范围内的伙伴数量,如果Y c< Y i并且 Y c<(af_detal·Y i/n f),这意味着人工鱼的中心具有较低的适应度值并且周边环境不是很拥挤,然后人工鱼在X c和X best_af方向的矢量和上前进一步。

(3)追尾行为(AF-Follow):

设X i是人工鱼的当前状态,人工鱼搜索它的邻域找到含有更小Y j,如

果Y j

值并且周边环境不是很拥挤,然后人工鱼X i在Y j和X best_af方向的矢量和

上前进一步。

(4)移动行为(AF_Move):

人工鱼在视野范围内随机选择一个状态,之后朝着目标前进,这是人

工鱼的违法行为。

(5)其它行为

IAFSA的其它行为例如跳跃行为和评价行为和AFSA是一样的。跳跃行

为[5]的目的是为了增加跳出局部极值的可能。评价行为是基于对人

工鱼环境的评价,并且帮助人工鱼选择一个合适的行为来执行。如果

适应度函数值比给定的在跟新过程中的AFSA的阈值大(最小优化)则

执行聚群行为。

3.2 IAFSA的程序

IAFSA的程序如下:

a. IAFSA的初始化参数

af_total, iterate_time, af_step, af_visual, af_delta, try_number, best_af

b.根据环境和条件,对每个人工鱼进行评价并执行它的行为。

相关文档
最新文档