P问题,NP问题,NPC问题和NPHard问题

这篇文章是在看完Matrix67的关于这几种问题的取别与分析后写的 原文地址

时间复杂度

1 . 当一个算法的操作单元数量规模从一个较小的数到一个较大的数过程中其计算时间的增长速度可以视为其时间复杂度.
2 . 来自维基百科的定义时间复杂度 .词条中也有各种时间复杂度的实例.

P问题

可以在多项式时间复杂度内解决的问题.比如查找算法,排序算法,矩阵乘法等.

NP问题

可以在多项式时间内验证一条解的问题.比如汉密尔顿图等

归约

A问题的解法是B问题的一种特例,则A可以归约出B.

NPC问题

1 . 它是一个NP问题.
2 . 所有的NP问题都可以归约为NPC问题.

NPC问题一般不存在多项式时间复杂度的算法.
例如逻辑电路问题(最简单的NPC):给定电路,是否存在一组输入使得输出为真.
所有NP问题的一种情景都可以转化为一组逻辑输入,而满足要求的结果可以视为输出.

NPHard问题

1 .不一定是NP问题.
2 .所有的NP问题都可以转换为此类问题.

猜你喜欢

转载自blog.csdn.net/m0_38062488/article/details/80399474