伪代码:蚁群算法两点最短路径问题

伪代码:蚁群算法两点最短路径问题

题目条件:

(1,1)内的空间随机40个散点,指定第1个点为起点到第40点的终点,要求每一步步长小于<0.2,求最短路径(可能无解)

伪代码:

Class aca:
    init函数
        定义步长,蚂蚁数,迭代次数,信息素矩阵,信息素挥发速度,距离矩阵,距离-概率矩阵,选择概率矩阵,死胡同点列表,路径二维数组..:
        计算死胡同列表(计算每个点附近距离小于步长的邻点数,小于2则为死胡同)
    定义开始函数:
        对迭代次数循环:
            初始化路径二维数组,更新选择概率矩阵(基于信息素矩阵 * 距离-概率矩阵)
            对蚂蚁循环:
                路径二维数组第一点为0
                对路径循环(上限为点总数):
                    计算允许选择列表,排除0点、上一点、死胡同点、超出距离点
                    计算允许选择列表内点的选择概率(选择概率矩阵)
                    概率归一化
                    依据概率轮盘赌选择下一到达点
                    更新路径二维数组
                    判断是否到达终点:
                        退出路径循环
            循环计算每个蚂蚁距离:
                判断路径列表是否出现终点:
                    未出现则距离设为1e10的极大值
                    找出重复路径点
                    对重复路径点循环:
                        依次切除重复点之间的路径
                    循环路径点:
                        距离 += 路径点距离
            寻找每一代蚂蚁最优路径并记录
            信息素变化量矩阵初始化(全0)