评价一个算法的时间效率,一般使用时间复杂度。评价一个问题的难度,则使用解决此问题的最优算法的时间复杂度等级。
等级包括:P问题,NP问题,NPC(NP-Compelete,NP完全)问题,和NPH(NP-Hard,NP难)问题
P问题,指该问题存在多项式的时间复杂度,比如排序算法,O(n)=n*(n+1)/2。
NP问题,Non-deterministic Polynomial(非确定性多项式),指该问题的解决过程中,如果给定一个可能的解(可行解),那么判断它是否是该问题的一个解,这一子问题是P问题。但是求出所有可能的解,这一问题可能是P问题,也可能更难。可以看出,P问题一定是NP问题。
P问题,可以映射为一个确定性图灵机。NP问题,可以映射为一个非确定性图灵机。
NPC问题,是NP问题的一个子集,这些问题解决过程中,存在一个子问题是NP问题,或者说,这种NP问题,求解所有可行解,是一个NP问题。
NPH问题,这类问题更加复杂,指难度超过NPC问题的所有问题。比如:问题中,求解所有可行解这一子问题,是一个NPC问题。
我们可以看出,以上问题都是NP问题的子集,因此,这种评价方法被称为“NP理论”。COOK定理,证明所有NPC问题中,任一问题存在多项式解法,则所有NPC问题都将存在多项式解法。目前,估计不可能存在这样的解法。基本上NPC问题、NPH问题,无法求出最优解,只能求出次优解。
等级包括:P问题,NP问题,NPC(NP-Compelete,NP完全)问题,和NPH(NP-Hard,NP难)问题
P问题,指该问题存在多项式的时间复杂度,比如排序算法,O(n)=n*(n+1)/2。
NP问题,Non-deterministic Polynomial(非确定性多项式),指该问题的解决过程中,如果给定一个可能的解(可行解),那么判断它是否是该问题的一个解,这一子问题是P问题。但是求出所有可能的解,这一问题可能是P问题,也可能更难。可以看出,P问题一定是NP问题。
P问题,可以映射为一个确定性图灵机。NP问题,可以映射为一个非确定性图灵机。
NPC问题,是NP问题的一个子集,这些问题解决过程中,存在一个子问题是NP问题,或者说,这种NP问题,求解所有可行解,是一个NP问题。
NPH问题,这类问题更加复杂,指难度超过NPC问题的所有问题。比如:问题中,求解所有可行解这一子问题,是一个NPC问题。
我们可以看出,以上问题都是NP问题的子集,因此,这种评价方法被称为“NP理论”。COOK定理,证明所有NPC问题中,任一问题存在多项式解法,则所有NPC问题都将存在多项式解法。目前,估计不可能存在这样的解法。基本上NPC问题、NPH问题,无法求出最优解,只能求出次优解。