受生物的智能行为启发,一些学者建立数学模型,模拟其寻优能力提出了多种智能优化算法.遗传算法[1-4]是模拟自然界的生物选择、杂交、变异的进化过程的全局优化算法;粒子群算法[5-7]是模拟鸟群觅食过程的一种有效的全局寻优算法.这类仿生算法不依赖于问题的具体领域,对问题的种类有很强的鲁棒性,为复杂系统优化提供了一种通用的求解框架,被广泛应用到函数优化[8]、组合优化[9]、自动控制[10-11]、生产调度[12]、图像处理[13-15]等领域.
在长跑比赛中,运动员为了获得好的成绩,需要采用正确的战术策略.如何调整自己的步伐,是跟跑还是领跑, 冲刺时机选择等等都是比赛获胜的重要因素.长跑比赛实质就是追逐竞赛的过程.领先的运动员按自己的节奏,不断调整步伐奔向终点;落后的运动员结合自己的实力,设定视野范围,确定追逐目标,从而调整自己步伐,跟跑并超越对手.
借鉴追逐竞赛的过程,本文建立了数学模型并运用于优化问题的求解,提出了一种新的智能算法——模拟追逐算法.该算法通过追逐算子和探测算子作用,使个体不断调整步长,搜索到更优的位置,从而引导解不断地进化,最终实现全局寻优.数值实验验证了模拟追逐算法是一种有效的群体优化算法.
1 模拟追逐算法 1.1 基本原理模拟追逐算法(Simulated Pursuit Algorithm, SPA)是模拟运动员长跑比赛的追逐过程行为所具有的智能性,为优化问题的解决提供了一种全局寻优算法.算法中运动员被称为“个体”或“解”,问题优化过程就是个体追逐过程.跑在比赛最前列的“个体”(最优个体),为保持领先的位置,执行探测算子,尝试多次调整自己的步伐,计算出相应的新位置,若新位置优于原先位置,则选择较优的新位置替换最优个体位置,否则,最优个体位置保持不变.其他个体(非最优个体)执行追逐算子,首先个体根据战术需要,设定视野范围,确定追逐目标(个体),若追逐目标数k>0, 则根据追逐目标,计算出需要调整的步长,确定新位置,若k=0,即视野范围内没有追逐目标,则参照最优个体的位置调整步长,计算新位置,直至群体完成设定的进化迭代次数,算法终止.
1.2 控制参数在模拟追逐算法中,关键参数是预先设定好的,参数设置对算法运行效率有很大的影响,具体包括种群大小N、当前迭代次数TCur、最大迭代次数TMax、尝试次数m、视野范围r.
1.3 追逐算子第i个个体位置为Xi,其适用度值为Yi>0(如最小化问题,本文设定适用度函数为:Yi=fitness(Xi)=Mmax-f(Xi),其中Mmax取一个适当相对大的数,f(Xi)是目标函数值),在视野范围为r内, 确定k个追逐目标,即
步长Step为
| $ {\rm{Step}} = G \cdot \sum\limits_{j-1}^k {{\rm{Fecto}}{{\rm{r}}_j}} \cdot \left( {{X_j}-{X_i}} \right). $ | (1) |
其中Fectorj为追逐因子,
| $ {\rm{Total}}F = \sum\limits_{j = 1}^k {{Y_j}} . $ | (2) |
| $ {\rm{Fecto}}{{\rm{r}}_j} = \frac{{{Y_j}}}{{{\rm{Total}}F}}. $ | (3) |
由式(2) 和(3) 知, 被追逐个体Xj的适应度越大,Fectorj越大,对个体Xi位置更新所需的步长贡献率越大.所以
当k>0时,个体i的新位置为
| $ X_i^* = {X_i} + {\rm{rand()}} \cdot {\rm{Step}}{\rm{.}} $ | (4) |
否则k=0, 个体i的新位置为
| $ X_i^* = {X_i} + {\rm{rand()}} \cdot {\rm{Step1}}{\rm{.}} $ | (5) |
其中step1=Xb-Xi,其中Xb为最优个体.
1.4 探测算子探测算子是通过一个随机扰动步长探测出最优个体可能的新位置.尝试次数为m, 步长生成源P>0, 向量维数为W.扰动步长Step 2随机生成, 其生成的代码(Matlab)为
| $ \begin{array}{l} {\rm{Step2}} = 0*{\rm{ones}}(1, W);\\ q = 1 + {\rm{fix}}({\rm{rand}}(){\cdot}(W));\\ \;{\rm{for}}\;j = 1:q\\ \;\;\;a(j) = {\rm{fix}}(1 + {\rm{rand}}(){\cdot}W);\\ {\rm{end}}\\ {\rm{for}}\;j = 1:q\\ \;\;\;\;\;k = a(j);\\ \;\;\;\;\;{\rm{if }}\left( {{\rm{rand}}\left( 1 \right) < 0.5} \right)\\ \;\;\;\;\;\;\;\;{\rm{Step}}2(k) = {\rm{Step}}2(k)-{\rm{rand}}(){\cdot}P;\\ \;\;\;\;\;{\rm{else}}\\ \;\;\;\;\;\;\;\;\;\;\;\;{\rm{Step}}2(k) = {\rm{Step}}2(k) + {\rm{rand}}(){\cdot}P;\\ \;\;\;\;\;{\rm{end}}\\ {\rm{end}} \end{array} $ |
最优个体的新位置Xb*=Xb+step2, 尝试重复执行m次,得到m个新位置,然后选最好的新位置代替原来位置.注意:步长生成源P是一个动态的正数,搜索早期,期望扰动步长较大,有利于开拓进行全局搜索;搜索后期,期望扰动步长较小,有利于精细局部搜索.本文取P=P(1.01-TCur/TMax).
1.5 算法流程模拟追逐算法步骤:
(1) 种群初始化与参数设置.
(2) 适应度计算,最优个体确定.
(3) 种群个体更新:若个体为最优个体,则执行探测算子;否则执行追逐算子.
(4) 算法终止条件是否满足,若满足,则算法结束;否则转步骤(2).
算法流程图如图 1所示
|
图 1 模拟追逐算法流程图 Figure 1 Flow chart of SPA |
为分析追逐算子的功能,对个体为100,向量维数为5的种群,视野范围取不同值,执行追逐算子测试.图 2为随机选择编号为10,40,90的个体的50次迭代的进化曲线,图 3为视野范围r分别为0.000 1、0.01、0.1、1时,种群最优个体的进化曲线.结果表明:种群中的个体在迭代过程中不断进化,并具有跳出局部最优解的能力;同时追逐算子对解的搜索精度与收敛速度的影响与视野范围大小有关,视野范围为0.01时算子搜索效果最佳;视野范围的设置与优化问题有关.
|
图 2 不同个体的进化曲线 Figure 2 Convergence curve of three individuals |
|
图 3 不同视野范围最优个体的进化曲线 Figure 3 Convergence curve of best individual |
为了检验模拟追逐算法的优化性能,本文选择文献[4]的自适应遗传算法(记为GA), 文献[7]中的带粒子释放和速度限制的粒子群算法(记为PSO)与模拟追逐算法比较, 通过6个标准的测试函数(如表 1所示)测试3种算法的性能,数值实验在Matlab中完成.每个测试函数在相同条件下独立运行20次,记录最好结果、平均结果,算法成功率.
| 表 1 测试函数 Table 1 Test function |
从表 2可知,为了获得更好的优化效果,视野范围r取值与优化问题相关;对于6个测试函数,无论是单峰函数还是多峰函数,SPA测试的最优值、平均最优值均优于GA与PSO, 说明新算法有很好的求解精度,特别是对于函数f3与f5,SPA均求解出理论最优值;对于6个测试函数分别设置其目标精度,除f2外,其余5个优化问题求解成功率均为100%,说明SPA优化求解有很好的稳定性.
| 表 2 计算结果 Table 2 Computational results |
从图 4~图9可知,SPA比GA, PSO有更快的收敛速度,并且有跳出陷入局部最优解的能力;在相同精度下,算法SPA比算法GA, PSO需要的迭代次数更少;图8中,对于f5,虽然PSO与SPA算法均收敛于最优值,但算法SPA只需要62次迭代,而PSO需要128次迭代.
|
图 4 各函数进化曲线 Figure 4 Convergence curves of all functions |
从上实验分析可以看出,与GA, PSO比较,SPA在收敛速度、求解精度、稳定性等方面均显示出其优越性,说明模拟追逐算法是一种有较强寻优能力的群体智能算法.
3 实际应用案例 (选址问题)假设要选定一个供应中心的位置, 为城市中固定的m个用户服务,供应的商品可以是水、电、牛奶或其他货物.求供应中心的位置,使其到各个用户的距离(之和)最小.假设现有10个用户,位置为{(xi, yi)|
(2.517 8, 3.246 3), (-2.984 1, 3.307 0), (1.058 9, -3.219 7), (-1.772 0, 0.375 1), (3.660 1, 3.719 1), (-2.739 1, 3.764 7),
(3.657 3, -0.117 0), (2.402 2, -2.864 9), (-0.625 9, 3.325 9), (2.337 7, 3.675 9)}.
解 假设供应中心的位置C=(x,y), 建立优化问题模型.
| $ \min f\left( {x, y} \right) = \sum\limits_{i = 1}^{10} {\sqrt {{{\left( {x-{x_i}} \right)}^2} + {{\left( {y-{y_i}} \right)}^2}} } . $ |
采用Matlab给出选址问题的精确最优解为(0.877 1,2.117 1),最优值为34.569 3.为使用模拟追逐算法求解,设置控制参数:TMax=10,N=10, r=0.5, m=5,G0=50, α=80.算法SPA计算出最优解与精确解一致, C*=(0.877 111 032 786 5,2.117 105 766 708 5), f*=34.569 318 766 834 06.算法进化曲线如图 5所示,算法所求供应中心位置如图 6所示.
|
图 5 算法进化曲线 Figure 5 Convergence curve of SPA |
|
图 6 供应中心位置 Figure 6 Address of provision center |
SPA是一种对人类行为进行智能仿生的优化算法.融合了试探性开拓与有目的性的追逐相结合的优点,具有模型简单,优化性能高的优点.实验仿真结果证实了模拟追逐算法的优越性.
| [1] | RUNARSSON T P, YAO X. Stochastic ranking for constrained evolutionary optimization[J]. IEEE Transactions on Evolutionary Computation, 2000, 4(3): 284-294. DOI: 10.1109/4235.873238. |
| [2] | DEEP K, THAKUR M. A new mutation operator for real coded genetic algorithms[J]. Applied Mathematics and Computation, 2007, 193: 211-230. DOI: 10.1016/j.amc.2007.03.046. |
| [3] |
刘伟, 刘海林. 基于外点法的混合遗传算法求解决约束优化问题[J].
计算机应用, 2007, 27(1): 238-240.
LIU W, LIU H L. A hybrid genetic algorithm based on external point method for constrained optimization[J]. Journal of Computer Applications, 2007, 27(1): 238-240. |
| [4] | 梁旭, 黄明. 现代智能优化混合算法及其应用[M]. 北京: 电子工业出版社, 2012. |
| [5] | RATNAWEERA A, HALGAMUGE S. Nonlinear inertia variation for dynamic adaption in particle swarm optimization[J]. Computers & Operation Research, 2006, 33(3): 859-971. |
| [6] |
刘伟, 蔡前凤, 刘海林. 基于参数方程处理等式约束优化的粒子群算法[J].
计算机工程与设计, 2008, 29(3): 697-699.
LIU W, CAI Q F, LIU H L. A particle swarm optimization algorithm based on parametric equation method to handle equality constraints[J]. Journal of Computer Engineering and Design, 2008, 29(3): 697-699. |
| [7] |
吴正科, 杨青真. 带粒子释放和速度限制的粒子群算法[J].
计算机应用研究, 2013, 30(3): 682-684.
WU Z K, YANG Q Z. Particle swarm optimization with particle release and speed limit[J]. Journal of Application Research of Computers, 2013, 30(3): 682-684. |
| [8] | 倪全贵. 粒子群遗传混合算法及其在函数优化上的应用[D]. 广州: 华南理工大学数学科学学院, 2014. |
| [9] |
马立肖, 王江晴. 遗传算法在组合优化问题中的应用[J].
计算机工程与科学, 2005, 27(7): 72-74.
MA L X, WANG J Q. Application of genetic algorithms in solving the optimal combination problem[J]. Computer Engineering and Science, 2005, 27(7): 72-74. |
| [10] |
杨智民, 王旭, 庄显义. 遗传算法在自动控制领域中的应用综述[J].
信息与控制, 2000, 29(4): 329-339.
YANG Z M, WANG X, ZHUANG X Y. Survey of genetic algortihm′s application in field of automatic control[J]. Information and Control, 2000, 29(4): 329-339. |
| [11] | 张雅妮. 基于粒子群算法模糊控制自动舵的研究与仿真[D]. 哈尔滨: 哈尔滨工程大学自动化学院, 2010. |
| [12] |
黄胜忠. 遗传算法在企业车间调度中的应用[J].
微计算机信息, 2008, 7(3): 266-267.
HUANG S Z. Application of genetic algorithm in the enterprise shop scheduling[J]. Microcomputer Information, 2008, 7(3): 266-267. |
| [13] |
朱峰, 宋余庆, 金华, 等. 改良遗传算法在图像多阈值分割中的应用[J].
江苏大学学报(自然科学版), 2003, 24(6): 66-69.
ZHU F, SONG Y Q, JIN H, et al. Improved genetie algorithm for multi-level threshold image segmentation[J]. Journal of Jiangsu University(Natural Science Edition), 2003, 24(6): 66-69. |
| [14] |
乔军. 遗传算法在图像处理中的应用[J].
中国农业大学学报, 1998, 3(4): 80-82.
QIAO J. Application of genetic algorithm for image proceeding[J]. Journal of China Agricultural University, 1998, 3(4): 80-82. |
| [15] |
宣兆新, 陆金桂, 石云, 等. 基于改进的遗传算法的图像恢复[J].
计算机应用与软件, 2010, 27(3): 252-254.
XUAN Z X, LU J G, SHI Y, et al. Image restoration based on improved genetic algorithm[J]. Computer Applications and Software, 2010, 27(3): 252-254. |
2016, Vol. 33