欢迎来到本博客❤️❤️❤️
博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码实现
在自然界中,哈里斯鹰会利用其犀利的双眼侦查环境、追踪猎物。但是,在茫茫的亚利桑那州南部地区,有时候日子并不好过。在沙漠地区,其常常需要花费几个小时来等待,观察,并追踪猎物。
哈里斯鹰算法(Harris Hawks Optimizer,HO)是由Heidari、 Mirjali等人于2019年提出的一种元启发式算法,不得不说Miraii教授是真滴厉害!哈里斯之鹰主要生活在美国亚利桑那州南部地区,其之所以与众不同,是因为它会与群体中的其他家庭成员一起进行独特的合作觅食活动,而其他种类的猛禽则通常独自捕食猎物。正因如此,哈里斯鹰独特的群体捕食行为才非常适合被模拟成一种群智能优化过程。讨论一个算法怎么样,首先得看看他的有点吧:该算法有较强的全局搜索能力,并且需要调节的参数较少的优点。
详细文章讲解:
部分代码:
function PlotCosts(pop,rep)
pop_costs=[pop.Cost];
plot3(pop_costs(1,:),pop_costs(2,:), pop_costs(3,:),'k.', 'markersize', 12);
hold on;
rep_costs=[rep.Cost];
plot3(rep_costs(1,:),rep_costs(2,:), rep_costs(3,:),'r*', 'markersize', 12);
xlabel('1^{st} Objective');
ylabel('2^{nd} Objective');
zlabel('3^{nd} Objective');
grid on;
hold off;
end
function leader=SelectLeader(rep,beta)
% Grid Index of All Repository Members
GI=[rep.GridIndex];
% Occupied Cells
OC=unique(GI);
% Number of Particles in Occupied Cells
N=zeros(size(OC));
for k=1:numel(OC)
N(k)=numel(find(GI==OC(k)));
end
% Selection Probabilities
P=exp(-beta*N);
P=P/sum(P);
% Selected Cell Index
sci=RouletteWheelSelection(P);
% Selected Cell
sc=OC(sci);
% Selected Cell Members
SCM=find(GI==sc);
% Selected Member Index
smi=randi([1 numel(SCM)]);
% Selected Member
sm=SCM(smi);
% Leader
leader=rep(sm);
end
[1]milad eshkevari (2022). Multi-objective Harris Hawks Optimization (MOHHO)