`

NPC NP P

阅读更多

NPC问题的定义非常简单。同时满足下面两个条件的问题就是NPC问题。首先,它得是一个NP问题;然后,所有的NP问题都可以约化到它。证明一个问题是 NPC问题也很简单。先证明它至少是一个NP问题,再证明其中一个已知的NPC问题能约化到它(由约化的传递性,则NPC问题定义的第二条也得以满足;至于第一个NPC问题是怎么来的,下文将介绍),这样就可以说它是NPC问题了。

既然所有的NP问题都能约化成NPC问题,那么只要任意一个NPC问题找到了一个多项式的算法,那么所有的NP问题都能用这个算法解决了,NP也就等于P 了。因此,给NPC找一个多项式算法太不可思议了。因此,前文才说,“正是NPC问题的存在,使人们相信PNP”。我们可以就此直观地理解,NPC问题目前没有多项式的有效算法,只能用指数级甚至阶乘级复杂度的搜索。

顺便讲一下NP-Hard问题。NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广)。NP-Hard问题同样难以找到多项式的算法,但它不列入我们的研究范围,因为它不一定是NP问题。即使NPC问题发现了多项式级的算法,NP-Hard问题有可能仍然无法得到多项式级的算法。事实上,由于NP-Hard放宽了限定条件,它将有可能比所有的NPC问题的时间复杂度更高从而更难以解决。

不要以为NPC问题是一纸空谈。NPC问题是存在的。确实有这么一个非常具体的问题属于NPC问题。下文即将介绍它。

下文即将介绍逻辑电路问题。这是第一个NPC问题。其它的NPC问题都是由这个问题约化而来的。因此,逻辑电路问题是NPC类问题的“鼻祖”。

逻辑电路问题是指的这样一个问题:给定一个逻辑电路,问是否存在一种输入使输出为True

什么叫做逻辑电路呢?一个逻辑电路由若干个输入,一个输出,若干“逻辑门”和密密麻麻的线组成。看下面一例,不需要解释你马上就明白了。

 

┌───┐

输入1├─→┐    ┌──┐

└───┘    └─→┤   

                      or ├→─┐

┌───┐    ┌─→┤            ┌──┐

输入2├─→┤    └──┘    └─→┤   

└───┘                    ┌─→┤AND ├──→输出

                └────────┘┌→┤   

┌───┐    ┌──┐            └──┘

输入3├─→┤ NOT├─→────┘

└───┘    └──┘

 

这是个较简单的逻辑电路,当输入1、输入2、输入3分别为TrueTrueFalseFalseTrueFalse时,输出为True

有输出无论如何都不可能为True的逻辑电路吗?有。下面就是一个简单的例子。

 

┌───┐

│输入1 ├→─┐    ┌──┐

└───┘    └─→┤   

                      AND ├─→┐

                ┌─→┤       

                    └──┘    ┌──┐

                                └→┤   

┌───┐                        AND ├─→输出

│输入2 ├→─┤ ┌──┐      ┌→┤   

└───┘    └→┤NOT ├→──┘ └──┘

                    └──┘

 

上面这个逻辑电路中,无论输入是什么,输出都是False。我们就说,这个逻辑电路不存在使输出为True的一组输入。

回到上文,给定一个逻辑电路,问是否存在一种输入使输出为True,这即逻辑电路问题。

逻辑电路问题属于NPC问题。这是有严格证明的。它显然属于NP问题,并且可以直接证明所有的NP问题都可以约化到它(不要以为NP问题有无穷多个将给证明造成不可逾越的困难)。证明过程相当复杂,其大概意思是说任意一个NP问题的输入和输出都可以转换成逻辑电路的输入和输出(想想计算机内部也不过是一些 01的运算),因此对于一个NP问题来说,问题转化为了求出满足结果为True的一个输入(即一个可行解)。

有了第一个NPC问题后,一大堆NPC问题就出现了,因为再证明一个新的NPC问题只需要将一个已知的NPC问题约化到它就行了。后来,Hamilton 回路成了NPC问题,TSP问题也成了NPC问题。现在被证明是NPC问题的有很多,任何一个找到了多项式算法的话所有的NP问题都可以完美解决了。因此说,正是因为NPC问题的存在,P=NP变得难以置信。P=NP问题还有许多有趣的东西,有待大家自己进一步的挖掘。攀登这个信息学的巅峰是我们这一代的终极目标。现在我们需要做的,至少是不要把概念弄混淆了。

分享到:
评论

相关推荐

    NP-NPC-P问题

    在计算机科学领域,P、NP和NPC问题是理论计算复杂性理论中的核心概念,它们涉及到算法的效率和可解性。这些概念对理解计算机科学的理论基础以及实际问题的解决至关重要。 P问题指的是那些可以通过确定性算法在...

    P和NP问题总结.docx

    P、NP和NPC问题之间的关系是:所有的P问题都是NP问题,但不是所有的NP问题都是P问题。NP问题可以在多项式时间内验证一个解,但不讨论能不能在P时间内解决。NPC问题是指一个问题X属于NP问题,但它不能在多项式时间内...

    P NP NPC概念的区分

    ### P、NP与NPC概念详解 #### 一、引言 在计算机科学特别是算法理论领域,P、NP以及NPC这三个概念极为重要。它们不仅在理论研究中占据核心地位,也是解决实际问题时不可或缺的工具。本文旨在清晰地区分并解释这三...

    NP,P,NPC之间的定义以及相互之间的关系等等

    NPC问题的存在是NP与P是否相等的关键,如果存在NPC问题属于P,那么P=NP,意味着所有的NP问题都能在多项式时间内解决;反之,如果没有任何NPC问题属于P,那么P≠NP,表明存在一些问题无法在多项式时间内找到确定性解...

    NP和P问题

    ### NP和P问题 #### P问题 P问题指的是可以在多项式时间内被计算机算法解决的问题集合。这里的“多项式时间”通常是指随着输入数据大小n的增长,算法运行时间的增长速度不会超过n的某个固定次方(例如n²、n³等)...

    P-NP-NPC三者问题阐述.pdf

    P-NP-NPC三者问题阐述.pdf 本文对P-NP-NPC三者问题进行了详细阐述。首先,文章解释了算法的复杂性和问题的复杂性的区别,接着引入了判定性问题的概念,并定义了P类问题、NP问题和NPC问题。P类问题是指可以在多项式...

    NP算法简单介绍PPT课件.pptx

    NP 问题可以分为两类:P 问题和 NPC 问题。P 问题是指可以在多项式时间内解决的问题,如 O(1)、O(log(n))、O(n^a) 等。NPC 问题是指 NP 问题中可能性最小的或许可以被计算机在多项式时间内解决或验证的问题。 NPC ...

    是什么阻碍了N=NP

    本文主要论述了P,NP,和NPC之间的关系。文章首先介绍了多项式时间的概念,在此基础上阐述了P问题和NP问题。紧接着文章论述了理论界证明P=NP的原因,从而引出了NPC问题。在介绍了多项式归约的基础上,阐述了NPC问题...

    Karp的21个NPC问题论文 文字版

    Karp)在其著名论文《Combinatorial Problems and Their Complexity》中提出了21个NP完全(NP-complete, NPC)问题的概念,这标志着NP完全理论的诞生,并极大地推动了复杂性理论的发展。 #### 二、NPC问题概述 NP...

    The Theory of NP-Completeness

    NPC理论的一个重要推论是,如果有一个NPC问题可以被确定性的多项式时间算法解决,那么所有NP问题都能在多项式时间内解决,即NP = P。这是因为所有NP问题都可以归约为NPC问题,而一旦有一个NPC问题变得简单,其他所有...

    NP-Complete问题

    NP完全问题(NP-C问题),是世界七大数学难题之一。 NP的英文全称是Non-deterministic Polynomial的问题,即多项式复杂程度的非确定性问题。...,问题就在这个问号上,到底是NP等于P,还是NP不等于P。

    P问题、NP难问题详解

    P问题、NP难问题详解 总结: 定义:同时满足下面两个条件的问题就是NPC问题。首先,它得是一个NP问题;然后,所有的NP问题都可以约化到它。 证明:先证明它至少是一个NP问题,再证明其中一个已知的NPC问题能约化...

    NP-hard.rar_NP_np hard_site:www.pudn.com

    若能解决任何一个NPC问题,就等于解决了所有NP问题,这被称为P=NP问题,是计算理论中的一个未解难题。 总的来说,这个压缩包资源对于学习和理解NP-hard问题及其在计算复杂性理论中的地位非常有价值,它可能涵盖理论...

    NP算法简单介绍.ppt

    这意味着,如果找到了解决一个NPC问题的多项式时间算法,那么所有NP问题都能在多项式时间内解决,即NP=P。然而,至今为止,尚未找到这样的算法,因此通常认为NP≠P。 NPC问题目前没有多项式时间的有效算法,只能...

    NP算法简单介绍PPT学习教案.pptx

    如果一个NPC问题能够在多项式时间内找到解决方案,那么所有的NP问题也都能在多项式时间内解决,因为我们可以将任何NP问题转化成NPC问题来解决。然而,至今为止,还没有找到这样的算法,因此普遍认为NP≠P,即存在...

    基于遗传算法求解NPC问题的研究.pdf

    本文研究了基于遗传算法求解NP完全问题(NPC)的方法,其中包括0-1背包问题(0-1K P)和满足性问题(SAT)。首先,我们建立了这两个问题的数学模型,然后分别使用遗传算法(GA)与贪心策略相结合,提出了解决0-1KP...

    算法NPC问题

    NPC代表的是NP完全问题,其中NP是指能够通过非确定性图灵机在多项式时间内被验证的问题集合,而“完全”则表示NP中最难的问题。要理解NPC问题,我们需要先弄懂以下几个关键知识点: 首先,决策问题是指对于一个给定...

    第十章(NP问题)1

    在NP问题中,有一种特别重要的子集,称为NPC(NP完全问题)。NPC问题的特点是,如果它们中的一个问题可以有效解决(找到一个多项式时间的算法),那么所有NP问题都可以有效解决。扫雷、俄罗斯方块和超级玛丽等游戏的...

    算法设计英文版课件:Chapter 8 The THEORY OF NP_COMPLETENESS.ppt

    接下来,NP完全(NPC)问题是指既是NP-hard又是NP的问题。这些是NP中最难的问题,因为它们不仅是非确定性可解的,而且还是NP类的代表性问题。一个问题是NP完全的,意味着如果找到了它的多项式时间解法,那么所有NP...

    三维匹配问题是NP完全的

    【三维匹配问题】 给定三个不相交的集合X、Y、Z,三个集合的大小都为n。给定一个三元组集合T⊆X×Y×ZT \...证明三维匹配问题是NPC的,可以通过3-SAT≤p\leq_p≤p​三维匹配证明。 【3-SAT≤p\leq_p≤p​三维匹配证明】

Global site tag (gtag.js) - Google Analytics