the busy beaver, the placid platypus and the universal unicorn
DESCRIPTION
James Harland [email protected]. The Busy Beaver, the Placid Platypus and the Universal Unicorn. Overview. Busy beaver problem and similar problems Machine execution techniques Searching large numbers of machines Universal Turing machines Connections with other areas. - PowerPoint PPT PresentationTRANSCRIPT
The Busy Beaver, the Placid Platypus and the Universal
Unicorn
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
James Harland
Overview
Beaver, Platypus, Unicorn …
Busy beaver problem and similar problems
Machine execution techniques
Searching large numbers of machines
Universal Turing machines
Connections with other areas
RMIT 1st August, 2014
Overview
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Busy beaver problem and similar problems
Machine execution techniques
Searching large numbers of machines
Universal Turing machines
Connections with other areas
Overview
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
‘Organic’ theoretical computer science
Exploration of theoretical concepts by software tools
Mix of empirical and theoretical methods
What?
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
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
a b c h11R01R
00L
10R
01L
11R
What?
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
What is the largest number of 1’s that can be printed by a terminating n-state machine?
n #1’s (productivity) #steps
1 1 1
2 4 6
3 6 21
4 13 107
5 ≥ 4098 ≥ 47,176,870 (??)6 ≥ 3.51×1018,276 ≥ 7.41×1036,534 (!!)
What?
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
n m #1’s #steps
2 2 4 6
3 2 6 21
2 3 9 38
4 2 13 107
2 4 2,050 3,932,964
3 3 374,676,383 119,112,334,170,342,540
5 2 ≥ 4098 ≥ 47,176,870
2 5 ≥ 1.7 × 10352 ≥ 1.9 × 10704
6 2 3.51×1018276 ≥ 7.41×1036534
4 3 ≥ 1.383 × 107036 ≥ 1.025 × 1014072
3 4 ≥ 3.743 × 106518 ≥ 5.254 × 1013036
2 6 ≥ 1.903 × 104933 ≥ 2.415 × 109866 HERE BE DRAGONS!
What?
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
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)
Why?
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
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’
Why?
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
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) ]
Why?
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
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
Executing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Marxen and Buntrock (1990): macro machines
Treat a sequence of k characters as a single ‘symbol’
Avoids repetition of previous sequences
Significant speed up
Need to choose k in advance
Holkner (2004): loop prediction
{b}(01)1001 -> (11)100 {b}1
State
Input InDir Output
OutDir
NewState
b 01 l 11 r b
Executing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
What do the monsters do?
5x2 state champion (terminates in 47,176,870 steps)
Step Configuration
12393 001111{b}(001)66100
12480 001(111)6{b}(001)63100
12657 001(111)11{b}(001)60100
… …
33120 001(111)106{b}(001)3100
… …
47176870 101{h}(001)4095100
20,000+ steps in 1
Executing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
5x2 state champion takes 11 otter steps
Otter Steps Predicted
1 267
2 2,235
3 6,840
4 20,463
5 62,895
6 176,040
7 500,271
8 1,387,739
9 3,878,739
10 10,830,672
11 30,144,672
Executing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Macro machines + loop prediction + observant otter can cope with all known monsters (!!)
Size Ones Hops Otters Otter Steps
2x4 90 7195 2 64%
2x4 2050 3932964 8 99%
3x3 17338 127529109 17 > 99%
3x3 95524079 (16 digits) 17 > 99%
3x3 374676383 (18 digits) 60 > 99%
5x2 4098 47,176,870 11 > 99%
5x2 4098 11,798,796 10 > 99%
5x2 4097 23,554,764 74 > 99%
2x5 (31 digits) (62 digits) 168 > 99%
2x5 (106 digits) (212 digits) 593 > 99%
2x5 (353 digits) (705 digits) 1993 > 99%
Executing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Size Ones Hops Otters Otter Steps
6x2 (18268 digits) (36535 digits) 30345 > 99%
6x2 (10567 digits) (21133 digits) 99697 > 99%
6x2 (1440 digits) (2880 digits) 8167 > 99%
6x2 (882 digits) (1763 digits) 2211 > 99%
4x3 (7037 digits) (14073 digits) 25255 > 99%
4x3 (6035 digits) (12069 digits) 34262 > 99%
4x3 (4932 digits) (9864 digits) 57368 > 99%
3x4 (6519 digits) (13037 digits) 13667 > 99%
3x4 (2373 digits) (4745 digits) 13465 > 99%
3x4 (2356 digits) (4711 digits) 107045 > 99%
2x6 (4934 digits) (9867 digits) 16394 > 99%
2x6 (4932 digits) (9864 digits) 49142 > 99%
2x6 (822 digits) (1644 digits) 2733 > 99%
Executing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Size Ones Hops Otters Otter Steps
6x2 (18268 digits) (36535 digits) 30345 > 99%
6x2 (10567 digits) (21133 digits) 99697 > 99%
6x2 (1440 digits) (2880 digits) 8167 > 99%
6x2 (882 digits) (1763 digits) 2211 > 99%
4x3 (7037 digits) (14073 digits) 25255 > 99%
4x3 (6035 digits) (12069 digits) 34262 > 99%
4x3 (4932 digits) (9864 digits) 57368 > 99%
3x4 (6519 digits) (13037 digits) 13667 > 99%
3x4 (2373 digits) (4745 digits) 13465 > 99%
3x4 (2356 digits) (4711 digits) 107045 > 99%
2x6 (4934 digits) (9867 digits) 16394 > 99%
2x6 (4932 digits) (9864 digits) 49142 > 99%
2x6 (822 digits) (1644 digits) 2733 > 99%
HERE BE DRAGONS!
Executing Machines
Beaver, Platypus, Unicorn … Monash June 2nd, 2014
Size Ones Hops Otters Otter Steps
6x2 (18268 digits) (36535 digits) 30345 > 99%
6x2 (10567 digits) (21133 digits) 99697 > 99%
6x2 (1440 digits) (2880 digits) 8167 > 99%
6x2 (882 digits) (1763 digits) 2211 > 99%
4x3 (7037 digits) (14073 digits) 25255 > 99%
4x3 (6035 digits) (12069 digits) 34262 > 99%
4x3 (4932 digits) (9864 digits) 57368 > 99%
3x4 (6519 digits) (13037 digits) 13667 > 99%
3x4 (2373 digits) (4745 digits) 13465 > 99%
3x4 (2356 digits) (4711 digits) 107045 > 99%
2x6 (4934 digits) (9867 digits) 16394 > 99%
2x6 (4932 digits) (9864 digits) 49142 > 99%
2x6 (822 digits) (1644 digits) 2733 > 99%HERE BE HOBBITS!
Aberrent Albatrosses The observant otter is not a panacea …
Some machines do not produce “neat, compressible” patterns …
3x3 case terminates in 2,315,619 steps with 31 non-zeroes
2x5 case terminates in 26,375,397,569,930 steps with 143 non-zeroes
1004: 012010150130170{b}134334
5000: (011)2101(111)311{a}0433135441100
10001: 01401013010160{a}331374300
???Beaver, Platypus, Unicorn, … RMIT 1st August,
2014
Analysing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
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
Beaver, Platypus, Unicorn, …
How?
Otherwise .. (ie all the easy cases have been checked): Run the machine for a given number of steps
If it halts, done. Check for non-terminating pattern (Verify non-terminating pattern)
Execute machine for a larger number of steps Eventually give up!
RMIT 1st August, 2014
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 …
So always look for three instances of a pattern
Conjecture in this case is 1N{D}0 → 12N+6{D}0
or alternatively
1N{D}0 → (11)N111111{D}0
Clearly there is exponential growth here …
Beaver, Platypus, Unicorn, … RMIT 1st August, 2014
Aberrent AlbatrossesThese occur in non-termination cases as well …
36: {a}0333
54: {a}030323
74: {a}032333
88: {a}033333
110: {a}03030323
136: {a}03232333
150: {a}03332333
168: {a}03303333
204: {a}0332330323
Beaver, Platypus, Unicorn, … RMIT 1st August, 2014
??
Aberrent AlbatrossesThese occur in non-termination cases as well …
36: {a}0333
54: {a}030323
74: {a}032333
88: {a}033333
110: {a}03030323
136: {a}03232333
150: {a}03332333
168: {a}03303333
204: {a}0332330323
Beaver, Platypus, Unicorn, … RMIT 1st August, 2014
Searching for Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
To find bb(n,m):
1. Generate all n-state m-symbol machines
2. Classify them as terminating or non-terminating
3. 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 …
Executing Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Size Ones Hops Otters Otter Steps
6x2 (18268 digits) (36535 digits) 30345 > 99%
6x2 (10567 digits) (21133 digits) 99697 > 99%
6x2 (1440 digits) (2880 digits) 8167 > 99%
6x2 (882 digits) (1763 digits) 2211 > 99%
4x3 (7037 digits) (14073 digits) 25255 > 99%
4x3 (6035 digits) (12069 digits) 34262 > 99%
4x3 (4932 digits) (9864 digits) 57368 > 99%
3x4 (6519 digits) (13037 digits) 13667 > 99%
3x4 (2373 digits) (4745 digits) 13465 > 99%
3x4 (2356 digits) (4711 digits) 107045 > 99%
2x6 (4934 digits) (9867 digits) 16394 > 99%
2x6 (4932 digits) (9864 digits) 49142 > 99%
2x6 (822 digits) (1644 digits) 2733 > 99%
HERE BE DRAGONS!
Searching for Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
There is a finite but very large set of machines for each size …
#machines of size n is O(nn) [ > O(n!) > O(2n) !!]
‘Free’ generation of machines quickly becomes cumbersome ..
‘Free’ generation creates too many trivial machines
a b c h11R01R
00L, 10R
10R01R
Searching through Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
First transition is fixed Run partial machine Add a new transition when a ‘missing’ case
happens Add ‘halt’ transition when appropriate
Only one transition left At least n different states for an n-state machine
00L
a b c h11L01R 10R
{a}0 -> 1{b}0 -> {a}1 -> {a}01 -> 1{b}1 -> 10{c}0
Generates machines in tree normal form (tnf)
Searching through Machines
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
n m tnf free
2 2 36 64
3 2 3,522 55,296
2 3 2,751 41,472
4 2 507,107 ??
2 4 335,795 ??
3 3 25,994,116 ??
5 2 99,174,398 ??
2 5 72,130,469 ??
Implementation
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Around 5,000 lines of SWI Prolog
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!)
Blue Bilby
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
n m Total Terminated Going Unclassified
2 2 36 14 22 0
3 2 3,522 1,188 2,334 0
2 3 2,751 825 1,926 0
The free and arbitrary classes have also been classified for these cases
n-state m-symbol machines, n x m ≤ 6
Beaver, Platypus, Unicorn, Zoo …
Ebony Elephant
n-state m-symbol machines, n x m = 8
n m Total Terminated Going Unclassified
4 2 507,107 150,897 325,621 0
2 4 335,795 111,825 223,565 405 (!!)
1's 1 2 3 4 5 6 7 8 9 10
11
12
13
# 3836 23161
37995
31023 15131
5263 1487
357
74
11
5 3 2
RMIT 1st August, 2014
White Whale
n m Total
3 3 25,994,116
5 2 99,174,375
2 5 72,130,469
Need to improve the technologybefore taking this on ...
n-state m-symbol machines, n x m = 9 or 10
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Demon Duck of Doomn-state m-symbol machines, n x m = 12 (!??!!)
n m Total
6 2 ??
4 3 ??
3 4 ??
2 6 ??
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Universal Turing machines
Quest for the smallest universal TM goes on … Involves searching similar (but larger) 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
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Universal Turing machines
What exactly is the definition of a universal Turing machine?
How can such definitions be used to identify universal machines “in the wild”?
What constraints are there on the coding function?
Does a UTM have to terminate? Must a UTM terminate on code(M)code(w) exactly
when M terminates on w?
What is an appropriate “architecture” for a UTM? (code(M)code(w) vs code(w)code(M) )
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
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
Strict generalisation of one-dimensional case
Beaver, Platypus, Unicorn … RMIT ??, 2014
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 ...Beaver, Platypus, Unicorn … RMIT ??, 2014
Finite Decidability Anomaly
Termination for TMs on blank input is undecidable
Calculating bb(n) involves “only” a finite # machines …
So there is an algorithm for computing bb(n) for each n (!!)
Claim: Any decision problem over any finite set is decidable
Proof Sketch: For a set of size n, there are only 2n possible decisions. Each such decision can be implemented by a Turing machine, ie. a “table” machine that outputs the decision value for each element i є {1 … n}. This is only a “table”, not an “algorithm”, but it is a Turing machine … QED
Beaver, Platypus, Unicorn … RMIT ??, 2014
Finite Decidability Anomaly
Termination for TMs on blank input is undecidable
Calculating bb(n) involves “only” a finite # machines …
So there is an algorithm for computing bb(n) for each n (!!)
Claim: Any decision problem over any finite set is decidable
Proof Sketch: For a set of size n, there are only 2n possible decisions. Each such decision can be implemented by a Turing machine, ie. a “table” machine that outputs the decision value for each element i є {1 … n}. This is only a “table”, not an “algorithm”, but it is a Turing machine … QED
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Finite Decidability Anomaly
Note: A decision procedure for a decidable problem over an infinite set is much shorter than the set itself
So for a finite set, we should require that the Turing machine that decides it should be quantifiably shorter than the “table” which specifies the decision …
An “algorithm” should be predictive, ie should work for more values than those specified in the table …
(more thought needed!)
Beaver, Platypus, Unicorn … RMIT 1st August, 2014
Conclusions & Further Work Ebony elephant is close to capture
White whale should be alert and alarmed (“Call me Ishmael’’ )
Demon Duck of Doom … [watch this space]
Machine learning techniques may identify criteria which can reduce search space
Duality between n-state 2-symbol and 2-state n-symbol cases
Otter needs to be “remembered”
Compress machines rather than fix macro size in advanceBeaver, Platypus, Unicorn … RMIT 1st August,
2014
Conclusions & Further Work
Weakening of conjectures for aberrent albatrosses
Proofs desired for
3 instances for otter is sufficient
Calculation of #steps (2nd order difference equations)
Champion machines are always exhaustive
Quadruple vs Quintuple machines
Better “pruning” of search space
Beaver, Platypus, Unicorn … RMIT 1st August, 2014