410 likes | 602 Views
Toward Conquering the -Cracking (“ Busy Beaver”) Problem presenters: OK, BvH, SB 28 January 2004. Owen Kellett Kyle Ross Bram van Heuveln Selmer Bringsjord Kostas Arkoudas Marc Destefano Boleshaw Szymanski Carlos Varela Shailesh Kelkar Department of Cognitive Science
E N D
Toward Conquering the-Cracking (“Busy Beaver”) Problempresenters: OK, BvH, SB28 January 2004 Owen Kellett Kyle Ross Bram van Heuveln Selmer Bringsjord Kostas Arkoudas Marc Destefano Boleshaw Szymanski Carlos Varela Shailesh Kelkar Department of Cognitive Science Department of Computer Science (SB, Chair) Rensselaer AI & Reasoning (RAIR) Lab (SB, Director) RPI Troy NY 12180 USA
The Rensselaer AI & Reasoning Lab(The RAIR Lab) Wargaming Cracking Project; Intelligent Tutoring Systems (mathematical logic) Over $1million internal seeding Slate (Intelligence Analysis) Item generation (theorem proving-based generation) synthetic characters/psychological time
The Busy Beaver ProblemGeneral Version • In general, the busy beaver problem is to find the ‘most productive’ Turing machine with a given state and symbol set. • The ‘productivity’ of a Turing machine can be defined in many ways: • The number of symbols written • The number of steps taken • The number of cells moved away from the starting cell • The number of non-blank symbols on tape • Etc. • Note: Non-halting machines will set almost any of these numbers to infinity, so non-halting machines will be excluded from consideration.
Standard Settings • Some standard settings for the Busy Beaver Problem are: • The alphabet consists of a blank and a non-blank • The Turing Machine starts on an empty tape. • Productivity is the number of non-blank symbols left on the tape
Formalizing the Problem • n: number of states • M(n): set of TM’s with n states and binary alphabet • Prod(M): number of non-blank symbols left on tape by machine M, when started on empty tape. • Busy Beaver Problem: Find BB(n) = max {Prod(M) | M M(n)} • Any machine M M(n) for which Prod(M) = BB(n) is called a Busy Beaver. • Rado defined the problem and proved that BB(n) is uncomputable (1962). • However, we can find individual values BB(n) for small n.
Variations of the Problem • We can still define a variety of Busy Beaver problems: • Do we use quadruple or quintuple machines? • How does the machine come to a halt? • Are there any restrictions on the output configuration? • Standard configuration: head positioned at leftmost 1 (non-blank) of consecutive string of 1’s on otherwise empty tape • Anything goes quintuple formulation quadruple formulation explicit halt implicit halt
Taxonomy of BB Problems BB Quintuples Quadruples Anything goes Anything goes Standard config. ? ? Explicit Halt State Explicit Halt State Implicit Halt State Explicit Halt State Implicit Halt State ? B(n) (Boolos & Jeffrey, Turing’s World) R(n) O(n) (Oberschelp et al.) P(n) (Pereira et al.) (n) (Rado)
Problems in determining BB(n) • Turing unsolvable • Large search space • Implicit halt: |M(n)|=(4n+1)2n • Explicit halt: |M(n)|=(4n+4)2n • 4 possible actions for each of n next states • For implicit machines: 1 no-action transition to halt-state • For explicit machines: 4 possible actions to halt-state • 2n possible transitions
B(5)-11 B(5)-11-isomorph Inefficiency: Isomorphisms
B(4)-5-u1 B(4)-5-u2 Inefficiency: Unused Transitions
Tree Normalization Improvement 100 99 98 97 reduction (in per centage of machines analysed) 96 95 94 93 2 3 4 n (number of states) Improvement from Normalization
Inefficiency: Empty Tape Machine • machine reaches an empty tape after 1 or more shifts • any machine that does not write 1 as its first action is such a machine
B(5)-11 B(5)-11-mirror Inefficiency: Mirror Machines
Optimizations Improvement 100 99 98 reduction (in per centage of machines analysed) 97 Tree Normalization First-Write 96 Optimization First-Move Optimization 95 94 2 3 4 5 n (number of states) Improvement from Optimizations
General Algorithm thus far: • Begin with root machine (single state with no transitions) on stack • Initialize best machine as root machine • While stack is not empty • Pop machine m off of stack • If m is a non-halter, discard m and continue at the beginning of the loop • Run m until it halts • If m halts in the halt state (for the purposes of this algorithm we will consider an implicit machine to have a halt state where no action is performed when transitioning to it) • Compare m’s productivity to best machine and update if necessary • Else • Generate m’s children in the optimized fashion described • Push m’s children onto the stack Problem: What if m is a non-halter?
Solution: Non-halt detection • Step Limit: • Run a machine for a fixed number of steps. Problem: if it hasn’t halted, it may still halt at some later point. • Also, Halting problem: • There is no generalized algorithm that will take as input machine m and return whether or not m halts • Fortunately, algorithms can be designed to test for specific non-halting behaviors • By adding such detection routines to the tree-normalization algorithm from the previous slide, we obtain an algorithm A based is such that for any machine m: • A eventually declares that m halts (m is a halter) • A eventually declares that m does not halt (m is a non-halter) • A eventually declares that it doesn’t know whether m halts or not (m is a holdout)
Backtracking q[2]x0 → q[3]xR 021 q[3]x1 → q[0]xL 113 q[0]x1 → halt 10 013 101 Local tapes match, continue Does not match! Non-halter!
Subset Loops • A Turing Machine M is classified as a subset loop if • There is a set of states S such that every possible transition from each state in S is defined • Every transition defined from a state in S is a transition to another state in S • During execution, at some point the machine enters one of the states in S
0 State 01 State 1 10 State 2 100 State 3 1000 State 4 10000 State 5 10000 State 5 10000 State 5 10000 State 510000 State 5010000 State 3 010000 State 4010000 State 2 010000 State 3010000 State 10010000 State 01010000 State 1 1010000 State 2 1010000 State 3 1010000 State 11010000 State 001010000 State 4 01010000 State 501010000 State 3 01010000 State 401010000 State 2 01010000 State 301010000 State 1001010000 State 0101010000 State 1 101010000 State 2 101010000 State 3 101010000 State 1101010000 State 0 A machine is classified as a simple loop if (given words of arbitrary length X, Y, V, and C and state s): The following tape configuration is reached: 0*[Y][sX][C]0* -and one of the following- 1: The same tape configuration is reached at a later point -or- 2: The following tape configuration is reached at a later point: 0*[Y][sX][V][C]0* Between these points, the read head never moves past the right edge of the initial X The corresponding mirror of the above specification also identifies a simple loop Simple Loops 0* [Y] [X] [C] 0* 0* [Y] [X] [V] [C] 0*
Christmas Trees 1101010 State 1 1101010 State 2 1101010 State 0 1111010 State 1 1111010 State 2 1111010 State 0 1111110 State 1 1111110 State 2 1111110 State 0 1111111 State 1 11111110 State 2 11111110 State 3 11111110 State 0 11111010 State 3 11111010 State 3 11111010 State 0 11101010 State 3 11101010 State 3 11101010 State 0 10101010 State 310101010 State 3010101010 State 0110101010 State 1 110101010 State 2 110101010 State 0 111101010 State 1 111101010 State 2 111101010 State 0 111111010 State 1 111111010 State 2 111111010 State 0 111111110 State 1 111111110 State 2 111111110 State 0 111111111 State 1 1111111110 State 2 0 State 01 State 1 10 State 210 State 3010 State 0110 State 1 110 State 2 110 State 0 111 State 1 1110 State 2 1110 State 3 1110 State 0 1010 State 31010 State 301010 State 011010 State 1 11010 State 2 11010 State 0 11110 State 1 11110 State 2 11110 State 0 11111 State 1 111110 State 2 111110 State 3 111110 State 0 111010 State 3 111010 State 3 111010 State 0 101010 State 3101010 State 30101010 State 0 • In the general sense, a christmas tree non-halter sweeps back and forth across the tape in a repeatable manner:
Christmas Trees 11111110 State 2 11111110 State 3 11111110 State 0 11111010 State 3 11111010 State 3 11111010 State 0 11101010 State 3 11101010 State 3 11101010 State 0 10101010 State 310101010 State 3010101010 State 0110101010 State 1110101010 State 2110101010 State 0111101010 State 1111101010 State 2111101010 State 0111111010 State 1111111010 State 2111111010 State 0111111110 State 1111111110 State 2111111110 State 0111111111 State 11111111110 State 2 0*[U][X][X][Vs]0* 0*[U’][Y][Y][V’]0* 0*[U’][Z][Z][V’’]0* = 0*[U][X][X][X][V]0*
Multi-sweep Christmas Trees Christmas Trees Double-sweep Christmas Trees • The machine transforms the tape much like a normal Christmas tree, however, it takes more than one sweep across the tape to complete a cycle 0*[U][X][X][X][V]0* 0*[U][X][X][X][V]0* 0*[U’][Y][Y][Y][V’]0* 0*[U’][Y][Y][Y][V’]0* 0*[U’][Z][Z][Z][V’’]0* 0*[U’][Z][Z][Z][V’’]0* = 0*[U][X][X][X][X][V]0* 0*[U’’][M][M][M][V’’’]0* 0*[U’’][N][N][N][V’’’’]0* = 0*[U][X][X][X][X][V]0*
Counters 0 State 01 State 110 State 2100 State 3101 State 0101 State 1101 State 1101 State 2101 State 3100 State 21000 State 31001 State 01001 State 11001 State 11001 State 11001 State 21001 State 31011 State 01011 State 11011 State 11011 State 21011 State 31001 State 21001 State 31000 State 210000 State 3 10001 State 010001 State 110001 State 110001 State 110001 State 110001 State 210001 State 310101 State 010101 State 110101 State 110101 State 210101 State 310001 State 210001 State 310011 State 010011 State 110011 State 110011 State 110011 State 210011 State 310111 State 010111 State 110111 State 110111 State 210111 State 310011 State 2 *Note: this machine generates binary numbers that read from right to left rather than the conventional left to right
Future Work/Goals • Certification of our records (Athena) • Continued development of non-halt detection routines • Christmas tree variations • Counter variations (base 3, base 4, etc..) • With only 221 holdouts left, explicit confirmation of BB(5) is imminent • novel techniques for detecting non-halting • Additional tree normalization optimizations • Identical state machines? • Visual Reasoning (relates to new representations in support of novel non-halter detection) • Treat issues in Logico-Mathematical Foundations • Distributed computing (SALSA) • Working implementation using the developmental language SALSA to allow the potential for massive distributed computation
Visual Reasoning • The behavior of certain machines can sometimes be generalized by observing them in action. • Indeed, notice that we have named certain classes of machines, such as ‘Christmas Trees’, exactly by observing a graphical display of their bevhavior. • Maybe a system component can be created that can be used to reason about the behavior of a Turing machine based on a visual representation of (the behavior of) that Turing machine rather than a more traditional linear symbolic representation.
The Mathematical Landscape Space of all information processes Analog Chaotic Neural Networks, Zeus Machines, Weyl Machines, P/Poly Machines, … Hypercomputation engineering on the busy beaver? The “Turing Limit” Turing Machines, Algorithms, Programs, …