【发布时间】:2014-03-06 08:24:14
【问题描述】:
从任意位置访问无向图的所有顶点的正确算法是什么?例如,给定以下 7 个顶点的图,从 #6 开始:
有许多可能的序列: 67645321, 676421235, 6453212467, ...
如何迭代最短路径的顶点(第一个)? 谢谢。
【问题讨论】:
-
这必须是 NP 完成的。
-
那么如果这是NPC,那么对于最短路径,它必须迭代所有解决方案以找到最短路径?嗯。那么有什么方法可以找到最佳(可能不是最好的)解决方案吗?
-
你不是要求所有对的最短路径,对吧?我不知道这是否是“最短的”,但我将使用拓扑排序将图形分解为树;最后遍历树的所有节点。
-
我认为toposort只适用于DAG?如果我错了,请纠正我。
-
对不起,我不擅长记住算法的名称。将起始节点标记为距离=0,所有以距离=0+1=1连接的节点;所有连接到距离 = 1 => 距离 = 1+1=2 的节点的节点,等等。如果要标记距离的节点已经有距离值(等于或更小),请断开此边。现在你应该有一个最小深度(或高度)的树,起始节点作为根节点。
标签: algorithm graph iteration shortest-path