计算理论导引 阅读笔记-2

图灵机的形式化

一台图灵机是一个七元组 [2] ,{Q,Σ,Γ,δ,q0,qaccept,qreject},其中 Q,Σ,Γ 都是有限集合,且满足

1.Q 是状态集合;

2.Σ 是输入字母表,其中不包含特殊的空白符;

3.Γ 是带字母表,其中 □∈Γ且Σ∈Γ ;

4. δ:Q×「→Q×Γ×{L,R}是转移函数,其中L,R 表示读写头是向左移还是向右移;

5.q0∈Q是起始状态;

6. qaccept是接受状态。

7.qreject是拒绝状态,且qreject≠qaccept。 [3]

图灵机 M = (Q,Σ,Γ,δ,q0,qaccept,qreject) 将以如下方式运作:

开始的时候将输入符号串 从左到右依此填在纸带的第 号格子上, 其他格子保持空白(即填以空白符)。M 的读写头指向第 0 号格子, M 处于状态 q0。机器开始运行后,按照转移函数 δ 所描述的规则进行计算。例如,若当前机器的状态为 q,读写头所指的格子中的符号为 x, 设 δ(q,x) = (q',x',L), 则机器进入新状态 q', 将读写头所指的格子中的符号改为 x', 然后将读写头向左移动一个格子。若在某一时刻,读写头所指的是第 0 号格子, 但根据转移函数它下一步将继续向左移,这时它停在原地不动。换句话说,读写头始终不移出纸带的左边界。若在某个时刻 M 根据转移函数进入了状态 qaccept, 则它立刻停机并接受输入的字符串; 若在某个时刻 M 根据转移函数进入了状态 qreject, 则它立刻停机并拒绝输入的字符串。

注意,转移函数 δ 是一个部分函数, 换句话说对于某些 q,x, δ(q,x) 可能没有定义, 如果在运行中遇到下一个操作没有定义的情况, 机器将立刻停机。

你可能感兴趣的:(计算理论导引 阅读笔记-2)