在图中证明2个独立路径的NP完全性

时间:2018-06-07 18:15:56

标签: graph complexity-theory theory np complete

所以这是一个问题:

  

给定有向和加权图 G 及其两个顶点 a 和    b ,我们希望找到两个与顶点无关的路径,从 a b ,权重之和小于给定数 n

我需要证明这个是NP完全的。我已经考虑了一段时间,但并没有真正设法解决它。

2 个答案:

答案 0 :(得分:1)

要证明某事物是NP完全问题,不仅要证明它在NP中,还需要将问题简化为已知的NP完全问题,然后再将其转化为我们的问题。

验证NP:

决策问题:给定图G,是否存在从a到b的路径且成本小于c,然后在G'上存在另一条路径(第一路径中未使用顶点),且成本小于c?

证书:G,a,b,c

验证:

G中的a和b是吗? O(V)

对于G / G',从a到b的最短路径是否小于c? O(V ^ 2)w / Djikstra的最短路径算法两者

现在证明NP完全性: 我认为您可以将其变成背包问题。项目集将是a和b之间的路径中可用的所有边缘和权重,然后选择不超过权重c的两个解决方案的成分。您可以在多项式时间内完成此操作,因为可以使用O(ElogV)中的DFS / BFS完成查找源和目标之间的所有路径。显然,最有价值的边缘将是重量最轻的那些。然后执行背包O(?)。

答案 1 :(得分:0)

首先了解NP问题意味着什么可能会有所帮助。基本上,NP中存在问题,这是整个决策问题类别,当给定证书时,可以完全在多项式时间内验证是答案。将这个问题分解为不同的部分可能会证明该示例问题是NP完全的。

  1. 将问题重新表述为决定性声明:基本上将问题转变为是/否问题。示例:给定N个人和S个集合,则有一个数字k代表每个集合S中需要的最小人数,以便每个集合都是完整的。

  2. 提供证书:针对给定的决策问题给出一般“有根据的猜测”。示例:一组大小为k

  3. 在多项式时间内对证书进行验证:考虑一种可以在多项式时间内验证问题答案的方法(O(n ^ 2),O(n),等等)。示例:遍历每个集合S,如果符合“某些条件”,则添加到数组;如果确实添加到集合,则对所有N继续。完成后,找到创建的集合的大小。该验证需要多项式时间。

对于您提到的问题,请尝试将问题分解为以下步骤,并可能为了进行验证使用流行的算法来尝试找到可能的答案。同样重要的是,在第3步中添加某种类型的存在性验证检查。检查G是否实际上是具有顶点V和边E的图,对于该证明是有益的。

相关问题