【路径规划】基于蚁群算法求解各节点最短路径matlab代码

441 阅读3分钟

1 简介

随着经济的持续发展和科学技术的进步,人类的各种需求日益增长,人们越来越体会到日常生活中的交通拥堵与出行的不便。尤其当各种灾害事故发生时,如何在最短的时间内找到最优化的路径,并将受影响区域的人员快速疏散到安全区域成为当前的研究热点,其中最关键的是路径规划问题。近些年来,国内外专家学者对于路径规划问题的研究越来越深入,并广泛应用于旅行商问题、机器人路径规划、车辆路径规划问题、灾后应急疏散等领域。在初期进行路径规划时,人们通常求解两点之间的最优路径,然而在现实生活中,道路网络更加复杂,道路情况更加多变,路径规划问题的种类也更多,为了更好的模拟现实,需要考虑从多个起点到多个目标点的路径规划,由此引入了多源多汇路径规划的概念。路径规划问题能否有效解决的关键在于算法的设计,蚁群算法因其自身具有的系统性、鲁棒性、正反馈性等特点,成为解决路径规划问题的有效方法。因此,论文对蚁群算法在路径规划问题中的应用着重进行了研究,重点完成了基于蚁群算法的单源最短路径问题,探索了蚁群算法用来解决多源多汇路径规划问题的可行性,并且通过进行仿真实验验证蚁群算法解决路径规划问题的可行性和收敛性。本文的主要研究内容如下:  (1)蚁群算法的参数优化设置:以中国旅行商问题(CTSP)为例,采用蚁群算法进行求解,提出了采用循环组合的枚举方式设置参数,找到最优参数组合。  (2)蚁群算法求解单源最短路径问题:参数和信息素初始化,构建解空间,引入热区搜索机制和轮盘赌策略进行节点选择,经过多次迭代产生最短路径。

img

img

2 部分代码

clear all

close all

C =[1 1

    2 4

    1 7

    3 1

    5 1

    5 5

    7 7

    8 3

    9 8

    9 3

    5 8

    7 1];%C n个城市的坐标,n×2的矩阵

m=50;%蚂蚁数量

NC_max=500;%%% NC_max 最大迭代次数

Alpha=1;%% Alpha 表征信息素重要程度的参数

Beta=5;%% Beta 表征启发式因子重要程度的参数

Rho=0.5;%% Rho 信息素蒸发系数

Q=1;%% Q 信息素增加强度系数

%% R_best 各代最佳路线

%% L_best 各代最佳路线的长度

%%=========================================================================

%%第一步:变量初始化

n=size(C,1);%n表示问题的规模(城市个数)

distance=100;

D =distance.*ones(n,n);%D表示两两节点间的距离,初始设定10000,可以设定无穷大,表示不相连

D(1,2)=3.16;%表示节点1和节点2的距离

D(1,3)=6;

D(1,4)=2;

D(2,3)=3.16;

D(2,4)=3.16;

D(2,6)=3.16;

D(3,11)=4.12;

D(4,5)=2;

D(5,12)=2;

D(5,6)=4;

D(5,8)=4.4;

D(6,7)=2.82;

D(6,11)=3;

D(7,8)=4.1;

D(7,9)=2.23;

D(8,9)=1;

D(8,10)=1;

for   ni=1:size(C)

    for m=1:size(C)

        if D(ni,m)~=distance

            D(m,ni)=D(ni,m);   %对称矩阵

        end

    end

end

for startpoint=1:3

    for endpoint=9:12

        

        ACO1( C,D,m,NC_max,startpoint,endpoint,Rho,Beta,Alpha,Q,distance)

    end

end

3 仿真结果

4 参考文献

[1]张叶茂, and 杨晓武. "基于改进蚁群算法的动态路径规划算法研究." 西部交通科技 3(2017):5.

部分理论引用网络文献,若有侵权联系博主删除。​