鄞州区住房和城乡建设局网站,免认证域名,后台管理网站模板,wordpress添加音乐播放器目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景
2019年#xff0c;Heidari 等人受到哈里斯鹰捕食行为启发#xff0c;提出了哈里斯鹰算法(Harris Hawk Optimization, HHO)。
2.算法原理
2.1算法思想 根据哈里斯鹰特性#xff0c;HHO分为探索-… 目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.代码实现4.参考文献 1.背景
2019年Heidari 等人受到哈里斯鹰捕食行为启发提出了哈里斯鹰算法(Harris Hawk Optimization, HHO)。
2.算法原理
2.1算法思想 根据哈里斯鹰特性HHO分为探索-过渡-开发三个阶段。
2.2算法过程
探索 哈里斯鹰以其强大的视力追踪和检测猎物但有时猎物不易察觉。它们会在沙漠地区等待、观察和监视可能需要几个小时才能发现猎物。哈里斯鹰会随机停歇在某些位置并等待检测猎物使用两种策略当 q 0.5 q0.5 q0.5时根据其他家庭成员和猎物的位置进行停歇当 q ≥ 0.5 q \ge 0.5 q≥0.5时停歇在随机的高树上。 X ( t 1 ) { X r a n d ( t ) − r 1 ∣ X r a n d ( t ) − 2 r 2 X ( t ) ∣ q ≥ 0.5 ( X r a b b i t ( t ) − X m ( t ) ) − r 3 ( L B r 4 ( U B − L B ) ) q 0.5 X(t1)\begin{cases}X_{rand}(t)-r_1|X_{rand}(t)-2r_2X(t)|q\ge0.5\\(X_{rabbit}(t)-X_m(t))-r_3(LBr_4(UB-LB))q0.5\end{cases} X(t1){Xrand(t)−r1∣Xrand(t)−2r2X(t)∣(Xrabbit(t)−Xm(t))−r3(LBr4(UB−LB))q≥0.5q0.5 其中 X r a n d ( t ) , X r a b b i t ( t ) , X m ( t ) X_{rand}(t),X_{rabbit}(t),X_m(t) Xrand(t),Xrabbit(t),Xm(t)分别为随机个体位置猎物位置当前适应度最优和群体平均位置。 过渡 过渡阶段根据猎物的逃逸能量之间切换不同的开发利用行为。在猎物逃逸行为期间猎物的能量会大幅下降表述为 E 2 E 0 ( 1 − t T ) E2E_{0}(1-\frac{t}{T}) E2E0(1−Tt) 在迭代过程中动态逃逸能量 E E E呈下降趋势。当逃逸能量 E ≥ 1 E \ge 1 E≥1时哈里斯鹰会搜索不同的区域中的猎物全局探索当 E 1 E1 E1时哈里斯鹰搜索猎物周围局部探索。 开发 开发阶段较为复杂文章中提出了四种捕食策略。首先根据猎物是否逃脱这里由参数 r r r判定哈里斯鹰采取软、硬进攻方式这里根据参数 E E E判定。 猎物未成功逃脱软进攻方式 X ( t 1 ) ( X r a b b i t ( t ) − X ( t ) ) − E ∣ J X r a b b i t ( t ) − X ( t ) ∣ , 0.5 ≤ ∣ E ∣ 1 , r ≥ 0.5 X(t1)(X_{rabbit}(t)-X(t))-E|JX_{rabbit}(t)-X(t)|,0.5\leq|E|1,r\geq0.5 X(t1)(Xrabbit(t)−X(t))−E∣JXrabbit(t)−X(t)∣,0.5≤∣E∣1,r≥0.5 猎物未成功逃脱硬进攻方式 X ( t 1 ) X r a b b i t ( t ) − E ∣ Δ X ( t ) ∣ , ∣ E ∣ 0.5 , r ≥ 0.5 X(t1)X_{rabbit}(t)-E|\Delta X(t)|,|E|0.5,r\geq0.5 X(t1)Xrabbit(t)−E∣ΔX(t)∣,∣E∣0.5,r≥0.5 猎物成功逃脱软进攻方式 X ( t 1 ) { Y , f ( Y ) f ( X ( t ) ) Z , f ( Z ) f ( X ( t ) ) Y X r a b b i t ( t ) − E ∣ J X r a b b i t ( t ) − X ( t ) ∣ Z Y S ∗ L F ( D ) , 0.5 ≤ ∣ E ∣ 1 , r 0.5 X(t1)\begin{cases}Y,f(Y)f(X(t))\\Z,f(Z)f(X(t))\end{cases} \\ YX_{rabbit}\left(t\right)-E|JX_{rabbit}\left(t\right)-X(t)|\\ZYS*LF(D),0.5\leq|E|1,r0.5 X(t1){Y,f(Y)f(X(t))Z,f(Z)f(X(t))YXrabbit(t)−E∣JXrabbit(t)−X(t)∣ZYS∗LF(D),0.5≤∣E∣1,r0.5 猎物成功逃脱软进攻方式 X ( t 1 ) { Y , f ( Y ) f ( X ( t ) ) Z , f ( Z ) f ( X ( t ) ) Y X r a b b i t ( t ) − E ∣ J X r a b b i t ( t ) − X m ( t ) ∣ Z Y S ∗ L F ( D ) , ∣ E ∣ 0.5 , r 0.5 X(t1)\begin{cases}Y,f(Y)f(X(t))\\Z,f(Z)f(X(t))\end{cases} \\ YX_{rabbit}\left(t\right)-E|JX_{rabbit}\left(t\right)-X_m(t)|\\ZYS*LF(D),|E|0.5,r0.5 X(t1){Y,f(Y)f(X(t))Z,f(Z)f(X(t))YXrabbit(t)−E∣JXrabbit(t)−Xm(t)∣ZYS∗LF(D),∣E∣0.5,r0.5 其中 L F LF LF表示莱维飞行。 伪代码
3.代码实现
% 哈里斯鹰算法
function [Best_pos, Best_fitness, Iter_curve, History_pos, History_best] HHO(pop, maxIter,lb,ub,dim,fobj)
%input
%pop 种群数量
%dim 问题维数
%ub 变量上边界
%lb 变量下边界
%fobj 适应度函数
%maxIter 最大迭代次数
%output
%Best_pos 最优位置
%Best_fitness 最优适应度值
%Iter_curve 每代最优适应度值
%History_pos 每代种群位置
%History_best 每代最优位置
%% 初始化种群
X zeros(pop, dim);
for i 1:dimX(:,i) rand(pop,1) * (ub(i) - lb(i)) lb(i);
end
%% 记录
Best_poszeros(1,dim);
Best_fitnessinf;
Iter_curvezeros(1,maxIter);
%% 迭代
t0;
while tmaxIterfor i1:size(X,1)% 边界检查FUX(i,:)ub;FLX(i,:)lb;X(i,:)(X(i,:).*(~(FUFL)))ub.*FUlb.*FL;fitnessfobj(X(i,:));if fitnessBest_fitnessBest_fitnessfitness;Best_posX(i,:);endendE12*(1-(t/maxIter)); for i1:size(X,1)E02*rand()-1; %-1E01Escaping_EnergyE1*(E0); if abs(Escaping_Energy)1qrand();rand_Hawk_index floor(pop*rand()1);X_rand X(rand_Hawk_index, :);if q0.5X(i,:)X_rand-rand()*abs(X_rand-2*rand()*X(i,:));elseif q0.5X(i,:)(Best_pos(1,:)-mean(X))-rand()*((ub-lb)*randlb);endelseif abs(Escaping_Energy)1rrand();if r0.5 abs(Escaping_Energy)0.5 X(i,:)(Best_pos)-Escaping_Energy*abs(Best_pos-X(i,:));endif r0.5 abs(Escaping_Energy)0.5 Jump_strength2*(1-rand()); X(i,:)(Best_pos-X(i,:))-Escaping_Energy*abs(Jump_strength*Best_pos-X(i,:));endif r0.5 abs(Escaping_Energy)0.5 Jump_strength2*(1-rand());X1Best_pos-Escaping_Energy*abs(Jump_strength*Best_pos-X(i,:));if fobj(X1)fobj(X(i,:)) X(i,:)X1;elseX2Best_pos-Escaping_Energy*abs(Jump_strength*Best_pos-X(i,:))rand(1,dim).*Levy(dim);if (fobj(X2)fobj(X(i,:))) X(i,:)X2;endendendif r0.5 abs(Escaping_Energy)0.5 Jump_strength2*(1-rand());X1Best_pos-Escaping_Energy*abs(Jump_strength*Best_pos-mean(X));if fobj(X1)fobj(X(i,:)) X(i,:)X1;else X2Best_pos-Escaping_Energy*abs(Jump_strength*Best_pos-mean(X))rand(1,dim).*Levy(dim);if (fobj(X2)fobj(X(i,:))) X(i,:)X2;endendendendendtt1;Iter_curve(t)Best_fitness;History_best{t} Best_pos;History_pos{t} X;
endend%% Levy飞行
function oLevy(d)beta1.5;sigma(gamma(1beta)*sin(pi*beta/2)/(gamma((1beta)/2)*beta*2^((beta-1)/2)))^(1/beta);urandn(1,d)*sigma;vrandn(1,d);stepu./abs(v).^(1/beta);ostep;
end4.参考文献
[1] Heidari A A, Mirjalili S, Faris H, et al. Harris hawks optimization: Algorithm and applications[J]. Future generation computer systems, 2019, 97: 849-872.