在人工鱼群算法中,每个备选解被称为一条“人工鱼”,多条人工鱼共存,合作寻优(类似鱼群寻找食物)。假设在一个D维的目标搜索空间中,有N条组成一个群体的人工鱼,其中第i条人工鱼状态由向量Xi=(xi1,xi2,…,xiD)表示,其中i=1,2,…,N。人工鱼当前所在位置的食物浓度(目标函数适应值)表示为Y=f(X),其中人工鱼个体状态为拟寻优变量,即每条人工鱼状态就是一个潜在的解,将Xi带入适应值函数就可以计算出其适应值Yi,根据适应值Yi的大小衡量Xi的优劣(由于求解极小问题和极大问题可以互相转换,因此以下讨论的最优化仅指最小化),两条人工鱼Xi与Xj之间的距离用dij=||Xi-Xj||表示。δ表示拥挤度因子,代表某个位置附近的拥挤程度,以避免与临近伙伴过于拥挤。Visual表示人工鱼的感知范围,人工鱼每次移动都要观测感知范围内的其他鱼的运动情况及其适应值,从而决定自己的运动方向。当感知范围Visual较大时可以观测得更全面,但相应的需要判断的其他鱼数目也就越多,从而计算量也就越大,实际计算时应根据具体问题适当设置该值。Step表示人工鱼每次移动的最大步长,为了防止运动速度过快而错过最优解,步长不能设置得过大,当然,太小的步长也不利于算法的收敛。trynumber表示人工鱼在觅食过程中最大的试探次数。
人工鱼群算法首先初始化为一群人工鱼(随机解),然后通过迭代搜寻最优解,在每次迭代过程中,人工鱼通过觅食、聚群及追尾等行为来更新自己,从而实现寻优。也就是说算法的进行是人工鱼个体的自适应行为活动,即每条人工鱼根据周围的情况进行游动,人工鱼的每次游动就是算法的一次迭代。算法的数学表达形式如下:
(1)觅食行为
觅食行为是鱼循着食物多的方向游动的一种行为。设第i条人工鱼的当前状态为Xi,适应值为Yi,执行式(5.1)。在其感知范围内随机选择一个状态Xj,根据适应值函数计算该状态的适应值Yj,如果Yj>Yi,则向该方向前进一步,执行式(5.2),使得Xi到达一个新的较好状态Xinext;否则,执行式(5.1),继续在其感知范围内重新随机选择状态Xj,判断是否满足前进条件,如果不能满足,则重复该过程,直到满足前进条件或试探次数达到预设的最大的试探次数trynumber。当人工鱼试探次数达到预设的最大试探次数trynumber后仍不能满足前进条件时,则执行式(5.3),在感知范围内随机移动一步,即执行随机行为使得Xi到达一个新的状态Xinext。
(2)聚群行为
聚群行为是每条鱼在游动过程中尽量向临近伙伴的中心移动并避免过分拥挤。设第i条人工鱼的当前状态为Xi,适应值为Yi,以自身位置为中心其感知范围内的人工鱼数目为nf,这些人工鱼形成集合Si,是
若集合Si≠∅(∅为空集),表明第i条人工鱼Xi的感知范围内存在其他伙伴,即nf≥1,则按式(5.5)计算该集合的中心位置Xc。
计算该中心位置的适应值Yc,如果满足式(5.6)
表明该中心位置状态较优并且不太拥挤,则执行式(5.7)朝该中心位置方向前进一步,否则执行觅食行为。
(3)追尾行为
追尾行为是鱼向临近的最活跃者追踪的行为。设第i条人工鱼的当前状态为Xi,适应值为Yi,人工鱼Xi根据自己当前状态搜索其感知范围内的所有伙伴中适应值最大的伙伴Xmax,其适应值为Ymax。如果Ymax<Yi,则执行觅食行为。否则,以Xmax为中心搜索其感知范围内的人工鱼数目为nf,如果满足式(5.8)(www.xing528.com)
则表明该位置状态较优并且其周围不太拥挤,从而执行式(5.9)朝最小伙伴Xmin的方向前进一步,否则执行觅食行为。
式中,‖Xmin-Xi‖为Xmin与Xi之间的距离。若第i条人工鱼Xi的感知范围内不存在其他伙伴,也执行觅食行为。
(4)行为选择
根据所要解决的问题性质,对人工鱼当前所处的环境进行评价,从上述各行为中选取一种合适的行为。常用的方法有两种:
①先进行追尾行为,如果没有进步则进行聚群行为,如果依然没有进步则进行觅食行为。也就是选择较优行为前进,即任选一种行为,只要能向优的方向前进即可。
②试探执行各种行为,选择各行为中使得向最优方向前进最快的行为,即模拟执行聚群、追尾等行为,然后选择行动后状态较优的动作来实际执行,缺省的行为方式为觅食行为。也就是选择各行为中使得人工鱼的下一个状态最优的行为,如果没有能使下一状态优于当前状态的行为,则采取随机行为。对于这种方法,同样的迭代步数下,寻优效果会好一些,但计算量也会加大。
(5)设立公告板
在人工鱼群算法中,设置一个公告板,用以记录当前搜索到的最优人工鱼状态及对应的适应值,各条人工鱼在每次行动后,将自身当前状态的适应值与公告板进行比较,如果优于公告板,则用自身状态及其适应值取代公告板中的相应值,以使公告板能够记录搜索到的最优状态及该状态的适应值。即算法结束时,最终公告板的值就是系统的最优解。
人工鱼群算法通过这些行为的选择形成了一种高效的寻优策略,最终,人工鱼集结在几个局部极值的周围,且值较优的极值区域周围一般能集结较多的人工鱼。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。