蚁群算法求解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 randomclass 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           # 地球平均半径,6371kmself.num_ant = num_antself.city_num = city_numif self.city_num<num_ant:print('\033[34m蚂蚁数量应小于等于城市数量')self.alpha = alphaself.beta = betaself.rho = rhoself.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_sumself.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_positiondef 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-lng1dlat=lat2-lat1a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2distance=2*asin(sqrt(a))*6371*1000 # 地球平均半径,6371kmdistance=round(distance/1000,3)return distancedef 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_arraydef Min_path_distance(self):print("初始化信息素浓度矩阵.......")dis = self.distance_array.copy()self.path_sum = 0city_aim = [i for i in range(self.city_num)]#未走过的城市,由于默认初始位于第一个城市,故截取[1:]path = []first_city = 0path.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_citypath.append(0)self.path_sum+=dis[first_city][0]#回到起点print("初始化信息素浓度矩阵完成.......")return self.path_sum,pathdef 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]] = 1self.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.infant_end = np.inflist_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]breakif ant_end>10000:ant_end = list_city[-1]self.ant_path[i][epoch_num] = ant_end#----------------------------城市选择结束-----------------------------------------------self.ant_position[i][ant_begin] = -1self.ant_position[i][ant_end] = 1#print(list_city[j])def get_path(self):return self.ant_pathdef update_pheromone(self):self.pheromone = (1-self.rho)*self.pheromone#信息素浓度更新for i in range(self.num_ant):path = self.ant_path[i]sum_ = 0for 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_为蚂蚁总路径长度,单只蚂蚁一次的信息素总量为1for 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.866647058825epoch 1   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17886.196     平均路径为 20555.991499999996epoch 2   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17209.235     平均路径为 20435.705294117648epoch 3   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18104.492     平均路径为 19664.51882352941epoch 4   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18250.206000000002    平均路径为 19727.829294117648epoch 5   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16797.568     平均路径为 19496.837882352942epoch 6   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18229.803     平均路径为 19702.965205882356epoch 7   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18299.897999999997    平均路径为 19669.654529411764epoch 8   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16797.568000000003    平均路径为 19701.84717647059epoch 9   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18052.832000000002    平均路径为 19734.366735294116epoch 10   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17251.193     平均路径为 19592.788617647057epoch 11   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17976.796     平均路径为 19591.21711764706epoch 12   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18052.832     平均路径为 19279.365647058825epoch 13   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16797.568     平均路径为 19719.927735294117epoch 14   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17577.327     平均路径为 19644.1695epoch 15   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17660.361     平均路径为 20067.32802941176epoch 16   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18249.781     平均路径为 20160.240558823534epoch 17   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18249.781     平均路径为 20309.54626470588epoch 18   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18249.781000000003    平均路径为 20095.598882352944epoch 19   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20133.978147058828epoch 20   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18553.789000000004    平均路径为 19880.410205882356epoch 21   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20193.459029411766epoch 22   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20015.57573529412epoch 23   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19961.48826470588epoch 24   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 20031.13182352941epoch 25   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19795.28811764706epoch 26   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19956.205705882352epoch 27   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19914.804205882352epoch 28   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18723.569     平均路径为 20169.07855882353epoch 29   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18723.569     平均路径为 20337.153088235296epoch 30   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20150.99235294118epoch 31   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18982.353000000003    平均路径为 20301.49661764706epoch 32   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18512.836     平均路径为 20280.254235294116epoch 33   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20350.49658823529epoch 34   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20292.39432352941epoch 35   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20192.91352941176epoch 36   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20092.38267647059epoch 37   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20261.58255882353epoch 38   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20188.968411764705epoch 39   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20282.82314705882epoch 40   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 20242.40894117647epoch 41   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19887.469441176472epoch 42   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18388.168999999998    平均路径为 20082.664617647057epoch 43   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19815.757176470583epoch 44   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19935.173882352938epoch 45   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19813.618558823528epoch 46   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19981.043epoch 47   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19808.423147058827epoch 48   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19684.711823529415epoch 49   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19809.330529411764epoch 50   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19706.78461764706epoch 51   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19666.764529411765epoch 52   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19771.423029411762epoch 53   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19361.293588235294epoch 54   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19120.577970588234epoch 55   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19178.873647058823epoch 56   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19214.527999999995epoch 57   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19520.68194117647epoch 58   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19419.070470588238epoch 59   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19239.652941176468epoch 60   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19489.910029411763epoch 61   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19032.016411764707epoch 62   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19362.537147058825epoch 63   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19316.29397058823epoch 64   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19197.649999999998epoch 65   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19507.05385294118epoch 66   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19298.08867647059epoch 67   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19304.203294117644epoch 68   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19220.74205882353epoch 69   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19084.341441176468epoch 70   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19069.14879411765epoch 71   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19153.82379411764epoch 72   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19125.231617647056epoch 73   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19456.745558823528epoch 74   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19282.66852941176epoch 75   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19593.259852941173epoch 76   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19423.220999999998epoch 77   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19655.231529411765epoch 78   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19208.020705882354epoch 79   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19304.017411764708epoch 80   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19353.92038235294epoch 81   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19342.09208823529epoch 82   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18234.145000000004    平均路径为 19559.647558823526epoch 83   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19492.07770588235epoch 84   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19351.11138235294epoch 85   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19441.941499999994epoch 86   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19618.877852941176epoch 87   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19486.844294117644epoch 88   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19289.81555882353epoch 89   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19363.68532352941epoch 90   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19450.332205882354epoch 91   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19522.39844117647epoch 92   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19513.977235294118epoch 93   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19259.81073529412epoch 94   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19685.124235294115epoch 95   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19324.44488235294epoch 96   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19428.27755882353epoch 97   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19455.437852941173epoch 98   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19444.268411764704epoch 99   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19905.34838235294epoch 100   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19587.67855882353epoch 101   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19688.51738235294epoch 102   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19729.905941176472epoch 103   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19738.76708823529epoch 104   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19537.96335294118epoch 105   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19725.69238235294epoch 106   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19737.791558823526epoch 107   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 20010.623529411765epoch 108   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19746.893epoch 109   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19491.52311764706epoch 110   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19644.028176470587epoch 111   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19337.37929411765epoch 112   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19451.181029411764epoch 113   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19375.404911764705epoch 114   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19558.515617647063epoch 115   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19703.989676470588epoch 116   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19305.427970588236epoch 117   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19316.686852941177epoch 118   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19640.315470588233epoch 119   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19572.127382352937epoch 120   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.058     平均路径为 19604.598705882352epoch 121   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19060.21055882353epoch 122   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19488.66202941176epoch 123   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19399.71058823529epoch 124   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19195.234764705885epoch 125   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19117.004794117645epoch 126   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19418.048647058822epoch 127   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19047.35594117647epoch 128   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19366.041147058822epoch 129   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19132.99267647059epoch 130   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19205.550647058823epoch 131   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19373.012529411768epoch 132   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997    平均路径为 19304.271441176472epoch 133   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19326.088529411765epoch 134   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997    平均路径为 19260.159499999998epoch 135   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19448.017058823527epoch 136   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17063.057999999997    平均路径为 19691.550029411763epoch 137   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997    平均路径为 19803.232794117645epoch 138   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19588.100735294116epoch 139   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18101.847     平均路径为 19761.739382352942epoch 140   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997    平均路径为 19712.114617647057epoch 141   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.934     平均路径为 19449.432205882353epoch 142   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17683.933999999997    平均路径为 19501.61482352941epoch 143   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19637.80955882353epoch 144   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19667.11411764706epoch 145   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19551.695411764704epoch 146   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19400.456235294118epoch 147   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19549.773176470586epoch 148   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48  平均路径为 19578.53967647059epoch 149   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48  平均路径为 19484.629529411766epoch 150   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48  平均路径为 19415.355441176474epoch 151   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19692.032323529413epoch 152   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19578.036970588237epoch 153   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48  平均路径为 19574.564epoch 154   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19720.421588235295epoch 155   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.48  平均路径为 19655.910411764704epoch 156   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19918.58820588235epoch 157   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19781.633323529415epoch 158   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19773.454264705884epoch 159   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18144.480000000003    平均路径为 19710.398882352943epoch 160   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19631.916529411767epoch 161   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19605.217911764707epoch 162   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19765.007029411765epoch 163   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19716.263676470582epoch 164   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19784.730911764706epoch 165   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19732.23epoch 166   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19544.305970588233epoch 167   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19611.593352941178epoch 168   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19591.882764705886epoch 169   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18753.164     平均路径为 19580.420352941175epoch 170   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19622.449176470593epoch 171   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19649.480264705882epoch 172   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19744.942676470586epoch 173   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19693.651235294117epoch 174   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19670.38047058824epoch 175   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19741.173117647057epoch 176   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19837.30038235294epoch 177   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19707.78723529412epoch 178   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19683.218647058824epoch 179   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19582.70517647059epoch 180   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19683.28935294118epoch 181   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19676.68432352941epoch 182   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19577.03985294118epoch 183   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19787.701617647057epoch 184   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19623.56135294118epoch 185   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19737.48652941177epoch 186   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19675.91773529412epoch 187   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19795.561823529417epoch 188   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19869.31905882353epoch 189   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19672.146352941178epoch 190   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19727.9439117647epoch 191   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19688.503147058822epoch 192   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19790.064558823527epoch 193   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18792.912     平均路径为 19845.414529411762epoch 194   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19747.580205882354epoch 195   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19765.388970588236epoch 196   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19660.792029411765epoch 197   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19755.041500000007epoch 198   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19735.607205882352epoch 199   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19661.682147058822epoch 200   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19580.608500000002epoch 201   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19767.986911764707epoch 202   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19505.94138235294epoch 203   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19727.4305epoch 204   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19658.52967647059epoch 205   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19955.387529411768epoch 206   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19763.671617647055epoch 207   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19624.662970588233epoch 208   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19688.861647058824epoch 209   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19712.290882352943epoch 210   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19660.58652941176epoch 211   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19738.606411764707epoch 212   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19591.31494117647epoch 213   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19719.176764705884epoch 214   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19589.402029411765epoch 215   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19694.272500000003epoch 216   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19684.277852941177epoch 217   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19538.62823529412epoch 218   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19722.07476470588epoch 219   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19613.15867647059epoch 220   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19649.730794117644epoch 221   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19678.29432352941epoch 222   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19615.79923529412epoch 223   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19738.477470588237epoch 224   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19684.94979411765epoch 225   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19690.186705882355epoch 226   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19767.416588235294epoch 227   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19645.041029411765epoch 228   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19751.899441176472epoch 229   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19680.505705882355epoch 230   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19483.051323529413epoch 231   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19560.671000000002epoch 232   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19714.63258823529epoch 233   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19729.25067647059epoch 234   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18347.930999999997    平均路径为 19654.677529411765epoch 235   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19735.54epoch 236   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19602.693323529413epoch 237   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19696.683852941176epoch 238   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19837.61244117647epoch 239   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19589.281294117645epoch 240   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19664.798941176472epoch 241   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19556.359617647064epoch 242   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19764.788529411766epoch 243   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19932.088911764702epoch 244   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19680.343441176472epoch 245   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19683.403558823527epoch 246   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19598.166852941176epoch 247   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19628.72394117647epoch 248   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19626.92855882353epoch 249   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19660.88214705882epoch 250   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19728.737647058824epoch 251   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19614.014970588236epoch 252   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18348.964     平均路径为 19737.093088235295epoch 253   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19698.551999999996epoch 254   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19595.672147058824epoch 255   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19697.635852941177epoch 256   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19860.561617647058epoch 257   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19644.727676470586epoch 258   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19683.448617647056epoch 259   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19676.44767647059epoch 260   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19612.525941176475epoch 261   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19637.92744117647epoch 262   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19592.861764705885epoch 263   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19683.919470588236epoch 264   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19636.39182352941epoch 265   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19672.642205882352epoch 266   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19775.39994117647epoch 267   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19650.44723529412epoch 268   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19768.123117647057epoch 269   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19635.565705882353epoch 270   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19669.305441176475epoch 271   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19697.90061764706epoch 272   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19854.640911764705epoch 273   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19678.711264705886epoch 274   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19704.044588235294epoch 275   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18343.677     平均路径为 19676.48138235294epoch 276   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19693.291029411765epoch 277   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19732.368705882353epoch 278   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19646.73688235294epoch 279   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19924.366411764706epoch 280   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18348.964     平均路径为 19634.91711764706epoch 281   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19611.906852941174epoch 282   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19651.688epoch 283   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19658.806676470587epoch 284   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.415     平均路径为 19710.39017647059epoch 285   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19620.263088235293epoch 286   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19747.862794117646epoch 287   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19665.270235294116epoch 288   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19676.718117647062epoch 289   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19639.7385epoch 290   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19837.57023529412epoch 291   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19704.764735294117epoch 292   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19715.926029411763epoch 293   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19629.676323529413epoch 294   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19767.705941176475epoch 295   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19672.79682352941epoch 296   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19725.698411764708epoch 297   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19608.52079411765epoch 298   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18367.414999999997    平均路径为 19681.024852941177epoch 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           # 地球平均半径,6371kmself.num_ant = num_antself.city_num = city_numif self.city_num<num_ant:print('\033[34m蚂蚁数量应小于等于城市数量')self.alpha = alphaself.beta = betaself.rho = rhoself.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_sumself.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_ = 0for 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_为蚂蚁总路径长度,单只蚂蚁一次的信息素总量为1if 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_minself.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.301epoch 1   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17819.222     平均路径为 20569.977970588236epoch 2   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18178.51  平均路径为 20803.14355882353epoch 3   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17562.888     平均路径为 20680.562294117644epoch 4   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18335.188000000002    平均路径为 20479.34208823529epoch 5   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18828.396     平均路径为 20645.283323529413epoch 6   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18732.436999999998    平均路径为 20747.604705882353epoch 7   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 18532.043999999998    平均路径为 20493.079411764706epoch 8   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 17520.634     平均路径为 20624.418529411763epoch 9   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.558     平均路径为 18893.896029411764epoch 10   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997    平均路径为 18069.761029411773epoch 11   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997    平均路径为 17578.937911764704epoch 12   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997    平均路径为 17597.03538235294epoch 13   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997    平均路径为 17476.60294117647epoch 14   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16696.557999999997    平均路径为 17637.029411764703epoch 15   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.553     平均路径为 17284.60838235294epoch 16   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16696.159235294115epoch 17   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 18   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 19   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 20   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 21   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 22   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 23   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 24   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 25   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 26   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16701.277970588235epoch 27   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 28   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 29   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 30   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 31   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 32   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 33   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 34   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 35   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 36   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 37   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 38   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 39   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 40   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.284235294115epoch 41   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 42   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16663.57811764706epoch 43   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16831.927970588233epoch 44   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 45   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16664.038941176466epoch 46   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16687.981676470583epoch 47   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 48   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 49   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 50   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 51   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16712.47988235294epoch 52   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 53   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 54   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 55   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 56   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 57   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 58   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 59   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 60   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 61   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 62   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16756.635411764702epoch 63   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 64   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 65   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 66   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 67   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 68   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16846.789029411764epoch 69   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 70   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 71   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16775.202029411765epoch 72   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 73   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 74   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 75   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 76   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 77   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16805.89570588235epoch 78   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 79   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16685.66276470588epoch 80   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 81   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 82   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 83   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 84   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 85   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 86   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 87   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 88   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 89   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 90   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16671.133941176467epoch 91   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 92   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 93   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 94   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 95   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 96   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 97   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 98   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 99   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 100   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 101   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 102   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 103   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 104   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16672.850294117645epoch 105   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16851.16070588235epoch 106   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 107   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 108   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 109   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 110   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 111   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 112   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 113   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 114   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 115   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 116   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16791.828735294115epoch 117   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16732.099117647056epoch 118   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16773.27808823529epoch 119   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16728.910352941173epoch 120   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 121   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 122   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16736.210176470588epoch 123   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16754.757735294115epoch 124   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 125   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16694.135352941175epoch 126   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 127   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16841.073117647058epoch 128   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 129   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16672.850294117645epoch 130   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 131   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 132   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 133   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 134   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 135   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 136   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16688.73905882353epoch 137   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 138   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 139   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16795.975823529407epoch 140   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 141   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16665.60126470588epoch 142   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 143   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 144   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 145   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 146   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16671.526617647058epoch 147   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 148   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16671.085999999996epoch 149   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 150   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16699.755176470586epoch 151   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 152   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 153   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 154   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 155   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 156   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 157   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 158   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 159   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16786.721647058817epoch 160   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 161   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 162   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 163   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 164   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 165   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16661.835676470586epoch 166   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 167   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 168   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 169   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 170   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 171   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 172   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 173   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 174   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 175   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 176   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 177   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 178   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 179   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 180   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 181   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 182   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 183   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 184   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 185   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 186   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 187   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 188   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 189   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 190   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 191   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 192   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 193   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 194   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 195   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 196   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 197   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 198   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16884.259323529408epoch 199   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 200   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 201   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 202   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16714.04358823529epoch 203   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 204   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 205   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 206   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 207   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 208   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16700.698235294116epoch 209   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 210   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 211   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 212   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16782.61952941176epoch 213   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 214   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16752.334823529407epoch 215   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 216   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 217   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16772.5545epoch 218   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16735.372352941173epoch 219   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 220   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 221   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 222   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 223   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 224   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 225   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 226   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 227   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 228   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16671.526617647058epoch 229   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 230   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 231   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 232   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 233   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16746.89988235294epoch 234   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 235   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 236   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16771.956617647054epoch 237   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 238   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16746.265647058823epoch 239   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 240   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 241   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 242   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 243   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 244   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 245   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 246   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 247   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 248   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 249   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 250   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 251   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16711.466117647054epoch 252   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 253   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 254   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 255   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 256   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 257   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 258   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 259   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 260   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16669.229999999996epoch 261   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 262   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 263   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 264   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 265   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 266   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 267   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 268   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 269   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 270   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16672.457617647055epoch 271   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 272   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 273   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16725.797676470585epoch 274   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16676.174852941174epoch 275   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 276   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 277   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 278   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 279   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 280   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16666.36938235294epoch 281   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 282   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 283   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 284   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 285   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16671.133941176467epoch 286   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16699.17552941176epoch 287   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16821.088382352937epoch 288   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 289   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 290   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16654.200352941174epoch 291   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 292   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 293   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 294   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 295   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 296   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16651.552999999996epoch 297   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16652.876676470587epoch 298   ......
蚂蚁位置初始化......
蚂蚁位置初始化完成......
最短路径为 16651.552999999996    平均路径为 16815.757735294115epoch 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

蚁群算法求解TSP问题相关推荐

  1. 蚁群算法求解TSP问题的源代码

    蚁群算法求解TSP问题的源代码 分类: 智能算法2014-05-07 17:25 524人阅读 评论(1) 收藏 举报 蚁群算法 TSP win32程序设计 旅行商问题大都是用遗传算法求解,不过蚁群算 ...

  2. 【建模算法】基于蚁群算法求解TSP问题(Python实现)

    [建模算法]基于蚁群算法(ACA)求解TSP问题(Python实现) TSP (traveling salesman problem,旅行商问题)是典型的NP完全问题,即其最坏情况下的时间复杂度随着问 ...

  3. 【运筹优化】ACO蚁群算法求解TSP问题(Java实现)

    文章目录 代码 Ant蚂蚁类 AntColonyOptimization_TSP蚁群算法类 运行结果 代码 Ant蚂蚁类 import lombok.Data;import java.util.Arr ...

  4. 用蚁群算法求解TSP问题

    TSP是什么?TSP全称Travelling salesman problem.中文名:旅行商问题.就是模拟退火中讲到的14个城市之间巡回旅行,求路径最短的问题. 为什么偏偏找他呢?因为这是一个衡量算 ...

  5. 蚁群算法求解TSP问题(Python实现)

    算法简介 蚁群系统(Ant System或Ant Colony System)是由意大利学者Dorigo.Maniezzo等人于20世纪90年代首先提出来的.他们在研究蚂蚁觅食的过程中,发现单个蚂蚁的 ...

  6. 蚁群算法求解TSP(Python)

    目录 基本介绍 TSP问题 算法基本思想 路径选择 信息素更新 Python代码 初始化 遍历所有城市 信息素更新 绘制"迭代次数"与"路径和"图像 效果展示 ...

  7. 数学建模常用算法:蚁群算法求解tsp问题+att48算例测试【java实现--详细注释】

    代码 蚂蚁类 package com.dam.heuristic.aco.test;import java.util.*;public class Ant {//蚂蚁所走的城市序列private Li ...

  8. 蚁群算法求解TSP问题 matlab程序

    https://blog.csdn.net/wayjj/article/details/72809344 蚁群算法,单单学习算法还是不够深入了解,得实际编程实现了,理解才能更加透彻,本文根据这篇博文贴 ...

  9. 利用HTML5 Canvas和Javascript实现的蚁群算法求解TSP问题演示

    HTML5提供了Canvas对象,为画图应用提供了便利. Javascript可执行于浏览器中, 而不须要安装特定的编译器: 基于HTML5和Javascript语言, 可随时编写应用, 为算法測试带 ...

最新文章

  1. Silverlight+WCF 新手实例 象棋 主界面-实时聊天区(二十五)
  2. MySQL · 性能优化· InnoDB buffer pool flush策略漫谈
  3. Data truncation: Data truncated for column/Data too long for column
  4. linux vsftpd关于500 OOPS错误问题解决
  5. Today is my birthday
  6. 能用python做信号处理吗_Python中的信号处理
  7. python中eps参数_2019-01-23 python PIL 编辑 EPS 文件调整大小并拼接-失败告终
  8. 空间皮肤代码_OpenCV实现皮肤表面粗糙度3D显示
  9. mysql怎么回复.from的数据库_mysql怎么回复.from的数据库
  10. Modbus协议栈开发笔记之八:Modbus ASCII Master开发
  11. div靠边隐藏_css如何隐藏div不占位置?
  12. 【JAVA】Java中goto语句的简介与使用(java 如何跳出内嵌多层循环的方法)
  13. 15、Web安全测试之XSS
  14. R语言︱R社区的简单解析(CRAN、CRAN Task View)
  15. Oracle 11g ora 15018,OracleASM错误之--ORA-15031、ORA-15014
  16. 服务器向客户端发送数据自动中断
  17. 清华EMBA课程系列思考之四 -- 组织行为学
  18. HTML常见标签及个人简历制作
  19. Python接口自动化
  20. 中首清算:她被誉为中国第一美女,迷倒国际花花公子,今36岁仍单身

热门文章

  1. 圣诞节装饰元素高清背景图素材
  2. nginx报错:src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fa
  3. 阿里旗下,豆瓣等滑块验证码解决问题
  4. win怎么查看显示器大小,显示器是多少寸,查看显示器尺寸
  5. RSA非对称加密解密概念
  6. 什么是Socks5代理?
  7. 58同城post登陆参数分析,典型的eval加密js案例
  8. throws和throw的作用
  9. 闲扯测试工程师之发展(觉得不错,拿来与大家分享)
  10. String类型转Long类型需要注意的问题