声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~
目录
原理简介
一、种群初始化
二、河马在河流或池塘中的位置更新(勘探阶段)
三、河马防御捕食者(勘探阶段)
四、河马逃离捕食者(开发阶段)
算法流程图和伪代码
性能测评
参考文献
完整代码
河马优化算法(Hippopotamus Optimization Algorithm,HO)是一种新型的元启发式算法(智能优化算法),灵感来源于河马的固有行为。该成果由Mohammad Hussein Amiri等人于2024年2月发表在Nature旗下子刊《Scientific Reports》上。
注意,该算法的作者中包括了Seyedali Mirjalili等优化算法领域大名鼎鼎的学者。熟悉该作者的小伙伴都知道,非常经典的灰狼优化算法、鲸鱼优化算法、蜻蜓优化算法、海洋捕食者算法等种种知名优化算法都是由他发明的,他的算法性能一般都是有保证的,此次发明的河马算法效果也同样不错!
由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!
原理简介
HO的灵感来源于在河马生活中观察到的三种突出的行为模式。
河马群由几只雌性河马、小河马、多只成年雄性河马和一只占优势的雄性河马(群的首领)组成。
第一种行为由于天生的好奇心,幼河马和小河马经常表现出偏离群体的倾向。因此,它们可能会变得孤立,成为捕食者的目标。
河马的第二种行为模式本质上是防御性的,当它们受到捕食者的攻击或其他生物侵入它们的领地时就会触发。河马表现出防御反应,向捕食者旋转自己,并利用它们可怕的下颚和发声来威慑和击退攻击者(图1)。狮子和斑点鬣狗等捕食者意识到了这一现象,并积极避免直接接触河马可怕的下颚,作为预防潜在伤害的措施。
第三种的行为模式包括河马逃离捕食者并积极寻求与潜在危险区域保持距离的本能反应。在这种情况下,河马会努力向最近的水体航行,如河流或池塘,因为狮子和斑点鬣狗经常表现出对进入水生环境的厌恶。
一、种群初始化
HO是一种基于种群的优化算法,其中搜索代理是河马。在HO算法中,河马是优化问题的候选解,这意味着每个河马在搜索空间中的位置更新表示决策变量的值。因此,每只河马都被表示为一个向量,河马种群在数学上由一个矩阵来表征。与传统的优化算法类似,HO的初始化阶段涉及随机初始解的生成。在该步骤中,使用以下公式生成决策变量的向量:
其中,χi表示第i个候选解的位置,r是0到1范围内的随机数,lb和ub分别表示第j个决策变量的下界和上界。
二、河马在河流或池塘中的位置更新(勘探阶段)
河马群由几只成年雌性河马、小牛河马、多只成年雄性河马和占主导地位的雄性河马(群的首领)组成。基于目标函数值迭代来确定优势河马(最小化问题的最小值和最大化问题的最大值)。通常情况下,河马往往会聚集在彼此很近的地方。占主导地位的雄性河马保护牛群和领地免受潜在威胁。多只雌性河马被安置在雄性河马周围。成年后,雄性河马会被占优势的雄性从牛群中赶走。随后,这些被驱逐的雄性个体被要求吸引雌性,或与牛群中其他已建立的雄性成员进行优势竞争,以建立自己的优势。下式表达了雄性河马的位置:
在等式中(3)中,χi mhippo表示雄性河马的位置,Dhippo表示优势河马的位置(在当前迭代中具有最佳适应度的河马)。r1-r4是0和1之间的随机矢量,r5是0和1之间的随机数(等式4),I1和I2是1和2之间的整数(等式3和6)。
mGi是指一些随机选择的河马的平均值,其包括当前考虑的河马的概率相等(χi),y1是介于0和1之间的随机数(等式3)。在等式中(4)中,q1和q2是整数随机数,可以是1或0。
方程(6)和(7)描述了雌性或未成熟河马在牛群中的位置(χi FB河马)。大多数未成熟的河马都在母亲身边,但由于好奇,有时未成熟的河马会与牛群分离或远离母亲。
如果T大于0.6,这意味着未成熟的河马已经与母亲拉开了距离(等式5)。如果r6是一个介于0和1之间的数字(等式7),大于0.5,这意味着未成熟的河马已经与母亲保持距离,但仍在牛群内或附近,否则,它已经与牛群分离。根据等式(6)和(7)对未成熟和雌性河马的这种行为进行建模。h1和h2是从h方程中的五个场景中随机选择的数字或向量。在等式(7)种,r7是介于0和1之间的随机数。等式(8)、(9)描述了群内雄性和雌性或未成熟河马的位置更新。Fi是目标函数值:
在所提出的算法中,使用h向量,I1和I2场景增强了全局搜索并改进了探索。该算法具有更好的全局搜索能力,提高了探索过程的寻优能力。
三、河马防御捕食者(勘探阶段)
河马群居的主要原因之一可以归因于它们的安全保障。这些庞大而沉重的动物群的存在可以阻止捕食者靠近它们。然而,由于其固有的好奇心,未成熟的河马可能偶尔会偏离牛群,成为尼罗河鳄鱼、狮子和斑点鬣狗的潜在目标,因为与成年河马相比,它们的力量相对较弱。生病的河马和未成熟的河马一样,也容易被捕食者捕食。
河马采用的主要防御策略是迅速转向捕食者并发出响亮的叫声,以阻止捕食者靠近它们(图2)。在这一阶段,河马可能会表现出接近捕食者以诱导其撤退的行为,从而有效地抵御潜在的威胁。方程(10)表示捕食者在搜索空间中的位置:
其中表示一个从0到1的随机向量。
等式(11)表示第i只河马到捕食者的距离。在这段时间里,河马采取了基于FPredatorj因素的防御行为,以保护自己免受捕食者的攻击。如果FPredatorj小于Fi,表明捕食者离河马非常近,在这种情况下,河马会迅速转向捕食者,并向其移动,使其后退。如果FPredatorj更大,则公式(12)表明捕食者或入侵河马的领地更远。在这种情况下,河马转向捕食者,但活动范围更为有限。其目的是让捕食者或入侵者意识到其在其领土内的存在。
χi HippoR是河马面对捕食者时的姿势→RL是一个具有Levy分布的随机向量,用于攻击河马时捕食者位置的突然变化。Lévy运动46的随机运动的数学模型计算为等式(13)。w和v是0-1之间随机数,Ŵ是伽玛函数的缩写,σw可以通过计算等式(14)获得。
在等式(12)中,f是2和4之间的均匀随机数,c是1和1.5之间的均匀随意数,D是2和3之间的均匀任意数。g表示−1和1之间的随机数。r9是一个维数为1×m的随机向量。
根据等式(15),如果FHippoR i大于F,则意味着该河马已被猎杀,另一只河马将取代它,否则猎人将逃跑,这只河马将返回牛群。在第二阶段,观察到全局搜索过程有了显著的改进。第一阶段和第二阶段相辅相成,有效地降低了陷入局部极小值的风险。
四、河马逃离捕食者(开发阶段)
河马在面对捕食者时的另一种行为是,当河马遇到一群捕食者或无法用防御行为击退捕食者时。在这种情况下,河马试图离开该区域(图3)。
通常,河马会试图跑到最近的湖泊或池塘,以避免捕食者的伤害,因为斑狮和鬣狗会避免进入湖泊或池塘。这种策略导致河马在靠近其当前位置的地方找到一个安全的位置,并在HO的第三阶段对这种行为进行建模,从而增强了在本地搜索中的利用能力。为了模拟这种行为,在河马的当前位置附近生成一个随机位置。河马的这种行为是根据等式(16-19)建模的。当新创建的位置提高了成本函数值时,表明河马在其当前位置附近找到了一个更安全的位置,并相应地改变了位置。t表示当前迭代次数,而T表示最大迭代次数:
在等式(17)中,χi HippoE是为了找到最近的安全地点而搜索的河马的位置。s1是从三个场景s等式(18)中随机选择的随机向量或数。所考虑的场景具有更强的局部搜索能力,或者换句话说,可以帮助我们的算法具有更高的开发质量。
在等式(18)中,r11表示0和1之间的随机矢量,而r10(等式17)和r13表示在0和1的范围内生成的随机数。此外,r12是一个正态分布的随机数。
总的来说,在更新种群的HO算法中,我们没有将种群分为未成熟、雌性和雄性三个单独的类别,因为尽管将它们分为单独的类别可以更好地模拟它们的性质,但这会降低优化算法的性能。
算法流程图和伪代码
为了使大家更好地理解,这边给出算法流程和伪代码,非常清晰!
如果实在看不懂,不用担心,可以看下代码,再结合上文公式理解就一目了然了!
性能测评
原文作者共在161个基准函数中的115个函数中获得了最佳值,包括单峰和多峰函数、固定维多峰函数,即维度为10、30、50和100的CEC2019测试函数和CEC2014测试函数以及Zigzag Pattern基准函数,这表明HO在开发和探索方面表现出了显著的熟练程度。
这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与经典且性能优越的麻雀优化算法SSA进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!
可以看到,HO的效果还是非常不错的!在大部分函数上都超过了SSA算法,说明Seyedali Mirjalili出来的算法性能还是有保障的!大家应用到各类预测、优化问题中是一个不错的选择~
参考文献
[1]Amiri M H, Mehrabi Hashjin N, Montazeri M, et al. Hippopotamus optimization algorithm: a novel nature-inspired optimization algorithm[J]. Scientific Reports, 2024, 14(1): 5032.
完整代码
如果需要免费获得图中的完整测试代码,只需后台回复关键字:
HO
也可后台回复个人需求(比如HO-SVM)定制河马优化算法HO优化模型(看到秒回):
1.回归/时序/分类预测类:SVM、RVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~
2.组合预测类:CNN/TCN/BiTCN/DBN/Adaboost结合SVM/RVM/ELM/LSTM/BiLSTM/GRU/BiGRU/Attention机制类等均可(可任意搭配非常新颖)~
3.分解类:EMD、EEMD、VMD、REMD、FEEMD、TVF-EMD、CEEMDAN、ICEEMDAN、SVMD等分解模型均可~
4.其他:机器人路径规划、无人机三维路径规划、DBSCAN聚类、VRPTW路径优化、微电网优化、无线传感器覆盖优化、故障诊断等等均可~
5.原创改进优化算法(适合需要创新的同学):2024年的河马优化算法HO以及麻雀SSA、蜣螂DBO等任意优化算法均可,保证测试函数效果!
更多代码链接:
更多代码链接