蚁群算法求解TSP问题

蚁群算法求解TSP问题

蚁群算法求解TSP问题

旅行商问题,即TSP问题(Traveling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。

dict_position = {
          '山东':[117.000923, 36.675807],
          '河北':[115.48333,38.03333],
          '吉林':[125.35000,43.88333],
          '黑龙江':[127.63333,47.75000],
          '辽宁':[123.38333,41.80000],
          '内蒙古':[111.670801, 41.818311],
          '新疆':[87.68333,43.76667],
          '甘肃':[103.73333,36.03333],
          '宁夏':[106.26667,37.46667],
          '山西':[112.53333,37.86667],
          '陕西':[108.95000,34.26667],
          '河南':[113.65000,34.76667],
          '安徽':[117.283042, 31.86119],
          '江苏':[119.78333,32.05000],
          '浙江':[120.20000,30.26667],
          '福建':[118.30000,26.08333],
          '广东':[113.23333,23.16667],
          '江西':[115.90000,28.68333],
          '海南':[110.35000,20.01667],
          '广西':[108.320004, 22.82402],
          '贵州':[106.71667,26.56667],
          '湖南':[113.00000,28.21667],
          '湖北':[114.298572, 30.584355],
          '四川':[104.06667,30.66667],
          '云南':[102.73333,25.05000],
          '西藏':[91.00000,30.60000],
          '青海':[96.75000,36.56667],
          '天津':[117.20000,39.13333],
          '上海':[121.55333,31.20000],
          '重庆':[106.45000, 29.56667],
          '北京': [116.41667,39.91667],
          '台湾': [121.30, 25.03],
          '香港': [114.10000,22.20000],
          '澳门': [113.50000,22.20000]}

已知各个城市的经纬度如上。

import folium
m = folium.Map(location=[34.26667,108.95000], width=1000, height=500,zoom_start=4,
               #tiles='http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', # 高德卫星图
               #tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}', # 高德街道图
               #attr='default'
               tiles='OpenStreetMap')
for i in test.position().items():
    loc = i[1][::-1]
    folium.Marker(
            location=loc,
            tooltip=i[0]
        ).add_to(m)
m

在这里插入图片描述
上图为可视化出来以后的城市分布。
完整代码如下:

import numpy as np
from math import sin, asin, cos, radians, fabs, sqrt
import numpy as np
import random


class ACO_TSP():
    def __init__(self,num_ant=1,city_num=1,alpha=1,beta=2,rho=0.3):
        '''
            算法的初始化操作
            num_ant  --------------->   蚂蚁的数量
            city_num --------------->   城市的数量
            alpha    --------------->   信息素量τ_ij(t)对蚂蚁在进行路径选择时的重要程度,一般α=1~2.
            beta     --------------->   启发因子η_ij(t)对蚂蚁在进行路径选择时的重要程度,一般β=2~5.
            rho      --------------->   信息素挥发系数
            distance_array --------->   城市之间的距离矩阵
        '''
        print("初始化.......")
        EARTH_RADIUS=6371           # 地球平均半径,6371km
        self.num_ant = num_ant
        self.city_num = city_num
        if self.city_num<num_ant:
            print('\033[34m蚂蚁数量应小于等于城市数量')
        self.alpha = alpha
        self.beta = beta
        self.rho = rho
        self.distance_array = np.zeros(shape=(self.city_num,self.city_num))
        self.path_sum = 0#初始化贪婪算法求路径长度
        self.distance_array_init()              #城市之间距离的初始化
        self.pheromone = (np.ones(shape=(self.city_num,self.city_num))-np.eye(self.city_num))#初始信息素浓度矩阵
        self.Min_path_distance()
        self.pheromone = self.pheromone*num_ant/self.path_sum
        self.ant_position = np.zeros(shape = (self.num_ant,self.city_num))
        self.ant_path = np.zeros(shape = (self.num_ant,self.city_num))
        self.Init_ant_start()
        #蚂蚁位置的初始矩阵【i,j】为1代表i蚂蚁位于j城市,为0则代表不在
        #蚂蚁的行走路径
        print("初始化完成......")
    def epoch_init(self):
        self.ant_position = np.zeros(shape = (self.num_ant,self.city_num))
        self.ant_path = np.zeros(shape = (self.num_ant,self.city_num))
        self.Init_ant_start()
        #蚂蚁位置的初始矩阵【i,j】为1代表i蚂蚁位于j城市,为0则代表不在
        
    def position(self):
        '''
            存放了各个城市的位置信息
        '''
        dict_position = {
          '山东':[117.000923, 36.675807],
          '河北':[115.48333,38.03333],
          '吉林':[125.35000,43.88333],
          '黑龙江':[127.63333,47.75000],
          '辽宁':[123.38333,41.80000],
          '内蒙古':[111.670801, 41.818311],
          '新疆':[87.68333,43.76667],
          '甘肃':[103.73333,36.03333],
          '宁夏':[106.26667,37.46667],
          '山西':[112.53333,37.86667],
          '陕西':[108.95000,34.26667],
          '河南':[113.65000,34.76667],
          '安徽':[117.283042, 31.86119],
          '江苏':[119.78333,32.05000],
          '浙江':[120.20000,30.26667],
          '福建':[118.30000,26.08333],
          '广东':[113.23333,23.16667],
          '江西':[115.90000,28.68333],
          '海南':[110.35000,20.01667],
          '广西':[108.320004, 22.82402],
          '贵州':[106.71667,26.56667],
          '湖南':[113.00000,28.21667],
          '湖北':[114.298572, 30.584355],
          '四川':[104.06667,30.66667],
          '云南':[102.73333,25.05000],
          '西藏':[91.00000,30.60000],
          '青海':[96.75000,36.56667],
          '天津':[117.20000,39.13333],
          '上海':[121.55333,31.20000],
          '重庆':[106.45000, 29.56667],
          '北京': [116.41667,39.91667],
          '台湾': [121.30, 25.03],
          '香港': [114.10000,22.20000],
          '澳门': [113.50000,22.20000]}   #包含中国各省省会的地理坐标
        return dict_position
    
    def get_distance(self,position1,position2):
        '''
            获取相邻两个城市的距离
            position1:第一个地区的经纬度,为列表形式
        
            position2:第二个地区的经纬度,为列表形式
        
            传入两个地区的地理坐标,返回二者的距离
        '''
        lng1,lat1,lng2,lat2 = (position1[0],position1[1],position2[0],position2[1])
        lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)]) # 经纬度转换成弧度
        dlon=lng2-lng1
        dlat=lat2-lat1
        a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
        distance=2*asin(sqrt(a))*6371*1000 # 地球平均半径,6371km
        distance=round(distance/1000,3)
        return distance
    
    def distance_array_init(self):
        '''
            城市之间的距离矩阵初始化
        '''
        print("城市之间距离初始化......")
        dict_ = self.position()
        for i in range(self.city_num):
            for j in range(self.city_num):
                self.distance_array[i][j] = self.get_distance(dict_[list(dict_.keys())[i]],dict_[list(dict_.keys())[j]])
        #print(self.distance_array)
        print("城市之间距离初始化完成......")
        return self.distance_array
    
    def Min_path_distance(self):
        print("初始化信息素浓度矩阵.......")
        dis = self.distance_array.copy()
        self.path_sum = 0
        city_aim = [i for i in range(self.city_num)]
        #未走过的城市,由于默认初始位于第一个城市,故截取[1:]
        path = []
        first_city = 0
        path.append(first_city)
        while(len(city_aim)):
            city_aim.remove(first_city)
            tmp_city = []
            for i in city_aim:
                if dis[first_city][i]:
                    tmp_city.append(dis[first_city][i])
            try:
                min_distance = min(tmp_city)
            except:
                break
            #print("当前位于:",first_city,"\t可选 城市 距离",tmp_city)
            second_city = list(dis[first_city]).index(min_distance)
            path.append(second_city)
            #print(second_city)
            #获取当前可走的最近的城市
            #print("----"*30)
            self.path_sum+=dis[first_city][second_city]
            #city_aim.remove(second_city)
            #从待选城市列表中移除second_city(已走过)
            first_city = second_city
            #更新,此时蚂蚁位于second_city
        path.append(0)
        self.path_sum+=dis[first_city][0]
        #回到起点
        print("初始化信息素浓度矩阵完成.......")
        return self.path_sum,path
    
    def Init_ant_start(self):
        '''
            为每个蚂蚁随机选择出发城市
            随机生成city_num个0-1000的随机数,降序排序,第i个ant位于第i个city
        '''
        print("蚂蚁位置初始化......")
        a = [[i,random.randint(1,1000)] for i in range(self.city_num)]
        a.sort(key=lambda data:data[1], reverse=True)
        for i in range(self.num_ant):
            self.ant_position[i][a[i][0]] = 1
            self.ant_path[i][0] = a[i][0]
        #print(self.ant_path)
        print("蚂蚁位置初始化完成......")
        
    def select_next_city(self,epoch_num):
        '''
        蚂蚁使用轮盘算法选择下一个城市
        self.ant_position 去过的城市标记为-1,当前所在城市标记为1,未去过的城市标记为0
        '''
        for i in range(self.num_ant):
            '''每一轮循环都对应着一只蚂蚁'''
            list_city = []#存放蚂蚁爬到可供选择城市
            ant_begin = np.inf
            ant_end = np.inf
            list_city_probability = []
            #遍历每只蚂蚁
            for j in range(self.city_num):
                if self.ant_position[i][j]==0:
                    list_city.append(j)#当前可供蚂蚁走的城市
                elif self.ant_position[i][j]==1:
                    ant_begin = j
                    #蚂蚁当前在j城市
            #以下计算蚂蚁访问各个城市的概率
            for j in list_city:
                P = ((self.pheromone[ant_begin][j])**(self.alpha) )*( (1/self.distance_array[ant_begin][j])**(self.beta) )#ant_begin到j的概率
                list_city_probability.append(P)
            list_city_probability = np.array(list_city_probability)/sum(list_city_probability)
            random_state = random.randint(0,10000)/10000
            #-------------------------------以下为轮盘选择------------------------------------------
            for j in range(len(list_city_probability)):
                if random_state>list_city_probability[j]:
                    random_state-=list_city_probability[j]
                    ant_end = list_city[j]
                if random_state<=list_city_probability[j]:
                    ant_end = list_city[j]
                    break
            if ant_end>10000:
                ant_end = list_city[-1]
            self.ant_path[i][epoch_num] = ant_end
            #----------------------------城市选择结束-----------------------------------------------
            self.ant_position[i][ant_begin] = -1
            self.ant_position[i][ant_end] = 1
            #print(list_city[j])
    def get_path(self):
        return self.ant_path
    
    def update_pheromone(self):
        self.pheromone = (1-self.rho)*self.pheromone
        #信息素浓度更新
        for i in range(self.num_ant):
            path = self.ant_path[i]
            sum_ = 0
            for j in range(len(path)-1):
                #print(int(path[j]))
                sum_+=self.distance_array[int(path[j])][int(path[j+1])]
            sum_+=self.distance_array[int(path[j+1])][int(path[0])]
            #sum_为蚂蚁总路径长度,单只蚂蚁一次的信息素总量为1
            for j in range(len(path)-1):
                self.pheromone[int(path[j])][int(path[j+1])]+=1/sum_
            self.pheromone[int(path[j+1])][int(path[0])]+=1/sum_
    def get_result(self):
        path = self.get_path()
        path_length = []
         
        for i in path:
            path_i_length = []
            #j是滴个蚂蚁路径的城市编号
            for j in range(len(i)-1):
                path_i_length.append(self.distance_array[int(i[j])][int(i[j+1])])
            path_i_length.append(self.distance_array[int(i[j+1])][int(i[0])])
            path_length.append(path_i_length)
        length = np.array(path_length)
        length = length.sum(axis=1)
        #print(length.shape)
        return length,self.ant_path
alpha = 1  # 信息素重要程度因子
beta = 4  # 启发函数重要程度因子
rho = 0.8  # 信息素的挥发速度
test = ACO_TSP(num_ant=34,city_num=34,alpha=alpha,beta=beta,rho=rho)
#test.Min_path_distance()
list_average = []
list_min = []
min_path = np.inf
result_path = []
for epoch in range(300):
    print("epoch",epoch,"  ......")
    test.epoch_init()
    for i in range(1,34):
        test.select_next_city(i)
    test.update_pheromone()
    length,path = test.get_result()
    if length.min()<min_path:
        min_path = length.min()
        result_path = path[length.argmin()]
    print("最短路径为",length.min(),"\t平均路径为",length.mean())
    list_min.append(length.min())
    list_average.append(length.mean())
    print()

输出:

初始化.......
城市之间距离初始化......
城市之间距离初始化完成......
初始化信息素浓度矩阵.......
初始化信息素浓度矩阵完成.......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
初始化完成......
epoch 0   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18664.623 	平均路径为 20824.866647058825

epoch 1   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17886.196 	平均路径为 20555.991499999996

epoch 2   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17209.235 	平均路径为 20435.705294117648

epoch 3   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18104.492 	平均路径为 19664.51882352941

epoch 4   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18250.206000000002 	平均路径为 19727.829294117648

epoch 5   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16797.568 	平均路径为 19496.837882352942

epoch 6   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18229.803 	平均路径为 19702.965205882356

epoch 7   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18299.897999999997 	平均路径为 19669.654529411764

epoch 8   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16797.568000000003 	平均路径为 19701.84717647059

epoch 9   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18052.832000000002 	平均路径为 19734.366735294116

epoch 10   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17251.193 	平均路径为 19592.788617647057

epoch 11   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17976.796 	平均路径为 19591.21711764706

epoch 12   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18052.832 	平均路径为 19279.365647058825

epoch 13   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16797.568 	平均路径为 19719.927735294117

epoch 14   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17577.327 	平均路径为 19644.1695

epoch 15   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17660.361 	平均路径为 20067.32802941176

epoch 16   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18249.781 	平均路径为 20160.240558823534

epoch 17   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18249.781 	平均路径为 20309.54626470588

epoch 18   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18249.781000000003 	平均路径为 20095.598882352944

epoch 19   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20133.978147058828

epoch 20   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18553.789000000004 	平均路径为 19880.410205882356

epoch 21   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20193.459029411766

epoch 22   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20015.57573529412

epoch 23   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19961.48826470588

epoch 24   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 20031.13182352941

epoch 25   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19795.28811764706

epoch 26   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19956.205705882352

epoch 27   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19914.804205882352

epoch 28   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18723.569 	平均路径为 20169.07855882353

epoch 29   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18723.569 	平均路径为 20337.153088235296

epoch 30   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20150.99235294118

epoch 31   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18982.353000000003 	平均路径为 20301.49661764706

epoch 32   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18512.836 	平均路径为 20280.254235294116

epoch 33   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20350.49658823529

epoch 34   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20292.39432352941

epoch 35   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20192.91352941176

epoch 36   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20092.38267647059

epoch 37   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20261.58255882353

epoch 38   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20188.968411764705

epoch 39   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20282.82314705882

epoch 40   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 20242.40894117647

epoch 41   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19887.469441176472

epoch 42   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18388.168999999998 	平均路径为 20082.664617647057

epoch 43   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19815.757176470583

epoch 44   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19935.173882352938

epoch 45   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19813.618558823528

epoch 46   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19981.043

epoch 47   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19808.423147058827

epoch 48   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19684.711823529415

epoch 49   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19809.330529411764

epoch 50   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19706.78461764706

epoch 51   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19666.764529411765

epoch 52   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19771.423029411762

epoch 53   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19361.293588235294

epoch 54   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19120.577970588234

epoch 55   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19178.873647058823

epoch 56   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19214.527999999995

epoch 57   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19520.68194117647

epoch 58   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19419.070470588238

epoch 59   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19239.652941176468

epoch 60   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19489.910029411763

epoch 61   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19032.016411764707

epoch 62   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19362.537147058825

epoch 63   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19316.29397058823

epoch 64   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19197.649999999998

epoch 65   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19507.05385294118

epoch 66   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19298.08867647059

epoch 67   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19304.203294117644

epoch 68   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19220.74205882353

epoch 69   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19084.341441176468

epoch 70   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19069.14879411765

epoch 71   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19153.82379411764

epoch 72   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19125.231617647056

epoch 73   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19456.745558823528

epoch 74   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19282.66852941176

epoch 75   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19593.259852941173

epoch 76   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19423.220999999998

epoch 77   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19655.231529411765

epoch 78   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19208.020705882354

epoch 79   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19304.017411764708

epoch 80   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19353.92038235294

epoch 81   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19342.09208823529

epoch 82   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18234.145000000004 	平均路径为 19559.647558823526

epoch 83   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19492.07770588235

epoch 84   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19351.11138235294

epoch 85   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19441.941499999994

epoch 86   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19618.877852941176

epoch 87   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19486.844294117644

epoch 88   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19289.81555882353

epoch 89   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19363.68532352941

epoch 90   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19450.332205882354

epoch 91   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19522.39844117647

epoch 92   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19513.977235294118

epoch 93   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19259.81073529412

epoch 94   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19685.124235294115

epoch 95   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19324.44488235294

epoch 96   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19428.27755882353

epoch 97   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19455.437852941173

epoch 98   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19444.268411764704

epoch 99   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19905.34838235294

epoch 100   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19587.67855882353

epoch 101   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19688.51738235294

epoch 102   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19729.905941176472

epoch 103   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19738.76708823529

epoch 104   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19537.96335294118

epoch 105   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19725.69238235294

epoch 106   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19737.791558823526

epoch 107   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 20010.623529411765

epoch 108   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19746.893

epoch 109   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19491.52311764706

epoch 110   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19644.028176470587

epoch 111   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19337.37929411765

epoch 112   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19451.181029411764

epoch 113   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19375.404911764705

epoch 114   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19558.515617647063

epoch 115   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19703.989676470588

epoch 116   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19305.427970588236

epoch 117   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19316.686852941177

epoch 118   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19640.315470588233

epoch 119   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19572.127382352937

epoch 120   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058 	平均路径为 19604.598705882352

epoch 121   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19060.21055882353

epoch 122   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19488.66202941176

epoch 123   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19399.71058823529

epoch 124   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19195.234764705885

epoch 125   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19117.004794117645

epoch 126   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19418.048647058822

epoch 127   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19047.35594117647

epoch 128   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19366.041147058822

epoch 129   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19132.99267647059

epoch 130   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19205.550647058823

epoch 131   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19373.012529411768

epoch 132   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997 	平均路径为 19304.271441176472

epoch 133   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19326.088529411765

epoch 134   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997 	平均路径为 19260.159499999998

epoch 135   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19448.017058823527

epoch 136   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997 	平均路径为 19691.550029411763

epoch 137   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997 	平均路径为 19803.232794117645

epoch 138   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19588.100735294116

epoch 139   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847 	平均路径为 19761.739382352942

epoch 140   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997 	平均路径为 19712.114617647057

epoch 141   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.934 	平均路径为 19449.432205882353

epoch 142   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997 	平均路径为 19501.61482352941

epoch 143   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19637.80955882353

epoch 144   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19667.11411764706

epoch 145   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19551.695411764704

epoch 146   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19400.456235294118

epoch 147   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19549.773176470586

epoch 148   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48 	平均路径为 19578.53967647059

epoch 149   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48 	平均路径为 19484.629529411766

epoch 150   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48 	平均路径为 19415.355441176474

epoch 151   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19692.032323529413

epoch 152   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19578.036970588237

epoch 153   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48 	平均路径为 19574.564

epoch 154   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19720.421588235295

epoch 155   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48 	平均路径为 19655.910411764704

epoch 156   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19918.58820588235

epoch 157   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19781.633323529415

epoch 158   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19773.454264705884

epoch 159   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003 	平均路径为 19710.398882352943

epoch 160   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19631.916529411767

epoch 161   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19605.217911764707

epoch 162   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19765.007029411765

epoch 163   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19716.263676470582

epoch 164   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19784.730911764706

epoch 165   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19732.23

epoch 166   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19544.305970588233

epoch 167   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19611.593352941178

epoch 168   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19591.882764705886

epoch 169   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18753.164 	平均路径为 19580.420352941175

epoch 170   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19622.449176470593

epoch 171   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19649.480264705882

epoch 172   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19744.942676470586

epoch 173   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19693.651235294117

epoch 174   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19670.38047058824

epoch 175   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19741.173117647057

epoch 176   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19837.30038235294

epoch 177   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19707.78723529412

epoch 178   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19683.218647058824

epoch 179   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19582.70517647059

epoch 180   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19683.28935294118

epoch 181   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19676.68432352941

epoch 182   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19577.03985294118

epoch 183   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19787.701617647057

epoch 184   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19623.56135294118

epoch 185   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19737.48652941177

epoch 186   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19675.91773529412

epoch 187   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19795.561823529417

epoch 188   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19869.31905882353

epoch 189   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19672.146352941178

epoch 190   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19727.9439117647

epoch 191   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19688.503147058822

epoch 192   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19790.064558823527

epoch 193   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18792.912 	平均路径为 19845.414529411762

epoch 194   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19747.580205882354

epoch 195   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19765.388970588236

epoch 196   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19660.792029411765

epoch 197   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19755.041500000007

epoch 198   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19735.607205882352

epoch 199   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19661.682147058822

epoch 200   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19580.608500000002

epoch 201   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19767.986911764707

epoch 202   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19505.94138235294

epoch 203   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19727.4305

epoch 204   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19658.52967647059

epoch 205   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19955.387529411768

epoch 206   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19763.671617647055

epoch 207   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19624.662970588233

epoch 208   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19688.861647058824

epoch 209   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19712.290882352943

epoch 210   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19660.58652941176

epoch 211   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19738.606411764707

epoch 212   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19591.31494117647

epoch 213   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19719.176764705884

epoch 214   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19589.402029411765

epoch 215   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19694.272500000003

epoch 216   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19684.277852941177

epoch 217   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19538.62823529412

epoch 218   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19722.07476470588

epoch 219   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19613.15867647059

epoch 220   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19649.730794117644

epoch 221   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19678.29432352941

epoch 222   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19615.79923529412

epoch 223   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19738.477470588237

epoch 224   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19684.94979411765

epoch 225   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19690.186705882355

epoch 226   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19767.416588235294

epoch 227   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19645.041029411765

epoch 228   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19751.899441176472

epoch 229   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19680.505705882355

epoch 230   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19483.051323529413

epoch 231   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19560.671000000002

epoch 232   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19714.63258823529

epoch 233   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19729.25067647059

epoch 234   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18347.930999999997 	平均路径为 19654.677529411765

epoch 235   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19735.54

epoch 236   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19602.693323529413

epoch 237   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19696.683852941176

epoch 238   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19837.61244117647

epoch 239   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19589.281294117645

epoch 240   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19664.798941176472

epoch 241   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19556.359617647064

epoch 242   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19764.788529411766

epoch 243   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19932.088911764702

epoch 244   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19680.343441176472

epoch 245   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19683.403558823527

epoch 246   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19598.166852941176

epoch 247   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19628.72394117647

epoch 248   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19626.92855882353

epoch 249   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19660.88214705882

epoch 250   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19728.737647058824

epoch 251   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19614.014970588236

epoch 252   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18348.964 	平均路径为 19737.093088235295

epoch 253   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19698.551999999996

epoch 254   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19595.672147058824

epoch 255   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19697.635852941177

epoch 256   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19860.561617647058

epoch 257   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19644.727676470586

epoch 258   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19683.448617647056

epoch 259   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19676.44767647059

epoch 260   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19612.525941176475

epoch 261   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19637.92744117647

epoch 262   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19592.861764705885

epoch 263   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19683.919470588236

epoch 264   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19636.39182352941

epoch 265   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19672.642205882352

epoch 266   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19775.39994117647

epoch 267   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19650.44723529412

epoch 268   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19768.123117647057

epoch 269   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19635.565705882353

epoch 270   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19669.305441176475

epoch 271   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19697.90061764706

epoch 272   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19854.640911764705

epoch 273   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19678.711264705886

epoch 274   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19704.044588235294

epoch 275   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677 	平均路径为 19676.48138235294

epoch 276   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19693.291029411765

epoch 277   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19732.368705882353

epoch 278   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19646.73688235294

epoch 279   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19924.366411764706

epoch 280   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18348.964 	平均路径为 19634.91711764706

epoch 281   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19611.906852941174

epoch 282   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19651.688

epoch 283   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19658.806676470587

epoch 284   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415 	平均路径为 19710.39017647059

epoch 285   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19620.263088235293

epoch 286   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19747.862794117646

epoch 287   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19665.270235294116

epoch 288   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19676.718117647062

epoch 289   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19639.7385

epoch 290   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19837.57023529412

epoch 291   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19704.764735294117

epoch 292   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19715.926029411763

epoch 293   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19629.676323529413

epoch 294   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19767.705941176475

epoch 295   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19672.79682352941

epoch 296   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19725.698411764708

epoch 297   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19608.52079411765

epoch 298   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19681.024852941177

epoch 299   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997 	平均路径为 19673.693029411763

由于算法为启发式算法,每一次的运行结果都会不相同。输出最终规划结果如下。
print("最短路径长度:",min_path,"最短路径:",result_path)

最短路径长度: 16797.568 最短路径: [24. 23. 29. 20. 19. 18. 16. 32. 33. 15. 31. 14. 28. 13. 12. 17. 21. 22.
 11.  0.  1. 27. 30.  4.  2.  3.  5.  9.  8.  7. 10. 26.  6. 25.]

训练过程可视化。

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

fig,ax=plt.subplots(figsize=(15,8))

t = range(300)
# 线条颜色
#ax.rcParams['lines.color'] = 'r'
# 线条宽度
#ax.rcParams['lines.linewidth'] = 2
ax.plot(t,list_average)
#ax.rcParams['lines.color'] = 'b'
ax.plot(t,list_min)
ax.legend(['种群平均路径长度','种群最优个体路径长度'])

axins=ax.inset_axes([0.5,0.9,0.5,0.5])
axins.plot(t[:100],list_average[:100])
axins.plot(t[:100],list_min[:100])

ax.indicate_inset_zoom(axins,linewidth=3)
axins.set_xticklabels('')
axins.set_xticklabels('')
plt.show()

在这里插入图片描述
训练过程波动,且每次运行都有较大差异,最终也无法收敛,算法性能不是很好。
优化路径如下:

m1 = folium.Map(location=[34.26667,108.95000], width=1000, height=500,zoom_start=4,
               #tiles='http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', # 高德卫星图
               #tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}', # 高德街道图
               #attr='default'
               tiles='OpenStreetMap')
path_min = result_path
list_p = list(test.position().items())
for i in range(len(path_min)-1):
    begin = list_p[int(path_min[i])][1][::-1]
    end = list_p[int(path_min[i+1])][1][::-1]
    coordinates=[begin,end] 
    aline=folium.PolyLine(locations=coordinates,weight=2,color = 'red') 
    m1.add_child(aline) 
begin = end
end = end = list_p[int(path_min[0])][1][::-1]
coordinates=[begin,end] 
aline=folium.PolyLine(locations=coordinates,weight=2,color = 'red') 
m1.add_child(aline)
m1

在这里插入图片描述
对算法进行改进,使用最大最小蚂蚁系统重写了信息素更新的函数

class MMAS_ACO_TSP(ACO_TSP):
    def __init__(self,num_ant=1,city_num=1,alpha=1,beta=2,rho=0.3):
        '''
            算法的初始化操作
            num_ant  --------------->   蚂蚁的数量
            city_num --------------->   城市的数量
            alpha    --------------->   信息素量τ_ij(t)对蚂蚁在进行路径选择时的重要程度,一般α=1~2.
            beta     --------------->   启发因子η_ij(t)对蚂蚁在进行路径选择时的重要程度,一般β=2~5.
            rho      --------------->   信息素挥发系数
            distance_array --------->   城市之间的距离矩阵
        '''
        print("初始化.......")
        EARTH_RADIUS=6371           # 地球平均半径,6371km
        self.num_ant = num_ant
        self.city_num = city_num
        if self.city_num<num_ant:
            print('\033[34m蚂蚁数量应小于等于城市数量')
        self.alpha = alpha
        self.beta = beta
        self.rho = rho
        self.distance_array = np.zeros(shape=(self.city_num,self.city_num))
        self.path_sum = 0#初始化贪婪算法求路径长度
        self.distance_array_init()              #城市之间距离的初始化
        self.pheromone = (np.ones(shape=(self.city_num,self.city_num))-np.eye(self.city_num))#初始信息素浓度矩阵
        self.Min_path_distance()
        self.pheromone = self.pheromone*num_ant/self.path_sum
        self.ant_position = np.zeros(shape = (self.num_ant,self.city_num))
        self.ant_path = np.zeros(shape = (self.num_ant,self.city_num))
        self.Init_ant_start()
        self.path_min = np.inf
        #蚂蚁位置的初始矩阵【i,j】为1代表i蚂蚁位于j城市,为0则代表不在
        #蚂蚁的行走路径
        print("初始化完成......")
    #重写父类信息素更新的函数
    def update_pheromone(self):
        self.pheromone = (1-self.rho)*self.pheromone
        #信息素浓度更新
        for i in range(self.num_ant):
            path = self.ant_path[i]
            sum_ = 0
            for j in range(len(path)-1):
                #print(int(path[j]))
                sum_+=self.distance_array[int(path[j])][int(path[j+1])]
            sum_+=self.distance_array[int(path[j+1])][int(path[0])]
            #sum_为蚂蚁总路径长度,单只蚂蚁一次的信息素总量为1
            if self.path_min>sum_:
                self.path_min = sum_
                for j in range(len(path)-1):
                    self.pheromone[int(path[j])][int(path[j+1])]+=1/self.path_min
                self.pheromone[int(path[j+1])][int(path[0])]+=1/self.path_min
alpha = 1  # 信息素重要程度因子
beta = 5  # 启发函数重要程度因子
rho = 0.6  # 信息素的挥发速度
test = MMAS_ACO_TSP(num_ant=34,city_num=34,alpha=alpha,beta=beta,rho=rho)
#test.Min_path_distance()
list_average = []
list_min = []
min_path = np.inf
result_path = []
for epoch in range(300):
    print("epoch",epoch,"  ......")
    test.epoch_init()
    for i in range(1,34):
        test.select_next_city(i)
    test.update_pheromone()
    length,path = test.get_result()
    if length.min()<min_path:
        min_path = length.min()
        result_path = path[length.argmin()]
    print("最短路径为",length.min(),"\t平均路径为",length.mean())
    list_min.append(length.min())
    list_average.append(length.mean())
    print()
初始化.......
城市之间距离初始化......
城市之间距离初始化完成......
初始化信息素浓度矩阵.......
初始化信息素浓度矩阵完成.......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
初始化完成......
epoch 0   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17543.679 	平均路径为 20438.301

epoch 1   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17819.222 	平均路径为 20569.977970588236

epoch 2   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18178.51 	平均路径为 20803.14355882353

epoch 3   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17562.888 	平均路径为 20680.562294117644

epoch 4   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18335.188000000002 	平均路径为 20479.34208823529

epoch 5   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18828.396 	平均路径为 20645.283323529413

epoch 6   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18732.436999999998 	平均路径为 20747.604705882353

epoch 7   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18532.043999999998 	平均路径为 20493.079411764706

epoch 8   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17520.634 	平均路径为 20624.418529411763

epoch 9   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.558 	平均路径为 18893.896029411764

epoch 10   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997 	平均路径为 18069.761029411773

epoch 11   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997 	平均路径为 17578.937911764704

epoch 12   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997 	平均路径为 17597.03538235294

epoch 13   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997 	平均路径为 17476.60294117647

epoch 14   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997 	平均路径为 17637.029411764703

epoch 15   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.553 	平均路径为 17284.60838235294

epoch 16   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16696.159235294115

epoch 17   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 18   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 19   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 20   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 21   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 22   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 23   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 24   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 25   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 26   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16701.277970588235

epoch 27   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 28   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 29   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 30   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 31   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 32   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 33   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 34   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 35   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 36   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 37   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 38   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 39   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 40   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.284235294115

epoch 41   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 42   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16663.57811764706

epoch 43   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16831.927970588233

epoch 44   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 45   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16664.038941176466

epoch 46   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16687.981676470583

epoch 47   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 48   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 49   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 50   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 51   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16712.47988235294

epoch 52   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 53   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 54   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 55   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 56   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 57   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 58   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 59   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 60   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 61   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 62   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16756.635411764702

epoch 63   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 64   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 65   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 66   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 67   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 68   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16846.789029411764

epoch 69   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 70   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 71   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16775.202029411765

epoch 72   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 73   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 74   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 75   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 76   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 77   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16805.89570588235

epoch 78   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 79   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16685.66276470588

epoch 80   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 81   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 82   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 83   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 84   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 85   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 86   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 87   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 88   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 89   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 90   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16671.133941176467

epoch 91   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 92   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 93   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 94   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 95   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 96   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 97   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 98   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 99   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 100   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 101   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 102   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 103   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 104   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16672.850294117645

epoch 105   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16851.16070588235

epoch 106   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 107   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 108   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 109   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 110   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 111   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 112   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 113   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 114   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 115   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 116   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16791.828735294115

epoch 117   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16732.099117647056

epoch 118   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16773.27808823529

epoch 119   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16728.910352941173

epoch 120   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 121   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 122   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16736.210176470588

epoch 123   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16754.757735294115

epoch 124   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 125   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16694.135352941175

epoch 126   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 127   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16841.073117647058

epoch 128   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 129   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16672.850294117645

epoch 130   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 131   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 132   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 133   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 134   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 135   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 136   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16688.73905882353

epoch 137   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 138   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 139   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16795.975823529407

epoch 140   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 141   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16665.60126470588

epoch 142   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 143   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 144   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 145   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 146   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16671.526617647058

epoch 147   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 148   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16671.085999999996

epoch 149   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 150   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16699.755176470586

epoch 151   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 152   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 153   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 154   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 155   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 156   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 157   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 158   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 159   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16786.721647058817

epoch 160   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 161   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 162   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 163   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 164   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 165   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16661.835676470586

epoch 166   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 167   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 168   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 169   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 170   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 171   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 172   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 173   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 174   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 175   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 176   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 177   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 178   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 179   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 180   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 181   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 182   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 183   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 184   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 185   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 186   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 187   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 188   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 189   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 190   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 191   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 192   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 193   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 194   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 195   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 196   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 197   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 198   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16884.259323529408

epoch 199   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 200   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 201   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 202   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16714.04358823529

epoch 203   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 204   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 205   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 206   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 207   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 208   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16700.698235294116

epoch 209   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 210   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 211   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 212   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16782.61952941176

epoch 213   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 214   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16752.334823529407

epoch 215   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 216   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 217   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16772.5545

epoch 218   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16735.372352941173

epoch 219   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 220   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 221   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 222   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 223   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 224   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 225   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 226   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 227   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 228   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16671.526617647058

epoch 229   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 230   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 231   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 232   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 233   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16746.89988235294

epoch 234   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 235   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 236   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16771.956617647054

epoch 237   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 238   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16746.265647058823

epoch 239   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 240   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 241   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 242   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 243   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 244   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 245   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 246   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 247   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 248   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 249   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 250   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 251   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16711.466117647054

epoch 252   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 253   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 254   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 255   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 256   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 257   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 258   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 259   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 260   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16669.229999999996

epoch 261   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 262   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 263   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 264   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 265   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 266   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 267   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 268   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 269   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 270   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16672.457617647055

epoch 271   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 272   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 273   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16725.797676470585

epoch 274   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16676.174852941174

epoch 275   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 276   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 277   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 278   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 279   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 280   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16666.36938235294

epoch 281   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 282   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 283   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 284   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 285   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16671.133941176467

epoch 286   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16699.17552941176

epoch 287   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16821.088382352937

epoch 288   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 289   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 290   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16654.200352941174

epoch 291   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 292   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 293   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 294   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 295   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 296   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16651.552999999996

epoch 297   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

epoch 298   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16815.757735294115

epoch 299   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996 	平均路径为 16652.876676470587

输出结果:

print("最短路径长度:",min_path,"最短路径:",result_path)
最短路径长度: 16651.552999999996 最短路径: [26.  7.  8.  9.  5.  3.  2.  4. 27. 30.  1.  0. 11. 10. 21. 17. 22. 12.
 13. 14. 28. 15. 31. 32. 33. 16. 18. 19. 20. 24. 29. 23. 25.  6.]

可视化训练过程

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']

fig,ax=plt.subplots(figsize=(15,8))

t = range(300)
# 线条颜色
#ax.rcParams['lines.color'] = 'r'
# 线条宽度
#ax.rcParams['lines.linewidth'] = 2
ax.plot(t,list_average)
#ax.rcParams['lines.color'] = 'b'
ax.plot(t,list_min)
ax.legend(['种群平均路径长度','种群最优个体路径长度'])

axins=ax.inset_axes([0.5,0.9,0.5,0.5])
axins.plot(t[:100],list_average[:100])
axins.plot(t[:100],list_min[:100])

ax.indicate_inset_zoom(axins,linewidth=3)
axins.set_xticklabels('')
axins.set_xticklabels('')
plt.show()

在这里插入图片描述
可以看到,模型最终收敛,且多次运行之后,每次运行的结果波动不是很大。优化效果较好。

import folium
m1 = folium.Map(location=[34.26667,108.95000], width=1000, height=500,zoom_start=4,
               #tiles='http://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}', # 高德卫星图
               #tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}', # 高德街道图
               #attr='default'
               tiles='OpenStreetMap')
path_min = result_path
list_p = list(test.position().items())
for i in range(len(path_min)-1):
    begin = list_p[int(path_min[i])][1][::-1]
    end = list_p[int(path_min[i+1])][1][::-1]
    coordinates=[begin,end] 
    aline=folium.PolyLine(locations=coordinates,weight=2,color = 'red') 
    m1.add_child(aline) 
begin = end
end = end = list_p[int(path_min[0])][1][::-1]
coordinates=[begin,end] 
aline=folium.PolyLine(locations=coordinates,weight=2,color = 'red') 
m1.add_child(aline)
m1

在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kilig*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值