Busy beaver

Een busy beaver (bezige bever) met n {\displaystyle n} toestanden is een terminerende turingmachine die een zo groot mogelijk aantal stappen doet. De busybeaverfunctie wijst aan een getal n {\displaystyle n} het aantal stappen toe dat de busy beaver met n {\displaystyle n} toestanden doet. De busybeaverfunctie is een totale functie die niet berekenbaar is.

Definitie

Een busy beaver met n {\displaystyle n} toestanden is een turingmachine M {\displaystyle M} waarvoor het volgende geldt:

  • M {\displaystyle M} heeft n {\displaystyle n} toestanden plus een eindtoestand;
  • het bandalfabet van M {\displaystyle M} is { , 1 } {\displaystyle \{\Box ,1\}} , waarbij {\displaystyle \Box } het blank-symbool is;
  • als M {\displaystyle M} wordt aangezet met de lege band als invoer, termineert M {\displaystyle M} na een eindig aantal stappen;
  • alle andere turingmachines met n {\displaystyle n} toestanden en een eindtoestand, die hetzelfde bandalfabet hebben, termineren met de lege band als invoer na minder dan of even veel stappen als M {\displaystyle M} .

De busybeaverfunctie is de wiskundige functie S : N N {\displaystyle S:\mathbb {N} \rightarrow \mathbb {N} } die gedefinieerd is als: S ( n ) {\displaystyle S(n)} is het aantal stappen dat de busy beaver met n {\displaystyle n} toestanden doet voordat hij stopt. Enkele waarden van S ( n ) {\displaystyle S(n)} :

  • S ( 1 ) = 1 {\displaystyle S(1)=1}
  • S ( 2 ) = 6 {\displaystyle S(2)=6}
  • S ( 3 ) = 21 {\displaystyle S(3)=21}
  • S ( 4 ) = 107 {\displaystyle S(4)=107} [1]
  • S ( 5 ) = 47 176 870 {\displaystyle S(5)=47\,176\,870} [2]
  • S ( 6 ) > 10 2 879 {\displaystyle S(6)>10^{2\,879}}
  • S ( 7 ) > 10 2 × 10 10 10 18 705 353 {\displaystyle S(7)>10^{2\times 10^{10^{10^{18\,705\,353}}}}} [3]

Bewijs van niet-berekenbaarheid

Hoewel de busybeaverfunctie voor alle invoerwaarden gedefinieerd is, is ze niet berekenbaar; dat wil zeggen dat er geen turingmachine bestaat die de busybeaverfunctie berekent.

Om dit te bewijzen, doen we een bewijs uit het ongerijmde. Stel dat de busybeaverfunctie wel berekenbaar is. Dan bestaat er een turingmachine die deze functie berekent. Nu heeft men echter een oplossing voor het stopprobleem op lege band: gegeven een turingmachine M {\displaystyle M} met n {\displaystyle n} toestanden, dan kan men S ( n ) {\displaystyle S(n)} berekenen. We simuleren M {\displaystyle M} op een andere turingmachine en bekijken de toestand van M {\displaystyle M} na S ( n ) {\displaystyle S(n)} stappen. Is M {\displaystyle M} gestopt, dan weten we dus dat M {\displaystyle M} na een eindig aantal stappen stopt. Is M {\displaystyle M} dan nog niet gestopt, dan weten we zeker dat M {\displaystyle M} oneindig lang door zal gaan. Omdat M {\displaystyle M} willekeurig gekozen was, hebben we nu dus een oplossing gevonden voor het stopprobleem. Het stopprobleem op lege band is, net als het eigenlijke stopprobleem, onbeslisbaar. Daarom hebben we nu een tegenspraak afgeleid, en moeten we concluderen dat de busybeaverfunctie niet berekenbaar is.

Groeisnelheid

Er bestaat geen berekenbare functie die sneller stijgt dan de busybeaverfunctie. We voeren weer een bewijs uit het ongerijmde. Neem aan dat er wel een berekenbare functie is die sneller stijgt dan de busybeaverfunctie, dan kan men die in plaats van de busybeaverfunctie gebruiken in het bovenstaande bewijs.

Bronnen

  1. Allen H. Brady, The determination of the value of Rado’s noncomputable function Σ ( k ) {\displaystyle \Sigma (k)} for four-state Turing machines, Mathematics of Computation, volume 40, nummer 162, april 1983, blz. 647–665, doi:10.1090/s0025-5718-1983-0689479-6
  2. Tristan Stérin (“cosmo”), We have proved “BB(5) = 47 176 870”, the Busy Beaver Challenge, dinsdag 2 juli 2024
  3. “Wythagoras”, A good bound for S ( 7 ) {\displaystyle S(7)} ?, Googology, dinsdag 11 maart 2014