资源简介
使用模拟退火算法解决旅行商问题(TSP)
运行环境
- python2.7
- 默认是9个城市,城市由邻接矩阵表示,为了方便邻接矩阵由代码随机生成
代码片段和文件信息
# coding: utf-8
# In[1]:
import numpy as np
import random
import matplotlib.pyplot as plt
# In[2]:
# 用邻接矩阵表示图
# 随机生成一个无向图的邻接矩阵
# nodes代表城市的数量
nodes = 9
G = np.zeros([nodesnodes])
for i in range(nodes-1):
G[ii+1:] = random.sample(range(1nodes+20)nodes-1-i)
for i in range(nodes-1):
G[:i] = G[i:]
print(G)
# In[3]:
init_path = np.array(range(nodes))
# In[4]:
# 根据前一条路径产生新的路径
def generatePath(pre_path):
# 随机选择2个节点,将路径中这2个节点间的节点顺序逆转,生成新的路径
index1index2 =random.sample(range(0nodes)2)
new_path = pre_path.copy()
temp = new_path[index2]
new_path[index2] = new_path[index1]
new_path[index1] = temp
return new_path
#generatePath(init_path)
# In[5]:
print(‘init_path ‘init_path)
# In[6]:
def pathCost(path):
nodeNum = len(p
评论
共有 条评论