330 likes | 342 Views
James Harland james.harland@rmit.edu.au. Proving Termination and Non-Termination of Busy Beaver Machines. Using an. to catch a. to chase a. otter. beaver. platypus. 01R. 10R. 11R. 11R. a. b. c. h. 01L. 00L. What?. Turing Machines of a particular type: Deterministic
E N D
20th November, 2009 James Harland james.harland@rmit.edu.au Proving Termination and Non-Termination of Busy Beaver Machines Using an to catch a to chase a otter beaver platypus
20th November, 2009 01R 10R 11R 11R a b c h 01L 00L What? • Turing Machines of a particular type: • Deterministic • Symbols are only 0 (blank) and 1 (initially) • Only consider blank input • n states plus a halt state means size is n
20th November, 2009 What? What is the largest number of 1’s that can be printed by a terminating n-state machine?
20th November, 2009 What?
20th November, 2009 What? • Busy Beaver function is non-computable; it grows faster than any computable function (!!) • Various mathematical bounds known • All surpassed in practice • Seems hopeless for n ≥ 7 • Values for n ≤ 5 seem settled (but as yet unproven)
20th November, 2009 Why? • Some enormous numbers here! • `… the poetry of logical ideas’ (Einstein) • Evidence for results is somewhat lacking (“The remaining 250+ cases were checked by hand”) • Should have test data and evidence available • Should be able to automate entire test `Nothing capable of proof should be accepted as true without it’ (Frege) `Nothing capable of automation should be accepted as finished without it’
20th November, 2009 Why? • An n-state (2-symbol) machine of productivity k shows that • bb(n,2) ≥ k • at most n states are needed to print k 1’s What is the minimum number of states (for an n-state 2-symbol machine) needed to print k 1’s? We call this the placid platypus problem [ pp(k) ]
20th November, 2009 Why? • bb(n,2) = k means that pp(k) ≤ n and pp(k+1) ≥ n+1 • pp(2) = pp(3) = pp(4) = 2 • pp(5) = pp(6) = 3 • pp(k) = 4 for k є {7,8,9,10,11,12,13} • pp(k) ≥ 5 for k ≥ 14 • …??? • There seem to be no 5-state 2-symbol machines with productivity 74, 85, 92-7, 100-110, 113, 114, 115, … • Need complete classification to be sure
20th November, 2009 How? • Easy! :-) To find bb(n,m): • Generate all n-state m-symbol machines • Classifying them as terminating or non-terminating • Find the terminating one which produces the largest number of 1’s (or non-zero characters) Only problem is that there are lots of traps …
20th November, 2009 How? • There is a finite but very large set of machines for each size … • Number of machines of size n is O(nn) [ > O(n!) > O(2n) !!] • `Free’ generation of machines quickly becomes impractical • `Free’ generation creates too many trivial machines 01R 10R 11R a b 01R c h 00L, 10R
20th November, 2009 01R 10R 11L a b c h How? • First transition is fixed • Run partial machine • Add a new transition when a `missing’ case happens • Add `halt’ transition last 00L {a}0 -> 1{b}0 -> {a}1 -> {a}01 -> 1{b}1 -> 10{c}0 Generates machines in tree normal form (tnf)
20th November, 2009 How Many?
20th November, 2009 How? • Some non-termination cases are easy • perennial pigeon: repeats a particular configuration • phlegmatic phoenix: tape returns to blank • road runner: “straight to the end of the tape” • meandering meerkat: terminal transition cannot be reached • Hence we check for these first
20th November, 2009 How? Otherwise .. (ie all the easy cases have been checked): • Run the machine for a given number of steps • If it halts, done. • Examine the execution trace for non-termination conjectures • Attempt to show that the hypothesis pattern repeats infinitely • Execute machine for a large number of steps • Give up!
20th November, 2009 How? • 11{C}1 → 11{C}111 → 11{C}11111 … • Conjecture 11{C} 1 (11)N → 11{C} 1(11)N+1 • Start engine in 11{C} 1 (11)N • Terminate with success if we reach 11{C} 1 (11)N+1 (or 11{C} 1 (11)N+2or …) • Halt with failure after a certain number of steps • Main trick is how to deal with (11)N case where N is a variable
20th November, 2009 Observant Otter • Some surprises can be in store .... • 16{D}0 → 118{D}0 → 142{D}0 (!!!) → 190{D}0 • 130{D}0 does not occur … • (this is why two previous instances are needed) • Conjecture in this case is 1N{D}0 → 12N+6{D}0 • or alternatively • 1N{D}0 → (11)N111111{D}0 • These are known as killer kangaroos ...
20th November, 2009 How? • Three main cases: • Wild Wombat • Stretching Stork • Observant Otter • (soon also the Ossified Ocelet) slithering snake resilient reptile maniacal monkey
20th November, 2009 Wild Wombat • X {S} IN Y → ?? {S} I → J {S} • Pointer remains within I • First exits I to the right • State on exit is S • ``Context-free'' X {S} IN Y → X JN {S} Y X IN {S} Y → X {S} JN Y 11 {C} (11)N 011 → 11 (00)N {C} 011 if {C}11 → 0{D}1 →{B}01 → 0{B}1 → 00 {C}
20th November, 2009 Stretching Stork X {S} IN Y → ?? If the wombat doesn't apply and N > 0 Condition N > 0 required to stop this being infinitely applicable X {S} IN Y → X {S} I IN-1 Y 11 {C} (11)N 011 → 11 {C} 11 (11)N-1 011
20th November, 2009 Observant Otter 11 {C} (11)N 01 → … → 111 {C} 1(11)N-1 01 → … → 1111 {C} 1(11)N-2 01 → … → Oi! There is a pattern here! 11 (1)N {C} 01 → …
20th November, 2009 Observant Otter • X {S} IN Y → ?? • Looks through execution history to find a similar pattern • Requires two previous instances before a match is made • Currently only allows decrement of 1 • Calculates new state from patterns • Ossified Ocelet will store these patterns for potential future use • This technique used by Wood in 2008 to evaluate monsters ...
20th November, 2009 Observant Otter • 1111{C}11 • 1011{C}111 • 110{C}1111 • 111111{C}11 • 101111{C}111 • 11011{C}1111 • 1110{C}11111 • 11111111{C}11 Sometimes this is not as simple as it may seem …
20th November, 2009 Implementation • Around 8,000 lines of Ciao Prolog • Needs a thorough clean up; necessary code is around 40% of this size • Versions available at my website • Data available as well • Documentation is a little lacking … • Intention is that other researchers can use data and verify results (this is empirical science!)
20th November, 2009 Blue Bilby • n-state m-symbol machines, n x m ≤ 6 tnf free
20th November, 2009 Ebony Elephant • n-state m-symbol machines, n x m = 8
20th November, 2009 White Whale • n-state m-symbol machines, n x m = 9 or 10 Need to improve the technology before taking this on ...
20th November, 2009 Demon Duck of Doom
20th November, 2009 Universal Turing machines • Quest for the smallest universal TM goes on … • Involves searching similar spaces • Alain Colmerauer (KR’08 talk) • U on code(M)code(w) simulates M on w • Let M = U • U on code(U)code(w) simulates U on w • Let w = blank (and assume code(blank) = blank) • U on code(U) simulates U on blank • Hence pseudo-universality test: M is pseudo-universal if M on code(M) simulates M on blank
20th November, 2009 2-D machines 0 2 1 0 1
20th November, 2009 2-D machines • Can interpret numbers as images … • Have generated some of the smaller cases here • Very basic implementation of emulation • Potentially very interesting loop behaviour here • Strict generalisation of one-dimensional case • No existing work that I have been able to find …
20th November, 2009 Learning? • Ebony Elephant case suggests that `most' machines are boring … • Only 2,667 are either high productivity or unclassified • At most 100,000 of the non-terminators are difficult • The remaining 80% are unexceptional … • Can we find a criterion to identify (at least a substantial fraction) of the unexceptional machines? • Need to identify possible features of machines ...
20th November, 2009 Conclusions & Further Work • Otter still needs some refinements • needs to `dovetail’ with the rest of the engine • some small number of machines resistant to otter (so far) • Some parameters (eg maximum search steps) need to be tweaked • Connections to universal Turing machines and 2-D machines need investigation • New (journal) paper will be out `soon’ • Ebony elephant is close to capture • White whale should be alert and alarmed
20th November, 2009 Conclusions & Further Work • Ebony elephant is close to capture • White whale should be alert and alarmed (``Call me Ishmael’’ ) • Demon Duck of Doom should be alert but not alarmed yet • Machine learning techniques may identify criteria which can reduce search space • Duality between n-state 2-symbol and 2-state n-symbol cases • Lock away the beaver and play with the platypus