NP-hard问题。P问题(Polynomial):这个应该最易理解,就是一个问题可以通过确定性图灵机在多项式(Polynomial)的时间的得到解决。例如排序问题。(确定性图灵机,遇见分支确定执行某个分支,目前所有计算机的原型)NP问题(NondeterministicPolynomialtimeProblem):简单的说就是一个问题可以通过非确定图灵机在多项式时间得到解决。(...
NP-Complete问题:如果一个问题已经被证明是一个NP-Hard问题,并且可以证明该问题是一个NP问题,那么该问题是NPC问题。 即已知一个NPC问题L',如果我们可以把L'归约为L,且L可以在多项式时间内被验证,那么L是一个NPC问题。 其中,P, NP, NP-Hard, NP-Complete是不同的复杂性类,用于将所有的算法问题进行分类,以...
这类问题就是NP-Complete问题。 最难,就意味着所有NP类的问题都能归约到这个问题上。该问题本身也是NP问题。 所以,NP-Complete问题的形式化定义是: L是NP-Complete问题,当其满足如下两个条件: L∈ NP 任意L1 ∈ NP, L1 可以归约到 L 对于只满足条件2,不管满不满足条件1的问题,我们称为NP-hard问题, 即...
如果熟悉了NP的定义,会发现明显指数级问题包含NP问题(?)因为根据上面的定义,只要验证对一个输入x是否存在一个u能够被某个图灵机M验证就好了,那么在指数时间内,我们可以定义一个hardcode了所有M的信息的图灵机N,N尝试所有可能的u,看有没有哪个u能迫使M接受x。由于u是多项式长度,这种尝试可以在指数时间内结束。 ...
NP-complete:满足两点: 1. 是NP hard的问题 2. 是NP问题 稍微正式的解答: P就是能在多项式时间内解决的问题 NP就是能在多项式时间验证答案正确与否的问题。 所以P是否等于NP实质上就是在问,如果对于一个问题我能在多项式时间内验证其答案的正确性,那么我是否能在多项式时间内解决它?
其中,P, NP, NP-Hard, NP-Complete是不同的复杂性类,用于将所有的算法问题进行分类,以确定当前算法的难度。 多项式时间可解的问题:如果对于某个确定的常数k,存在一个能在O(nk)时间内求解出某具体问题的算法,就说该具体问题是一个多项式时间可解问题。
NP-complete问题:属于NP问题,且属于NP-hard问题。 NP-hard问题:比NP问题都要难的问题。 详细说一下这四个问题: 开始之前先说明两个概念:多项式,时间复杂度(知道的请自动跳过)。 1.多项式: +-+axn+bxn-1+c ,形如这种形式的就被称为x的最高位为n的多项式。 2.时间复杂度:定义为随着问题规模的增大,算法...
NP-Complete问题:但若所有的NP问题都能多项式归约到一类问题X,则称X为NP-hard问题,进一步如果X是NP的,称X是NP complete的。换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:一是NP-hard的问题,二是NP问题。 1.4 总结
任意L1 ∈ NP, L1 可以归约到 L 对于只满足条件2,不管满不满足条件1的问题,我们称为NP-hard问题, 即非常难,且不能在多项式时间内验证解是否正确的问题。(感谢luse兄的指正) 2.1 NP-hard 这里在说说NP-hard, NP-hard实际上是“at least as hard as an NP-complete problem”,即这个问题至少和NP完全问题...
有这样一种问题,所有 NP 问题都可以归约到这种问题,我们称之为 NP-hard 问题。 ##NP完全问题 (NP-Complete): 如果一个问题既是 NP 问题又是 NP-Hard 问题,则它是 NP-Complete 问题。可满足性问题就是一个 NP 完全问题,此外著名的给图染色、哈密尔顿环、背包、货郎问题都是 NP 完全问题。