📜  接受的语言和确定的语言

📅  最后修改于: 2020-11-26 10:23:23             🧑  作者: Mango


如果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 }}

δ由-

Tape alphabet symbol Present State ‘q1 Present State ‘q2
α BRq2 BRq1

例子2

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

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

图灵机M可以通过以下移动来构造-

  • q 0为初始状态。

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

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

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

  • 如果Mq 3中,则将B替换为0,向左移动并到达最终状态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 }}

δ由-

Tape alphabet symbol Present State ‘q0 Present State ‘q1 Present State ‘q2 Present State ‘q3 Present State ‘q4
0 BRq1 BRq1 ORq2 OLq4
1 1Rq2 1Rq2 1Rq2 1Lq4
B BRq1 BLq3 BLq4 OLqf BRqf