f1(1^n01^m)=1^ m-n|
设计计算功能的图灵机(转换图)
如何跟踪中间的0?
我试过了,但想不出来

最佳答案

我假设您希望磁带字母表只包含0、1和-(空白)。在使用单磁带图灵机时,我们的策略是卓有成效的:我们将在中间的0附近来回反弹,在找到1时将其划掉。我们将继续,直到1s用完并达到空白。在这一点上,磁带上剩下的是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

10-08 14:35