| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 322.1 |  | PIPA::JANZEN |  | Tue Jul 23 1985 15:43 | 5 | 
|  | 4
1 B R 1
1 One R 2
2 One R 2
2 B L 2
 | 
| 322.2 |  | PIPA::JANZEN |  | Tue Jul 23 1985 15:46 | 4 | 
|  | ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE B ONE ONE ONE ONE ONE ONE ONE ONE ONE 
ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE B ONE ONE ONE ONE ONE ONE ONE ONE ONE 
ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE B ONE ONE ONE ONE ONE ONE ONE ONE ONE 
ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE B ONE ONE ONE ONE ONE ONE ONE ONE ONE 
 | 
| 322.3 |  | PIPA::JANZEN |  | Wed Jul 24 1985 10:03 | 5 | 
|  | 4
1 B One 2
1 One B 2
2 B R 1
2 One R 1
 | 
| 322.4 |  | PIPA::JANZEN |  | Wed Jul 24 1985 13:07 | 23 | 
|  | The first machine doesn't do much.
The second machine is a bit-inverter.
This machine is an unary adder.
There is a bug.  Add two lines:
Before the loop to 100 put:
Instruction_Cycle_Count := 0;
After the READLN; put:
Instruction_Cycle_Count := Instruction_Cycle_Count + 1;
Tom
12
1 B R 1
1 One One 2
2 One R 2
2 B One 3
3 One R 3
3 B L 4
4 B L 4
4 One B 5
5 B L 5
5 One L 6
6 One L 6
6 B R 6
 | 
| 322.5 |  | PLDVAX::JANZEN |  | Fri Jan 31 1986 08:58 | 7 | 
|  | I made a nicer microturing.  It is in [TIGER]::STD:[janzen.public]turing.pas
It writes on the same line on VT100 instead of scrolling.  It prints out
the
next instruction and state for debugging purposes.  It halts for undefined
states.
Tom
 | 
| 322.6 | a turing LSEDIT????? | ANGORA::JANZEN | Tom LMO2-0/E5 2795421 | Wed May 14 1986 08:58 | 15 | 
|  | There is now a language sensitive editor define file for turing.
It is at angora::std:[janzen.public]turing.lse for a limited time.
If you can't get it, ask.
when you get it, type to VMS 4
$ lsedit /init=your_device_is_mandatory:[your_directory]turing.lse
then in lse,
LSE> set language turing
then happily begin expanding.
Ask by mail for the current version of turing, an 80-space-long tape
turing machine for pedagogical purposes and debug data.
TOm
 | 
| 322.7 | My tribute to 1987 on its last day. | ZFC::DERAMO | Daniel V. D'Eramo | Thu Dec 31 1987 16:06 | 26 | 
|  |      I decided to pay tribute to the year that was by creating a
     Turing machine program to "write out" 1987.  The transition
     table is in the next reply.
     Some details:
     It has 32 states [can you do 1988 in fewer?].  Start it up
     in state 1 on a tape full of blanks.  On a two way infinite
     tape, the 796,374th transition will cause the tape head to
     move left from the starting tape cell, moving the tape head
     into state 30 scanning a blank.  That combination has no
     transition table entry, so the machine will halt.  402
     blanks to the right of the tape head, not counting the blank
     it is on, will be 1987 consecutive ones!  No tape cells to
     the right of the ones will have been scanned.  Happy Old Year!
     For a one-way infinite tape, you can let that last move
     "fall off" the left end of the tape, or add a new initial
     state 0 with transition table entry "0 B R 1" to start one
     square further to the right.  Either way the final contents
     will be 1987 ones.
     Dan
     In about a week I suppose I'll "document" it. :^)
 | 
| 322.8 | "1987" Turing machine | ZFC::DERAMO | Daniel V. D'Eramo | Thu Dec 31 1987 16:07 | 60 | 
|  | 59
 1 B   One  1
 1 One R    2
 2 B   One  2
 2 One R    3
 3 B   One  3
 3 One R    4
 4 B   R    5
 5 B   One  5
 5 One R    6
 6 B   One  6
 6 One R    7
 7 B   One  7
 7 One R    8
 8 B   One  8
 8 One R    9
 9 B   One  9
 9 One R   10
10 B   One 10
10 One R   11
11 B   One 11
11 One R   12
12 B   One 12
12 One R   13
13 B   One 14
14 B   R   15
14 One R   14
15 B   One 15
15 One L   16
16 B   L   16
16 One R   17
17 B   R   17
17 One R   18
18 B   One 19
18 One R   18
19 B   One 20
19 One R   19
20 B   One 21
20 One R   20
21 B   One 22
21 One R   21
22 B   One 23
22 One R   22
23 B   One 24
23 One R   23
24 B   L   25
24 One L   24
25 B   L   25
25 One B   26
26 B   L   27
27 B   L   28
27 One One 16
28 B   L   28
28 One B   29
29 B   L   30
30 One R   31
31 B   R   31
31 One R   32
32 B   L   14
32 One R   32
 | 
| 322.9 | How the "1987" TM works | ZFC::DERAMO | Daniel V. D'Eramo | Sat Jan 09 1988 18:14 | 33 | 
|  |      The 1987 TM in reply .8 works as follows.  There are three
     sections, states 1-13, states 14-27, and states 28-32.
     The first section initializes the tape to have 3 ones, 1
     blank, and 9 ones, and ends scanning the rightmost of the 9
     ones in the first state of the second section.
     The second section is a subroutine.  If it begins scanning
     the rightmost of n ones, then it ends scanning the blank at
     the left of the ones, with the ones having been replaced
     with 6n+1 ones.  The 6n+1 ones start on the second cell
     after the "input" ones.  The state at the end is the first
     state of the third section.
     The third section moves left to the block of [initially 3]
     ones left by the first section.  It deletes the rightmost
     one, to mark that the "subroutine" second section has been
     run.  If any ones remain of that block the second section is
     "called" again.  If the last of the 3 ones was erased, the
     TM halts.
     After 3 calls to the n -> 6n+1 subroutine starting with n=9,
     there are 9 -> 55 -> 331 -> 1987 contiguous ones on the
     tape.
     The inner workings of the 6n+1 section mirror those of the
     TM as a whole.  First a single one is written to the right
     of the "input."  Then 6 more ones are written at the right
     of the growing section of ones and 1 of the "input" ones is
     erased.  If any of the original ones remain the "6 more"
     section is repeated, until the last "input" one is erased.
     Dan
 | 
| 322.10 | description of a "1988" TM | ZFC::DERAMO | Daniel V. D'Eramo | Sat Jan 09 1988 18:17 | 36 | 
|  |      Re .7
>>   It has 32 states [can you do 1988 in fewer?].
     The following TM has 23 states (41 transition table entries)
     compared to 32 states (59 entries) for the 1987 TM.  It
     needs a two way infinite tape, as after 1,589,674
     transitions it is 12 cells to the left of its starting cell
     (this being as far left as it goes), in state 21 scanning a
     blank.  That combination has no transition table entry, so
     the TM will halt.  Far to the right are 1988 contiguous
     ones.  No tape cells to the right of the ones will have been
     scanned.  The rightmost one is 2640 cells to the right of
     the starting cell.
     The Computer Recreations section of the August 1984
     Scientific American magazine gave the transition table for a
     five state TM (found by Uwe Schult of Hamburg, West [?]
     Germany) that starts with a blank tape and ends with 501
     ones on the tape.  The TM's used there were different than
     used here -- at each transition the tape was written *and*
     the head moved, here only one of two may happen.  I "ported"
     Schult's machine; it is states 1-9 of the 1988 TM.   States
     10-12 and state 4 scanning a one delete the rightmost four
     ones.  The remaining states substitute 4 ones for each of
     the remaining 497 ones, finally halting with 1988 contiguous
     ones on the tape.  The 501 ones of the first section are not
     contiguous, but the embedded blanks only occur one at a
     time.  The leftmost of these ones can be found because it
     has two consecutive blanks to its left.
     Dan
     These little guys may have a reputation for being difficult
     to program, but it's not really true, building these TM's is
     relatively straightforward.
 | 
| 322.11 | "1988" Turing machine | ZFC::DERAMO | Daniel V. D'Eramo | Sat Jan 09 1988 18:18 | 42 | 
|  | 41
 1 B   One  6
 1 One B    6
 2 B   One  7
 2 One R    4
 3 B   One  8
 3 One B    8
 4 B   R    5
 4 One B   10
 5 B   One  9
 5 One R    1
 6 B   L    3
 6 One R    2
 7 One R    3
 8 B   R    2
 8 One L    1
 9 One L    3
10 B   L   10
10 One B   11
11 B   L   11
11 One B   12
12 B   L   12
12 One B   13
13 B   One 13
13 One R   14
14 B   One 14
14 One R   15
15 B   One 15
15 One R   16
16 B   One 17
17 B   L   18
17 One L   17
18 B   L   18
18 One B   19
19 B   L   20
20 B   L   21
20 One R   22
21 One R   22
22 B   R   22
22 One R   23
23 B   One 13
23 One R   23
 | 
| 322.12 | re "small" machines that "compute" n | LISP::DERAMO | Daniel V. {AITG,LISP,ZFC}:: D'Eramo | Sun Aug 21 1988 09:31 | 11 | 
|  |      Define the function F on the positive integers by
     
          F(n) = the least positive integer k such that there
                 is a k state Turing machine which when started
                 on a blank tape will terminate with n ones
                 on the tape.
     
     Describe an algorithm for computing F, or else show that
     F is not Turing computable.
     
     Dan
 | 
| 322.13 |  | AITG::DERAMO | Daniel V. {AITG,ZFC}:: D'Eramo | Tue Nov 15 1988 17:35 | 57 | 
|  |      
>>    <<< Note 322.12 by LISP::DERAMO "Daniel V. {AITG,LISP,ZFC}:: D'Eramo" >>>
>>                   -< re "small" machines that "compute" n >-
>>
>>     Define the function F on the positive integers by
>>     
>>          F(n) = the least positive integer k such that there
>>                 is a k state Turing machine which when started
>>                 on a blank tape will terminate with n ones
>>                 on the tape.
>>     
>>     Describe an algorithm for computing F, or else show that
>>     F is not Turing computable.
     Suppose there was a Turing machine M1 with n1 states that
     computed F.  Use it as a subroutine to construct a machine
     M2 with n2 states that takes input n and returns the least
     nonnegative integer i such that F(i) > n.  For example, M2
     can use M1 to compute F(i) for i = 0, 1, 2, ... until it
     finds an i such that F(i) > n.  By the way, such an i must
     exist because there are only finitely many Turing machines
     with n or fewer states.
     
     Let J be a positive integer which will be specified later. 
     Construct a Turing machine M3 which acts as follows:  when
     started with a blank tape, it first writes out J ones.  This
     requires J states, ending up in state J+1 scanning to the
     right of the block of ones just written.  The next few
     states square the block of ones to the left of the call
     being scanned.  This squaring subroutine takes a fixed
     number of states I, which does not depend on J.  Finally,
     after the square of J is computed, an M2 subroutine (with n2
     states) uses this block of J^2 ones and computes the
     "M2" function described in the previous paragraph.
     
     From the description of M3 we see that is has J + I + n3
     states, or J + C for some fixed constant C which does not
     depend on J.  When started with a blank tape, M3 ends up
     having written "M2 of J^2" ones on the tape.  So M3 is a
     program with J + C states which writes out J^2 ones.  Now
     select J^2 so that J^2 > J + C.  For example, if C is 1000
     then J = 33 will do.  This can be done because C is fixed
     and does not depend on J.  Now "M2 of J^2" is a number so
     large that no machine with J^2 or fewer states can write out
     that many ones when started with a blank tape.  But M3 is a
     machine with J + C < J^2 states which does write out that
     many ones.  This is a contradiction, and so the assumption
     that a Turing machine M1 exists that computes F is false.
     
     This proof is essentially the same as the Scientific
     American article's proof of a few years ago that showed that
     the Busy Beaver function is not Turing computable.  The
     Busy Beaver function is defined as BB(n) = the greatest
     numbers of ones that an n state Turing machine will write on
     the tape when started with a blank tape.
     
     Dan
 |