【群智能算法】猎人猎物优化算法 HPO算法【Matlab代码#48】

编程入门 行业动态 更新时间:2024-10-25 20:21:29

【群智能<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法】猎人猎物优化算法 HPO算法【Matlab代码#48】"/>

【群智能算法】猎人猎物优化算法 HPO算法【Matlab代码#48】

文章目录

    • 【`获取资源`请见文章第4节:资源获取】
    • 1. 猎人猎物优化算法(HPO)
    • 2. 部分代码展示
    • 3. 仿真结果展示
    • 4. 资源获取说明


获取资源请见文章第4节:资源获取】


1. 猎人猎物优化算法(HPO)

猎人猎物优化算法(Hunter-Prey Optimization, HPO)是2022年Naruei等人提出的一种新型智能优化算法。该算法的思想来自于对动物狩猎过程的模拟,它具有收敛速度快、寻优能力强等优点。

HPO算法首先会随机初始化种群在解空间中的位置,种群初始化公式如下所示:

其中, x i x_{i} xi​表示第 i i i个猎人或者猎物的位置, i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N, N N N表示种群数量; l b lb lb和 u b ub ub分别表示搜索空间的上下限; r a n d ( 1 , d ) rand(1,d) rand(1,d)表示0-1之间的随机数, d = 1 , 2 , . . . , D d=1,2,...,D d=1,2,...,D, D D D表示搜索空间的维数。

猎人通过如下公式来进行位置更新:

其中, x ( t ) x(t) x(t)和 x ( t + 1 ) x(t+1) x(t+1)表示猎人当前迭代和下一次迭代的位置; P p o s P_{pos} Ppos​表示猎物的位置; μ \mu μ表示所有位置的平均值; Z Z Z是一个自适应参数,公式如下:

其中, r 1 r_{1} r1​和 r 3 r_{3} r3​是0-1之间的随机数构成的向量; P P P为0或者1构成的向量; r 2 r_{2} r2​表示0-1之间的随机数; I D X IDX IDX表示向量 r 1 r_{1} r1​中满足条件 P = = 0 P==0 P==0的索引值构成的向量; C C C为平衡算法开发和探索行为的参数,它的值在迭代过程中由1递减到0.02。

距离平均位置 μ \mu μ最远的个体被视为猎物 P p o s P_{pos} Ppos​:

在实际捕猎过程中,如果猎人捕获到了猎物,猎人会移动到新的猎物位置。这种机制可以被描述如下:

n n n表示种群的数量。在算法的初始阶段, k b e s t = N kbest=N kbest=N。在算法的迭代过程中,猎人会选择离平均位置最远的个体作为猎物然后攻击它, k b e s t kbest kbest会逐渐下降。在算法的末了阶段, k b e s t kbest kbest会等于距离最短的第一个个体。

当猎物被攻击时,它会试图逃离局部最优位置,它可能会有较大的逃生机会,此时猎人会选择其他猎物。猎物的更新公式如下:

其中, x ( t ) x(t) x(t)和 x ( t + 1 ) x(t+1) x(t+1)分别表示当前迭代和下一次迭代中猎物的位置; T p o s 是全局最优位置 T_{pos}是全局最优位置 Tpos​是全局最优位置; r 4 r_{4} r4​是-1到1之间的随机数。

综合上面的公式,猎人或者猎物的更新公式可以被描述为:

其中, r 5 r_{5} r5​是0-1之间的随机数。

2. 部分代码展示

clear;clc;close allSearch_no=30;   % Number of search agent
F_name='F12';    % Name of the test function F1-f23
M_Iter=1000;    % Maximum number of iterations[lb,ub,dim,fobj]=Get_F(F_name); %Give details of the underlying benchmark function[Best_FF,Best_P,Conv_curve]=HPO(Search_no,M_Iter,lb,ub,dim,fobj); % Call the AOA figure('Position',[454   445   694   297]);
subplot(1,2,1);
func_plot(F_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([F_name,'( x_1 , x_2 )'])subplot(1,2,2);
semilogy(Conv_curve,'Color','r','LineWidth',2)
title('Convergence curve')
xlabel('Iteration');
ylabel('Best fitness function');
axis tight
legend('HPO')display(['The best-obtained solution by HPO is : ', num2str(Best_P)]);
display(['The best optimal value of the objective funciton found by HPO is : ', num2str(Best_FF)]);

3. 仿真结果展示



4. 资源获取说明

可以获取完整代码资源。

更多推荐

【群智能算法】猎人猎物优化算法 HPO算法【Matlab代码#48】

本文发布于:2024-03-06 10:24:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1715084.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   猎物   猎人   代码   智能

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!