(Please note there's a bit of cruft here - at least as of August 2000 - which I'd fix if I wasn't so sick of Java.)
I have written a perl program to convert from a more convenient (generic) format to HTML. It handles 5-, 6- and 7- tuple formats, and generates output in several forms - HTML (for running the applet), a bitstring for use as the tape for the universal machine, and a grammar in the form of a Post Symbol Manipulation System.
Let B(n) be the maximum number of 1s that a Turing machine with n states with the alphabet {1,B} may print on a tape that is initially blank. The problem of determining B(n) for particular values of n is known as the busy beaver problem. This problem was first studied by Tibor Rado in 1962. Currently it is known that B(1) = 1, B(2) = 4, B(3) = 6, and B(4) = 13, but B(n) is not known for n > 4.
K.H. Rosen, Discrete Mathematics and its Applications, 3rd ed., Addison-Wesley, Reading, Mass., 1993.
So what we're looking for is the machine with the specified number of states that does the most work possible, with the condition that it terminates.
The problem is that the function B(n) is non-computable - meaning that there is provably no algorithm that will explicitly evaluate it for each and every value of n. Enumeration of all (or a representative subset) of the (4+4n)2n machines with n states is not particularly pleasant - it leaves the tester with the sticky situation of proving (non)termination for many non-trivial cases - but systematic categorisation may reduce this number to manageability (for n = 3, n = 4 see the references).
The companion function sigma(n) is assigned the maximum number of state transitions possible for a machine of n states with the proviso that it terminates. Clearly sigma(n) determines the halting predicate for all such machines.
States | B(n) | sigma(n) | Who | |
---|---|---|---|---|
java | 2 | 4 | 6 | Shen Lin / Tibor Rado |
java | 3 | 6 | 13 | Shen Lin / Tibor Rado |
java | 4 | 13 | 96 | Allen Brady |
java | 4 | 13 | 107 | Allen Brady |
My copy of Turing's paper "On computable numbers, with an application to the Entscheidungsproblem" came from the book:
The Undecidable: Basic papers on undecidable propositions, unsolvable problems and computable functions, edited by Martin Davis, Raven Press, 1965.
where work by other luminaries such as Gödel, Church and Kleene is also presented. It was originally printed in the Proceedings of the London Mathematical Society, ser. 2, vol 42 (1936-7), pp230-265, with corrections published in vol 43 (1937), pp544-546 of the same journal.
He also collaborated with Shen Lin on an article "Computer Studies of Turing Machine Problems" in the Journal of the Association for Computing Machinery for April 1965 (volume 12, number 2), pp196-212, where the pragmatic problem of finding the busy beaver with 3 states is discussed.
The book:
K.H. Rosen, Discrete Mathematics and its Applications, 3rd ed., Addison-Wesley, Reading, Mass., 1993.
was the source of the 2-state busy beaver.
Jeffrey Shallit supplied the 3-state busy beaver in his excellent postscript handout on the busy beaver problem, which is part of his Introduction to the Theory of Computing course.
Allen Brady presents the transition tables for two 4-state busy beavers in his article "The Determination of the Value of Rado's Noncomputable Function sigma(k) for Four-State Turing Machines" in the Mathematics of Computation for April 1983 (volume 40, number 162), pp647-665.
Heiner Marxin's busy beaver page has many interesting links.