- 多项式:axn +bxn-1+c,x的最高位为n的多项式。
- 时间复杂度:用来表示一个算法运行的时间效率。冒泡排序的时间复杂度为O(n2) ,取其最高次,可以看出,这是一个时间复杂度为多项式的表示方式。
- 在排序这个大问题里,可以找到一种时间复杂度为多项式O(n2)的算法(如冒泡排序法)来求解排序问题的,⇒ 排序问题是一个有多项式时间算法的问题。
- P类问题:存在多项式时间算法的问题。(P:polynominal,多项式)。
当计算机处理的数据达到100万个的时候,时间复杂度分别为O(n2) 和 O(en) 的算法,运行时间简直就是天壤之别。所以我们才要研究一个问题是否具有多项式时间的算法。 - NP问题:能在多项式时间内验证得出一个正确解的问题。(NP:Nondeterministic polynominal,非确定性多项式)。
P类问题是NP类问题的子集(即存在多项式时间算法的问题,总能在多项式时间内验证它)
不知道这个问题存不存在一个多项式时间的算法,所以叫非确定性(non-deterministic)。但是我们可以在多项式时间内验证并得出这个问题的一个正确解。
举例说明,TSP问题:
旅行家人品爆炸连续找到最终路径,并在多项式时间内找到了最短路径,即我们能在多项式时间内验证得到出该问题的最终解,但不确定是否存在一个多项式算法能够稳定解决这个问题⇒ TSP问题是一个NP问题。 - NP=P?:
是否所有能在多项式时间内验证得出正确解的问题,都是具有多项式时间算法的问题。 - 简化约束:想要解决一元一次方程,只要找出解决二元一次方程的方法。在一元一次添加y,令y=0,转化为二元一次方程,用二元一次方法解决。这就是问题约化。
同时约化具有传递性,如A约化到B,B约化到C,A就可以约化到C,同时不断约化下去,会发现,一定会存在一个最大的问题,解决了这个最大问题,所有问题都能解决。
在NP问题中,对于同一类的所有的NP类问题,若他们都可以在多项式时间内约化成最难的一个NP类问题,若对于这个时间复杂度最高的超级NP问题能找到多项式时间算法 ⇒ 其下的所有问题都是存在多项式算法的 ⇒ NP = P。
引出了NPC问题。 - NPC类问题(Nondeterminism Polynomial complete):存在这样一个NP问题,所有的NP问题都可以约化成它。
(1)它得是一个NP问题;
(2)所有的NP问题都可以约化到它。 - NP难问题(NP-hard问题):它满足NPC问题定义的第二条但不一定要满足第一条,即所有的NP问题都能约化到它,但是它不一定是一个NP问题。
参考自https://blog.youkuaiyun.com/qq_21768483/article/details/80430590