关于人工鱼群算法的综述

2018-03-19 16:43朱俚治
电脑知识与技术 2018年4期

朱俚治

摘要:人工鱼群算法是一种群体智能型算法,这些算法常用于求解最优化问题,事实上在工程领域中存在着众多的最优化问题,因此人工鱼群算法在工程领域中有着较为广泛的应用,作者对人工鱼群算法研究之后,所撰写的一篇关于人工鱼群算法的综述性论文。该文对人工鱼群算法的部分特征进行了介绍,该文分为如下几个部分:1)什么是人工鱼群算法;2)人工鱼群算法的特點;3)人工鱼群算法的搜索;4)人工鱼群的改进型算法(lAFSA);5)人工鱼群算法的简要分析。

关键词:人工鱼群;AFSA算法;lAFSA算法

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2018)04-0173-03

Overview of Artificial Fish Swarm Algorithm

ZHU Li-zhi

(Information center of Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)

Abstract: The artificial fish algorithm is a kind of swarm intelligent algorithms, these work is often used to solve optimization problem. In fact there are many optimization problems in engineering field, so the artificial fish algorithm has become more widely used in the field of engineering, the author of artificial fish algorithm research, wrote an essay about artificial fish algorithm review paper. This paper introduces the characteristics of artificial fish algorithm part, this paper is divided into the following parts: 1. What is artificial fish algorithm, and (2) the characteristics of the artificial fish algorithm, 3. Artificial fish algorithm search, 4. The improved algorithm of artificial fish (lAFSA), 5. A brief analysis of the artificial fish algorithm.

Key words: artificial fish; AFSA algorithm; lAFSA algorithm

1 概述

人工鱼群算法是一种融合了人工智能技术与仿生物学的算法,该算法由李晓磊提出。人工鱼群算法有如下特点:该算法在一定程度上能较好地克服局部最优解问题,获得全局最优解的概率较高。尽管该算法具有所在的优点,但仍然存在收敛速度慢和搜索精度不高等不足之处,为了克服人工鱼群算法中所存在的相关问题,研究人员提出了改进型的IAFSA人工鱼群算法。IAFSA算法主要对人工鱼群的搜索阶段做了一定程度上的改进,这些改进工作包括:人工鱼群的觅食阶段,人工鱼群的聚群行为和追尾行为,以及人工鱼群视野等几个方面。人工鱼群在工程领域中有广泛的应用,并且达到了很好的应用效果。根据上述理由和原因,为了使得人们更好的了解人工鱼群算法,本文对原始人工鱼群算法和改进型人工鱼群算法进行了相应的介绍,从而使得该论文具有一定的参考价值。

2 什么是人工鱼群算法

2.1 人工鱼群的概念与发展

20世纪90年代以来,群体型的智能算法引起了人们的兴趣,科研人员在这方面赋予了极大的关注,从而人们提出了人工蚁群算法,粒子群等各种的著名仿生物学算法。事实上粒子群算法、人工蚁群算法、人工鱼群算法等都是融合了人工智能技术和仿生物学的算法,因此这些算法都具有一定的智能性,可以解决某些最优解的问题,例如著名的NP问题等。人工鱼群等仿生物学算法在解决最优解的时候都有自己的特点,但也有不足之处,比如参数设定不恰当时容易使算法陷入早熟,从而得到的是局部最优解,而非全局最优解。

人工鱼群算法根据鱼群觅食时的特点,从而模拟出来的一种寻找最优解的算法。鱼群在水中寻找食物时,通过食物浓度这一指标来判断食物的来源和方向,如果食物的浓度达到了某种程度后,鱼群就朝着食物的方向游动。当鱼群发现食物后,整个鱼群就会出现追尾行为,从而使得整个鱼群都找到食物,这就是鱼群在寻找食物时的分布式合作,鱼群之间的分布式合作体了现鱼群的智能性。在人工鱼群算法中,人工鱼群所处的空间是一个求解空间,鱼群个体之间存在着协作与竞争。人工鱼群在寻找解的时候,求解空间的变化能对鱼群产生一定的影响,同时鱼群个体的活动也能对求解空间产生一定的作用,因此鱼群的个体活动能对整个鱼群产生影响,事实上正是因为鱼群的个体与鱼群之间相互作用,才能使得整个人工鱼群都找到全局最优解,而非局部最优解。

2.2 人工鱼群算法(AFSA)

人工鱼群的计算公式:

其中,一条虚拟人工鱼当前状态为,,状态,Rand()函数为产生0到1之间的随机数;Step为移动步长,Visual为其视野范围。状态为其某个时刻视点所在的位置,如果当前的位置优于当前的位置,则由该位置向前进一步,则此时达到状态。

3 经典人工鱼群算法的特点

粒子群算法,人工蚁群算法和人工蜂群算法中,都存在一个相似的问题,就是这些算法容易产生早熟,从而求得的解是局部最优解,而不是全局最优解。人工鱼群算法的主要特点是在最大程度上能够求得全局最优解,而非局部最优解。

人工鱼群在随机搜索时,具有一定的适应性,能够随着周围环境的变化,而调整自身的运动状态和方向。人工鱼群运动状态可以在:覓食、聚集、追尾和随机搜索四种状态模式之间相互转换。

人工鱼群算法具有一定的鲁棒性,算法在初期和中期中都有较好的搜索效果,但在后期算法搜索效果较差,运行速度较慢,无目标的搜索较为明显,从而影响了算法的收敛时间,也影响了算法寻找全局最优解的效率,因此针对人工鱼群算法的不足之处,研究人员从不同方面来改进和完善现有的人工鱼群算法。

4 经典人工鱼群算法的搜索

人工鱼群在搜索食物时存在四种行为属性:觅食行为、聚群行为、追尾行为和随机行为,这四种不同属性的行为在鱼群的觅食过程中,具有不同的作用。鱼群的聚群行为和追尾行为出现的频次不同,对算法收敛的速度能够产生不同的影响。人工鱼群算法,粒子算法和人工蚁群算法都是一种分布式的智能型寻找最优解的算法。人工鱼群在搜索的初始阶段是初值设定的阶段,在人工鱼群算法中可以将初值设为固定值,也可以设为处于动态变化中的值,基于这一点原因人工鱼群算法对于求解空间的变化,具有较强的自我适应性,如果采用随机变化的方法来设定初值对人工鱼群来说具有更强的适应性。蚁群算法、粒子群算法和鱼群算法在寻找最优解的时候,搜索方向具有一定的随机性,但不是盲目地搜索,并且人工鱼群算法在搜索过程中不能进行跳跃的方式进行搜索,只能以领域的方式不断地向前搜索寻找最优解。人工鱼群算法在搜索时,有两种方式:串型搜索和并行搜索。鱼群的尾随跟进行为就是一种串型搜索方式。鱼群的并行行为,则可理解为鱼群的聚群行为。人工鱼群在随机搜索过程中,通过相互协作和竞争的方式来达到寻找食物的来源,借以达到最优解之目的。

人工鱼群的觅食行为、聚群行为、追尾行为和随机行为分别代表不同的随机搜索过程,事实上人工鱼群的初始行为,就是鱼群随机搜索的开始,以上四个过程可以约简为觅食行为、聚群行为和追尾行为。由于整个鱼群具有自适应性,因此鱼群在寻找食物时可以采用自适应机制来调整和控制人工鱼的行为。

如果鱼群找到了食物来源,其它鱼类就会出现追尾行为,但如果鱼群没有找到食物,其它人工鱼会展开随机搜索。人工鱼群在寻找食物来源的过程中,为了保护自身的生存和躲避外来的攻击,则会产生聚群行为。人工鱼群在搜索食物的过程中,如果食物的浓度满足鱼群的要求,则鱼群由当前的行为转变为追尾行为,如果食物的浓度不满足鱼群觅食之条件,鱼群则由追尾行为转化为随机搜索,因此人工鱼群寻找食物的行为和追尾行为会随着食物浓度的变化而交替出现。

人工鱼群是否能较为容易地找到食物,这与食物浓度有很大的关系,如果食物的浓度越大,则鱼群较为容易找到食物,如果食物的浓度较小,则鱼群找食物的过程较为困难,因此食物的浓度是否恰当,能够对算法的收敛速度产生一定的影响。

5 人工鱼群改进型算法(lAFSA)

5.1 IAFSA鱼群算法的觅食阶段

人工鱼群的觅食阶段可以理解为鱼群随机搜索的开始,在人工鱼群的觅食过程中,如果食物浓度满足人工鱼群的要求,则进行下一个阶段的行为,否则继续进行随机的搜索觅食。人工鱼群的觅食阶段是一个试探比较的过程,因此人工鱼的移动行为是随机的。

当前的人工鱼群状态为,如果食物浓度,则人工鱼群向状态移动一步,在人工鱼群搜索算法中,鱼群总是向着食物浓度较高的方向移动。当鱼群找到了更多食物,则人工鱼群算法也求得了更优解,但是人工鱼群经过若干次试探之后,仍然没有找到较优的解,则随机移动一步,从而达到一个新的状态。此时人工鱼的移动是随机的,没有具体的目标,因此这时可能使得搜索方法产生倒退现象,从而影响算法搜索时的前进速度,这是AFSA人工鱼群算法的不足之处。

根据AFSA人工鱼群算法的不足之处,在IAFSA人工鱼群算法中,如果鱼群经过数次试探后,仍然没有找到更好的食物来源,则向较优解的方向前了一步,这样就避免了算法在搜索食物时的退化现象,从而保证了算法搜索时的效率,因此IAFSA人工鱼群算法在觅食阶段对原来的算法进行了改进。

5.2 IAFSA鱼群算法的人工鱼群视野

在AFSA人工鱼群算法中,如果鱼群的视野较广,使得算法具有较强的全局搜索能力,如果人工鱼群的视野较为狭窄,则该算法具有的局部搜索能力较强。基于这两种情况,在IAFSA人工鱼群算法的初始阶段为了增强算法的收敛速度和全局的搜索能力,可以采用较广的视野来搜索食物,随着搜索算法的不断进行,在搜索的过程中可以逐步采用较小的视野进行局部的搜索,从而提高算法的局部搜索能力和寻找食物的精度。

6 人工鱼群算法的简要分析

6.1 人工鱼群的觅食行为

人工鱼群在寻找食物时,如果试探的次数较少,则能为鱼群提供更多的随机游动机会,从而为跳出局部极值提供有利条件。人工鱼群的聚群行为能促使人工鱼向更优状态游动,同时也能向处于更优解的极值方向前进。当鱼群在搜索食物的过程中,当找到食物后,相当于求得了一个较优解,因此人工鱼群的追尾行为能够使得人工鱼群算法求得更优的解。

如果当前鱼群的状态是聚群行为,那么前进一步,就是追尾行为。人工鱼群的追尾是为了寻找更多和更好的食物。当人工鱼群搜索食物时可能的模式是:先是聚群行为、再是追尾行为,然后再是聚群行为,事实上鱼群出现聚群行为后,必定出现鱼群的追尾行为。然而当人工鱼的某种状态的条件不满足聚群行为条件,又不满足追尾行为时,此时人工鱼群则进行随机搜索。

鱼群进行随机搜索之目的,就是为了找到食物的来源,然而鱼群追尾之目的是求得最优解,然而人工鱼群追尾行为后可能得到是局部最优解,如果不是全局最优解,在这之后鱼群将继续会出现聚群行为和追尾行为。只有当鱼群搜索了全部的解之后,才能找到全局最优解。当人工鱼群进行搜索时,食物的浓度必须是人工鱼所能够感知的,鱼群可以通过视觉和嗅觉来寻找食物,如果食物的浓度在鱼群的感知之外,这样人工鱼群就发现不了更多的食物。如果人工算法搜索不到比当前更优的解,这样的算法就会停滞不前,从而陷入局部最优解,而不是全局最优解。因此鱼群为找到了食物,则必须扩大鱼群的视野范围,这样才可能扩大鱼群的搜索范围。根据上述理由,有如下的结论:如何使得食物的浓度始终在人工鱼群的感知范围内,使得鱼群能够找到更多的食物,是人工鱼群算法的关键因素,也是人工鱼群所要解决的问题。

食物是鱼群搜索的目标,也是吸引鱼群聚类的中心。如果发现了食物,人工鱼群就会形成聚群行为,当存在更多食物时,鱼群就会从当前的聚类中心,向下一个聚类中心游动。人工鱼群在搜索食物来源时,不能进行跳跃式的方式进行搜索,只能一个接着一个食物中心进行搜索,这种搜索方式是其它人工仿生物学智能算法的共同特点,这些算法包括:粒子群算法、人工蚁群算法和人工蜂群算法。在人工鱼群算法中,如果当所有的鱼群都聚类到一处时,并形成了更大的聚类中心,那么此时人工鱼群就找到了全局的最优解。

在鱼群觅食的过程中,如果鱼群的视野越广,则能够搜索到的食物就越多,但若鱼群视野相对狭窄,则能够搜索到的食物就相对较少。人工鱼群除了能够通过视觉来发现食物外,还可以通过嗅觉来发现食物。食物浓度的大小是改变鱼群活动状态的原因,如果某个食物的浓度大于当前的食物浓度,那么人工鱼群则前进一步。如果鱼群的状态是聚群行为,但食物浓度高于当前的食物浓度时,则整个鱼群又会出现追尾行为。

6.2 局部最优解和全局最优解

1) 如果人工鱼群搜索算法结束时,并没有遍历完所有的解,则此时已得出了最优解,那么此解是局部最优解。

2) 当人工鱼群的搜索算法结束时,遍历完所有的解,并且已得出了最优解,此时的解为全局最优解。

3) 另外当某个人工鱼群算法在一个局部解中无法前进时,则此时得到的解就是局部最优解。当搜索完全部可能存在的解之后,得到的解才是全局最优解。

7 结束语

由作者撰写的这一篇论文是有针对性地对人工鱼群算法进行介绍,因此在介绍某些部分人工鱼群算法时并没有展开进行详细的陈述,这是本文的不足之处。如果读者想对人工鱼群算法有更多的了解,可以查找相关的文献和资料,本文主要介绍了人工鱼群算法的搜索阶段和人工鱼群算法的简要分析,其它部分介绍相对较少,但本文在某种程度上具有一定参考价值,以供大家参考。

参考文献:

[1] 王培崇.人工鱼群算法研究综述[J].中国民航飞行学院学报,2013,24(4):22-26.

[2] 王联国,施秋红.人工鱼群算法的参数分析[J].计算机工程,2010,36(24):169-171.

[3] 范玉军,王冬冬,孙明明.改进人工鱼群算法[J].重庆师范大学学报,2007,24(3):23-26.

[4] 王宗利,刘希玉,王文平.一种改进的人工鱼群算法[J].信息技术与信息化,2010(3):46-49.

[5] 费腾,张立毅.人工鱼群算法改进方法概述[J].电子设计工程,2015,23(21):1-4.

[6] 吴月萍,杜奕.改進的人工鱼群算法的参数分析[J].计算机工程与应用,2012,48(13):48-52.

[7] 李晓磊,薛云灿,路飞,田国会.基人工鱼群算法的参数估计方法[J].山东大学学报:工学版,2004,34(3):84-87.