图灵机

图灵机是一个计算模型, 包括以下几个要素:

1.无限长的带子, 是符号记录的载体。

2.读写头, 可以左右移动, 可以读出和改变带上的符号。

3.状态寄存器, 用于保存图灵机当前的状态。

4.控制规则, 根据读写头的状态和带上的字符改变状态寄存器的值,并确定下一步动作。

图灵机可以用于计算函数值。

例如:f(x,y)=x+y

通常, 变量可以有多种表示方式。如果x=4, 十进制的表示法是"4"; 二进制的表示方式是"100"; 一元数(Unary)表示法则是"1111". 图灵机倾向于使用一元数表示法。

采用4元控制规则:q1S0q2R; q1S1q1S0; q2S0q3S1; q2S1q2R; q3S0q4R; q3S1q3L

编程模拟图灵机的运行过程:

图灵机运行结束时, 得到f(x,y)=5, 仍使用一元数表示法。

结束的状态如图所示:

图灵机是理论计算机。条带对应于输入和输出数据, 控制规则对应于程序。

图灵机的定义是:M=(Q,Σ,Γ,δ,q1,qaccept,qreject), 其中:

控制规则(δ)的几种表示方法:

这些表示法可以互相转换。

加法图灵机δ的5元组表示法:

相比4元组表示法, 5元组表示法的每条控制规则中, 既包含下一步的状态, 又包含下一步的移动方向。

加法图灵机δ的表格表示法:

当前状态当前符号新状态新符号移动方向
q1s1q2s0R
q2s0q3s1L
q2s1q2s1R
q3s0q4s0R

下图是一个实现f(x)=2x​的图灵机对应的状态图:

其中, q1是初始状态, q12是终止状态。此状态图表示法与4元组表示法对应。

图灵机是强大的。凡是程序算法能解决的问题,一定能通过图灵机解决;反过来,凡是图灵机解决不了的问题,任何程序算法也解决不了。