简体   繁体   中英

turing machine design 0 and 1

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

design a turing machine that computes the function (transition diagram)

how to keep track of the 0 in the middle? I have tried to do it but can not figure it out

I'll assume you want the tape alphabet to consist only of 0, 1 and - (blank). Our strategy here is a fruitful one when working with single-tape Turing machines: we will bounce back and forth around the 0 in the middle, crossing off 1s as we find them. We will continue until we run out of 1 s and reach a blank. At that point, all that remains on the tape is 1^|mn| as well as n+m+1-|mn| zeroes. Finally, we copy our result to the beginning of the tape (if that's not where it already is, ie, if m > n) and erase the zeroes.

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

Naturally, no TM example would be complete without an example of its execution.

-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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM