算法-P、NP、NPC和NP-hard

一般算法效率的度量方法就是速度,即一个算法花了多少时间产生结果。然而有些问题,目前还并不知道有效的解法,则称之为难题。当然,难题们也拥有不同的难度。

P: 能在多项式时间内解决的问题(我可以在一定时间内算出正确答案

NP: 不能在多项式时间内解决或不确定能不能在多项式时间内解决,但能在多项式时间验证的问题(也许算不出答案,但给我一个答案我可以在一定的时间内验证它是不是正确

NP-hard:NP难问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的问题(即它比所有NP都难,但它本身却不一定是NP问题)

NPC: NP完全问题,所有NP问题在多项式时间内都能约化(Reducibility)到它的NP问题,即解决了此NPC问题,所有NP问题也都得到解决(需要满足两点:1,是NP-hard问题 2,是NP问题

则四种问题的关系可以用下图表示:

算法-P、NP、NPC和NP-hard_第1张图片

那为什么还要区分NPC和NP-hard呢,因为已经有人确实证明了NPC问题的存在。



你可能感兴趣的:(算法-P、NP、NPC和NP-hard)