第四章:图灵论题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
q7 1 0 1 1 0 1 1 1 1
20
图灵机计算方式的形式化
如果图灵机能合法地从格局 C1 一步进入 C2,则称格局 C1 产生格局 C2。 设 a, b 和 c 是 中的符号,u 和 v 是 * 中字符串,qi 和 qj 是状态,则 uaqibv 和 uqjacv 是两个格局。如果转移函数满 足 (qi , b) = (qj , c, L),则说uaqibv 产生和 uqjacv 。 M 在输入 w 上的起始格局是格局 q0w,表示机器处于起始 状态 q0,并且读写头处于带子的最左端位置,在接受格局 里,状态是 qaccept ,在拒绝格局里,状态是 qreject。接受和 拒绝状态都是停机状态,它们都不再产生新的格局。 由于图灵机只在接受或拒绝状态下才停机,可以等价地将 状态转移函数简化 : Q' × Q × ×{ L, R } 其中 Q' 是取消 qaccept 和qreject 的 Q。
M3=“对于输入字符串 w:
1) 从左往右扫描输入,确认输入具有形式 a*b*c*,否则拒 绝。 2) 读写头回到带子的左端点。 3) 消去一个 a,并向右扫描直到 b 出现。在 b 与 c 之间来回 移动,成对地消去 b 和 c,直到把所有的 b 都消去。如 果 c 全消除后还有 b,则拒绝。 4) 如果还有 a 未消去,则恢复所有已消去的 b,再重复第 3 步。如果所有的 a 都已被消去,则检查所有的 c 是否都 30 已被消去。如果是,则接受,否则拒绝。”
X
1
1
0
0
#
X
1
1
0
0
X
1
1
0
0
#
X
1
1
0
0
M
Tape head moves to left
12
M1 的运行示意图
X
1
1
0
0
#
X
1
1
0
0
X
1
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X
1
1
0
0
6
图灵机
•数组结构
w1 w 2 wn
_ _ _
state q0
初始, 带子上只有输入串w*,其 它地方是空的。开始状态 q0。
计算过程中读写头左右移动,机器内部状态改 变,带子上内容重写。
7
图灵机
非常规意义循 环——不停机 引出可判定性
输出约定 三种输出:接受、拒绝、循环
v1
v2 vm
26
图灵机举例
xL 0L q5 R xR q1 q2百度文库 R L xR 0x, R 0R q4
0 R ,
q3
0x, R xR
R xR
qreject
qaccept
R
27
图灵机举例
例3.5 下面给出图灵机 M1 形式化描述
M1= (Q, , , , q1, qaccept, qreject),
10
M1 的运行示意图
0
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
M
Tape head moves to right
11
M1 的运行示意图
X
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
M
Tape head moves to right
13
M1 的运行示意图
X X
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X X
1
0
0
X X
1
0
0
#
X X
1
0
0
M
Tape head moves to left
14
M1 的运行示意图
例如
: (q, a) = (r, b, L)
18
图灵机的计算方式
w1
w2
…
…
wn
开始时,M 以最左边的 n 个带方格接收输入w=w1w2…wn *,带的其余部分保持空白(即填以空白符),读写头从 最左边的带方格开始运行,注意 不含空字符,故出现在 带上的第一个空字符表示输入的结束。 M 开始运行后,计算根据转移函数所描述的规则进行,如 果 M 试图将读写头从带的最左端再向左移出,即使转移 函数指示的是 L,读写头也停在原地不动。计算一直持续 到它进入接受状态或拒绝状态,此时停机,如果二者都不 发生,则 M 将永远运行下去。
#
X X X X X
M
X X X X X #
Tape head moves to left
X X X X X
X X X X X
#
X X X X X
16
M1 的运行示意图
X X X X X
#
X X X X X
X X X X X
#
X X X X X
M
X X X X X #
Tape head moves to right
X X X X X
X X X X X
#
X X X X X
17
accept
图灵机的形式化定义
定义 3.1
图灵机是一个 7 元组 (Q, , , , q0, qaccept, qreject) (1) Q 是状态集。 (2) 是输入字母表,不包括特殊空白符号 。 (3) 是带字母表,其中 并且 。 (4) : Q× Q × ×{ L, R }是转移函数。 (5) q0 是起始状态。 (6) qaccept 是接受状态。 (7) qreject 是拒绝状态,qaccept≠qreject。
问题:如何区别长计算 与 死循环?
因此,我们喜欢对所有输入都停机的图灵机,永不循环,这 23 种机器为判定器。因为它们总能决定是接受还是拒绝。
图灵机的形式化定义
定义 3.3
如果一个语言能被某一图灵机判定,则称该语言 是图灵可判定的 (Turning decidable)。
也称为递归语言。
可识别与可判定?
25
图灵机的例子
每重复一次第 1 步,消去了一半个数的 0。由于在第 1 步 中,机器扫描了整个带子,故它能够知道它看到的 0 的个 数是奇数还是偶数,如果是大于 1 的奇数,则输入中所含 的 0 的个数不可能是 2 的方幂,此时机器就拒绝。但是, 如果看到的 0 的个数是 1,则输入中所含的 0 的个数肯定 是 2 的方幂,此时机器就接受。 M2= (Q, , , , q1, qaccept, qreject)的形式化描述: Q={q1 , q2 , q3 , q4 , q5 , qaccept, qreject}, ={0}, ={0 , x , □}, 将描述成状态图 开始、接受和拒绝状态分别是q1, qaccept, qreject
1.可识别——接受该语言;
2.可判定——可以不接受该语言。
24
图灵机举例
例3.4 描述 TM M2,它识别的语言是所有由 0 组成、长度为 2 n 的方幂的字符串,即 A={ 02 | n ≥ 0} M2 = “对于输入字符串w: 1) 从左往右扫描整个带子,隔一个字符消去一个0。 2) 如果在第1步之后,带子上只剩下唯一的一个0,则接受。 3) 如果在第1步之后,带子上包含不止一个0,并且0的个数是 奇数,则拒绝。 4) 读写头返回至带子的最左端。 5) 转到第1步。”
计算理论
1
引言
什么是计算? 计算机的基本能力和局限性是什么?
1 若 的展开式中连续有n个5 g ( n) 0 其它情况
2
引言
Alan M. Turing (1912–1954) In 1936, Turing introduced his abstract model for computation in his article “On Computable Numbers,”.
X X
1
0
0
#
X X
1
0
0
X X
1
0
0
#
X X
1
0
0
X X X
0
0
#
X X
1
0
0
X X X
0
0
#
X X
1
0
0
M
Tape head moves to right
15
M1 的运行示意图
X X X X X
#
X X X X
0
X X X X X
_
v1
v2 vm
_
state qaccept
or
state qreject
8
图灵机与有限自动机
状态 控制器
a
a
b
相似性:有限状态集 区别: (1)图灵机在带子上既能读也能写。 (2)图灵机的读写头既能向左也能向右移动。 (3)图灵机的带子是无限长的。 (4)图灵机进入拒绝和接受状体将立即停机。
它的判定语言是 B = { w#w | w {0, 1}* }。 Q = { q1, q2, …, q8 , qaccept, qreject }, = { 0, 1, # } 且 = { 0, 1, #, x, }。 用状态图描述 。 开始、接受和拒绝状态分别是 q1, qaccept, qreject。
9
图灵机
考虑图灵机 M1,它检查语言 B = { w#w | w∈{0,1}* } 的成员 关系。即设计 M1,使得如果输入是 B 的成员,它就接受, 否则拒绝。 M1=“对于输入字符串 w (1) 在 # 两边对应的位置上来回移动,检查这些对应位置是 否包含相同的符号,如不是,或者没有 #,则拒绝,为 跟踪对应的符号,消去所有检查过的符号。 (2) 当 # 左边的所有符号都被消去时,检查 # 右侧是否还有 符号,如果有则拒绝,否则接受。”
22
图灵机的形式化定义
定义 3.2
如果一个语言能被某一图灵机识别,则称该语言 是图灵可识别的 (Turning recognizable)。
也称为递归可枚举语言。
输入上运行一个TM时,可能出现三种结果:
接受、拒绝、循环(仅仅指机器不停机)
对于一个输入,TM有两种方式不接受它:
一种拒绝状态 一种进入循环
19
图灵机的格局
图灵机计算过程中,当前状态、当前带内容和读写头当前 位置组合在一起,称为图灵机的格局。 对于状态 q 和带字母表 的两个字符串 u 和 v,以 uqv 表 示如下格局:当前状态是 q,当前带上的内容是 uv,读写 头的当前位置是 v 的第一个符号,带上 v 的字符最后字符 以后的符号都是空白符。 例如,1011q701111
非形式化描述
1 0 1 1 _ 0 # 1 _
每一步,读写头在 _ 单向无穷带上左右 移动并读写。
L
internal state set Q
R
根据当前状态和字符 xi ,决定 写 移 转三动作 -写 letter, 有存储器 - 左或右移动 - 转移状态 可以作循环语句 磁带相当于数组,可读写。这是增加的重要资源
21
图灵机计算方式的形式化
图灵机 M 接受输入 w ,如果存在格局的序列 Cl, C2, …, Ck 使得: (1) Cl 是 M 在输入 w 上的起始格局; (2) 每一个Ci 产生 Ci+1; (3) Ck 是接受格局。 M 接受的字符串的集合称为 M 的语言,或被 M 识别的语 言,记为 L(M)。
At the same time, Alonzo Church published similar ideas and results. Turing model 成为理论计算科学的标准模型 standard model
3
引言
图灵机(Turing Machine,TM),是计算机的一种简单的 数学模型。 历史上,冯•诺曼计算机的产生就是由图灵机诱发的。 丘奇—图灵论题:一切合理的计算模型都等同于图灵机.
28
图灵机M1的状态图
q1
#R xR
0,1R
#R xR
q2
q8
□ R
q3
#R
0,1R
q4
qaccept
q5
xR
q6
#L xR
0,1,xL
第一步由q1 到 q7 实现, 第二步由其余状态实现
29
q7
0,1L
图灵机举例
例3.6 图灵机 M3 做一些初等算术,它判定的语言
C = { aibjck | i ×j = k,且 i, j, k ≥1}
4
主要内容
3.1 丘奇—图灵论题
3.1.1 图灵机的形式化定义
3.1.2 图灵机的例子
3.2 图灵机的变形
3.2.1 多带图灵机 3.2.2 非确定型图灵机 3.2.3 枚举器 3.2.4 与其他模型的等价性
3.3 算法的定义
3.3.1 希尔伯特问题 3.3.2 描述图灵机的术语
5
3.1 图灵机(Turning Machine)
20
图灵机计算方式的形式化
如果图灵机能合法地从格局 C1 一步进入 C2,则称格局 C1 产生格局 C2。 设 a, b 和 c 是 中的符号,u 和 v 是 * 中字符串,qi 和 qj 是状态,则 uaqibv 和 uqjacv 是两个格局。如果转移函数满 足 (qi , b) = (qj , c, L),则说uaqibv 产生和 uqjacv 。 M 在输入 w 上的起始格局是格局 q0w,表示机器处于起始 状态 q0,并且读写头处于带子的最左端位置,在接受格局 里,状态是 qaccept ,在拒绝格局里,状态是 qreject。接受和 拒绝状态都是停机状态,它们都不再产生新的格局。 由于图灵机只在接受或拒绝状态下才停机,可以等价地将 状态转移函数简化 : Q' × Q × ×{ L, R } 其中 Q' 是取消 qaccept 和qreject 的 Q。
M3=“对于输入字符串 w:
1) 从左往右扫描输入,确认输入具有形式 a*b*c*,否则拒 绝。 2) 读写头回到带子的左端点。 3) 消去一个 a,并向右扫描直到 b 出现。在 b 与 c 之间来回 移动,成对地消去 b 和 c,直到把所有的 b 都消去。如 果 c 全消除后还有 b,则拒绝。 4) 如果还有 a 未消去,则恢复所有已消去的 b,再重复第 3 步。如果所有的 a 都已被消去,则检查所有的 c 是否都 30 已被消去。如果是,则接受,否则拒绝。”
X
1
1
0
0
#
X
1
1
0
0
X
1
1
0
0
#
X
1
1
0
0
M
Tape head moves to left
12
M1 的运行示意图
X
1
1
0
0
#
X
1
1
0
0
X
1
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X
1
1
0
0
6
图灵机
•数组结构
w1 w 2 wn
_ _ _
state q0
初始, 带子上只有输入串w*,其 它地方是空的。开始状态 q0。
计算过程中读写头左右移动,机器内部状态改 变,带子上内容重写。
7
图灵机
非常规意义循 环——不停机 引出可判定性
输出约定 三种输出:接受、拒绝、循环
v1
v2 vm
26
图灵机举例
xL 0L q5 R xR q1 q2百度文库 R L xR 0x, R 0R q4
0 R ,
q3
0x, R xR
R xR
qreject
qaccept
R
27
图灵机举例
例3.5 下面给出图灵机 M1 形式化描述
M1= (Q, , , , q1, qaccept, qreject),
10
M1 的运行示意图
0
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
M
Tape head moves to right
11
M1 的运行示意图
X
1
1
0
0
#
0
1
1
0
0
X
1
1
0
0
#
0
1
1
0
0
M
Tape head moves to right
13
M1 的运行示意图
X X
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X
1
1
0
0
X X
1
0
0
#
X X
1
0
0
X X
1
0
0
#
X X
1
0
0
M
Tape head moves to left
14
M1 的运行示意图
例如
: (q, a) = (r, b, L)
18
图灵机的计算方式
w1
w2
…
…
wn
开始时,M 以最左边的 n 个带方格接收输入w=w1w2…wn *,带的其余部分保持空白(即填以空白符),读写头从 最左边的带方格开始运行,注意 不含空字符,故出现在 带上的第一个空字符表示输入的结束。 M 开始运行后,计算根据转移函数所描述的规则进行,如 果 M 试图将读写头从带的最左端再向左移出,即使转移 函数指示的是 L,读写头也停在原地不动。计算一直持续 到它进入接受状态或拒绝状态,此时停机,如果二者都不 发生,则 M 将永远运行下去。
#
X X X X X
M
X X X X X #
Tape head moves to left
X X X X X
X X X X X
#
X X X X X
16
M1 的运行示意图
X X X X X
#
X X X X X
X X X X X
#
X X X X X
M
X X X X X #
Tape head moves to right
X X X X X
X X X X X
#
X X X X X
17
accept
图灵机的形式化定义
定义 3.1
图灵机是一个 7 元组 (Q, , , , q0, qaccept, qreject) (1) Q 是状态集。 (2) 是输入字母表,不包括特殊空白符号 。 (3) 是带字母表,其中 并且 。 (4) : Q× Q × ×{ L, R }是转移函数。 (5) q0 是起始状态。 (6) qaccept 是接受状态。 (7) qreject 是拒绝状态,qaccept≠qreject。
问题:如何区别长计算 与 死循环?
因此,我们喜欢对所有输入都停机的图灵机,永不循环,这 23 种机器为判定器。因为它们总能决定是接受还是拒绝。
图灵机的形式化定义
定义 3.3
如果一个语言能被某一图灵机判定,则称该语言 是图灵可判定的 (Turning decidable)。
也称为递归语言。
可识别与可判定?
25
图灵机的例子
每重复一次第 1 步,消去了一半个数的 0。由于在第 1 步 中,机器扫描了整个带子,故它能够知道它看到的 0 的个 数是奇数还是偶数,如果是大于 1 的奇数,则输入中所含 的 0 的个数不可能是 2 的方幂,此时机器就拒绝。但是, 如果看到的 0 的个数是 1,则输入中所含的 0 的个数肯定 是 2 的方幂,此时机器就接受。 M2= (Q, , , , q1, qaccept, qreject)的形式化描述: Q={q1 , q2 , q3 , q4 , q5 , qaccept, qreject}, ={0}, ={0 , x , □}, 将描述成状态图 开始、接受和拒绝状态分别是q1, qaccept, qreject
1.可识别——接受该语言;
2.可判定——可以不接受该语言。
24
图灵机举例
例3.4 描述 TM M2,它识别的语言是所有由 0 组成、长度为 2 n 的方幂的字符串,即 A={ 02 | n ≥ 0} M2 = “对于输入字符串w: 1) 从左往右扫描整个带子,隔一个字符消去一个0。 2) 如果在第1步之后,带子上只剩下唯一的一个0,则接受。 3) 如果在第1步之后,带子上包含不止一个0,并且0的个数是 奇数,则拒绝。 4) 读写头返回至带子的最左端。 5) 转到第1步。”
计算理论
1
引言
什么是计算? 计算机的基本能力和局限性是什么?
1 若 的展开式中连续有n个5 g ( n) 0 其它情况
2
引言
Alan M. Turing (1912–1954) In 1936, Turing introduced his abstract model for computation in his article “On Computable Numbers,”.
X X
1
0
0
#
X X
1
0
0
X X
1
0
0
#
X X
1
0
0
X X X
0
0
#
X X
1
0
0
X X X
0
0
#
X X
1
0
0
M
Tape head moves to right
15
M1 的运行示意图
X X X X X
#
X X X X
0
X X X X X
_
v1
v2 vm
_
state qaccept
or
state qreject
8
图灵机与有限自动机
状态 控制器
a
a
b
相似性:有限状态集 区别: (1)图灵机在带子上既能读也能写。 (2)图灵机的读写头既能向左也能向右移动。 (3)图灵机的带子是无限长的。 (4)图灵机进入拒绝和接受状体将立即停机。
它的判定语言是 B = { w#w | w {0, 1}* }。 Q = { q1, q2, …, q8 , qaccept, qreject }, = { 0, 1, # } 且 = { 0, 1, #, x, }。 用状态图描述 。 开始、接受和拒绝状态分别是 q1, qaccept, qreject。
9
图灵机
考虑图灵机 M1,它检查语言 B = { w#w | w∈{0,1}* } 的成员 关系。即设计 M1,使得如果输入是 B 的成员,它就接受, 否则拒绝。 M1=“对于输入字符串 w (1) 在 # 两边对应的位置上来回移动,检查这些对应位置是 否包含相同的符号,如不是,或者没有 #,则拒绝,为 跟踪对应的符号,消去所有检查过的符号。 (2) 当 # 左边的所有符号都被消去时,检查 # 右侧是否还有 符号,如果有则拒绝,否则接受。”
22
图灵机的形式化定义
定义 3.2
如果一个语言能被某一图灵机识别,则称该语言 是图灵可识别的 (Turning recognizable)。
也称为递归可枚举语言。
输入上运行一个TM时,可能出现三种结果:
接受、拒绝、循环(仅仅指机器不停机)
对于一个输入,TM有两种方式不接受它:
一种拒绝状态 一种进入循环
19
图灵机的格局
图灵机计算过程中,当前状态、当前带内容和读写头当前 位置组合在一起,称为图灵机的格局。 对于状态 q 和带字母表 的两个字符串 u 和 v,以 uqv 表 示如下格局:当前状态是 q,当前带上的内容是 uv,读写 头的当前位置是 v 的第一个符号,带上 v 的字符最后字符 以后的符号都是空白符。 例如,1011q701111
非形式化描述
1 0 1 1 _ 0 # 1 _
每一步,读写头在 _ 单向无穷带上左右 移动并读写。
L
internal state set Q
R
根据当前状态和字符 xi ,决定 写 移 转三动作 -写 letter, 有存储器 - 左或右移动 - 转移状态 可以作循环语句 磁带相当于数组,可读写。这是增加的重要资源
21
图灵机计算方式的形式化
图灵机 M 接受输入 w ,如果存在格局的序列 Cl, C2, …, Ck 使得: (1) Cl 是 M 在输入 w 上的起始格局; (2) 每一个Ci 产生 Ci+1; (3) Ck 是接受格局。 M 接受的字符串的集合称为 M 的语言,或被 M 识别的语 言,记为 L(M)。
At the same time, Alonzo Church published similar ideas and results. Turing model 成为理论计算科学的标准模型 standard model
3
引言
图灵机(Turing Machine,TM),是计算机的一种简单的 数学模型。 历史上,冯•诺曼计算机的产生就是由图灵机诱发的。 丘奇—图灵论题:一切合理的计算模型都等同于图灵机.
28
图灵机M1的状态图
q1
#R xR
0,1R
#R xR
q2
q8
□ R
q3
#R
0,1R
q4
qaccept
q5
xR
q6
#L xR
0,1,xL
第一步由q1 到 q7 实现, 第二步由其余状态实现
29
q7
0,1L
图灵机举例
例3.6 图灵机 M3 做一些初等算术,它判定的语言
C = { aibjck | i ×j = k,且 i, j, k ≥1}
4
主要内容
3.1 丘奇—图灵论题
3.1.1 图灵机的形式化定义
3.1.2 图灵机的例子
3.2 图灵机的变形
3.2.1 多带图灵机 3.2.2 非确定型图灵机 3.2.3 枚举器 3.2.4 与其他模型的等价性
3.3 算法的定义
3.3.1 希尔伯特问题 3.3.2 描述图灵机的术语
5
3.1 图灵机(Turning Machine)