本文主要是介绍智能优化算法改进策略之局部搜索算子(八)--Powell方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、原理介绍
Powell方法[1]是一种无约束优化算法,又称为方向加速法,用于寻找多变量函数的极小值。其基本思想是在迭代中逐次产生Q共轭方向组,本质上它属于不需计算导数的共轭方向法。每次迭代后,算法会更新搜索方向,并包含新的方向以改善优化效果。由于Powell方法不需要计算梯度信息,因此适用于目标函数不可导或计算梯度成本较高的情况。它在迭代过程中通过调整方向和步长,逐步缩小搜索范围,以达到目标函数的最小值。近年来逐渐被引入智能算法领域用于改善算法的局部搜索能力[2]。Powell方法基本流程如下所示:
2、仿真实验
以海洋捕食者算法(MPA)为基本算法。考察基于Powell方法的改进海洋捕食者算法(命名为PO-MPA) vs. 海洋捕食者算法(MPA)
在Sphere函数上:
在Rosenbrock函数上:
在Penalized1函数上:
在CEC2017-1上:
在CEC2017-3上:
在CEC2017-4上:
在CEC2017-12上:
在CEC2017-22上:
在CEC2017-28上:
基于Powell方法的改进海洋捕食者算法(PO-MPA)在23个标准测试函数及CEC2017测试集中的大部分函数上的性能优于原算法。在30维CEC2017测试集的单峰函数上能直接找到全局最优。
代码获取:
3、参考文献
[1] Powell M J D. Restart procedures for the conjugate gradient method[J]. Mathematical programming, 1977, 12: 241-254.
[2] Gao W, Liu S, Huang L. A novel artificial bee colony algorithm with Powell's method[J]. Applied Soft Computing, 2013, 13(9): 3763-3775.
这篇关于智能优化算法改进策略之局部搜索算子(八)--Powell方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!