猎人猎物优化算法 HPO算法(含MATLAB代码) 优化无人机编队静态全局规划+动态避障问题

(1)全局规划算法:

猎人猎物算法 HPO:Naruei I, Keynia F, Sabbagh Molahosseini A. Hunter–prey optimization: Algorithm and applications[J]. Soft Computing, 2022, 26(3): 1279-1314.

function [res]=HPO(lb,ub,popsize,gensize,callfit,data)
    delta = 0.1;
    BESTY=inf;
    Lb = repmat(lb,popsize,1);
    Ub = repmat(ub,popsize,1);
    dim = length(lb); 
    x = lb+(ub-lb).*rand(popsize,dim);
    y = zeros(1,popsize);
    for i = 1:popsize
        y(i)=callfit(x(i,:),data);
    end
    [bestY,minid] = min(y);
    Tpos = x(minid,:);
    trace = zeros(1,gensize);
    for gen = 1:gensize
        gen
        C = 1-gen/gensize*0.98;
        miu = mean(x,1);
        Deuc = pdist2(x,miu);
        [~,id] = sort(Deuc,'ascend');
        kbest = round(C*popsize);
        Ppos = x(id(kbest),:);
        for i = 1:popsize
            P = rand(1,dim)<C;
            Z = rand(1,dim).*(P==0)+rand(1,dim).*(~(P==0));
                for j = 1:dim
                    if rand<delta
                        x(i,j)=x(i,j)+0.5*((2*C*Z(j)*Ppos(j)-x(i,j))+(2*(1-C)*Z(j)*miu(j)-x(i,j)));
                    else
                        x(i,j)=Tpos(j)+C.*Z(j).*cos(2*pi*(rand()*2-1))*(Tpos(j)-x(i,j));
                    end
                end
        end
        x(x<Lb)=Lb(x<Lb);x(x>Ub)=Ub(x>Ub);
        for i = 1:popsize
            y(i)=callfit(x(i,:),data);
        end
        [bestY,minid] = min(y);
        Tpos = x(minid,:);
        if bestY<BESTY
            BESTX=Tpos;
            BESTY=bestY;
        end
        trace(gen) = BESTY;
    end
    res.y=BESTY;
    res.x=BESTX;
    res.trace=trace;
end

(2)动态避障算法:

改进引力势场法:王翼虎. 电力巡检旋翼无人机航迹规划研究[D].兰州交通大学,2020.DOI:10.27205/d.cnki.gltec.2020.000310.

(3)最终效果:


联系方式:qq974555975

微信:a_powerful_id

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值