NP-hard问题

1.概念

P问题就是指该问题能在多项式复杂度内解决。

NP问题就是指该问题能在多项式复杂度内被验证。

复杂度一般用大写字母O表示,多项式复杂度记为O(n(^k))。

NP-hard问题就是比NP问题更困难解决的问题,通常NP问题都可以说是NP-hard问题,但是不是所有的NP-hard问题都是NP问题(能否被验证?)

NP-complete(NPC问题)就是既是NP问题也是NP-hard问题。



2.常见问题复杂度表(Wikipedia)


3.证明

(1)证明NP问题。这个容易,即给你一个结果,你能在polynomial的时间内验证该结果的正确性。

(2)证明NP-hard问题。我们要证明一个问题是NP-hard的时候,我们通常要做的是找到一个已被证明了的NPC问题,并把这个NPC问题归约到该问题上去(即NPC<=NP-hard)。

证明NP-hard问题是比较常用的一个,去规约到一个NPC问题(在NPC列表里面找到可以规约的)

https://en.wikipedia.org/wiki/List_of_NP-complete_problems

(3)证明NP-Complete问题。分以下两步:

3.1    第一步证明这个问题属于NP;

3.2    第二步,证明这个问题是NP-hard的。

你可能感兴趣的:(NP-hard问题)