图灵机设计0和1

时间:2016-12-01 02:23:10

标签: algorithm turing-machines turing

f1(1 ^ n01 ^ m)= 1 ^ | m-n |

设计一台计算功能的图灵机(转换图)

如何跟踪中间的0? 我试图这样做,但无法弄清楚

1 个答案:

答案 0 :(得分:2)

我假设你想要磁带字母只包含0,1和 - (空白)。在使用单磁带图灵机时,我们的策略是一个富有成效的策略:我们将在中间的0周围来回反弹,当我们找到它们时,我们会越过1秒。我们会一直持续到1秒用完为止。此时,磁带上剩下的所有内容都是1 ^ | m-n |以及n + m + 1- | m-n |零。最后,我们将结果复制到磁带的开头(如果不是它已经存在的地方,即m> n)并擦除零。

Q    s    s'   D    Q'

// read past 1^n
q0   1    1    R    q0

// read through zeroes
q0   0    0    R    q1
q1   0    0    R    q1

// mark out the first 1 remaining in 1^m
q1   1    0    L    q2

// read through zeros backwards
q2   0    0    L    q2

// mark out the last 1 remaining in 1^n
q2   1    0    R    q1

// we were reading through zeroes forward
// and didn't find another 1. n >= m and
// we have deleted the same number from
// the first and last parts so just delete
// zeroes
q1   -    -    L    q3
q3   0    -    L    q3
q3   1    1    L    halt_accept

// we were reading through zeroes backwards
// and didn't find another 1. n < m and we
// accidentally deleted one too many symbols
// from the 1^m part. write it back and start
// copying the 1s from after the 0s back to
// the beginning of the tape. then, clear zeroes.
q2   -    -    R    q4
q4   0    1    R    q5
q5   0    0    R    q5
q5   1    0    L    q6
q6   0    0    L    q6
q6   1    1    R    q4
q5   -    -    L    q7
q7   0    -    L    q7
q7   1    1    L    halt_accept

当然,如果没有执行它的示例,没有TM示例是完整的。

-111110111-   =>   -111110111-   =>   -111110111-
 ^                   ^                   ^
 q0                  q0                  q0

=>   -111110111-   =>   -111110111-   =>   -111110111-
         ^                   ^                   ^
         q0                  q0                  q0

=>   -111110111-   =>   -111110011-   =>   -111110011-
            ^                 ^                 ^
            q1                q2                q2

=>   -111100011-   =>   -111100011-   =>   -111100011-
           ^                   ^                   ^
           q1                  q1                  q1

=>   -111100001-   =>   -111100001-   =>   -111100001-
            ^                 ^                 ^
            q2                q2                q2

=>   -111100001-   =>   -111000001-   =>   -111000001-
         ^                   ^                   ^
         q1                  q1                  q1

=>   -111000001-   =>   -111000001-   =>   -111000001-
            ^                   ^                   ^
            q1                  q1                  q1

=>   -111000000-   =>   -111000000-   =>   -111000000-
             ^                 ^                 ^
            q2                 q2                q2

=>   -111000000-   =>   -111000000-   =>   -111000000-
          ^                 ^                 ^
          q2                 q2                q2

=>   -110000000-   =>   -110000000-   =>   -110000000-
         ^                   ^                   ^
         q1                  q1                  q1

=>   -110000000-   =>   -110000000-   =>   -110000000-
            ^                   ^                   ^
            q1                  q1                  q1

=>   -110000000-   =>   -110000000-   =>   -11000000--
               ^                 ^                 ^
               q1                q3                q3

=>   -1100000---   =>   -110000----   =>   -11000-----
            ^                 ^                 ^
            q1                q3                q3

=>   -1100------   =>   -110-------   =>   -11--------
         ^                 ^                 ^
         q1                q3                q3

=>   -11--------
      ^ 
      halt_accept