图灵机
图灵机是一个计算模型, 包括以下几个要素:
1.无限长的带子, 是符号记录的载体。
2.读写头, 可以左右移动, 可以读出和改变带上的符号。
3.状态寄存器, 用于保存图灵机当前的状态。
4.控制规则, 根据读写头的状态和带上的字符改变状态寄存器的值,并确定下一步动作。
图灵机可以用于计算函数值。
例如:
通常, 变量可以有多种表示方式。如果, 十进制的表示法是"4"; 二进制的表示方式是"100"; 一元数(Unary)表示法则是"1111". 图灵机倾向于使用一元数表示法。
采用4元控制规则:; ; ; ; ;
编程模拟图灵机的运行过程:
图灵机运行结束时, 得到, 仍使用一元数表示法。
结束的状态如图所示:
图灵机是理论计算机。条带对应于输入和输出数据, 控制规则对应于程序。
图灵机的定义是:, 其中:
- .
- 起始(start)状态、接受(accept)状态和拒绝(reject)状态分别为, , .
- 输入符号集(Input Alphabet) .
- 条带字符集(Tape Alphabet) ,包含一个空符号(Blank Symbol): . 这里,但. .
- , 其中表示左右移动。
控制规则()的几种表示方法:
- 4元组(4-Tuple)表示法
- 5元组(5-Tuple)表示法
- 表格(Table)表示法
- 状态图(State Diagram)表示法
这些表示法可以互相转换。
加法图灵机的5元组表示法:
相比4元组表示法, 5元组表示法的每条控制规则中, 既包含下一步的状态, 又包含下一步的移动方向。
加法图灵机的表格表示法:
当前状态 | 当前符号 | 新状态 | 新符号 | 移动方向 |
---|
q1 | s1 | q2 | s0 | R |
q2 | s0 | q3 | s1 | L |
q2 | s1 | q2 | s1 | R |
q3 | s0 | q4 | s0 | R |
下图是一个实现的图灵机对应的状态图:
其中, 是初始状态, 是终止状态。此状态图表示法与4元组表示法对应。
图灵机是强大的。凡是程序算法能解决的问题,一定能通过图灵机解决;反过来,凡是图灵机解决不了的问题,任何程序算法也解决不了。