NP完全问题(上课)选读
- 格式:ppt
- 大小:220.50 KB
- 文档页数:45
什么是NP完全问题在学习决策树的时候,我们知道,其⼀⼤特点是:寻找最佳的决策树是NP完成问题。
什么是NP完全问题,决策树的这⼀特点⼜是什么意思?什么是NP完全问题这⾥的NP其实是Non-deterministic Polynomial的缩写,即多项式复杂程度的⾮确定性问题,NP完全问题有时也会简称为NP-C问题。
与此概念相关的还有P类问题、NP类问题等。
要理解什么是NP完全问题,⾸先得从P类问题开始理解。
所有可以在多项式时间内求解的判定问题构成P类问题在设计程序时,我们经常需要评估这个程序的时间复杂度,即衡量当问题规模变⼤后,程序执⾏所需的时间增长会有多快。
如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-完全问题§1 关于问题及算法的描述为了应用算法复杂性理论,首先要对问题、问题的一般描述、计算模型、算法、算法的复杂性给出严格的定义。
但在给出精确定义之前,我们先回顾一下有关概念的粗略解释。
所谓一个问题(problem)是指一个有待回答、通常含有几个取值还未确定的自由变量的一个一般性提问(question)。
它由两部分构成:一是对其关于参数的一般性描述;二是对该问题的答案所应满足的某些特性的说明。
而一个问题的某个实例则可通过指定问题中所有参数的具体取值来得到。
以下用∏表示某个问题,用I 表示其实例。
旅行商问题的参数是由所需访问城市的一个有限集合},,,{11m C C C C =和C 中每对城市j i C C ,之间的距离),(j i C C d 所组成。
它的一个解是对所给城市的一个排序(1)(2)(),,,m C C C πππ使得该排序极小化下面表达式(目标函数)的值),(),()1()()1(11)(ππππC C d C C d m i m i i ++-=∑旅行商问题的一个实例是通过指定城市的数目,并指定每两个城市之间的具体距离而得到的。
例如:{}4321,,,C C C C C =,3),(,9),(,6),(,9),(,5),(,10),(434232413121======C C d C C d C C d C C d C C d C C d就是旅行商问题的一个实例,这个实例的一个最优解是排序1342,,,C C C C ,因为四个城市的这个排序所对应旅行路线是所有可能环游路线中长度最小的,其长度为27。
目前广泛采用的描述问题的方法主要有两种:一是将任一问题转化为所谓的可行性检验问题(feasibility problem);二是把问题转化为判定问题(decision problem)。
实际中几乎所有问题都可直接或间接地转述为判定问题。
判定问题是答案只有“是”与“非”两种可能的问题。