美文网首页程序员大数据
什么是NP完全问题

什么是NP完全问题

作者: littlehei | 来源:发表于2017-02-27 22:35 被阅读5084次
P, NP, NP-C,NP-Hard

在学习决策树的时候,我们知道,其一大特点是:寻找最佳的决策树是NP完成问题。什么是NP完全问题,决策树的这一特点又是什么意思?

什么是NP完全问题

这里的NP其实是Non-deterministic Polynomial的缩写,即多项式复杂程度的非确定性问题,NP完全问题有时也会简称为NP-C问题。与此概念相关的还有P类问题、NP类问题等。要理解什么是NP完全问题,首先得从P类问题开始理解。

所有可以在多项式时间内求解的判定问题构成P类问题

判定问题是指回答结果输出为YesNo的问题,比如:3233是否可以写成两个大于1的数字的乘积?是否存在一条路线有且仅有一次的走过七桥问题的每一座桥?

在设计程序时,我们经常需要评估这个程序的时间复杂度,即衡量当问题规模变大后,程序执行所需的时间增长会有多快。如O(1)表示常数级别,即不管问题的规模变大多少倍,所耗的时间不会改变;O(N2)表示平方级别,即当问题规模增大至2倍时,所花费的时间则放大至4倍;O(2N)表示指数级别,即当问题规模倍数扩大时,所用时间会呈指数放大。

多项式时间则是指O(1)、O(logN)、O(N2)等这类可用多项式表示的时间复杂度,通常我们认为计算机可解决的问题只限于多项式时间内。而O(2N)、O(N!)这类非多项式级别的问题,其复杂度往往已经到了计算机都接受不了的程度。

所有非确定性多项式时间内可解的判定问题构成NP类问题

NP类问题将问题分为求解和验证两个阶段,问题的求解是非确定性的,无法在多项式时间内得到答案,而问题的验证却是确定的,能够在多项式时间里确定结果。

比如:是否存在一个公式可以计算下一个质数是多少?这个问题的答案目前是无法直接计算出来的,但是如果某人给出了一个公式,我们却可以在多项式时间里对这个公式进行验证。

NP中的一类比较特殊的问题,这类问题中每个问题的复杂度与整个类的复杂度有关联性,假如其中任意一个问题在多项式时间内可解的,则这一类问题都是多项式时间可解。这些问题被称为NP完全问题

可以说NP完全问题是NP类问题的一种特殊情况,总结这几类问题的特点,可参考如下这个表格:

问题类型 是否能在多项式时间内求解 是否能在多项式时间内验证
P
NP 是 or 否
NP-C 未知

注:表格中的问题类型的困难程度依次递增

由表可知,NP类问题是否能在多项式时间内求解,其答案并不明确,如果回答为「是」,岂不是跟P类问题一样了?值得一题的是,P=NP?是千禧七大难题的首个难题,是一个价值百万美元的问题,这个问题本质是求证:能用多项式时间验证解的问题是否内在多项式时间内找出解。

决策树的NP完全问题

在决策树算法中,寻找最优决策树是一个NP完全问题。决策树的这一特点,说明我们无法利用计算机在多项式时间内,找出全局最优的解。

也正因为如此,大多数决策树算法都采用启发式的算法,如贪心算法,来指导对假设空间的搜索。可以说,决策树最后的结果,是在每一步、每一个节点上做的局部最优选择。决策树得到的结果,是没法保证为全局最优的。

(全文完)

参考文章:
1、什么是P问题、NP问题和NPC问题
2、what are the differences between np, np-complete and np-hard

相关文章

  • 《算法图解》笔记 iv

    NP完全问题 什么是NP完全问题? NP完全问题(NP-C问题),是世界七大数学难题之一。 NP的英文全称是Non...

  • 什么是NP完全问题

    在学习决策树的时候,我们知道,其一大特点是:寻找最佳的决策树是NP完成问题。什么是NP完全问题,决策树的这一特点又...

  • np完全问题有哪些

    最大独立集合,最大团问题,旅行商,决策树,np完全问题np完全问题只能暴力搜(+剪枝)对于决策树来说,没有暴力搜最...

  • NP完全问题

    图灵机的定义 确定性图灵机的定义一台图灵机M是一个七元组,{Q,Σ,□,Γ,δ,q0,qaccept},其中 Q,...

  • 证明最大公共子图是NP-完全问题

    题目 知识点 NP-complete、独立集问题 解题思路 要证明一个问题是NP-完全问题,可以将已知的某个NP-...

  • P/NP/NP-完全问题

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

  • NP-C问题

    在研究NP问题的过程中找到了一类非常特殊的NP问题,也即NP-完全问题(NP-C问题)。 在谈及NPC问题前,先讨...

  • NP完全问题求知

    在一本关于数据结构的书末尾提到了NP完全问题,毫无概念。因此做一番搜索和整理,便于反复阅读和理解。 百度百科的摘录...

  • 算法导论笔记

    1.1 简单介绍何为算法,它能解决什么样的问题,介绍NP完全问题。 1.2 比较算法复杂度 2.1 Insert ...

  • 读书打卡<<算法图解-第八章 贪婪算法>>

    1 处理不可能完成的人物 2 识别np完全问题 3 近似算法 快速找到NP问题的近似解 4 贪婪策略 近似算法实现...

网友评论

    本文标题:什么是NP完全问题

    本文链接:https://www.haomeiwen.com/subject/ipktgttx.html