文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进
MATLAB
PYTHON
目前,元启发式算法按其灵感来源可以分为:
(i)群体启发,如粒子群PSO和灰狼优化算法GWO等;
(ii)进化启发,如遗传算法GA和差分进化算法DE等;
(iii)物理启发,如开普勒优化算法KOA和瞬态优化算法TSO等;
(iv)人类启发,如人类行为优化算法HBBO和徒步旅行优化算法HOA等。
不同类别的算法在全局勘探与局部开发的平衡上、迭代方向与迭代步长上都有所区别,而由No free lunch理论可知,各个算法都有其优势所在,因此本文KAU将介绍一个基于人类启发的算法,其在2024年发表在1区期刊KBS上——徒步旅行优化算法(Hiking Optimization Algorithm,HOA)[1]
该算法由Sunday O. Oladejo等于2024年提出,徒步旅行环境是具有多个局部山峰、地形和多次全局山峰的崎岖地形,在这一点上,它们类似于优化工具的搜索空间。HOA模拟了徒步旅行中涉及的特质,最终目标是登上顶峰。
为验证算法性能,HOA的文献通过29个函数(单峰、多峰、固定多模、复合),3个工程设计问题、6个旅行商问题、2个背包问题进行测试,并与10个经典元启发式算法与4个最近发表的元启发式算法进行比较,并进行Friedman、Wilcoxon符号秩检验等检验,结果显示HOA算法性能最佳!
00 目录
1 徒步旅行优化算法(HOA)原理
2 代码目录
3 算法性能
4 源码获取
01 徒步旅行优化算法(HOA)原理
图源文献[1]
HOA 的灵感源于徒步旅行者试图登顶山脉、丘陵或岩石山峰的经历,在徒步旅行过程中,徒步旅行者有意或无意地考虑到地形的陡峭程度。他们避开高度陡峭的地形和小径,以保持远足或步行速度。在寻找全局最优值时,由于优化问题的复杂性,智能体会在某些搜索空间位置陷入困境,这可能会延长找到全局最优值所需的时间,这也类似于徒步旅行者在徒步旅行过程中所经历的情况。
1.1 HOA算法
HOA的数学基础来源于Tobler的徒步旅行函数THF[2-3],它考虑到地形或小径的陡峭或坡度来确定徒步旅行者的速度:
其中,Wi,t是旅行者i在迭代t时的速度;Si,t为地形的坡度,另外,Si,t的计算式如式(2):
其中,dh和dx分别表示旅行者所走的海拔和水平距离,θi,t为地形的倾斜角度,取值在[0,50°]。
HOA利用旅行者群体的社会思维和个体旅行者的个人认知进行更新,HOA中旅行者的当前速度更新公式:
其中,γi,t为[0,1]中的随机数;Wi,t为旅行者i在迭代t时的速度;βbest是领队的位置;βi,t为旅行者i在迭代t时的位置;αi,t是旅行者i的扫描因子SF,并且SF处于[1,2]中,SF确保旅行者不会偏离领队太远,这样他们就可以看到领队的方向,并接收到领队的信号。
通过考虑旅行者的速度,旅行者的位置更新公式为:
HOA 的全局勘探与局部开发的趋势受到扫描因子SF的影响。这个因素极大地影响了领队与其他徒步旅行者之间的距离,如方程(3)所示。此外,步道的坡度会影响徒步旅行者的速度,如方程所示(1)、(2),其在HOA的全局勘探与局部开发方面也发挥着重要作用。
KAU觉得这个算法执行效率挺高的,类似于粒子群算法的粒子,通过“速度”这个概念进行更新。
1.2 算法流程
源文献给出了HOA算法的伪代码,KAU在此基础上画出了其流程图,如下:
02 代码目录
包含MATLAB与Python代码。
Readme:
代码都经过作者重新注释,代码更清爽,可读性强。
03 算法性能
在MATLAB中,进行标准函数的测试,执行程序结果如下:
在PYTHON中,进行标准函数的测试,执行程序结果如下:
04 源码获取
在公众号(KAU的云实验台)回复 HOA 即可
参考文献
[1]Oladejo, Sunday Oladayo et al. “The Hiking Optimization Algorithm: A novel human-based metaheuristic approach.” Knowledge-Based Systems (2024): n. pag.
[2]Goodchild M.F.Beyond Tobler’s hiking function Geogr. Anal., 52 (4) (2020), pp. 558-569
[3]Tobler W.R.Non-isotropic geographic modeling Doe J. (Ed.), Three Presentations on Geographical Analysis and Modeling, National Center for Geographic Information and Analysis, Santa Barbara, CA (1993), pp. 30-40
另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。
如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。