Traceback (most recent call last): File "c:/Users/apple/Desktop/程序/py/5 copy 2.py", line 143, in <module> dynamic_programming = tsp_dynamic_programming(graph,'A') File "c:/Users/apple/Desktop/程序/py/5 copy 2.py", line 78, in tsp_dynamic_programming distance = graph[start_node][next_node] + dp[(remaining_nodes, end_node)] KeyError: (('C',), 'C')
时间: 2024-04-23 07:27:42 浏览: 89
Mac下anaconda中Spyder打开报错Traceback(most recent call last)…问题
5星 · 资源好评率100%
这个报错是由于在动态规划算法中,图中某个节点的邻居节点在动态规划表 `dp` 中没有定义,导致了KeyError。请确保你的动态规划表包含了所有节点之间的距离信息。
你可以检查一下你的动态规划表 `dp` 是否正确地记录了每个节点之间的最短路径距离。确保在计算动态规划表时,每个节点之间的距离都被正确地存储在 `dp` 字典中。
例如,如果你的图中有节点 'A'、'B'、'C'、'D',那么你的 `dp` 字典应该类似于这样:
```python
dp = {
(('A',), 'A'): 0,
(('A', 'B'), 'A'): 10,
(('A', 'B'), 'B'): 0,
(('A', 'B', 'C'), 'A'): 25,
(('A', 'B', 'C'), 'B'): 15,
(('A', 'B', 'C'), 'C'): 0,
# 其他节点之间的距离...
}
```
请确保对于每个节点组合 `(remaining_nodes, end_node)`,都有相应的距离信息存储在 `dp` 字典中。
如果问题仍然存在,请提供更多关于你的动态规划表 `dp` 的信息,我将尽力帮助你解决问题。
阅读全文