您现在的位置:首页 >> 智能优化 >> 内容

m基于优化算法的多车辆的路径规划matlab仿真,对比GA,PSO以及烟花算法

时间:2022/12/15 17:09:46 点击:

  核心提示:02_105m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y52XlZxy

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

    路径规划是运动规划的主要研究内容之一。运动规划由路径规划和轨迹规划组成,连接起点位置和终点位置的序列点或曲线称之为路径,构成路径的策略称之为路径规划。路径规划在很多领域都具有广泛的应用。在高新科技领域的应用有:机器人的自主无碰行动;无人机的避障突防飞行;巡航导弹躲避雷达搜索、防反弹袭击、完成突防爆破任务等。在日常生活领域的应用有:GPS导航;基于GIS系统的道路规划;城市道路网规划导航等。在决策管理领域的应用有:物流管理中的车辆问题(VRP)及类似的资源管理资源配置问题。通信技术领域的路由问题等。凡是可拓扑为点线网络的规划问题基本上都可以采用路径规划的方法解决。

4.部分源码

%最大迭代次数

Iteration          = 100;     

%种群数目

Pops               = 1000;  

c1                 = 2.5;         %学习因子1

c2                 = 2.5;         %学习因子2

w                  = 0.9;         %惯性权重

%初始化路线存储变量

Routes             = func_routeList(Dim);     

Lens               = length(Routes);        

Lens2              = 30;

Tabu               = zeros(Lens,1);

%初始化

Sets.Posxy         = [];

Sets.fitness       = [];

Sets.pops          = [];

pop                = repmat(Sets,Pops,1);

BestSol.fitness    = inf;

%初始化种群

for i=1:Pops

    pop(i).Posxy                 = randperm(Dim);

    [pop(i).fitness,pop(i).pops] = Objs(pop(i).Posxy);

    y(i).Posxy                   = pop(i).Posxy;

    newpop(i).Posxy = pop(i).Posxy;

end

Bestfit      = zeros(Iteration,1);

NewSets      = Sets;

pg           = pop(1).Posxy;

for it=1:Iteration

    it

    for i=1:Pops

        if it==1

           v{i} = c1*rand*(y(i).Posxy-newpop(i).Posxy)+c2*rand*(pg-newpop(i).Posxy); 

        else

           v{i} = w*v{i}+c1*rand*(y(i).Posxy-newpop(i).Posxy)+c2*rand*(pg-newpop(i).Posxy);    

        end

    end

    for i=1:Pops

        tmps            = newpop(i).Posxy+v{i};

        [VV,II]         = sort(tmps);

        newpop(i).Posxy = II;

        tmps            = newpop(i).Posxy;

        for ij = 1:length(tmps)

            if tmps(ij)<=1;

               tmps(ij)=1; 

            end

        end

        newpop(i).Posxy = tmps;

    end

    %更新目标

    for i = 1:Pops

       [newpop(i).fitness,newpop(i).pops] = Objs(newpop(i).Posxy);

       if pop(i).fitness<BestSol.fitness

          BestSol=pop(i);

       end

       y(i).Posxy = newpop(i).Posxy;

    end

    %路线处理

    pop        = [pop;newpop']; 

    [Vmax,Idx] = sort([pop.fitness]);

    pop        = pop(Idx(1:Pops));

    pops       = pop(1);

    bestnewsol = pop(1);

    for i=1:Lens

        if Tabu(i)==0

           newsol.Posxy                 = func_variation2(pops.Posxy ,Routes{i});

           [newsol.fitness,newsol.pops] = Objs(newsol.Posxy);

           newsol.ActionIndex           = i ;

           if newsol.fitness<=bestnewsol.fitness

              bestnewsol = newsol;

           end

        end

    end

    if pops.fitness == bestnewsol.fitness

       pops = bestnewsol;

       pops.ActionIndex = [] ;

    else

       pops = bestnewsol ;

    end

    for i=1:Lens

        if i== pops.ActionIndex

           Tabu(i)=Lens2;          

        else

           Tabu(i)=max(Tabu(i)-1,0);  

        end

    end

    pop(1).Posxy    =  pops.Posxy    ;

    pop(1).fitness  =  pops.fitness;

    pop(1).pops     =  pops.pops;

    if pop(1).fitness <= BestSol.fitness

       BestSol=pop(1);

    end

    Bestfit(it)= BestSol.fitness;

    pg         = pop(1).Posxy;

end

bestN  = BestSol.pops.Infor_Route.seqs;

for ij = 1:Sysm.NCar

    seqs2{ij}  = BestSol.pops.Infor_Route(ij).seqs;

    LENS(ij)   = BestSol.pops.Infor_Route(ij).Rlen;

end

02_105m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168