优化最长路径问题:优化最长路径问题指出,给定一个图G ,由一组顶点V和边E 组成,任务是证明在一组节点V s和边 E 之间存在长度至少为 K 的路径。 V即
问题陈述:给定一个图G(V, E, K)和一组具有节点序列的节点V s和 V e ,长度≥ K 。
说明:
问题的一个实例是为问题指定的输入。优化最长路径问题的一个实例是G(V, E, V s , V e , K) 。由于一个 NP-完全问题是一个同时在NP和NP-Hard中的问题,所以问题是 NP-Complete 的陈述的证明由两部分组成:
- The problem itself is in NP class.
- All other problems in NP class can be polynomial-time reducible to that.
(B is polynomial-time reducible to C is denoted as B≤PC)
如果仅满足第二个条件,则该问题称为NP-Hard 。
但是不可能将每个 NP 问题都化简为另一个 NP 问题以始终显示其 NP-Completeness。这就是为什么如果我们想证明一个问题是 NP-Complete,我们只需要证明这个问题是 NP 并且任何 NP-Complete 问题都可以简化为它,那么我们就完成了,即如果 B 是 NP-Complete 并且B ≤ P C对于NP 中的 C,则 C 是 NP-Complete。因此,我们可以使用以下两个命题来验证优化的最长路径问题是 NP-Complete 的:
-
优化最长路径问题在 NP 中:
如果任何问题在 NP 中,给出一个“证书”,它是问题的解决方案和问题的一个实例,那么可以在多项式时间内验证(检查给出的解决方案是否正确)证书。这可以通过路径 P来完成,该路径由一组顶点 < V 1 , V 2 , V 3 , ….V n > 组成。验证路径是否完全连接V 1和V n并且路径长度至多为K 。 -
优化最长路径问题是 NP-Hard:
为了证明最长路径是 NP-Hard,从已知的 NP-Hard 推导出问题的约简。进行一个归约,其中无向哈密顿路径问题可以归结为最长路径问题。无向哈密顿路径使用输入图G(V 1 , V n ) ,其中图 G 具有节点 V 1和 V n 。无向哈密顿路径是沿着图的无向路径,从一个顶点开始,到另一个顶点结束,遍历所有节点。现在,让K为 G 中的节点数。无向哈密顿路径的每个实例都可以通过以下方式转换为最长路径:
对于输入 G(V 1 , V n ),输出 G(V 1 , V n , k)。通过简单地计算 G 中的顶点数,这种归约需要多项式时间。 这种归约可以通过以下两个命题来证明:- 假设原始图G(V, E)有节点V 1并且 V n有一条无向哈密顿路径,它遍历所有顶点,因此G(V, E, K)为真,因为G 中的任意两个节点都将是由长度等于其节点的路径连接,即K因此最长路径问题成立。
- 让我们假设图G'(V, E, V s , V e , K)具有从 V s到 V e的长度为K的 Lpath,这意味着G’包含从 V s到 V e的长度为K 的简单路径.
但是,G 包含 K 个顶点,因此遍历从 V s开始到 V e结束的所有顶点,形成哈密顿路径G'(V s , V e ) 。设 V 1 ≡ B 和 V n ≡ D
现在, G具有 K = 4 的无向哈密顿路径 ≡ BCAD。
因此,G 包含 B 和 D 之间长度为 4 的优化路径。
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。