提示:本文章不含代码,纯应试解题~(中国地质大学(武汉)研究生算法考试题目)
前言
旅行商问题(Traveling Salesman Problem,简称TSP)是一个经典的组合优化问题。这个问题可以描述为:一个旅行商需要从某个城市出发,经过所有其他城市恰好一次后,最终返回到出发城市,目标是找到总行程最短的路径。
其实,旅行商问题就像是在玩一个复杂的迷宫游戏,目标是找到一条最短的路线,但是这个迷宫有很多层,每一层都有不同的路线选择,找到最短的那条路需要很多计算和一些聪明的策略。
提示:以下是本篇文章正文内容
一、问题描述
对于TSP问题,我们一般会有一个有向图,有向图的每一个结点可以看成是一个个的城市,比如下图就有0,1,2,3四个城市,权值代表代价。
为了便于计算,我们需要把上述有向图转化成矩阵描述形式,有:
[ 0 3 6 7 5 0 2 3 6 4 0 2 3 7 5 0 ] (3) \left[ \begin{matrix} 0& 3 & 6&7 \\ 5& 0 & 2 &3\\ 6& 4 & 0&2\\ 3&7&5&0 \end{matrix} \right] \tag{3}
0563304762057320
(3)
TSP问题的动态规划方程为:
二、求解TSP问题
首先从城市0出发经过城市1,2,3,然后回到城市0的最短路径长度为:
d ( 0 , { 1 , 2 , 3 } ) = m i n { c 01 + d ( 1 , { 2 , 3 } ) , c 02 + d ( 2 , { 1 , 3 } ) , c 03 + d ( 3 , { 1 , 2 } ) } d(0,\{1,2,3\})=min\{c_{01}+d(1,\{2,3\}),c_{02}+d(2,\{1,3\}),c_{03}+d(3,\{1,2\})\} d(0,{
1,2,3})=min{
c01+d(1,{
2,3}),c02+d(2,{
1,3}),c03+d(3,{
1,2})}
但是,上式中 d ( 1 , { 2 , 3 } ) 、 d ( 2 , { 1 , 3 } ) 、 d ( 3 , { 1 , 2 } ) d(1,\{2,3\})、d(2,\{1,3\})、d(3,\{1,2\}) d(1,{ 2,3})、d(2,{ 1,3})、d(3,{ 1,2})都是未知的,所以要一层一层剥开~
我们一个一个进行求解:
d ( 1 , { 2 , 3 } ) = m i n { c 12 + d ( 2 , { 3 } ) , c 13 + d ( 3 , { 2 } ) } d(1,\{2,3\})=min\{c_{12}+d(2,\{3\}),c_{13}+d(3,\{2\})\} d(1,{
2,3})=min{
c12+d(2,{
3}),c13