📅  最后修改于: 2020-11-26 10:23:23             🧑  作者: Mango
如果TM为任何输入字符串w进入最终状态,则它接受一种语言。如果一种语言被图灵机接受,则它是递归可枚举的(由Type-0语法生成)。
TM决定是否接受一种语言,并针对任何非该语言的输入进入拒绝状态。如果语言是由图灵机决定的,则它是递归的。
在某些情况下,TM不会停止。这样的TM接受语言,但是并不能决定它。
下面借助几个示例说明了设计图灵机的基本准则。
设计一个TM以识别由奇数个α组成的所有字符串。
解
图灵机M可以通过以下移动来构造-
设q 1为初始状态。
如果M在q 1中;在扫描α时,它进入状态q 2并写入B (空白)。
如果M在q 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 |
设计一个图灵机,该图灵机读取表示二进制数的字符串,并擦除该字符串所有前导0。但是,如果字符串仅包含0,则保留一个0。
解
让我们假设输入字符串在字符串的每一端都以空白符号B终止。
图灵机M可以通过以下移动来构造-
设q 0为初始状态。
如果M在q 0中,则在读取0时它将向右移动,进入状态q 1并擦除0。在读取1时,它将进入状态q 2并向右移动。
如果M在q 1中,则在读取0时它将向右移动并擦除0,即,它将0替换为B。到达最左边的1时,它输入q 2并向右移动。如果到达B,即字符串仅包含0,则向左移动并进入状态q 3 。
如果M在q 2中,则在读取0或1时会向右移动。到达B时,它向左移动并进入状态q 4 。这验证了字符串仅包含0和1。
如果M在q 3中,则将B替换为0,向左移动并到达最终状态q f 。
如果M在q 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 |