- 自动机理论教程
- 自动机理论 - 首页
- 自动机理论 - 入门
- 自动机理论 - 历史
- 自动机理论 - 应用
- 自动机理论术语
- 自动机中字符串的基础知识
- 自动机的集合论
- 语言和文法
- 计算理论中的文法
- 由文法生成的语言
- 乔姆斯基文法分类
- 有限自动机
- 确定性有限自动机 (DFA)
- 非确定性有限自动机 (NFA)
- 从 NFA 到 DFA 的转换
- DFA 的最小化
- Moore 机与 Mealy 机
- DFA 的补集
- 正则表达式
- 自动机中的正则表达式
- 自动机中的 Arden 定理
- 将正则表达式转换为有限自动机
- 正则文法的泵引理
- 计算理论中的正则集
- 上下文无关文法
- 上下文无关文法 (CFG)
- 上下文无关文法中的二义性
- 上下文无关语言的封闭性
- 简化上下文无关文法
- 乔姆斯基范式 (CNF)
- 格雷巴赫范式 (GNF)
- 上下文无关文法的泵引理
- 下推自动机
- 下推自动机 (PDA)
- 下推自动机的接受
- 由 CFG 构造 PDA
- 下推自动机和语法分析
- 图灵机
- 图灵机 (TM) 基础
- 图灵机接受的语言
- 多磁带图灵机
- 多轨迹图灵机
- 非确定性图灵机
- 半无限带图灵机
- 线性有界自动机 (LBA)
- 可计算性和不可判定性
- 图灵语言的可判定性
- 不可判定语言
- 图灵机停机问题
- 计算理论中的 Rice 定理
- Post 对应问题 (PCP)
- 自动机理论资源
- 自动机理论 - 快速指南
- 自动机理论 - 资源
- 自动机理论 - 讨论
接受的语言和确定的语言
如果图灵机对任何输入字符串 w 进入最终状态,则它接受该语言。如果图灵机接受一种语言,则该语言是可枚举递归的(由 0 型文法生成)。
如果图灵机接受一种语言并且对语言中不存在的任何输入进入拒绝状态,则它判定该语言。如果图灵机判定一种语言,则该语言是递归的。
在某些情况下,图灵机可能不会停止。这样的图灵机接受该语言,但它并不判定它。
图灵机设计
下面将通过几个例子解释图灵机设计的基本指导原则。
示例 1
设计一个图灵机来识别所有包含奇数个 α 的字符串。
解决方案
图灵机 **M** 可以通过以下步骤构建:
设 **q1** 为初始状态。
如果 **M** 处于 **q1** 状态;扫描到 α 时,它进入 **q2** 状态并写入 **B**(空格)。
如果 **M** 处于 **q2** 状态;扫描到 α 时,它进入 **q1** 状态并写入 **B**(空格)。
从上述步骤可以看出,如果 **M** 扫描到偶数个 α,它将进入 **q1** 状态;如果它扫描到奇数个 α,它将进入 **q2** 状态。因此,**q2** 是唯一的接受状态。
因此,
M = {{q1, q2}, {1}, {1, B}, δ, q1, B, {q2}}
其中 δ 由下式给出:
磁带字母符号 | 当前状态 ‘q1’ | 当前状态 ‘q2’ |
---|---|---|
α | BRq2 | BRq1 |
示例 2
设计一个图灵机,读取表示二进制数的字符串,并擦除字符串中所有前导的 0。但是,如果字符串只包含 0,则保留一个 0。
解决方案
让我们假设输入字符串在字符串的每一端都以空格符号 B 结尾。
图灵机 **M** 可以通过以下步骤构建:
设 **q0** 为初始状态。
如果 **M** 处于 **q0** 状态,读取 0 时,它向右移动,进入 **q1** 状态并擦除 0。读取 1 时,它进入 **q2** 状态并向右移动。
如果 **M** 处于 **q1** 状态,读取 0 时,它向右移动并擦除 0,即用 B 代替 0。到达最左边的 1 时,它进入 **q2** 状态并向右移动。如果它到达 B,即字符串只包含 0,则它向左移动并进入 **q3** 状态。
如果 **M** 处于 **q2** 状态,读取 0 或 1 时,它向右移动。到达 B 时,它向左移动并进入 **q4** 状态。这验证了字符串只包含 0 和 1。
如果 **M** 处于 **q3** 状态,它将 B 替换为 0,向左移动并到达最终状态 **qf**。
如果 **M** 处于 **q4** 状态,读取 0 或 1 时,它向左移动。到达字符串的开头,即读取 B 时,它到达最终状态 **qf**。
因此,
M = {{q0, q1, q2, q3, q4, qf}, {0,1, B}, {1, B}, δ, q0, B, {qf}}
其中 δ 由下式给出:
磁带字母符号 | 当前状态 ‘q0’ | 当前状态 ‘q1’ | 当前状态 ‘q2’ | 当前状态 ‘q3’ | 当前状态 ‘q4’ |
---|---|---|---|---|---|
0 | BRq1 | BRq1 | 0Rq1 | - | 0Lq1 |
1 | 1Rq2 | 1Rq2 | 1Rq2 | - | 1Lq4 |
B | BRq1 | BLq3 | BLqf | 0Lqf | BRqf |