什么是NP-完全性语言?什么是NP-完全性问题?什么是NP-hard问题?
答:NP-完全性语言
定义1(狭义,Karp):称满足下述2条的语言L0是NP-C的:
1)L0∈NP; 2) ∀L∈NP,都有L≤pL0。
NP-完全性问题 :若某个判定问题进行编码后,所对应的语言L0是NP-C的, 则称该问题是NP-C的。
有些最优化问题(对应的编码ω∈L0)可以满足 NP-完全性定义的第2条要求:∀L∈NP,都有L≤p L0。 满足上述条件的问题被称为NP-hard问题。
引入NP-完全性概念有什么意义?列举20个NP-完全性或NP-hard问题。
答:如果存在一台DTM在多项式时间里接受某个NP-C语言,
则所有NP类语言均可找到DTM在多项式时间里接受,从而有P=NP。
如果某个NP类语言不存在DTM在多项式时间里接受(即P≠NP),
则所有NP-C语言都不存在DTM在多项式时间里接受,
即有NP-C∩P=Φ。
NP wanquanxing
NP完全性
NP-completeness
计算复杂性理论中的一个重要概念,它表征某些问题的固有复杂度。一旦确定一类问题具有NP完全性时,就可知道这类问题实际上是具有相当复杂程度的困难问题。
探讨各种各样问题是否具有NP完全性,研究NP完全问题的处理方法,这对许多实际问题的算法设计和分析很有帮助,并与NP=?P等理论问题密切相关(见非确定性)。人们在这方面开展了大量研究工作,已逐渐形成一个专门性的理论──NP完全性理论。
巡回销售员问题 也称货郎担问题,是一个著名的NP完全问题。假定有一个销售员要到n个城镇去推销产品,已知各城镇间的距离和一个界限B。问是否有一条旅行路线,恰好通过每个城镇一次,最后回到出发点,且使旅行路线的总长不超过B。巡回销售员问题实际是一类问题。当对城镇数、城镇间距离和界限 B给定具体数值后,就能得到其中一个具体问题,有时也称作巡回销售员问题的一个“实例”。算法是针对巡回销售员这类问题而言的,即对其中任何实例都应是行之有效的。
P和NP 对于一个问题,如果存在一个图灵机,对这个问题的任何实例,都能给出回答,那么这个问题就称作可解的;如果存在一个图灵机,又存在一介多项式P,在给定问题的实例后(设n是给定实例在0、1编码下的长度),这个图灵机能在P(n)步内给出回答,那么该问题称作多项式时间可解的。
图灵机可分为确定型和非确定型。确定型图灵机在多项式时间内可解决的全部问题类记作 P。非确定型图灵机在多项式时间内可解决的全部问题类,记作NP。由于确定型机器是非确定型机器的特殊情形,故P∈NP。有趣的是相反的问题:NP∈P? 这就是著名的“NP=?P问题”。许多人猜测NP≠P,即在NP中有不是多项式时间可解的问题。在直觉上如果这种问题存在的话,它就是NP中“最难的”问题。NP完全问题就是NP中最难问题的一种形式化。
多项式时间归约 假定给了两个问题类q和q0,如果存在一个确定型图灵机Мq和一个多项式p,对于q中任意一个实例x,Мq都能在p(n)时间内计算出q0中一个实例y(其中n是实例x的编码长度),使得x是q中有肯定回答的实例,当且仅当y是q0中有肯定回答的实例,我们就说q多项式时间归约到q0。
NP完全问题 对于一个问题q0,如果q0属于NP,且NP中任意一个问题,都能够多项式时间归约到q0,则称q0为NP完全的,或q0具有NP完全性。除巡回销售员问题外,在实践中还发现有大量的NP完全问题,它们来自计算机科学、数学、逻辑学等许多学科领域,总数已超过2000。下面是若干有代表性的NP完全问题。
① 顶点覆盖问题:给定一个图G=(V,E),V为顶点集合,K为边集合,又给定一个正整数K。问V是否有一个子集V′,其顶点数不超过K,并使G中每条边都能被V′覆盖,即每条边的两个顶点中至少有一个在V′中。
② 三维匹配问题:三个班级,各有K人,共同参加某项活动。活动中,要求三人一组,组中每班一人。三人彼此认识的组称为相识组。假定已知全部可能的相识组,问从中能否选出K个相识组,使得每人能参加且仅能参加一个相识组。
③ 分割问题:给定一堆自然数, 是否能将它们分成两部分,使得这两部分自然数各自的和彼此相等。
④ 带优先次序的调度问题:有m个处理机和一个任务集合,每个任务的执行时间为1,已知任务间的优先次序(不一定每对任务间都有优先次序)和一个截止时间D。问是否有一个m个处理机的调度方法,满足给定的优先次序,且在截止时间D以前结束全部任务。
⑤ 可满足性问题:对任意给定布尔表达式,是否可对式中各变元赋予真值和假值,使该表达式的值为真。
可满足性问题是历史上第一个NP完全问题,它由S.A.库克于1971年提出。
意义 NP完全性的研究在理论上有重要意义。已经证明,只要有一个NP完全问题属于P,则NP中一切问题都属于P。实际上,NP中任何一个问题都可以多项式时间归约到这个NP完全问题,而该问题又可在多项式时间内解决,故NP中任何问题都可在多项式时间内解决。因此,只要能证明任何一个NP完全问题属于P,就能推出NP=P。这将导致十多年来计算机科学中一个重大问题──“NP=?P问题”的肯定性解决。反之,要否证NP=P,一个明显的方法,就是到NP中去找一个不属于P的问题。作为NP中“最难”问题的NP完全问题,自然是最有希望的候选对象。总之,无论是要证明还是要否证NP=P,NP完全问题的研究,都是很有意义的。
NP完全性的研究在实践中有重要指导作用。在算法设计和分析过程中,如果已证明某问题是NP完全的,这就意味着面临的是一个难于处理的问题。对于它,要找出一个在计算机上可行的(即多项式时间的)算法是十分困难的,甚至可能根本找不到(因为很可能有NP≠P)。因此,对于NP完全问题,最好是去寻找近似解法,或者针对该问题的某些有实用价值的特殊情况,寻找多项式时间算法。
参考书目
M. R. Garey and D.S.Johnson, Computers and Intractability, A Guide to Theory of NP-Completeness , W.H.Freeman and Co.,San Francisco,1979.
P vs NP是理论计算机科学的核心问题。从数学的角度来说,它和其他历史上有名的数学问题一样,给与人们一个智力上重大的挑战。而更为重要的是,在无数与计算有关的的学术领域中,NP-完全问题以各种不同形式层出不穷。因此,这并不是一个纯粹的与世独立的智力游戏,而是对计算机科学有全面影响力的问题。
人们在七十年代开始对NP-完全问题的研究主要是横向发展,也就是以许多不同的计算模型来分析难解问题的本质。这些新的计算模型包括了平行计算模型、概率计算模型、布尔线路、判断树、平均复杂性、交互证明系统以及程式长度复杂性等等。对这些新的计算模型的研究一方面使我们对难解问题有了更深一层的认识,一方面也产生了一些预想不到的应用。最显著的一个例子就是计算密码学的革命性突破:基于NP问题的公钥密码体系。另一个有名的例子是线性规划的多项式时间解的发现。
到了八十年代中,对NP-完全问题的研究有了纵向的突破,在许多表面看来并不相关的计算模型之间发现了深刻的刻划关系。这些刻划关系不但解决了几个令人困扰多年的未解问题,同时也刺激了其它相关领域的发展。其中之一是对线路复杂性的研究发现了一些问题在某种有限制的线路模型中必有指数下界。这些结果使用了组合数学与概率方法等新的数学工具,并且解决了一个有名的有关多项式分层的未解问题。另一个更重大的结果是以概率可验证明对NP类的刻划。由此得出了许多组合优化问题近似解的NP-完全性,从而刺激了算法界对近似算法研究的新热潮。这个结果来自于对交互证明系统这个概念的扩展,并且使用了线性代数与编码理论等数学证明技巧
分享到:
相关推荐
NP完全性理论是计算机科学中计算复杂性理论的一部分,它主要研究一类难以解决但可以通过验证答案的正确性在多项式时间内完成的问题。这些问题被称为NP(非确定性多项式时间)问题,而那些即使在非确定性计算模型下也...
NP完全理论至今仍然是一个活跃的研究领域,对于理解和解决实际生活中的复杂问题具有深远意义。例如,旅行商问题、子集和问题、图染色问题等都是NP完全问题,这些问题在物流、调度和资源配置等领域中有实际应用。通过...
《计算机与难解性:NP完全性理论指南》是一本由Michael R. Garey和David S. Johnson共同编写的经典著作,深入探讨了计算复杂性理论中的NP完全性问题。该书是理解NP完全性概念及其在算法设计、优化问题解决以及计算...
本章介绍了一个极为重要的概念——NP-完全(NP-Completeness)。这一概念不仅对理论计算机科学至关重要,而且对于理解和解决实际中的复杂问题也有着深远的影响。 #### 二、可解性与不可解性 首先,我们来探讨算法的...
局部着色问题的NP完全性表明,该问题在计算复杂性理论中属于难以解决的问题之一。 首先,局部着色与图的颜色问题密切相关。在图论中,常规的顶点着色问题是给图的每个顶点分配颜色,使得任意两个相邻的顶点颜色不同...
### 论文《若干NP完全问题的特殊情形》知识点总结 #### 一、论文概览 - **标题**: 《若干NP完全问题的特殊情形》 - **作者**: 王晓东 - **出处**: 福州大学学报(1999年第27卷第5期) - **摘要**: 该论文主要讨论了...
NP完全问题是计算机科学...综上所述,NP完全问题是一类具有挑战性的计算问题,它们的理论研究与解决策略在计算机科学和相关领域中占有核心地位,对算法设计和优化、计算复杂度理论以及实际问题的求解都具有深远的意义。
研究NP完全问题对于理解计算的局限性和寻找更有效的算法具有重要意义。 这个大学算法课件通过深入讲解这些主题,旨在帮助学生掌握算法设计与分析的基本原理,提升他们解决实际问题的能力,并为他们进一步探索计算机...
4. **NP完全问题**:解释NP完全问题的意义以及如何证明一个问题属于NP完全。 #### 二、多项式时间和确定性算法 **定义**:P类问题是指可以用多项式时间的确定性算法来进行判定或求解的问题。简单来说,如果一个...
论文最后可能总结了研究结果,指出证明活动时间调度问题的NP完全性对理论和实践的意义,并提出未来可能的研究方向。 这篇论文的贡献在于解决了活动时间调度问题的复杂性问题,为理解和优化这类问题提供了理论基础,...
SAT 问题规约到的 3SAT 问题,可以证明许多 NPC 问题的完全性。 布尔公式 A = ((NOT x) AND y) OR (x AND (NOT z)) 是一个可满足的布尔表达式。可满足性问题就是判定一个给定的合取范式的布尔公式是否是可满足的。 ...
NP完全问题作为NP问题中最困难的一类,其研究不仅对于理论计算机科学具有重要意义,也为实际应用中的许多优化问题提供了理论指导。P vs NP问题仍然是计算机科学领域的一个重要开放问题,其解决将极大地推动该领域的...
计算机算法设计_第八章NP-完全问题 ...本章节讨论了NP-完全问题,证明了2SAT是P-类问题,并证明了顶点覆盖问题和相遇集问题是NP-完全问题,这些结果对计算机科学和信息技术的发展具有重要的意义。
如果一个问题被证明是NP完全的,那么除非P=NP(即确定性多项式时间和非确定性多项式时间相等),否则不存在多项式时间的确定性算法来解决它。至今,尽管没有严格证明,但大多数研究者认为P≠NP,这表明NP完全问题在...
算法设计与分析王红梅NP完全理论PPT课件.pptx 本资源为算法设计与分析的PPT课件,主要讲解算法设计的基本概念和理论知识。下面是对该资源的详细知识点总结: 一、下界(Lower Bound) * 下界是指对于某个问题,...
在复杂性类P和NP之外,还有更多的复杂性类别,如NP完全(NP-complete)、NP困难(NP-hard)、随机多项式时间(BPP)等等,它们帮助我们更细致地刻画问题的难度和算法性能的界限。 书中提到的“Godel’s lost letter...