📜  NP硬和NP完成类

📅  最后修改于: 2021-01-12 03:42:45             🧑  作者: Mango


如果在NP中并且与NP中的任何问题一样困难,则属于NPC类。如果NP中的所有问题都可以用多项式时间简化,则问题是NP难的,即使它可能不是NP本身也是如此。

NP硬

如果针对这些问题中的任何一个存在多项式时间算法,则NP中的所有问题都可以通过多项式时间解决。这些问题称为NP-complete 。 NP完全现象在理论和实践上都很重要。

NP完全性的定义

如果语言B满足两个条件,则它是NP完全语言

  • B在NP中

  • NP中的每个A都可简化为B的多项式时间。

如果一种语言满足第二个属性,但不一定满足第一个属性,则语言B被称为NP-Hard 。非正式地,如果存在一些图灵化为B的NP完全问题A ,则搜索问题B就是NP-Hard

NP-Hard中的问题无法在多项式时间内解决,直到P = NP为止。如果一个问题被证明是NPC,则无需浪费时间尝试为它找到有效的算法。相反,我们可以专注于设计近似算法。

NP完全问题

以下是一些NP-Complete问题,对于这些问题,还没有多项式时间算法是已知的。

  • 确定图是否具有哈密顿循环
  • 确定布尔公式是否可满足,等等。

NP难问题

NP-Hard存在以下问题

  • 电路可满足性问题
  • 套装封面
  • 顶点覆盖
  • 旅行商问题

在这种情况下,现在我们将讨论TSP是否为NP-Complete

TSP是NP完全的

旅行推销员问题包括推销员和一组城市。推销员必须从某个城市开始,然后返回同一城市,参观每个城市。问题的挑战在于,旅行推销员希望尽量减少旅行的总时间

证明

为了证明TSP是NP-Complete ,首先我们必须证明TSP属于NP 。在TSP中,我们找到一个巡视并检查该巡视包含每个顶点一次。然后,计算游览边缘的总费用。最后,我们检查成本是否最低。这可以在多项式时间内完成。因此, TSP属于NP

其次,我们必须证明TSP是NP-hard的。为了证明这一点,一种方式是证明哈密顿圈≤p TSP(因为我们知道,汉密尔顿的周期问题是NP完全)。

假设G =(V,E)是哈密顿循环的一个实例。

因此,构造了TSP的实例。我们创建完整的图G =(V,E ) ,其中

$$ E ^ {‘} = \ lbrace(i,j)\冒号i,j \ in V \:\:and \:i \ neq j $$

因此,成本函数定义如下:

$$ t(i,j)= \开始{cases} 0&if \:(i,j)\:\ in E \\ 1&else \ end {cases} $$

现在,假设G中存在哈密顿循环h 。显然,由于每个边缘都属于E ,因此hG 中每个边缘的成本为0 。因此, hG ‘中的成本为0 。因此,如果图G具有哈密顿周期,则图G 的行程为0

相反,我们假设G 的游览h 的成本至多为0 。根据定义, E 中边的成本为01 。因此,每个边的成本必须为0,因为h 的成本为0 。因此,我们得出结论, h 仅包含E中的边。

因此,我们证明了,当且仅当G 的成本最高为0时G才具有哈密顿循环。 TSP是NP完整的。