📜  构造图灵机,使其语言L = {02n1n | n> = 0}

📅  最后修改于: 2021-08-25 16:49:54             🧑  作者: Mango

先决条件–图灵机

语言L = {0 2n 1 n | n> = 0}表示一种语言,其中我们仅使用2个符号,即0和1。在开始的语言中,其数字为0,后面紧跟数字1的一半。任何属于此类的字符串都将被该语言接受。

例子 :

输入: 001输出:输入: 00001输出: NO输入: \epsilon或空字符串输出:

基本表述–

计算开始:
磁带包含输入字符串w,磁带头位于w的最左侧,图灵机处于启动状态Q0。

基本思路:
磁带头读取w的最左边的符号,即0,并使之为空白,然后在遍历字符串的最右边1并将其设为空白之后,将下一个最左边的0变为空白。在第n种方法中,我们将字符串缩减为0 2n-2 1 n-1 。如果该字符串属于语言L,则最后将留空字符串,并因此被机器接受。

所用符号的含义:
R,L –任一侧的一个单元的移动方向。
B空白
0,1 –要测试其组合字符串的符号。

工作程序:

  • 步骤1:
    众所周知,字符串开头的零个数是个数的两倍。因此,我们首先将前两个零设为空白,然后从状态Q0转到Q1,再从状态Q1转到Q2。
  • 第2步:
    将它们设置为Blank后,我们将遍历字符串的末尾,直到在状态Q3中获得最右边的1并将其设置为Blank到达状态Q4。
  • 步骤3:
    现在,我们将向后移动直到获得字符串最左边的零,然后从Q4返回到状态Q0。
  • 第四步:
    我们只是通过使最左边的两个零为空白和最右边的1为空白来减少字符串,如果该字符串属于该语言,则它将被保留为空,因此在状态Q5(即最终状态)下被接受。如果字符串为空,则在第5季度也将被接受。