人工鱼群算法:
在一片水域中,鱼往往能自行或尾随其他鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方,人工鱼群算法就是根据这一特点,通过构造人工鱼来模仿鱼群的觅食、聚群及追尾行为,从而实现寻优,以下是鱼的几种典型行为:
(1)觅食行为:一般情况下鱼在水中随机地自由游动,当发现食物时,则会向食物逐渐增多的方向快速游去。
(2)聚群行为:鱼在游动过程中为了保证自身的生存和躲避危害会自然地聚集成群,鱼聚群时所遵守的规则有三条:分隔规则:尽量避免与临近伙伴过于拥挤对准规则:尽量与临近伙伴的平均方向一致内聚规则:尽量朝临近伙伴的中心移动。
(3)追尾行为:当鱼群中的一条或几条鱼发现食物时,其临近的伙伴会尾随其快速到达食物点。
(4)随机行为:单独的鱼在水中通常都是随机游动的,这是为了更大范围地寻找食物点或身边的伙伴。
人工鱼群算法和粒子群算法的区别一个就是算法本身的设计,第二个就是算法的优劣性。
1、第一个方面的算法设计是取决的设计人对社会、自然的一些观察得到的算法思想,人工鱼群算法属于生物学范畴。
2、粒子群算法、萤火虫和蚁群算法属于自然科学范畴。
3、粒子群算法的收敛性不好,容易陷入局部最优,而蚁群算法可以避免这个缺点。