1 / 64

计算理论

计算理论. 第 3 章 丘奇 - 图灵论题. 主要内容. 3.1 图灵机 3.1.1 图灵机形式化定义 3.1.2 图灵机例子 3.2 图灵机的变形 3.2.1 多带图灵机 3.2.2 非确定型图灵机 3.2.1 枚举器 3.2.1 与其他模型的等价性 3.3 算法的定义 3.3.1 希尔伯特问题 3.3.2 描述图灵机的术语. What do we really know?. §3.1 图灵机. 我们是否能确定某个语言是正则的或 CFL ? 我们知道:

danae
Télécharger la présentation

计算理论

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算理论 第3章 丘奇-图灵论题

  2. 主要内容 3.1 图灵机 3.1.1 图灵机形式化定义 3.1.2 图灵机例子 3.2 图灵机的变形 3.2.1 多带图灵机 3.2.2 非确定型图灵机 3.2.1 枚举器 3.2.1 与其他模型的等价性 3.3 算法的定义 3.3.1 希尔伯特问题 3.3.2 描述图灵机的术语

  3. What do we really know? §3.1 图灵机 • 我们是否能确定某个语言是正则的或CFL? • 我们知道: { 1x | x = 0 mod 7 } is regular(比较规律,可有限描述){ 1x | x is prime素数 } is not regular (比较复杂,现在数学家还不能简单描述) • But what about { 1x | x and x+2 are prime }?This is (yet) unknown. • 说明:对语言的描述和判定是个需要研究的问题

  4. §3.1 图灵机 计算机科学历史上关于概念的争论 • 什么是计算 • 什么是操作系统 基本上解决 • 什么internet ? • 什么是数据库 • 什么是数据仓库 还在争论 • 什么是数据网格 • 解决方法, 给出大众能理解的代表

  5. §3.1 图灵机 计算机科学历史上关于概念的争论 • 解决的办法, 给出一个代表 • 什么是 3的倍数 { 3N |N=1,2,3}, {x| x mod 3 =0} • 代表元 :3 • 什么是操作系统 代表元:Windows, Unix • 什么internet 代表元:大众理解:Web , IE • 什么是计算? 多个模型;代表元:图灵机, 或 递归函数论

  6. §3.1 图灵机 在还没有计算机的时候, 凭想象力把后来出现的 把计算机的理论模型建立起来了。 1936年 想得如此周到、严密 好像从高度文明的外星来的文化使者

  7. §3.1 图灵机 Alan M. Turing (1912–1954) In 1936, Turing introduced hisabstract model for computation inhis article “On Computable Numbers,”. At the same time, Alonzo Church published similar ideas and results. 殊途同归 Turing model 成为理论计算科学的标准模型standard model

  8. §3.1 图灵机 • 图灵机(Turing Machine,TM),是计算机的一种简单的数学模型。 • 历史上,冯•诺曼计算机的产生就是由图灵机诱发的。 • 丘奇—图灵论题:一切合理的计算模型都等同于图灵机.

  9. 0 短语结构文法 α→β α∈V+,β∈V* Phrase Structure 类型 文 法 结 构 产 生 式 形 式 限 制 条 件 上下文有关文法 α1Aα2→α1βα2 |α1βα2|≥|α1Aα2| 1 Context Sensitive α1,α2∈V* (CSG ) A∈VN, β∈V+ 上下文无关文法 A→α A∈VN,α∈V* 2 Context Free (CFG) 正 右线性文法 A→xB,C→y A,B,C∈VN 3规 文 左线性文法 A→Bx,C→y x,y∈VT* 法

  10. §3.1 图灵机 0型语言 ———图灵机 1型语言(CSL) ———线性界限自动机 2型语言(CFL) ———下推自动机 3型语言(正规集)——有限自动机 • 图灵机所定义的语言类---递归可枚举集合 • 图灵机所计算的整数函数类---部分递归函数 • 以图灵机为模型,研究问题的可计算性,即确定该问题是可计算的、部分可计算的,还是不可计算的。

  11. Recall • 自动机和下推机 • 状态: • 1 目标 。Goto 的目标, 标号 • 2 停顿 。连续动作离散化的停顿,(直观启示 可能来自于 手摇计算机,齿轮动作实现,是离散的,一步) • 3 思考。新的起点,歇一口气,根据当前输入,思考下一步动作。(自动机不看历史,下推机看一点很短的历史 -- 栈顶值) • 后面的图灵机中,三者都有

  12. internal state set Q L R 非形式化描述 §3.1 图灵机 每一步,读写头在单向无穷带上左右移动并读写, • 根据当前状态和字符 xi,决定 写 移 转三动作 • -写 letter, 有存储器- 左或右移动 • 转移状态 可以作循环语句 • 磁带相当于数组,可读写。这是增加的重要资源

  13. 输入约定 §3.1 图灵机 • 数组结构 state q0 初始, 带子上只有输入串w*,其它地方是空的。开始状态q0. 计算过程中读写头左右移动,机器内部状态改变,带子上内容重写。

  14. state qaccept state qreject or 输出约定 非常规意义循环——不停机。引出可判定性p89 §3.1 图灵机 三种输出:接受、拒绝、循环

  15. TM vs. DFA §3.1 图灵机 • 相似性: • 有限状态集 • 不同: • TM 无限长磁带 • TM 可在磁带上读写 • 读写头可以左右移动 • 进入接受或退出状态立即停机

  16. §3.1 图灵机 • B = { w#w | w is in {0,1}* } • 对于输入字符串“w” • 在#两边对应的位置上来回移动,检查这些对应位置是否包含相同的符号,如不是,或者没有#,则拒绝,为跟踪对应的符号,消去所有检查过的符号 • 当#左边的所有符号都被消去时,检查#右侧是否还有符号,如果是则拒绝,否则接受 • 例:011000#011000

  17. Snapshots of Execution (1) M Tape head moves to right

  18. Snapshots of Execution (2) M Tape head moves to left

  19. Snapshots of Execution (3) M Tape head moves to right

  20. Snapshots of Execution (4) M Tape head moves to left

  21. Snapshots of Execution (5) M Tape head moves to right

  22. Snapshots of Execution (6) M Tape head moves to left

  23. Snapshots of Execution (7) M Tape head moves to right accept

  24. : Q\{qaccept,qreject}    Q    {L,R} • 状态。当前字符 转, 写, 移 §3.1.1 图灵机形式化定义 • TM是一个7元组(Q, , , , q0, qAcc, qRej),其中: • Q :状态集 • :输入字母表, 不包括空白字符 • :带字母表,  and    : 转移函数  : Q x   Q x  x { L, R }, • q0:开始状态 • qAcc:接受状态, qRej:拒绝状态 定义3.1

  25. q9 becomes “101q91_0#1” §3.1.1 图灵机形式化定义 类似NFA的状态 • Configuration of a TM包括: • 当前状态q Q • 当前带内容  * • 读写头位置  {0,1,2,…} 格局 格局=状态+已经处理部分+今后任务, 目前形式与任务 对于状态q和带字母表上的两个字符串u、v,以uqv表示如下格局:状态q、当前带内容uv,读写头位置为v的第一个符号,v后面为空白符

  26. 相关术语 §3.1.1 图灵机形式化定义 starting configuration on input w: “q0w” 初始格局 accepting configuration: “uqacceptv” 接受格局 返回true rejecting configuration: “uqrejectv” 拒绝格局 返回false The accepting and rejecting configurations are the halting configurations.停机状态

  27. §3.1.1 图灵机形式化定义 • TM M= (Q, , , , q0, qAcc, qRej)接受(Formal Definition)输入w,如果存在一个格局序列C1, C2, …, Ck 有: • 1)C1 是M在输入w上的起始格局; • 2)每一个Ci产生Ci+1 • 3)Ck是接受格局 比喻 录取 会议论文 Turing machine M 录取标准,程序委员会 accepts input w* 字符串,论文,configurations C1,C2,…,Ck评审过程accepting configuration “uqacceptv” 录用 uqrejectv” 拒绝 评审无反响 -- 死机

  28. §3.1.1 图灵机形式化定义 如果一个语言能被某一图灵机识别,则称该语言是图灵可识别的。 定义3.2 输入上运行一个TM时,可能出现三种结果: 接受、拒绝、循环(仅仅指机器不停机) 对于一个输入,TM有两种方式不接受它: 一种拒绝状态 一种进入循环 问题:如何区别长计算 与 死循环? 因此,我们喜欢对所有输入都停机的图灵机,永不循环,这种机器为判定器。因为它们总能决定是接受还是拒绝,也称识别某个语言的判定器判定该语言。

  29. Turing Recognizable (Def. 3.2) A language L is Turing-recognizable if and onlyif there is a TM M such that L=L(M). 图灵可识: 对wL函数M(w)返回true, 对wL,无承诺 Also called: a recursively enumerable language. L 又称为 递归可枚举语言 Note: On an input wL, the machine M canhalt in a rejecting state, or it can ‘loop’ indefinitely. How do you distinguish between a very longcomputation and one that will never halt? 问题:如何区别 长计算 与 死循环?

  30. Turing Decidable (Def. 3.3)图灵可判定 A language L=L(M) is decided by the TM M if on every w, the TM finishes in a halting configuration.(That is: qaccept for wL and qreject for all wL.) 图灵可判定: 对wL函数M(w) 返回true, 对wL,返回false A language L is Turing-decidable if and onlyif there is a TM M that decides L.图灵可判定语言 Also called: a recursive language. 递归语言,比递归可枚举 要求高

  31. §3.1.1 图灵机形式化定义 如果一个语言能被某一图灵机判定,则称它是图灵可判定的。 定义3.3 可识别与可判定? 1、可识别——M识别某种语言,输入w最后到达接受格局; 2、可判定——判定器M识别某个语言。

  32. 描述TM M2,它判定的语言是所有由0组成、长度为2的方幂的字符串,即A = { 0j | j=2n } 例3.4 例3.5 A = { w#w| w∈{0,1}*} §3.1.2 图灵机的例子 详见书90页

  33. Reject state not shown for simplicity start q1 1  X, R 0  X, R 0  0, R #  #, R q3 1  1, R 0  0, R q2 1  1, R 书上的例 3.5,3.6, 3.7比较细致,有点繁而不难,学生应仔细读一遍。 q8 X  X, R #  #, R #  #, R , R q5 q4 X  X, R X  X, R 1  X, L 0X, L q6 0  0, L 1  1, L #  #, L X  X, L X  X, R q7 = accept state 0  0, L 1  1, L

  34. Questions Let L’ be the complement(反、补)of language L Is the following true? • If L is Turing-decidable, L is Turing-recognizable • If L is Turing-recognizable, L is Turing-decidable • If L is Turing-decidable, so is L’ • If L is Turing-recognizable, so is L’ • If both L and L’ are Turing-recognizable, L is Turing-decidable

  35. 主要内容 3.1 图灵机 3.1.1 图灵机形式化定义 3.1.2 图灵机例子 3.2 图灵机的变形 3.2.1 多带图灵机 3.2.2 非确定型图灵机 3.2.1 枚举器 3.2.1 与其他模型的等价性 3.3 算法的定义 3.3.1 希尔伯特问题 3.3.2 描述图灵机的术语

  36. §3.2 图灵机的变形 3.2.1 多带图灵机  = blank symbols control It is like a TM, but with several tapes

  37. §3.2 图灵机的变形 3.2.1 多带图灵机 • 一个 k-带图灵机M具有k个不同的带子与读/写头,是一个7-tuple (Q,,,,q0,qaccept,qreject), 其中 • Q finite set of states •  finite input alphabet (without “_”) •  finite tape alphabet with { _ }     • q0 start state  Q • qaccept accept state  Q • qreject reject state  Q •  the transition function: Q\{qaccept,qreject}  k  Q  k  {L,R}k • 转 写 移 允许多个带子同时进行读、写和移动读写头, k:带子个数

  38. §3.2 图灵机的变形 3.2.1 多带图灵机 • 最初时, 输入被写在第一条带子上,所有其他的带子为空 • 一个k-tape TM 转移函数如下:  : Q x k Q x k x { L, R, S }k • (qi,a1,a2,…,ak)=(qj,b1,b2,…,bk,L,R,…,L) • 机器处于qi状态,读写头1到k所读的符号a1,…,ak,机器转移到状态qj,各读写头分别写下符号b1,…,bk,并按指示移动读写头。 • 很明显, 给定一个TM, 我们可以找到一个k-tape TM 识别相同的语言 • 如何变换?

  39. Multi-tape TM = one-tape TM §3.2 图灵机的变形 3.2.1 多带图灵机 每个多带图灵机等价于某一个单带图灵机 定理3.8 增加存储和数组(多带)只提速和简化, 无本质改变 证明: 假设M是k-tape TM. 如何将其转换为一个单带 TM S?关键是怎样用S来模拟M

  40. §3.2 图灵机的变形 3.2.1 多带图灵机 • 假设M有k个带子,s把此k个带子的信息都存储在它的唯一的带子上,并以此来模拟k个带子的效果。用一个新的符号#作为定界符,以分开不同带子的内容。 • 2. 除了带内容之外,S必须记录每个读写头的位置。为此,在一个符号的顶上加个点,以此来标记读写头在其带上的位置,S把它们想象为虚拟带子与虚拟读写头。 •  下面例子说明如何用一个带子来表示三个带子

  41. E.g. M S Note: M = {0,1,a,b,} and S = {0,1,a,b,,#,0*,1*,a*,b*,*,#*}

  42. Outline Proof Thm. 3.8 造单带机模拟多带机 (多带机模拟单带机不需证明) 假设 M=(Q,,,,q0,qaccept,qreject) 为一个k-带TM. 扩展’ =  {#}构建一个1-带 M’ M-格局表示为:u1qja1v1, u2qja2v2, …, ukqjakvkM’-格局为:,qj # u1a1v1 # u2a2v2 # … # ukakvk分带符 #, K带上当前字符 • 第1带 第k带格局

  43. Proof Thm. 3.8 (cont.) • 在输入 w=w1…wn上,TM M’ 按如下方式工作: • 准备初始串:#w1…wn#_##_#_  • 多带复制到单带 • 读带有下划线的输入字符 k 各带当前字 • 通过更新输入与头的位置模拟M • 通过下标映射模拟动作 • 重复 2-3直到 M 到达一个停机状态 • 停机 PS: 如果更新需要重写 # 符号,向右转移# _ 部分

  44. §3.2 图灵机的变形 3.2.2 非确定图灵机  = blank symbols control 与TM相似, 只是进行非确定性控制

  45. 非确定图灵机 • 一个非确定性图灵机M 在每一步可以有几种选择。由一个7元组定义(Q,,,,q0,qaccept,qreject), 其中, • Q 状态集 •  输入字母表 (不包括 “_”) •  带字母表 { _ }     • q0 起始状态  Q • qaccept接受状态  Q • qreject拒绝状态 Q •  转移函数 : Q\{qaccept,qreject}    P (Q    {L,R}) 格局演进是多前途的

  46. NTM的计算 • NTM 转移函数的形式  : Q x   2Q x  x { L, R } • 对于一个输入w, 可以通过一个计算树表示其所有可能的计算: 根 = 初始格局, 节点C的儿子 = 所有由C产生的格局 • NTM接受输入w如果有计算的分支能够到达接受状态(存在一条从根——接受状态的路径)

  47. NTM的计算 只要一条被接受,就算被接受了,允许多次失败换取一次成功。 C1 t=1 t=2 C2 C4 C3 t=3 C5 C6 “reject”  “accept”

  48. NTM = TM §3.2 图灵机的变形 3.2.2 非确定图灵机 每个非确定型图灵机等价于某一个确定图灵机 定理3.10 证明: 假设N为NTM. 转换N为TM D. 基本思路是用N’s 计算所有可能分支来模拟N. 如果一个分支导致接受状态,D接受,否则,D’s模拟永不终止。 详细证明见书94-95页。

  49. §3.2 图灵机的变形 3.2.3 枚举器 aa cc aba control printer  = blank symbols It is like a TM, but with a printer

  50. 一个语言是图灵可识别的,当且仅当有枚举器枚举它。一个语言是图灵可识别的,当且仅当有枚举器枚举它。 定理3.13 §3.2 图灵机的变形 3.2.3 枚举器

More Related