TSP问题算法实验报告指导教师: 季晓慧 姓 名: 辛瑞乾 学 号: 提交日期: 2015年11月 目录总述 2动态规划法 2算法问题分析 2算法设计 2实现代码 2输入输出截图 5OJ提交截图 5算法优化分析 5回溯法 5算法问题分析 5算法设计 6实现代码 6输入输出截图 8OJ提交截图 8算法优化分析 9分支限界法 9算法问题分析 9算法设计 9实现代码 9输入输出截图 14OJ提交截图 14算法优化分析 14总结 15总述TSP问题又称为旅行商问题,是指一个旅行商要历经所有城市一次最后又回到原来的城市,求最短路程或最小花费,解决TSP可以用好多算法,比如蛮力法,动态规划法…具体的时间复杂的也各有差异,本次实验报告包含动态规划法,回溯法以及分支限界法动态规划法算法问题分析假设n个顶点分别用0~n-1的数字编号,顶点之间的代价存放在数组mp[n][n]中,下面考虑从顶点0出发求解TSP问题的填表形式。
首先,按个数为1、2、…、n-1的顺序生成1~n-1个元素的子集存放在数组x[2^n-1]中,例如当n=4时,x[1]={1},x[2]={2},x[3]={3},x[4]={1,2},x[5]={1,3},x[6]={2,3},x[7]={1,2,3}设数组dp[n][2^n-1]存放迭代结果,其中dp[i][j]表示从顶点i经过子集x[j]中的顶点一次且一次,最后回到出发点0的最短路径长度,动态规划法求解TSP问题的算法如下算法设计输入:图的代价矩阵mp[n][n]输出:从顶点0出发经过所有顶点一次且仅一次再回到顶点0的最短路径长度1. 初始化第0列(动态规划的边界问题)for(i=1;i#include #include #include #include #include #include #include #include #include #include #include #include