在智能优化算法领域的很多中英文文献都致力于引入有效的搜索策略去改进原始算法的收敛性能。作为一类被广泛采用的改进手段,局部搜索算子近年来被学者们采用以提高算法的寻优精度与收敛速度。具体而言,局部搜索算子泛指一类具有较强局部开采能力的方法,它们通过被算法设计者复现,进而嵌入到智能优化算法中。常见的嵌入手法是利用局部搜索算子对种群当前找到的最优解展开局部搜索,最终结果是最优解的质量得到一定程度的提高。本次着重介绍一个颇具前景的局部搜索算子—动态随机搜索技术。
代码获取:
一、基本介绍:
动态随机搜索技术[1]是由Hamzacebi等提出的一种新的启发式算法。它由一般搜索和局部搜索两部分组成,其中的局部搜索算子是在当前解的领域中展开随机搜索,并且搜索步长逐渐减小(缩减比为0.5),从而达到对当前解附近搜索空间的充分开发。目前已成功应用于粒子群算法[2]以及人工蜂群算法[3],均取得了良好的改进效果。其具体步骤如下:
本次代码考虑将动态局部搜索算子分别嵌入正余弦算法(SCA), 灰狼优化算法(GWO),鲸鱼优化算法(WOA), 哈里斯鹰优化器(HHO)以及平衡器优化算法(EO)。在前期,由于初始步长设置得较大,算法将侧重于全局探索,随着后期搜索步长的缩减,算法将侧重于局部开发。
二、使用说明
动态局部搜索算子已被封装在local_search.m文件中,可供直接调用。调用方式参考提供的源代码。
1、边界控制
在每次调用动态局部搜索算子后应对搜索后的结果进行边界控制,以保证其处在搜索域内。之后借助贪婪选择,如果得到的结果比当前最优解好,则更新之;否则,保持当前最优解不变。如下图所示,以基于动态随机搜索的正余弦算法(A sine cosine algorithm based on dynamic random search, DRS-SCA)为例
2、参数设置
动态随机搜索技术的核心参数是E与N,根据作者的经验来看,这两个参数的设置会影响算法的最终结果,一般取值为E=100,N=10,即可。
三、引入动态随机搜索的好处与不足:
1、好处:
(1)大大增加算法的局部开发能力,这使得在处理单峰问题以及一些简单多峰问题时收敛精度与速度得到很大程度的提高;
2、不足:
(1)由于其较强的局部搜索能力,使得算法在处理一些复杂多峰函数时可能会导致算法陷入局部最优,导致效果不如原算法(应对方案:可自行设计或引入变异方案,增强算法跳出局部最优的能力)。
(2)在测试个别函数时,运行时间较长。这是由于动态随机搜索在当前种群找到的最优解周围进行充分开发,需要消耗一定的计算资源,造成了运行上比较耗时。
四、算法效果—选取单峰函数F1,多峰函数F10为例
1、基于动态随机搜索的正余弦算法(DRS-SCA) vs 标准正余弦算法 (SCA)
2、基于动态随机搜索的灰狼优化算法(DRS-GWO) vs 标准灰狼优化算法 (GWO)
3、基于动态随机搜索的鲸鱼优化算法(DRS-WOA) vs 标准鲸鱼优化算法 (WOA)
4、基于动态随机搜索的哈里斯鹰优化器(DRS-HHO) vs 标准哈里斯鹰优化器 (HHO)
5、基于动态随机搜索的平衡器优化算法(DRS-EO) vs 标准平衡器优化算法 (EO)
五、结论
动态随机搜索技术是一种极具前景的局部搜索策略,由于其较强的局部搜索能力,已被应用于智能优化算法领域。然而,目前文献中涉及引入动态随机搜索技术的改进算法较少,因此读者可将其引入到自己研究的算法中,改进原算法的性能。为了平衡动态随机搜索技术的局部开发能力,可设计或引入一些变异方法去平衡探索与开发。
参考文献
[1] Hamzacebi C , Kutay F . Continuous functions minimization by dynamic random search technique[J]. Applied Mathematical Modelling, 2007, 31(10): 2189-2198.
[2] 高卫峰, 刘三阳. 一种高效粒子群优化算法[J]. 控制与决策, 2011, 26(08): 1158-1162.
[3] 刘三阳, 张平, 朱明敏. 基于局部搜索的人工蜂群算法[J]. 控制与决策, 2014, 29(01): 123-128.