GitHub地址:https://github.com/Poe2016/Combinatorial_optimization_methods
1、TSP问题描述
TSP问题(Traveling Salesman Problem),又称旅行商问题或旅行推销员问题,是一个经典的组合优化问题。TSP问题描述为:假设有n个城市,有一个销售员,从一个城市出发,必须经过每个城市一次,且只能经过一次,最终回到出发的城市,求推销员应选择的路线,使得该推销员所走过的总路程最短。TSP问题可以抽象为图论的问题,即一个图中有n个节点,任意选定一个节点作为出发节点,求出一条恰好经过图中每个节点一次且最终回到出发节点的路径,并且使得这条路径的长度最短。
TSP问题是一个NPC问题,当n比较大时,不能使用精确算法求解,而只能使用近似算法求解其近似解。
2、模拟退火算法简述
模拟退火算法出现于上个世纪80年代,原始论文为,有兴趣的话可以浏览一下:https://pdfs.semanticscholar.org/e893/4a942f06ee91940ab57732953ec6a24b3f00.pdf
3、使用模拟退火算法解决TSP问题
读取问题件函数,返回一个列表,列表中存储了城市
def load_data(path):
f_open = open(path)
lines = f_open.readlines()
f_open.close()