蚁群算法(ACO)最短路径规划(MATLAB)

蚁群算法最早是由Marco Dorigo等人在1991年提出,他们在研究新型算法的过程中,发现蚁群在寻找食物时,通过分泌一种称为信息素的生物激素交流觅食信息从而能快速的找到目标,据此提出了基于信息正反馈原理的蚁群算法。

蚁群算法根据模拟蚂蚁寻找食物的最短路径行为来设计的仿生算法,因此一般而言,蚁群算法用来解决最短路径问题,并真的在旅行商问题(TSP,一个寻找最短路径的问题)上取得了比较好的成效。目前,也已渐渐应用到其他领域中去,在图着色问题、车辆调度问题、集成电路设计、通讯网络、数据聚类分析等方面都有所应用。

具体概述及通用MATLAB代码请见: http://www.omegaxyz.com/2018/01/26/aco/

下面是蚁群算法机器人最短路径规划问题的MATLAB代码

(1代表障碍物)

效果:

最短路径长度稳定在38。

参考资料为:MATLAB自学一本通

2019美赛D参考:http://www.omegaxyz.com/2019/01/28/aco_routes2/

28 评论

  1. >> F3;
    无法执行赋值,因为左侧和右侧的元素数目不同。

    出错 F3 (line 153)
    minPL(i)=min(PLKPLK);

    请问楼主,我们只是改了G矩阵,然后就发生了以上错误,能问一下是因为什么吗?

  2. 您好Delta_Tau=zeros(N,N);%更新量初始化
    for m=1:M
    if PL(k,m)
    ROUT=ROUTES{k,m};
    TS=length(ROUT)-1;%跳数
    PL_km=PL(k,m);
    for s=1:TS
    x=ROUT(s);
    y=ROUT(s+1);
    Delta_Tau(x,y)=Delta_Tau(x,y)+Q/PL_km;
    Delta_Tau(y,x)=Delta_Tau(y,x)+Q/PL_km;
    end
    end
    end
    的数学公式能告诉我一下吗,才接触matlab,不是很懂

回复 取消回复