📅  最后修改于: 2021-01-12 03:42:45             🧑  作者: Mango
如果在NP中并且与NP中的任何问题一样困难,则属于NPC类。如果NP中的所有问题都可以用多项式时间简化,则问题是NP难的,即使它可能不是NP本身也是如此。
如果针对这些问题中的任何一个存在多项式时间算法,则NP中的所有问题都可以通过多项式时间解决。这些问题称为NP-complete 。 NP完全现象在理论和实践上都很重要。
如果语言B满足两个条件,则它是NP完全语言
B在NP中
NP中的每个A都可简化为B的多项式时间。
如果一种语言满足第二个属性,但不一定满足第一个属性,则语言B被称为NP-Hard 。非正式地,如果存在一些图灵化为B的NP完全问题A ,则搜索问题B就是NP-Hard 。
NP-Hard中的问题无法在多项式时间内解决,直到P = NP为止。如果一个问题被证明是NPC,则无需浪费时间尝试为它找到有效的算法。相反,我们可以专注于设计近似算法。
以下是一些NP-Complete问题,对于这些问题,还没有多项式时间算法是已知的。
NP-Hard存在以下问题
在这种情况下,现在我们将讨论TSP是否为NP-Complete
旅行推销员问题包括推销员和一组城市。推销员必须从某个城市开始,然后返回同一城市,参观每个城市。问题的挑战在于,旅行推销员希望尽量减少旅行的总时间
为了证明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 ,因此h在G ‘中每个边缘的成本为0 。因此, h在G ‘中的成本为0 。因此,如果图G具有哈密顿周期,则图G ‘的行程为0 。
相反,我们假设G ‘的游览h ‘的成本至多为0 。根据定义, E ‘中边的成本为0和1 。因此,每个边的成本必须为0,因为h ‘的成本为0 。因此,我们得出结论, h ‘仅包含E中的边。
因此,我们证明了,当且仅当G ‘的成本最高为0时, G才具有哈密顿循环。 TSP是NP完整的。