多目标哈里斯鹰优化 (MOHHO)(Matlab代码实现)

欢迎来到本博客❤️❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

目录

1 概述

2 运行结果

3 参考文献

4 Matlab代码实现

1 概述

    在自然界中,哈里斯鹰会利用其犀利的双眼侦查环境、追踪猎物。但是,在茫茫的亚利桑那州南部地区,有时候日子并不好过。在沙漠地区,其常常需要花费几个小时来等待,观察,并追踪猎物。

哈里斯鹰算法(Harris Hawks Optimizer,HO)是由Heidari、 Mirjali等人于2019年提出的一种元启发式算法,不得不说Miraii教授是真滴厉害!哈里斯之鹰主要生活在美国亚利桑那州南部地区,其之所以与众不同,是因为它会与群体中的其他家庭成员一起进行独特的合作觅食活动,而其他种类的猛禽则通常独自捕食猎物。正因如此,哈里斯鹰独特的群体捕食行为才非常适合被模拟成一种群智能优化过程。讨论一个算法怎么样,首先得看看他的有点吧:该算法有较强的全局搜索能力,并且需要调节的参数较少的优点。

详细文章讲解:

多目标哈里斯鹰优化 (MOHHO)(Matlab代码实现)_第1张图片

2 运行结果

多目标哈里斯鹰优化 (MOHHO)(Matlab代码实现)_第2张图片

多目标哈里斯鹰优化 (MOHHO)(Matlab代码实现)_第3张图片

部分代码:

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

3 参考文献

[1]milad eshkevari (2022). Multi-objective Harris Hawks Optimization (MOHHO) 

4 Matlab代码实现

你可能感兴趣的:(#,单,多目标智能算法,matlab,开发语言)