深入理解旅行商问题的动态规划求解过程,观察递归调用和回溯法的完整工作流程
给定5个城市和它们之间的距离矩阵,找到一条访问每个城市恰好一次并返回起点的最短路径。
这是经典的NP完全问题,动态规划可以在O(n²×2ⁿ)时间内求解
| 0 | 1 | 2 | 3 | 4 |
|---|
最短距离
85
最优路径
0 → 1 → 3 → 4 → 2 → 0
递归调用次数: 52
动态规划表大小: 32
| 访问集合 | 当前城市 | 最短距离 | 前驱城市 |
|---|
动态规划求解TSP问题的关键在于定义合适的状态。我们定义 dp[S][i] 表示从起点0出发,
访问集合S中的所有城市,最终到达城市i的最短路径长度。