费 腾, 张立毅
(1. 天津大学 电子信息工程学院, 天津 300072; 2. 天津商业大学 信息工程学院, 天津 300134)
2002 年,我国学者李晓磊[1]模拟鱼群运动行为模式提出了鱼群算法。 鱼群算法中将鱼群个体随机分布在包含着若干局部最优值和一个最优值的解空间中,把最优值看作是最大的食物浓度。 人工鱼觅食、聚群、追尾和随机4 种行为通过移动策略来控制,个体邻域通过视野来控制,搜索进度通过步长来控制,鱼群聚集的程度通过拥挤度因子来控制。 鱼群每完成一次迭代,都要进行公告更新,用以公告最优状态。 鱼群算法全局搜索能力较强,在参数估计、神经网络、组合优化中得到广泛应用。
虽然人工鱼群算法具有简单易实现,不需要了解问题的特殊信息,在一定程度上避免局部最优,具有全局并行能力等优点,但是,其仍然具有参数选定凭借经验,算法后期搜索精度不高及收敛速度慢等缺点。
正是由于鱼群算法仍有问题需要改进,因此,近些年来,对于鱼群算法的改进研究十分活跃。 通过对改进方法的归纳, 主要从涉及自身改进和与其他算法融合两个大方向进行。 其中鱼群算法的自身改进主要包括参数改进,行为改进及邻域结构的改变。
群智能算法主要是基于对于生物群落的行为的模仿而建立起来。 但由于数学研究水平的限制,算法无法丝毫不差的模仿出生物群落的所有行为。 特别是对群智能算法的参数选择,大部分都需要大量实验选定,或者通过经验积累选定。正是因为如此,学者对于鱼群算法改进的一个方面就是对其参数进行优化。 鱼群算法参数比较多,近些年来,人们对于鱼群算法参数的优化主要集中在步长和视野上。2005 年,Wang Cuiru[2]提出一种改进人工鱼群算法,为了提高当人工鱼群的最优值在定义的迭代次数后不变时, 增加一种跳跃行为,并改变人工鱼的随机参数, 可以增加获得全局最优值的概率,用以提高人工鱼群算法的稳定性和全局搜索力,并将这种改进人工鱼群算法应用于前馈神经网络模型的优化。 2009 年,王连国提出一种改进的人工鱼群算法,在觅食行为中让人工鱼直接移动到较优位置,以加快算法的搜索速度,动态调整人工鱼的视野和步长, 使其在算法运行初期保持最大值,并逐渐由大变小。 该算法较好地平衡了全局搜索能力和局部搜索能力,提高了算法运行效率和精度。 仿真结果表明,改进的人工鱼群算法收敛性能比原有算法提高了1 倍以上。 2009年,Tian W[3]提出去除人工鱼行为的步长限制,加入跳跃行为来优化人工鱼的参数,用来提高全局的搜索能力。 同年,陈广洲等针对基本鱼群算法在迭代前期,算法具有较强的搜索能力,但在运行后期,其搜索能力减弱,易陷入局部极值,且搜索到的最优解精度不高。 针对上述弱点,提出对可视域和步长采用自适应变化策略,引入变异算子策略,通过消亡操作对部分个体进行重新初始化或变异,对基本鱼群算法进行改进,并以函数优化和多维变量的非线性优化问题为例进行了实验研究。 刘彦君提出了四种自适应人工鱼群算法,通过赋予人工鱼更多的智能,使每条人工鱼都能根据鱼群的状态自动地选择适时调整自身的视野和步长, 从而简化了参数设定,提高了收敛速度和寻优精度实验结果表明,改进后的人工鱼群算法,在寻优精度、收敛速度及克服局部极值的能力方面均有提高。 2010 年,王宗利提出在移动步长中增加评价函数从而使人工鱼群算法更快收敛。 2012 年,张英杰等针对经典鱼群算法收敛速度慢、寻优精度低的缺陷,提出了一种基于参数动态调整的改进人工鱼群算法,动态调整视野和拥挤度因子以提高算法的搜索效率,改进去交叉算子以消除交叉路径,引入了再寻优算子确保再次搜索去交叉后路径能够快速找到最优值。 求解TSP 问题的实验结果表明改进的人工鱼群算法提高了收敛速度增强了搜索最优解的能力。
人工鱼群算法主要通过模拟鱼群的各个行为进行寻优,因此,一些学者从改进这些行为作为切入点来改进人工鱼群算法,此外,还有一些研究人员在基本鱼群算法中引入一些行为来优化目标函数来提高算法的性能。 2007 年,范玉军等人采用最优个体保留策略对觅食行为进行改进,防止群体中最优个体的退化,给出加速个体局部搜索方法,改进算法中的聚群行为和追尾行为, 使全局最优值更快地突现出来,根据双射的定义和性质,在不影响最终寻优结果的情况下对问题的搜索域进行“缩小”,从而加速了全局搜索。2009 年,程永明与江铭炎[4]提出在基本鱼群算法中引入吞食行为,即设定一个阀值,把低于阀值的人工鱼淘汰掉,从而降低算法的复杂度。 2010 年,韦修喜等人根据云理论具有随机性和稳定倾向性的特点,结合人工鱼群算法的思想,由基本云生成算法实现觅食行为操作,提出一种新的人工鱼群算法——云人工鱼群算法。 2011 年,张严和楚晓丽提出一种改进的人工鱼群算法,对其觅食行为、追尾行为与移动策略进行改进,设定特殊觅食行为,约束群聚行为的拥挤度区间,协调移动策略,以保障每条鱼的成功觅食,避免鱼群出现早熟现象,提高全局寻优能力。
学者对于邻域结构的改进也是人工鱼群算法改进的一个方面。 2008 年,王联国等提出了一种基于邻域正交交叉算子的人工鱼群算法。 该算法采用动态调整人工鱼视野和步长的方法,较好地平衡了全局搜索能力和局部搜索能力。 将人工鱼的邻域极值与该人工鱼进行正交交叉运算,产生少量的具有代表性的较优个体,而新产生的个体不仅利用了本身的有用信息,同时利用了邻域极值的最优信息,加快了算法的收敛速度,增强了算法的寻优能力。2012 年,许恒迎等人为解决基本人工鱼群算法搜索后期盲目性大、 过早收敛等问题,提出了一种采用全新局部邻域结构的人工鱼群算法。 每条人工鱼只能与本邻域内的其他5 条邻居鱼通信,每次迭代前每条人工鱼都要根据自身与邻域内其他5 条邻居鱼的平均距离自适应地计算视野和步长,并对人工鱼的聚群和追尾行为进行了改进,从理论上讨论了该算法的收敛性。2013 年,马广等人提出一种基于生存行为的人工鱼群算法,该算法将一种成功率达到100%的局部邻居结构引入人工鱼群算法。 由于每条人工鱼能够交流信息的人工鱼数目有限,有利于鱼群向各个方向游动,增大了搜索到全局最优值的机率,同时各邻居结构之间能够进行信息交换,加快了寻优速度;采用线性调整人工鱼视野和步长的方法有效平衡算法的全局搜索能力和局部搜索能力;在对基本人工鱼群算法聚群行为和追尾行为分析基础上,提出全新的生存行为,提高了收敛速度和收敛精度。
各种群智能算法都有其各自的优缺点,通过混合算法的方法,可以提高算法的性能,实现算法之间的优势互补。 近些年来,对于鱼群算法的改进大部分都集中在与其他算法的结合上,因此,基于鱼群算法的混合算法是基本算法改进的一大主要方面。 其中主要包括与遗传算法的结合,与模拟退火算法的结合,与粒子群算法的结合,与蚁群算法的结合,与文化算法的结合,与混沌算法的结合,以及与其他算法的结合。另外,一些学者还将基本鱼群算法与比较成熟的计算方法结合,用以优化基本鱼群算法的性能。
2008 年,刘白通过对人工鱼群算法不足的研究,在遗传算法的基础上, 提出了基于遗传算法的人工鱼群优化算法。该算法保留了人工鱼群算法简单、易实现的特点,同时克服了人工鱼漫无目的地随机游动或在非全局极值点的大量聚集,显著提高了算法的运行效率和求解质量。2009 年,聂耸在保证鱼群算法收敛性能的前提下减少了对人工鱼数量的需求, 同时克服了人工鱼在非全局极值点大量聚集的弊端,采用分段自适应调整视野策略和拟遗传算法的交叉变异算子,有效兼顾了全局搜索与局部挖掘能力,提高了算法的收敛速度。 2010 年,李如琦[5]等将遗传算法与人工鱼群算法有机融合,提出一种种群优化人工鱼群算法,采用分别对部分人工鱼个体进行选择、交叉、变异操作的策略,调整优化人工鱼种群结构,较好地兼顾局部搜索和全局搜索。
2006 年,张梅凤在分析AFSA 存在不足的基础上,提出了基于变异算子与模拟退火混合的人工鱼群优化算法。 该算法保持了AFSA 算法简单、易实现的特点,克服了人工鱼漫无目的随机游动或在非全局极值点的大量聚集,显著提高了算法的运行效率和求解质量。 2010 年,Jiang M Y[6]等在基本鱼群算法的基础上融入模拟退火算法,新算法结合了模拟退火和鱼群算法的特点,混合算法精度更高,收敛速度更快。 2011年, 刘佳利用模拟退火算法中的Metropolis 判别准则改进人工鱼的觅食行为,在利用人工鱼全局寻优的同时并利用模拟退火算子实施局部细化, 提出一种改进的人工鱼群优化算法,并用于求解多峰函数的优化问题。2012 年,刘佳和霍俊仪将局部搜索能力较强的模拟退火算法与全局优化算法——人工鱼群算法进行结合,求解边坡的最危险滑动面及其对应的最小安全系数。
2008 年,Chen X J 和Wang J Z[7]提出粒子群与鱼群并行混合优化算法,把粒子分为两个群,一个群采用鱼群算法,一个群采用粒子群算法,共同搜索后共同返回总群,算法提高了全局寻优能力。 2009 年,张创业和莫愿斌利用协同思想与正反馈机制, 让AFSA 群跟踪PSO 群的全局最优解,PSO 群跟踪AFSA 群的全局最优解的算法。 这样, 一方面利用AF2SA 的快速找到全局极值邻域的能力克服PSO 易陷入局部的不足; 另一方面利用PSO 的快速收敛能力来提高AFSA的收敛速度和求解精度。 2010 年,姚祥光等针对人工鱼群算法局部搜索不精确、 微粒群优化算法易发生过早收敛等问题,提出一种新的人工鱼群与微粒群混合优化算法。 算法的主要思想是先利用人工鱼群的全局收敛性快速寻找到满意的解域,再利用粒子群算法进行快速的局部搜索,所得混合算法具有局部搜索速度快,而且具有全局收敛性能。2012 年,高博等人提出一种改进粒子群鱼群混合算法。 粒子群算法中各微粒可根据自身经历的最好位置与群体的最好位置,动态地调整好当前的速度和位置, 从而获得较快的收敛速度,然而,在算法后期,由于粒子的同一化,算法容易陷人局部最优人工鱼群算法是种较好的全局优化方法, 但收敛速度较慢,若将两种算法结合起来,利用粒子群算法的快速局部搜索和人工鱼群的全局收敛性,使新算法不仅具有快速的局部搜索速度,而且保证具有全局收敛性能的种性能较优的优化算法。
2009 年,古明家等人将人工鱼群算法加入到蚁群算法的每一次迭代过程中, 利用人工鱼群算法全局快速收敛的优点, 来加快蚁群算法的收敛速度和人工鱼群算法的觅食行为,帮助提高了蚁群算法跳出局部最优的能力。2010 年,余高等人提出了一个基于蚁群算法和人工鱼群算法相结合的QoS 组播路由算法。首先利用改进的Salama 网络拓扑随机生成算法,随机生成一个网络拓扑图,再利用蚁群算法并行搜索的特点找出大量满足约束条件的可行路径,创建备选路径集,最后使用人工鱼群算法在所创建的备选路径集中,通过执行觅食、聚群、追尾等行为求解最优组播树。2011 年,韩芳[8]等人提出了一种融合鱼群和微分进化的蚁群优化算法。 受人工鱼群觅食聚群和追尾行为的启发,在基本蚁群算法的基础上,应用人工鱼群算法的追尾行为对蚁群在可行域上搜索到的解进行改进,加快了向最优解收敛的速度。 在信息素更新机制里,通过引入微分进化算法的发散项,增加一个随机扰动,减小了算法陷入局部最优的可能性。
2009 年,刘凌子和周永权提出一种基于人工鱼群和文化算法的新型混合全局优化算法,该混合算法的思想是将人工鱼群嵌入文化算法框架中, 作为种群空间的一个进化过程;通过从进化种群中获得的知识组成知识空间,两空间具有各自群体并独立并行演化,从而实现增加人工鱼群的群体多样性。 2011 年,高洪元[9]等针对到达时间差(TDOA)定位估计中的非线性最优化问题,在鱼群算法中引入文化机制设计基于实数编码的文化鱼群算法, 将Chan 算法的解作为文化鱼群的一个个体初始位置,并利用文化鱼群算法搜索TDOA 定位的最优坐标。
2007 年,宋志宇等人提出一种随机搜索优化方法——人工鱼群算法,同时根据混的遍历性和随机性等特点,将混沌系统和人工鱼群算法相结合形成了一种新的融合优化算法—混沌人工鱼群算法。 将混沌人工鱼群算法应用到混凝土大坝材料参数反演中。 2012 年,祁俊[10]等针对人工鱼群算法易陷入局部最优的问题,提出一种基于双混沌映射的人工鱼群算法。 该方法利用映射的均匀分布性产生混沌初始鱼群,增加搜索的多样性; 其次在人工鱼群演化陷入局部最优时,利用局部分布均匀的映射生成混沌变异算子对其产生扰动,使其跳出局部最优值,向全局最优值靠近。 同年,石鸿雁和邢东亚针对人工鱼群算法和混沌优化算法的特点将人工鱼群算法与混沌优化算法相结合提出一种混合算法。 此混合算法是利用混沌变量敏感性来提高人工鱼群初始群体解的质量然后利用混沌的遍历性和随机性扰动使鱼群算法摆脱局部极值点提高全局收敛性。
2010 年,Zhu K C[11]提出一种量子人工鱼群算法,将量子算法与鱼群算法相结合,构造出随机性和方向性比较平衡的量子人工与鱼群混合算法。 2011 年,陈建荣和王勇在分析人工鱼群算法和捕鱼算法存在不足的基础上,提出了一种人工鱼群算法与采用捕鱼策略的优化算法相结合的混合算法。 该算法在优化初期使用,算法搜索局部最优域,而在优化后期则使算法在优化前期所初步确定的局部最优域中搜索最优解。 2012 年,袁卿等深入分析人工鱼群算法和蟑螂算法的特点基础,提出一种改进式蟑螂算法。 将差分进化变异因子禁忌表分别引入到蟑螂算法,加快了算法的搜索速度和获得全局最优解的能力。 采用权衡种群中最优个体和精英个体之间的差异度的方式将改进后的蟑螂算法和人工鱼群算法动态融合。 同年,王培崇提出基于人工鱼群机制的聚类算法。 首先, 利用先验知识随机产生待求解问题的若干个聚类中心,组成一个鱼群环境;其次,利用鱼群个体的协作竞争机制寻找满意的结果。 鉴于人工鱼群算法后期容易陷入局部最优,根据鱼群聚集度引入小生境算法,改善种群的多样性,提高了算法的求解精度。 2013 年,邓涛等针对人工鱼群算法多峰寻优能力不足的问题提出了一种免疫人工鱼群网络算法,应用改进的觅食行为,提升了算法的局部寻优能力采用免疫网络调节机理,保持了人工鱼群多样性不断探寻新的局部峰值执行模式搜索法,完成精英人工鱼群的精细搜索。 同年,王波为了改进在非全局极值点出现较严重聚集情况时,收敛速度降低,甚至陷入局部极值,搜索性能劣化的问题,采用细胞膜优化算法物质的转运方式,对人工鱼群算法的寻优行为进行改进,从而一定程度上避免算法陷入局部最优,提出了一种基于细胞膜优化的人工鱼群算法。
2007 年,于飞等针对人工鱼群算法的不足,尝试引入分区域搜索的思想、深度优先遍历的思想以及禁忌搜索算法对该算法进行改进。 2008 年,曲良东和何登旭在分析基本人工鱼群算法存在不足的基础上,提出了基于高斯变异算子与差分进化变异算子相结合的人工鱼群算法,该算法克服了人工鱼漫无目的随机游动或在非全局极值点的大量聚集,显著提高了求解质量和运行效率。 2009 年,同样是曲良东和何登旭[12]针对基本人工鱼群算法存在的不足,根据高斯变异和历史最优鱼个体状态,提出自适应高斯变异人工鱼群算法。 该算法能克服人工鱼漫无目的随机游动从而求得全局极值,提高求解质量和运行效率。
虽然人工鱼群算法已经应用于多个领域,但是相比于粒子群等其他经典算法,其理论基础依旧不够完善,仍然处在研究的初步阶段,且对于人工鱼群算法改进的研究也需要进行进一步深入研究,包括与新的算法的结合以及自身行为的增减等方面,以更好的发挥其在优化问题上的有效性。
[1] 李晓磊,邵之江,钱积新. 一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002(11):32-38.
LI Xiao-lei,SHAO Zhi-jiang,QIAN Ji-xin. An optimizing method based on autonomous animals:fish-swarm algorithm[J].Systems Engineering-theory & Practice,2002(11):32-38.
[2] WANG Cui-ru,ZHOU Chun-lei,MA Jian-wei. An improved artificial fish-swarm algorithm and its application in feedforward neural networks [C]//2005 International Conference on Machine Learning and Cybernetics,2005:2890-2894.
[3] Tian J,Liu J C. An improved artificial fish swarm algorithm for multi-robot task scheduling [C]//proceeding of the 5th International Conference on Natural Computation,2009:129-130.
[4] 程永明, 江铭炎. 基于改进鱼群算法的多用户OFDM系统自适应自适应资源分配[J]. 计算机应用研究,2009,26(6):2 092-2 094.
CHENG Yong-ming,JIANG Ming-yan. Adaptive resource allocation in multiuser OFDM system based on improved artificial fish swarm algorithm[J]. Application Research of Computers,2009,26(6):2 092-2 094.
[5] 李如琦,王宗耀,谢林峰,等. 种群优化人工鱼群算法在输电网扩展规划的应用[J].电力系统保护与控制,2010,38(23):11-15.
LI Ru-qi,WANG Zong-yao,XIE Lin-feng,et al. Population optimization artificial fish school algorithm applied in transmission network expansion planning[J]. Power System Protection and Control,2010,38(23):11-15.
[6] Jiang M Y,heng Y M. Simulated annealing artificial fish swarm algorithm [C]//Proceeding of the 8th World Congress on Intelligent Control and Automation,2010:1950-1953.
[7] Chen X J, Wang J Z. A novel hybrid evolutionary algorithm based on PSO and AFSA for freed forward neural training[C]//Proceeding of the 4th International Conference on Wireless Communications, Networking and Mobile Computing,2008.
[8] 韩芳,邢晓哲,方婷婷,等. 融合鱼群和微分进化的蚁群算法的无功优化[J]. 黑龙江电力,2011,33(2):125-128.
HAN Fang,XING Xiaozhe,FANG Tingting,et al. Reactive power optimization based on ant colony algorithm which combines artificial fish swarm algorithm and differential evolution algorithm[J]. Heilongjiang Electric Power,2011,33(2):125-128.
[9] 高洪元,于雪梅,赵忠凯. 基于文化鱼群算法的到达时间差定位技术[J]. 计算机工程,2011,37(14):137-139.
GAO Hong-yuan,YU Xue-mei,ZHAO Zhong-kai. Time difference of arrival location technology based on cultural fish swarm algorithm[J]. Computer Engineering,2011,37(14):137-139.
[10]祁俊,赵慧雅,李明. 基于双混沌映射改进的人工鱼群算法[J]. 计算机应用与软件,2012,29(9):230~233.
QI Jun,ZHAO Hui-ya,LI Ming. An improved Artificial fish swarm algorithm based on coupled chaotic maps[J]. Computer Applications and Software,2012,29(9):230-233.
[11]Zhu K C,Jiang M Y. Quantum artificial fish swarm algorithm [C]//Proceeding of the 8th World Congress on intelligent Control and Automation,2010:1-5.
[12]曲良东,何登旭. 基于自适应高斯变异的人工鱼群算法[J].计算机工程,2009,25(15):182-184.
QU Liang-dong,HE Deng-xu. Artificial fish-school algorithm based on adaptive gauss mutation[J]. Computer Engineering,2009,25(15):182-184.