具有NP复杂度的最长路径问题的示例?

时间:2018-12-24 01:12:35

标签: graph theory proof np longest-path

我在互联网上看到找到最长路径的问题是NP-完全问题。

由于某种原因,我的老师告诉我这不是NP完全问题。 因此,现在我正在寻找一个示例,该示例显示获取最长路径所需的计算量大于多项式时间。

目前,我仅看到具有多项式复杂度时间的示例。

有人可以带我证明这个问题是NP完全的吗?

1 个答案:

答案 0 :(得分:2)

对于初学者而言,取决于您对最长路径问题的说法,实际上问题可能是 NP -难而不是 NP -完全。此问题的 NP 完整版本如下:

  

给定一个图G和一个长度为k的图形,G是否具有一个长度为k或更大的简单路径?

众所周知,此问题是 NP 的原因,我稍后会详细说明。但是,与这个紧密相关的问题实际上不是 完整的 NP

  

给定一个图G,G中最长的简单路径是什么?

第二个问题是 NP -困难,但不是 NP -完整。要使问题 NP 完全,该问题必须是决策问题,该问题的答案为布尔值“是”或“否”。但是,此问题的第二个版本不是决策问题,因此不能出现在 NP 中,因此也不能是 NP 完整。

尽管我不能肯定地说,最长的路径问题不是 NP -完全的,但是您的老师很可能在考虑这个问题。

关于为什么最长路径问题是 NP -完全的原因,我们需要争论两点:

  1. 此问题在 NP 中。直观地,有一种有效的方法可以检查问题的肯定答案。

  2. 此问题 NP 很难。也就是说,存在一个 NP 难题,可以解决。

对于点(1),直觉是如果问题的答案“此图是否具有长度为137或更大的简单路径?”是“是”,有一些简单的方法可以向某人演示。只要给他们那条简单的道路。一旦有了路径,他们就很容易检查它是否确实符合要求。 (现在,找到这条路可能真的很困难。但是,一旦我们以某种方式隔离了它,就不难让人信服它了。)

对于第(2)点,一般的解决方法是从现有的 NP 难题开始,并将其简化为我们的问题。在这里,我们从哈密顿路径问题开始,如下:

  

给定一个图G,是否有一条简单的路径通过G中的每个节点一次并且恰好一次通过?

这是我们将问题简化为最长路径问题的方法。从图G开始。现在,问一个问题:G是否具有长度至少为n-1的简单路径,其中n是G中的节点数?如果是这样,则该简单路径必须访问一次并且恰好一次访问每个节点,因为否则路径中的节点长度不足以使n至少为n-1。反之,如果没有,则没有哈密顿路径,因为任何哈密尔顿式的道路都符合要求。因此,如果我们可以有效地解决最长路径问题,就可以有效地解决哈密顿路径问题。由于汉密尔顿路径问题是 NP -困难的,因此最长路径问题也是如此。

现在,这个问题是 NP -完全的事实并不意味着没有多项式时间解。 P NP 问题仍然没有解决,并且不知道 P = NP 还是 P NP ,我们不能说是否存在最长路径问题的多项式时间算法。我们可以说的是,没有 known 算法可以在多项式时间内运行(您提到了一些站点声称他们有针对该问题的多项式时间算法,但这听起来不对;如果是这样,无论谁发现该算法将成为百万富翁。

现在,您可以问一个后续问题:为什么哈密顿路径问题 NP -很难?证明这一点的通常方法是从3SAT开始,并进行基于小工具的巧妙还原。在这里要探索的时间太长了,但是大多数介绍性理论教科书(包括Sipser着名的教科书)在解释这一方面都做得很好。