当前位置:   article > 正文

2024河马优化算法(含Python、Matlab代码)_hippo算法详解

hippo算法详解

        河马优化算法(Hippopotamus optimization algorithm,HO)是2024年提出的一种新型启发式算法,目前还是一种很新的算法,很少有人引用,所以有很大的改进空间,使用一些改进策略再结合其他研究领域,比如故障诊断、时序预测等方向,也是一个不错的创新点。

目录

算法简述

获取代码

参考文献


算法简述

        HO是从河马生活中观察到的三种突出的行为模式中获得的灵感。河马群由几只雌性河马、河马幼崽、多只成年雄性河马和一只占统治地位的雄性河马(兽群的领袖)组成。由于它们天生的好奇心,幼河马和幼河马经常表现出离开群体的倾向。因此,它们可能会被孤立,成为捕食者的目标。河马的第二种行为模式本质上是防御性的,当它们受到捕食者的攻击或其他生物侵入它们的领地时,就会被触发。河马表现出一种防御反应,它们将自己旋转向捕食者,并利用它们强大的下颚和发声来阻止和击退攻击者。狮子和斑点鬣狗等捕食者意识到这一现象,并积极寻求避免直接接触河马强大的下颚,作为一种预防措施,防止潜在的伤害。最后一种行为模式包含了河马的本能反应,即逃离捕食者并积极寻求与潜在危险区域保持距离。在这种情况下,河马努力向最近的水域航行,比如河流或池塘,就像狮子和斑点鬣狗经常表现出对进入水生环境的厌恶一样。下图为HO的伪代码和流程图。

HO伪代码
HO伪代码
HO流程图
HO流程图

获取代码

完整Python代码:请私信

  1. def main():
  2. Fun_name = 'F1' # 目标函数
  3. SearchAgents = 30 # 种群数量
  4. Max_iterations = 500 # 迭代次数
  5. lowerbound, upperbound, dimension, fitness = fun_info(Fun_name)
  6. # 调用HO
  7. Best_score, Best_pos, HO_curve = HO(SearchAgents, Max_iterations, lowerbound, upperbound, dimension, fitness)
  8. print(f'The best solution obtained by HO for {Fun_name} is : {Best_pos}')
  9. print(f'The best optimal value of the objective function found by HO for {Fun_name} is : {Best_score}')
  10. plt.figure()
  11. plt.plot(HO_curve, color='red', linewidth=2)
  12. plt.xlabel('Iteration')
  13. plt.ylabel('Fitness')
  14. plt.box(True)
  15. plt.legend(['HO'])
  16. plt.show()
  17. if __name__ == "__main__":
  18. main()

Matlab (点击蓝色字体即可跳转链接)

  1. clc
  2. clear
  3. close all
  4. Fun_name='F1'; % number of test functions: 'F1' to 'F23'
  5. SearchAgents=30; % number of Hippopotamus (population members)
  6. Max_iterations=500; % maximum number of iteration
  7. [lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name); % Object function
  8. [Best_score,Best_pos,HO_curve]=HO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);
  9. display(['The best solution obtained by HO for ' [num2str(Fun_name)],' is : ', num2str(Best_pos)]);
  10. display(['The best optimal value of the objective funciton found by HO for ' [num2str(Fun_name)],' is : ', num2str(Best_score)]);
  11. figure=gcf;
  12. semilogy(HO_curve,'Color','#b28d90','LineWidth',2)
  13. xlabel('Iteration');
  14. ylabel('Best score obtained so far');
  15. box on
  16. set(findall(figure,'-property','FontName'),'FontName','Times New Roman')
  17. legend('HO')

 

 


参考文献

Amiri, M.H., Mehrabi Hashjin, N., Montazeri, M. et al. Hippopotamus optimization algorithm: a novel nature-inspired optimization algorithm. Sci Rep 14, 5032 (2024). https://doi.org/10.1038/s41598-024-54910-3


往期内容

人工蜂鸟算法优化的VMD以排列熵为目标函数(Python版可直接运行)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/780680
推荐阅读
相关标签
  

闽ICP备14008679号