清华大学算法分析与设计课件第10讲_NP完全性理论

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Lecture 10. NP完全性理论

清华大学软件学院

清华大学 1

内容提要

•计算模型与计算复杂度关系

•问题分类:【P】与【NP】类

•NP-难【hard】问题,NP完全集

•第一个NPC问题和NPC问题集

•如何证明一个问题是NPC问题

涉及到的算法理论基础

•原则上是否存在一般数学问题的解题步骤的判决问题【希尔波特第十问题】

•图灵机的停机问题:是否存在一个图灵机,他可以回答其它图灵机是否停机【既算法是有界的】

•图灵公理:凡是可计算的函数都可以用一台图灵机来计算

•P-NP-NPC问题定义及其猜想:NPC是一类不可以在多项式时间内计算的问题。

清华大学 3

明代数学家程大位著《算法统宗》中关于珠算的插图

机械式手动计算机

清华大学 5

机械计算机

•法国数学家、哲学家帕斯卡在1642年发明了一种机械计算机,并与1649年取得专利。帕斯卡的计算机采用一种齿轮系统,其中一小轮转十个数字,下一个小轮便转动一个数字,通过齿轮系的联动,可以进行加法和减法的运算.

图灵

•大半个世纪以来,数学家、计算机

科学家提出了各种各样的计算模型

都被证明是同图灵机器等价的。这

一理论已被当成公理,它不仅是计

算机科学的基础,也是数学的基础

之一。为纪念英国数学家Turing

(1912-1954) 而设立的图灵奖成为计

算机界的诺贝尔奖.

清华大学7

图灵机模型

图灵机定义

•一个图灵机是一个7元组(Q,∑,Γ,δ,q0,q1,q2), 其中Q,∑,Γ都是有穷集合,并且

•1) •2) •3) 集. •4) •5) •6) •7) Q 是状态集.

∑是输入字母表,不包括特殊空白符号︺. Γ是带字母表,其中: ︺∈Γ,∑是Γ的子δ: Q×Γ→Q×Γ×{L,R}是转移函数. q0∈Q是起始状态.

q1∈Q是接受状态.

q2∈Q是拒绝状态,且q2≠q1

图灵机模型

•图灵机模型用一个无限长的带子作为无限存储, 它还有一个读写头,这个读写头能在带子上读, 写和移动: 开始时,带子上只有输入串,其它地方都是空的.当它需要保存信息时,读写头就把信息写在带子上.为了读某个输入或写下的信息,带子可能将读写头往回移动到这个信息所

在的地方.这样读,写和移动,机器不停的计算, 直到产生输出为止.机器实现设置了两种状态: 接受或拒绝

清华大学9

多带图灵机,

•和普通图

灵机相似,

只是有多

个带子,每

个带子都

有自己的

读写头,用

于读和写.

如图

清华大学11

非确定性的图灵机

•非常容易理解,在计算的任何时刻,机器可以在多种可能性中选择一种继续进行.它的计算是一课树,不同的分枝对应着机器不同的可能性.如果某个计算分枝导致接受状态,则接受该输入.与多带图灵机相同的是,它的计算能力与普通图灵机也是一样的.当然他的计算能力就不一样了。

现代计算机模型

清华大学13

随机存取机RAM

•类似现代计算机,有一个只读输入带、只写输出带、指令计数器、内存储器、其零号寄存器用作累加器,内存不能写,每个内存可以存放任意大的整数。有12条指令:load、store、add、sub、mult、div、read、write、jump、jgtz、jzero、halt。

练习

•利用RAM设计一个计算多项式函数求值的程序:其中多项式为,变量为x。

•考虑问题:程序是什么?输入是什么?复杂度是多少?

清华大学15

随机存取存储程序机RASP •除了程序可以存储在存储器中并可以修改,其它与RAM都一样。

RAM、RASP复杂度耗费标准•均匀耗费:不论计数器内整数多长,其读写、运算耗费均相等

•对数耗费:耗费与其二进制表示的位数成正比:既与数字大小的对数成正比

清华大学17

图灵机模型与RAM模型计算能力

和复杂性关系

•定理一、上述计算模型的计算能力等价:既能够用图灵机计算的问题一定能够用RAM计算,反之亦然。

•定理二、在对数耗费标准下、图灵机与RAM的计算复杂度可在多项式时间内相互归约。

问题变换与复杂性归约

•利用变换和归约可以把一个问题的复杂性归结到另一个问题的复杂性

•问题A变换到问题B是指:

–将问题A的输入变换为问题B的适当输入

–求解问题B

–把问题B的输出变换为问题A的正确解

清华大学19

说明

A∝τ ( n ) B:是指在完成问题A 到B

的转换过程中的转换过程需要O(τ(n))

时间。

通常n 表示问题A 的规模,如果

τ(n) 是多项式,则称问题A 可在多项

式时间内变换为问题B

P 、NP 类定义

• P ={L|L 是一个能够在多项式时间内被一台确定性图灵机所接受的语言}

• NP ={L|L 是一个能够在多项式时间内被一台非确定性图灵机所接受的语言} • 遗留概念说明:

– 语言

– 语言与图灵机【算法与图灵机】 – 为什么选择多项式

变换与归约的关系

命题一:若问题 A 的计算时间下界为 T (n ),且 A ∝τ ( n ) B :则 T(n)-τ (n ) 问题 B 的一个计算时间下界

命题二:若问题 B 的计算时间上界为 T (n ),且 A ∝τ ( n ) B :则 T(n)-τ (n ) 问题 A 的一 个计算时间上界

清华大学 21

相关文档
最新文档