蚁群算法求解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