我正在上Algorithms: Design and Analysis II类,其中一个问题问:
假设P≠NP。考虑具有非负边的无向图 长度。下列哪些问题可以用多项式解决 时间?
提示:哈密顿路径问题是:给定具有 n个顶点,确定是否存在n个(无循环)路径 -1个边缘,每个边缘恰好访问一次。您可以使用哈密顿路径问题是NP完全的事实。有相对 简单地从哈密顿路径问题简化为4中的3 下面的问题。
- 对于给定的源s和目标t,计算一条恰好具有n-1条边的最短s-t路径的长度(如果没有这样的路径,则为+∞) 存在)。该路径允许包含循环。
- 在该图的所有生成树中,计算出叶子数最少的一棵树。
- 在图的所有生成树中,用最小可能的最大度数计算一个。 (回想一下顶点的度是 入射边缘的数量。)
- 对于给定的源s和目标t,计算一条恰好具有n-1条边的最短s-t路径的长度(如果没有这样的路径,则为+∞) 存在)。该路径不允许包含循环。
请注意,哈密顿路径是图的生成树,并且只有两个叶节点,并且具有正好两个叶节点的图的任何生成树都必须是哈密顿路径。这意味着可以通过找到图的最小叶生成树来解决确定图中是否存在哈密顿路径的NP-Complete问题:只有且仅当最小叶生成树具有恰好两片叶子时,该路径才存在。因此,问题2是NP-Complete。
问题3是NP-Hard; here是证明这一点的论文。
这意味着,在1到4之间,一个是NP-完全,另一个在P中。问题4似乎可以简化为汉密尔顿路径问题,但我无法理解有一个循环如何使其成为哈密顿路径。可解决的?还是其他方式?
答案 0 :(得分:0)
对于第一个,您可以使用Dijkstra获得最短的偶数和奇数距离。为此,对于每个顶点,您不需要存储单个最小数目,而可以存储两个最小数目。一个是奇数路径的最小权重,另一个是奇数路径的最小权重。具有这两种长度后,如果允许循环,则可以轻松地将路径长度增加偶数个边。因此,第一个问题来自P。逐步算法为:
n-1
到n-1
相同的奇偶校验路径中的一条路径的长度。