Lecture11-NP完全性.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NP完全性 高文宇 gwyy@163.com Contents P和NP (Nondeterministic Polynomial time) 归约 NPC问题 P和NP 最短与最长路径 欧拉回路与哈密顿回路 2-CNF (Conjunctive normal form, 合取范式)可满足性和3-CNF可满足性 P和NP P类中包含的是在多项式时间内可以解决的问题。 NP类中包含的是在多项式时间内“可验证”的问题。是指给定某一解决方案的“证书”,就能在问题输入规模的多项式时间内,验证该“证书”是正确的。 P中任何问题都属于NP,因为若某一问题属于P,则可以在不给出证书的情况下,在多项式时间内解决它。 通俗地说,如果一个问题属于NP,且与NP中的任何问题一样“难”的,则说它属于NPC类,即NP完全的(NP Complete)。 判定问题和最优化问题 Optimization problem Decision problem NP完全性不直接适合于最优化问题,但适用于判定问题,因为这种问题的答案是简单的“是”或“否”。 归约 Reduction 考虑一个判定问题(A),希望在多项式时间解决该问题。称某一特定问题的输入为该问题的一个实例(instance)。现在,假设另一个不同的判定问题(B),我们知道如何在多项式时间内解决它。最后,假设有一个过程,它能将A的任何实例a转换为B的、具有如下特征的某个实例b: (1)转换操作需要多项式时间; (2)两个实例的答案是相同的。即a的答案若是“yes”,则b的答案亦是“yes”。 称这样一种过程为多项式时间的归约算法(Reduction Algorithm),并且,它提供了一种在多项式时间内解决问题A的方法。 NP完全性的证明 考虑一个判定问题A,若我们已知其不存在多项式时间算法。进一步假设有一个多项式时间规约,它将一个A的实例转换成B的实例,则B一定不存在多项式时间算法。 对NP完全性的证明亦是如此。 电路可满足性问题 电路可满足性问题:给定一个由“与”,“或”,“非”门组成的布尔组合电路,它是可满足电路吗? 回答:Yes / No 证明C-SAT是NP完全(1) 引理34.5:电路可满足性问题属于NP类。 证明:Circuit-SAT可在多项式验证,因此属于NP类。 证明C-SAT是NP完全(2) 证明Circuit-SAT是NP完全问题的第二部分,就是要证明该语言是NP难度的,即必须证明NP中的每一种语言,都可以在多项式时间归约为Circuit-SAT。教材上基于计算机硬件的工作机理,给出了一个简要的证明过程。 引理34.6:C-SAT问题是NP难度的。 证明:…,C-SAT至少与NP中的任何语言具有同样的难度,并且它又是属于NP的,因此它是NP完全的。 定理34.7:C-SAT问题是NP完全的。 第一个NP完全问题 电路可满足性问题(Circuit satisfiability problem)。已知一个布尔组合电路,它由And、Or、Not门组成,我们希望知道这个电路是否存在一组布尔输入,是的它的输出为1. NP完全性的证明 引理34.8: If L is a language such that L′≤P L for some L′ ∈ NPC, then L is NP-hard. Moreover, if L ∈ NP, then L ∈ NPC. In other words, by reducing a known NP-complete language L′ to L, we implicitly reduce every language in NP to L. Thus, Lemma 34.8 gives us a method for proving that a language L is NP-complete: Prove L ∈ NP. Select a known NP-complete language L′. Describe an algorithm that computes a function f mapping every instance x ∈ {0, 1}* of L′ to an instance f(x) of L. Prove that the function f satisfies x ∈ L′ if and only if f (x) ∈ L for all x ∈ {0, 1}*. Prove that the algorithm computing f runs in polynomial time. (Steps 2-5 show that L is NP-hard.) This methodology o

文档评论(0)

6358999 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档