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

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

目录

算法简述

获取代码

参考文献


算法简述

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

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

获取代码

完整Python代码:请私信

def main():

    Fun_name = 'F1'  # 目标函数
    SearchAgents = 30  # 种群数量
    Max_iterations = 500  # 迭代次数

    lowerbound, upperbound, dimension, fitness = fun_info(Fun_name)
    # 调用HO
    Best_score, Best_pos, HO_curve = HO(SearchAgents, Max_iterations, lowerbound, upperbound, dimension, fitness)

    print(f'The best solution obtained by HO for {Fun_name} is : {Best_pos}')
    print(f'The best optimal value of the objective function found by HO for {Fun_name} is : {Best_score}')

    plt.figure()
    plt.plot(HO_curve, color='red', linewidth=2)
    plt.xlabel('Iteration')
    plt.ylabel('Fitness')
    plt.box(True)
    plt.legend(['HO'])
    plt.show()

if __name__ == "__main__":
    main()

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

clc
clear
close all
Fun_name='F1';                     % number of test functions: 'F1' to 'F23'
SearchAgents=30;                     % number of Hippopotamus (population members)
Max_iterations=500;                     % maximum number of iteration
[lowerbound,upperbound,dimension,fitness]=fun_info(Fun_name);                     % Object function
[Best_score,Best_pos,HO_curve]=HO(SearchAgents,Max_iterations,lowerbound,upperbound,dimension,fitness);

display(['The best solution obtained by HO for ' [num2str(Fun_name)],'  is : ', num2str(Best_pos)]);
display(['The best optimal value of the objective funciton found by HO  for ' [num2str(Fun_name)],'  is : ', num2str(Best_score)]);

figure=gcf;
semilogy(HO_curve,'Color','#b28d90','LineWidth',2)
xlabel('Iteration');
ylabel('Best score obtained so far');
box on
set(findall(figure,'-property','FontName'),'FontName','Times New Roman')
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版可直接运行)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值