P NP NPC NP-Hard

P NP NPC NP-Hard 问题的定义

P Problem:
如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题。

NP Problem:
NP问题不是非P类问题。NP问题是指可以在多项式的时间里验证一个解的问题。NP问题的另一个定义是,可以在多项式的时间里猜出一个解的问题。

NP-Complete Problem:
同时满足下面两个条件的问题就是NPC问题。首先,它得是一个NP问题;然后,所有的NP问题都可以约化到它。

NP-Hard Problem:
NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广)。