接受的语言和决定的语言


如果 TM 进入任何输入字符串 w 的最终状态,则它接受一种语言。如果一种语言被图灵机接受,它就是递归可枚举的(由 Type-0 语法生成)。

如果 TM 接受语言,则决定一种语言,并对任何非该语言的输入进入拒绝状态。如果一种语言是由图灵机决定的,那么它就是递归的。

在某些情况下,TM 可能不会停止。这样的 TM 接受该语言,但并不决定它。

设计图灵机

下面通过几个例子解释了设计图灵机的基本准则。

实施例1

设计一个 TM 来识别所有由奇数个 α 组成的字符串。

解决方案

图灵机M可以通过以下动作构建 -

  • q 1为初始状态。

  • 如果Mq 1中;当扫描 α 时,它进入状态q 2并写入B(空白)。

  • 如果Mq 2中;扫描α时,它进入状态q 1并写入B(空白)。

  • 从上面的动作可以看出,如果M扫描到偶数个α,则进入状态q 1 ,如果扫描到奇数个α,则进入状态q 2 。因此q 2是唯一的接受状态。

因此,

M = {{q 1 , q 2 }, {1}, {1, B}, δ, q 1 , B, {q 2 }}

其中 δ 由下式给出 -

磁带字母符号 当前状态“q 1 当前状态“q 2
α BRq 2 BRq 1

实施例2

设计一个图灵机,读取表示二进制数的字符串并删除字符串中所有前导 0。但是,如果字符串仅包含 0,则它会保留一个 0。

解决方案

让我们假设输入字符串在字符串的每一端都以空白符号 B 终止。

图灵机M可以通过以下动作构建 -

  • q 0为初始状态。

  • 如果Mq 0中,则在读取0时,它向右移动,进入状态q 1并擦除0。在读取1时,它进入状态q 2并向右移动。

  • 如果Mq 1中,则在读取0时,它向右移动并擦除0,即,它用B替换0。到达最左边的 1 后,它进入q 2并向右移动。如果它到达B,即字符串仅由0组成,则它向左移动并进入状态q 3

  • 如果Mq 2中,则在读取 0 或 1 时,它会向右移动。到达 B 后,它向左移动并进入状态q 4。这验证了该字符串仅包含 0 和 1。

  • 如果Mq 3中,则它用 0 替换 B,向左移动并到达最终状态q f

  • 如果Mq 4中,则在读取 0 或 1 时,它会向左移动。当到达字符串的开头时,即当它读取 B 时,它到达最终状态q f

因此,

M = {{q 0 , q 1 , q 2 , q 3 , q 4 , q f }, {0,1, B}, {1, B}, δ, q 0 , B, {q f }}

其中 δ 由下式给出 -

磁带字母符号 当前状态“q 0 当前状态“q 1 当前状态“q 2 当前状态“q 3 当前状态“q 4
0 BRq 1 BRq 1 或q 2 - OLq 4
1 1Rq 2 1Rq 2 1Rq 2 - 1Lq 4
BRq 1 BLq 3 BLq 4 OLqf _ BRq f