可计算理论研讨第三部分

1,059 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,059
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

可计算理论研讨第三部分

  1. 1. 可计算性 研讨班 集智俱乐部
  2. 2. ⽇日程 • 第⼀一次:2⽉月23⽇日 苑明理 • 第⼀一部分:基本概念的初步探讨 • 第⼆二部分:While 语⾔言 • 第⼆二次:3⽉月9⽇日 苑明理 • 第三部分:可计算性的基本理论 • 第四部分:元编程、⾃自应⽤用、编译器⽣生 成 • 第三次:3⽉月23⽇日 ⽼老⻥鱼 • 第五部分:其他顺序计算模型 • 第六部分:邱奇-图灵论题 • 第七部分:函数式语⾔言的可计算性 • 第四次:4⽉月6⽇日 • 第⼋八部分:不可解问题 • 第九部分:希尔伯特第⼗十问题 • 第五次:4⽉月20⽇日 张江 • 第⼗十部分:哥德尔不完备定理 • 第六次:5⽉月4⽇日 • 第⼗十⼀一部分:基于数的可计算性理论 • 第⼗十⼆二部分:更抽象的可计算性途径
  3. 3. 第三部分 • ⼏几个基本概念 • 停机问题 • s-m-n 定理 • Rice 定理
  4. 4. ⼏几个概念 不同的⼏几个等价的视⾓角 • 程序是否可以停机:可计算、全可计算 • 程序可以视为函数 • 函数的构造:部分递归、递归 • 函数可以视为笛卡尔积的⼦子集 • 集合元素是否能判定:半可判定、可判定 • 特征函数的计算 另外⼀一个视⾓角:⽤用程序可以枚举 • 视为函数: • 递归可枚举—递归函数的值域 • 部分递归函数的定义域 • 视为判定集合成员 • 半可判定
  5. 5. 辨析之⼀一 • A 和 A 的补集半可判定,则 A 可判定 • 证明思路: • 设 A 可以由程序 p 半判定,A 的补集由程序 q 半判定 • 构造程序 r 把 p 和 q 混搭起来,使得 p 和 q 有⼀一个停机,则 r 停 机
  6. 6. 停机问题 ⼏几个等价的说法 • 停机问题是不可解的 • 判断停机的程序不存在 • 停机函数不可计算 • 停机的程序-数据集合 HALT 不可判定
  7. 7. 延伸讨论 • 停机的程序-数据集合 HALT 半可判定 • 证明思路:利⽤用解释器 u,构造如下程序 read PD V = u PD write ‘true • 推论:HALT的补集既不可判定也不半可判定
  8. 8. s-m-n 定理 • 特化器的存在性 • [[spec](p.s)](d) = [p](s.d) • 构造思路: • 特化时刻: • 程序 spec 输⼊入的 s 转接给输出的程序 q,成为 q 内部的⼀一个赋值 • 程序 spec 输⼊入的 p 转接给输出的程序 q,使得 p 嵌⼊入到 q 内部 • 运⾏行时刻: • q 有输⼊入 d,这样 q 可以把 s 和 d 合并,再转接给嵌⼊入其中的程序 p
  9. 9. Rice 定理 • ⼏几个定义: • 属性 A 是⼀一个 While 程序的集合; • 属性 A 是⾮非平凡的,当且仅当 A 不是空集或全集; • 属性 A 是外延属性,当且仅当,对任意给定的语义等价的两个程 序 p 和 q, p 属于 A 等价于 q 属于 A; • Rice 定理: • 程序的任何⾮非平凡的外延属性都是不可判定的
  10. 10. Rice 定理的证明 • 证明思路: • 若 Rice 定理不成⽴立,则存在⾮非平凡属性 R 可判定,即判定程序 is-R 可计算⼀一个程序 q 是否属于 R。 • 取程序 r 属于 R, 对任意程序 p 和任意⼀一个参数 d,可构造程序 q read X; Y = p d; Z = r X; write Z; • 另有程序 h : read pd; W = is-R q; write W; • 易⻅见 h 可判定与停机定理⽭矛盾。
  11. 11. 回顾 论述对象 部分有定义 全有定义 计算过程 可计算 递归 函数 部分递归 递归 集合 递归可枚举 递归 问题 半可判定 可判定

×