- NP完全问题
NP完全问题,是
世界七大数学难题
之一。 NP的英文全称是Non-deterministic Polynomial的问题,即
多项式
复杂程度的非确定性问题。简单的写法是 NP=P?,问题就在这个问号上,到底是NP等于P,还是NP不等于P。
生成问题的一个解通常比验证一个给定的解时间花费要多得多。这是这种一般现象的一个例子.
人们发现,所有的完全多项式非确定性问题,都可以转换为一类叫做满足性问题的逻辑运算问题。既然这类问题的所有可能答案,都可以在多项式时间内计算,人们于是就猜想,是否这类问题,存在一个确定性算法,可以在多项式时间内,直接算出或是搜寻出正确的答案呢?这就是著名的NP=P?的猜想。 不管我们编写程序是否灵巧,判定一个答案是可以很快利用内部知识来验证,还是没有这样的提示而需要花费大量时间来求解,被看作逻辑和计算机科学中最突出的问题之一。它是斯蒂文·考克于1971年陈述的。
而如果任何一个NP问题都能通过一个多项式时间算法转换为某个NP问题,那么这个NP问题就称为NP完全问题(Non-deterministic Polynomial complete problem)。NP完全问题也叫做NPC问题
这些问题的通常有个算法,它不能直接告诉你答案是什么,但可以告诉你,某个可能的结果是正确的答案还是错误的。
一个非凡的性质:
如果任何一个NP完全问题存在有效算法,那么所有的NP完全问题,都有有效的算法
- 时间复杂度;
插入排序: c1*n^2
归并排序: c2*n*lgn
<<算法导论>> 机械工业出版社 原书第三3版
thomas H.Cormen