在学习算法设计与分析时,经常会提到NP完全性问题,到底什么是NP完全性问题? ...
NP完全性问题属于"计算复杂性"研究的课题。 所谓计算复杂性,通俗说来,就是用计算机求解问题的难易程度。其度量标准有两个:一是计算所需步数或者指令数(时间复杂度);二是计算所需的存储单元数(空间复杂度)。它不是对一个具体问题去研究它的计算复杂性,而是依据难度去研究各种计算问题之间的联系,按复杂性把问题分成不同的类,即复杂性类。
再强调一下,问题的复杂性和算法的复杂性的区别是:只就时间复杂性来说,算法的复杂性是指解决一个问题的算法执行的时间,这是算法的性质;问题的复杂性是指这个问题本身的复杂程度。计算复杂性要研究的是后者。
如果一个判定性问题的复杂度是该问题的一个实例的规模n的多项式函数,则称这种可以在多项式时间内解决的判定性问题属于p类问题。p类问题就是所有复杂度为多项式时间的问题的集合。
然而有些问题很难找到多项式时间的算法(或许根本不存在),比如"找出无向图中哈密尔顿回路"问题。但是我们发现如果给了我们该问题的一个答案,就可以在多项式时间内判断这个答案是否正确。给出一个任意的回路,我们很容易判断它是否是哈密尔顿回路(只要看是不是所有的顶点都在回路中就可以了)。这种可以在多项式时间内验证一个解是否正确的问题成为NP问题,又称易验证问题类。
简单地说,存在多项式时间的算法的一类问题称为P类问题;而像梵塔问题、推销员旅行问题等,至今没有找到多项式时间算法解的一类问题,称为NP类问题。
复杂性理论中最具理论意义的当数NP完全性问题(NPC问题),即由于"P=NP是否成立"这个问题难以解决,从NP类的问题中分出复杂性最高的一个子类,把它叫做NP完全类。已经证明,任取NP类中的一个问题,再任取NP完全类中的一个问题,则一定存在一个具有多项式
时间复杂性的算法,可以把前者转变成后者。这就表明,只要能证明NP完全类中有一个问题是属于P类的,也就证明了NP类中的所有问题都是P类的,即证明了P=NP。
目前已知的NP完全性问题就有2000多个,在图上定义的许多组合优化问题是NP完全性问题,如货郎问题、调度问题、最大团问题、最大独立集合问题、Steiner树问题、背包问题、装箱问题等,遇到这类问题时,通常从以下几个方面来考虑,并寻求解决办法:
(1) 动态规划法:较高的解题效率。
(2) 分枝限界法: 较高的解题效率。
(3) 概率分析法: 平均性能很好。
(4) 近似算法: 近似解代替最优解。
(5) 启发式算法:根据具体问题的启发式搜索策略在求解,在实际使用可能很有效,但有时很难说清它的道理。
分享到:
相关推荐
NP完全性理论&近似算法
第二十三讲 NP完全性.ppt 算法分析设计
算法设计与分析之NP完全性理论—王晓东,清华大学出版社
根据维基百科整理的NP问题相关材料,涉及计算复杂性分析,最优化技术等等。
NP完全性理论与近似算法讲义.ppt
集装箱装船顺序问题是NP完全性问题,建立集装箱船配载数学模型,运用遗传算法,并实验确定适合该模型遗传算法的参数范围。将稳性、减少翻箱、可操作性等重要因素分解为评估策略,按优先级将各种评估策略划分等级,...
算法分析与设计之NP完全性证明.pps
本文档对NP完全问题详细解释,举了很多的例子 ... NP的英文全称是Non-deterministic Polynomial的问题,即多项式复杂程度的非确定性问题。简单的写法是 NP=P?,问题就在这个问号上,到底是NP等于P,还是NP不等于P。
算法分析与设计教程之NP完全性证明.pps
NP完全性理论与近似算法PPT教案学习.pptx
NP完全问题(NP-C问题),是世界七大数学难题之一。 NP的英文全称是Non-deterministic Polynomial的问题,即多项式复杂程度的非确定性问题。简单的写法是 NP=P?,问题就在这个问号上,到底是NP等于P,还是NP不等于P。
经典的遗传算法对于求解多目标的NP完全性问题非常有效,但对于有多个限制条件的多目标最优化问题缺显得有点力不从心,很难得到稳定度较高、收敛较快的解。本文提出的双层遗传算法模型给这一类问题提供了一个很好的...
图的局部着色的NP完全性
第10章 NP完全问题学习要点:确定算法和不确定算法判定问题和最优化问题的关系可满足性问题P类问题和NP类问题典型的NP完全(或NP难度)问题的证明章节内容:1
摘要:讨论了如何利用遗传算法求解布尔表达式的可满足性问题,并给出该结果 对求解其他NP 完全问题时的应用. 关键词:遗传算法;布尔表达式可满足问题;NP2完全问题
算法设计与分析(霍红卫)_第7章 NP完全性.ppt
NP完全性理论与近似算法计算机算法设计与分析第PPT教案学习.pptx
NP完全性理论与近似算法计算机算法设计与分析件PPT教案学习.pptx
2.1.4NP完全性问题 2.2算法分析实例 2.2.1非递归算法分析 2.2.2递归算法分析 2.2.3提高算法质量 第二篇基础篇 第3章算法基本工具和优化技巧3.1循环与递归 3.1.1循环设计要点 3.1.2递归设计要点 3.1.3循环与递归的...
注:例子来自教材《Algorithm Design》中的第 8 章练习题,解答来自网络资料的整理。1.Reduce Independent Set to Pat