人工鱼群优化算法是李晓磊提出的一种智能优化算法,该算法通过模拟鱼群的觅食、聚群、追尾等行为,实现集群智能的一种优化方法,具有较强的鲁棒性和并行分布处理能力等优点[1, 2, 3]。该算法与遗传算法和粒子群优化算法一样容易陷入局部最优解和收敛速度慢,这些问题引起了广大学者们的注意,分别提出了改进策略[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]。如范玉军[4]为了防止群体中最优个体的退化,提出最优个体保留策略对觅食行为进行改进,同时对聚群行为和追尾行为进行改进,使全局最优值更快地突现出来,从而加速了全局搜索。刘佳[5]利用模拟退火算法中的Metropolis判别准则对人工鱼群算法中的觅食行为进行改进。柳毅[6]提出动态调整人工鱼移动步长、视野范围和邻域值等方法来提高人工鱼群算法的寻优能力。张严[7]采用特殊觅食行为,约束群聚行为的拥挤度区间,协调移动策略,进而保障每条鱼的成功觅食,避免鱼群出现早熟现象。曲良东[8]利用进化策略、粒子群算法中的信息策略加入到人工鱼群算法中,并在理论上证明该算法的收敛性。彭勇[9]提出了动态调整人工鱼视野和步长的方法,解决了人工鱼群算法的全局搜索能力和局部搜索能力的矛盾。从以上的学者的研究成果可以看出,主要是从陷入局部最优解而提出改进的,而没有对初始鱼群的产生进行研究,而本文提出一种新的初始鱼群产生方法,并同时采用自适应移动步长和变异策略,来改进人工鱼群算法。
1 人工鱼群算法的基本原理设X=(x1,x2,…,xn)为人工鱼群个体向量,其中n为各条鱼寻优的变量个数,即待优化问题的变量个数,F=f(X)为某条鱼当前位置的食物浓度,其中F为目标函数,Dij=‖Xi-Xj‖表示第i条鱼和第j条鱼之间的距离,r表示人工鱼的感知距离,人工鱼只能在其感知距离内发生觅食行为,λ为人工鱼移动的步长,δ表示拥挤度因子。其人工鱼群算法的基本原理如下。
1)觅食行为。
假设第i条鱼第t时刻状态为Xit,在其感知距离r内随机产生一个新的状态Xjt,如果F(Xjt)>F(Xit)则向Xjt前进一步;反之则重新随机产生Xit,判断是否满足条件,经过M次后,如果仍不满足条件,则随机移动一步,其计算过程如式(1)所示:
2)群聚行为。
假设第i条鱼第t时刻的状态为Xit,在其感知距离r范围内的人工鱼群数目为nr,如果满足nr<Nδ,表明伙伴中心Xct有较多食物并且不拥挤,并且有F(Xc)>F(Xi),则Xit向伙伴中心Xct前进一步;否则继续执行觅食行为,其计算过程如式(2)所示。
3)追尾行为。
假设第i条鱼第t时刻状态为Xit,在其感知距离r范围内的最优邻居状态为Xmaxt,并且Xmaxt在其感知距离范围内有nmax条鱼。如果F(Xmaxt)>F(Xit)且nmax<Nδ,则说明Xmaxt位置优于Xit,并且在其附近有较多食物并且不拥挤,则向伙伴Xmaxt前进一步;否则继续执行觅食行为,其计算过程如式(3)所示。
4)公告板设置。
人工鱼群在优化寻优过程中,设置公告板,在公告板中记录鱼群的最优位置和每条鱼寻优过程中的最优位置。在每次觅食行为、群聚行为和追尾行为完毕后都要检查自身位置和公告板的位置,如果自身的位置优于公告板的位置,则更新公告板。
2 改进人工鱼群算法 2.1 初始人工鱼群的产生初始人工鱼群的产生方法一般有2种,一种是在可行域范围内按均匀分布随机产生,另一种方法是人为给定的初始种群[14],对于复杂的多约束优化问题,往往很难人为给定初始种群。所以在应用中通常都是采用第1种方法产生的。对于无约束问题,随机产生方法是可行的,但是对于复杂的多约束优化问题,往往初始种群的产生需要大量的时间。本文给出约束问题人工鱼群初始个体产生如下,假设[ak,bk]为人工鱼群个体向量X=(x1,x2,…,xk,…,xn)中变量xk的下限值和上限值。首先采用随机的方法产生一个初始可行的人工鱼X10,其计算如式(4)所示:
判断X10是否可行域界点,如果是则按式(4)重新产生,直至产生X10为可行域内点。对于第2条初始人工鱼X20同样采用式(4)产生,并判断X20是否满足约束条件(即是否在可行域内),如果满足则产生第3条人工鱼X30,如果不满足则按式(5)进行产生X20。
如果新产生的X20满足约束条件,则按式(4)产生第3条人工鱼X30,否则将缩小λ0至λ1,并将λ1代入式(7)重新产生X20。
重新判断新产生的X20是否满足约束条件,如果还不满足条件,则继续缩小λ1,其按式(8)计算,将λ1代入式(7)重新产生X20。不断地减小λ1直至使X02满足约束条件。
对于其他的人工鱼的产生方法与第2条人工鱼产生方法相同,共产生N条初始人工鱼。
2.2 觅食行为的改进假设第i条鱼第t时刻状态为Xit,在其感知距离r内随机产生一个新的状态Xjt,如果不满足约束条件,则将新的状态Xjt向状态Xit移动,不断地减小λ值,使其满足约束条件,其计算如式(9)和(10)所示,如果F(Xjt)>F(Xit),则Xjt代替Xit,否则保持Xit状态。
如果状态Xjt满足约束条件,并且F(Xjt)>F(Xit),则增大λ值,继续在该方向上寻找较优的状态,其计算如式(11)和(12)所示。
如果找到新的状态Xjt比原来的状态Xit还好,则继续增大λ值,按式(11)和(12)继续搜索寻找,直到不如原来的状态好,则停止寻找,此时将用较优的Xjt代替Xit,完成觅食行为。
2.3 群聚行为的改进如果第i条鱼第t时刻的状态为Xit,根据群聚行为如果满足F(Xc)>F(Xi),则应该增大λ值,按照式(13)和(14)进行前进,直到找不到更优的状态。
追尾行为与群聚行为的改进思路相同,如果满足F(Xmaxt)>F(Xit),则采用式(13)增大λ值,按式(15)进行前进,直到找不到更优的状态。
为了避免人工鱼群算法在优化后期陷入局部最优解,以及保持鱼群分布的多样性,本文引入了变异策略。如果连续几次找不到更好的人工鱼状态,则进行变异,设其变异概率为Pm,则变异的人工鱼数为mPm,其变异的计算过程如式(16)所示。
为了验改进的人工鱼群算法的有效性,选取4个测试函数进行仿真实验,其测试函数如下:
测试函数f1~f4 的三维立体图如图 1所示。从测试函数的三维立体图可以看出,函数f1 为单峰函数,非凸的病态函数,在x2=x12处有1条长长的深谷,当最优点取(1,1)时,函数得到全局最小值0;函数f2的全局最小值附近有多个极小点,当最优点取(0,0)时,函数得到全局最小值0;函数f3只有1个全局最优点(0,0),其函数值为3 600,还有4个局部最优点。函数f4有大量的极值,当最优点取(0,0)时,函数得到全局最小值0。
采用标准人工鱼群算法和改进人工鱼群算法对以上4个函数进行测试实验,其参数设置如初始人工鱼群总数N=50;最大运行次数Nmaxf1=30,Nmaxf2=50,Nmaxf3=50,Nmaxf4=30;最大试探次数M=15;拥挤度因子δ=0.618;人工鱼移动的步长λ=0.2;感知距离rf1=1.5,rf2=4,rf3=1,rf4=1。
改进人工鱼群算法和标准标准人工鱼群算法在4个目标测试函数f1、f2、f3和f4中迭代次数与函数值的关系曲线,如图 2~5所示。
改进人工鱼群算法和标准人工鱼群算法在测试函数 f1~ f4优化中,其函数最优值和迭代次数如表 1所示。
由图 2~5和表 1可以看出,改进的人工鱼群算法无论在优化速度和优化精度明显好于标准的人工鱼群算法,对于函数f1、f2和f4来说,虽然改进的人工鱼群算法和标准人工鱼群算法都达到了最优值,但是改进的人工鱼群算法收敛的速度较快;对于函数f3来说,标准人工鱼群算法运行多次都陷入最优解,无法找到全局最优解。综上所述,搜索目标函数全局最优值,标准人工鱼群算法不是陷入局部极值,就是计算逐步趋于停顿,而改进标准人工鱼群算法则表现出更为强大的搜索能力、更快的收敛速度以及更为准确的计算精度。
4 结束语对于标准人工鱼群算法容易陷入局部极小点和收敛速度慢等特点,本文提出了一种改进的人工鱼群算法。在人工鱼群算法应用复杂的约束条件下,很难产生可行的初始人工鱼群,本文给出了初始人工鱼群的产生方法,大大提高初始人工鱼群产生速度,并提出了自适应步长,加速人工鱼群算法的收敛速度,同时为了保证人工鱼群的多样性,避免陷入局部最优解,引进了变异策略。从测试实验的结果可以看出,改进人工鱼群算法是可行的。
[1] | 李晓磊,钱积新.基于分解协调的人工鱼群优化算法研究[J]. 电路与系统学报, 2003, 8(1): 1-6. LI Xiaolei, QIAN Jixin. Studies on artificial fish swarm optimization algorithm based on decomposition and coordination techniques[J]. Journal of Circuits and Systems, 2003, 8(1): 1-6. |
[2] | 李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践, 2002, 22(11): 32-38. LI Xiaolei, SHAO Zhijiang, QIAN Jixin. An optimizing method based on autonomous animals fish-swarm algorithm[J]. Systems Engineering—Theory & Practice, 2002, 22(11): 32-38. |
[3] | 李晓磊,路飞,田国会,等.组合优化问题的人工鱼群算法应用[J].山东大学学报:工学版, 2004, 34(5): 64-67. LI Xiaolei, LU Fei, TIAN Guohui, et al. Applications of artificial fish school algorithm in combinatorial optimization problems[J]. Journal of Shangdong University: Engineering Science, 2004, 34(5): 64-67. |
[4] | 范玉军,王冬冬,孙明明.改进的人工鱼群算法[J]. 重庆师范大学学报, 2007, 24(3): 23-26. FAN Yujun, WANG Dongdong, SUN Mingming. Improved artificial fish-school algorithm[J]. Journal of Chongqing Normal University, 2007, 24(3): 23-26. |
[5] | 刘佳,刘丽娜,李靖.基于模拟退火算法的改进人工鱼群算法研究[J].计算机仿真, 2011, 28(10): 195-198. LIU Jia, LIU Lina, LI Jing. Research of improved artificial fish swarm algorithm based on simulated annealing algorithm[J]. Computer Simulation, 2011, 28(10): 195-198. |
[6] | 柳毅.求解模糊需求可回程取货车辆路径问题的改进工鱼群算法[J].模式识别与人工智能, 2010, 23(4): 560-564. LIU Yi. Improved artificial fish swarm algorithm for vehicle routing problem with backhaul and fuzzy demand[J]. Pattern Recognition & Artificial Intelligence, 2010, 23(4): 560-564. |
[7] | 张严,楚晓丽.一种改进的人工鱼群算法[J].计算机系统应用, 2011, 20(5): 199-201. ZHANG Yan, CHU Xiaoli. Advanced artificial fish swarm algorithm[J]. Computer Systems & Applications, 2011, 20(5): 199-201. |
[8] | 曲良东,何登旭.基于自适应高斯变异的人工鱼群算法[J].计算机工程, 2009, 35(15): 182-189. QU Liangdong, HE Dengxu. Artificial fish-school algorithm based on adaptive Gauss mutation[J]. Computer Engineering, 2009, 35(15): 182-189. |
[9] | 彭勇,唐国磊,薛志春.基于改进人工鱼群算法的梯级水库群优化调度[J].系统工程理论与实践, 2011, 31(6): 1118-1126. PENG Yong, TANG Guolei, XUE Zhichun. Optimal operation of cascade reservoirs based on improved artificial fish swarm algorithm[J]. Systems Engineering—Theory & Practice, 2011, 31(6): 1118-1126. |
[10] | SHEN Wei, GUO Xiaopen, WU Chao, et al. Forecasting stock indices using radial basis function neural networks optimized by artificial fish swarm algorithm[J]. Knowledge-Based Systems, 2011, 24(3): 378-385. |
[11] | WANG Cuiru, ZHOU Chunlei, MA Jianwei. An improved artificial fish-swarm algorithm and its application in feed-forward neural networks[C]//Proceedings of 2005 International Conference on Machine Learning and Cybernetics. Guangzhou, China, 2005, 5: 2890-2894. |
[12] | FARZI S. Efficient job scheduling in grid computing with modified artificial fish swarm algorithm[J]. International Journal of Computer Theory and Engineering, 2009, 1(1): 13-18. |
[13] | LUO Yi, ZHANG Juntao, LI Xinxin. The optimization of PID controller parameters based on artificial fish swarm algorithm[C]//2007 IEEE International Conference on Automation and Logistics. Ji’nan, China, 2007: 1058-1062. |
[14] | 吴昌友,王福林,马力.一种新的改进粒子群优化算法[J].控制工程, 2010, 17(5): 359-362. WU Changyou, WANG Fulin, MA Li. An improved particle swarm optimization algorithm[J]. Control Engineering of China, 2010, 17(5): 359-362. |