§2.2 Supermachten
Nadat machtsverheffen lange tijd de hoogste operatie was,
vond de algoritme kenner
Donald Knuth3
in 1976 zijn telbare operatoren
↑{c}
uit, om getallen in het gebied van supermachten
te noteren. Alleen de allerkleinste supermachten
zijn nog precies uit te rekenen.
De elementaire operaties tot aan
machten
beschouwen we als vooraf gegeven.
Eerst komt de enkele pijl ↑
die bij Knuth de operator ^
is van gewone machten.
Hij legt dit uit als herhaald
vermenigvuldigen, wat herhaald optellen is.
Tetratie noteert Knuth met twee pijlen
↑↑
en hij werkt dit uit tot een rij machten, enzovoort.
Regels voor Knuth's pijlen, die wij altijd van rechts oplossen.
- a↑{c}1 = a {c>0}
- a↑{c1}b1 = a↑{c}a↑{c1}b =! a↑{c}a↑{c}a↑{c1}b- == a↑{c}..a :b
De operator
voorrang
voor supers ^{c}
geldt niet voor Knuth's
↑{c}
pijlen, die we strikt =!
rechts associatief
oplossen binnen een reeks operaties.
Dit past bij de r-l evaluatie van Conway's pijlketens
C.I
en bereidt onze extensie naar superpijlen voor.
Het was de verbeelding van de wiskundige Ronald Graham,
expert in de grafentheorie, die popularisator
Martin Gardner4
aanspoorde om een buitenissig aantal van Knuth's pijlen
te gebruiken om Graham's getal mee aan te duiden.
Graham's getal
is een bovengrens voor een rekenkundig probleem
met bichromatische hypermachten
,
zoals het Nederlandse Guinness record
boek5
dat noemde.
Hoewel Gardner de schatting, die Graham eerder
publiceerde6,
danig overdreef.
Het mooie van het bewijs dat Graham gaf,
is dat de oplossing zeker bestaat,
hoewel dit getal wel eens onberekenbaar ver weg zou kunnen liggen.
Maar het is voor de hand liggend dat het klein is.
Zoals het 9e priemgetal
p8+4
=
23
dichterbij ligt, dan de bovengrens
1+1.*pi..
:8
die het bestaan ervan bewijst.
Tegenwoordig zoekt men de oplossing voor het probleem van Graham
trouwens vanaf 13
en zijn bovengrens
is tot 2↑↑↑6
teruggebracht.
Graham's record getal is een hypermacht, die we noteren als recursie over supermacht pijlen, van binnen naar buiten te tellen en van rechts af uit te werken.
- 3↑{..4..}3 :4↑3: = 3↑{..3↑↑↑↑3..}3 :63:
- 3↑↑↑↑3 = 3↑↑↑3↑↑↑3 =! 3↑↑↑3↑↑3↑27.
Knuth's operaties werden eerder al uitgedrukt in een functie,
die we voor het eerst in 1925 bij
David Hilbert7
tegenkomen. Hilbert begint om optellen,
vermenigvuldigen en machten te herhalen,
om daarmee de operatie van tetratie aan te duiden.
De hogere supermachten pakt Hilbert in
in zijn tweeledige recursieve
functies Hc
die we aldus herschreven.
- H1(a,b) = a+b = ab
- Hc1(a,1) = (Hc,a,1) = a
- Hc1(a,b1) = (Hc,a,b1) = Hc(a,(Hc,a,b)) == Hc(a,..(Hc,a,1)..) :b: = Hc(a,..a..) :b:
Hilbert gaf zijn voorzet
Ha(a,a)
en Wilhelm Ackermann schoot die er in 1928 in, met een stroef
bewijs8
dat deze functie niet primitief recursief
is te formuleren.
Ackermann functie G(a)
= F(a,a,a)
werkt met deze regels.
- F(a,b,0) = a+b = ab
- F(a,0,1) = a*0 = 0 F(a,0,2) = 1 F(a,0,c>2) = a (vervroegd)
- F(a,b1,c1) = F(a,F(a,b,c1),c) == F(a,..F(a,0,c1)..,c) :b1:
Het is mogelijk om in één regel, vanuit unair optellen, met Hilbert's en Knuth's repetitie van operaties in haakjes, een complete definitie te geven van supermachten.
a^{c}b1 = a*{c1}b1 = (a*{c}..a..) :b:
Knuth's pijl operaties, onze supersterren
en de eerdere recursieve functies hebben allen hetzelfde bereik.
Wij noemen het supermachten, of dubbele recursie.
Daar spelen twee recursies:
een grote met iter c
over een kleine met iter b
over een constante a>1
.
De Hongaarse wiskundige Rozsa Péter had in haar
boek9
uit 1950 slechts twee parameters nodig
in een dubbel recursieve functie.
Definieer Péter's P
met naam en positie van variabelen
omgezet.d
De functie begint met optellen van een constante
a=1
.
- P(b,0) = b+1 = b1
- P(0,c1) = P(1,c)
- P(b1,c1) = P(P(b,c1),c) == P(..P(0,c1)..,c) :b1: = P(..1..,c) :b2:
Om systemen voor grote getallen te vergelijken, volstaan we met het uitrekenen van de belangrijke iteraties. Zodoende, als de voortzetting inzichtelijk is, levert dit een bewijs door demonstratie.
# Demonstratie 2.2
Péter's
P(b,c1)+3
=
2*{c}b3
uitgedrukt in supermachten.
- P(b,1) = P(..2..,0) :b: == 2.+1.. :b = b+2
- P(b,2) = P(..3..,1) :b: == 3.+2.. :b = b*2+3
- P(b,3) = P(..5..,2) :b: == (..5..*2+3) :b: = 2^(b+3)-3.
- P(b,4) = P(..13..,3) :b: == 2^(..16..).-3 :b: = 2^^(b+3)-3.
- P(b,5) = P(..2^^4-3..,4) :b: == 2^^(..2^^^3..).-3 :b: = 2^^^(b+3)-3.
- P(b,c+3) = P(P(b,c3),c2) == P(..P(1,c2)..,c2) :b: = P(..2^{c}4-3..,c2) :b: == 2^{c}..2^{c1}3-3 :b = 2^{c+1}(b+3)-3.
Péter's P
is een speciaal geval van
functies Pa
waar a=1
.
In algemene functie Pa
telt de initiële regel a
eenkennig op.
- Pa(b,0) = a+b = ab
- Pa(0,c1) = Pa(1,c)
- Pa(b,c1) = Pa(Pa(b-,c1),c) = Pa(..1..,c) :b1:
Het is interessant om de uitkomsten bij waardes van a
te vergelijken.
Na P0(b,0)
=
b
reduceert P0
steevast tot 1
.
- P0(b,1) = P0(..1..,0) :b: == 1
- P0(b,2) = P0(..1..,1) :b: == 1
- P0(b,c2) = P0(b,c1) = 1
Dat P2(b,c)+3
=
2*{c}b3
volgt uit
P2(1,0)
=
3
en eerdere demonstratie van Péter's
P1
omdat ook
P1(1,1)
=
3
en daarna is P2
op dezelfde wijze recursief bepaald.
- P2(b,0) = b2 = P1(b,1) = 2+b3-3.
- P2(b,1) = P2(..3..,0) :b: == 3.+2.. :b = b*2+3 = 2*b3-3.
- P2(b,c) = P1(b,c1) = 2*{c}b3-3.
Ook de vergelijking van P3
met supersterren is merkwaardig exact.
- P3(b,0) = b3 = 3+b2-2.
- P3(b,1) = P3(..4..,0) :b: == 4.+3.. :b = b*3+4 = 3*b2-2.
- P3(b,2) = P3(..7..,1) :b: == (..1..*3+4) :b1: = 3.*3..-2. :b1 = 3^b2-2.
- P3(b,3) = P3(..25..,2) :b: == 3.^3..-2. :b1 = 3^^b2-2.
- P3(b,c2) = P3(..3^{c}3-2..,2) :b: == 3^{c}..3^{c1}2-2 :b = 3^{c1}b2-2.
Hierna komen de details bij supermachten niet meer overeen.
Er is geen vast getal q
voor de optel aftel
routine en dit is niet te repareren.
- P4(b,1) = P4(..5..,0) :b: == 5.+4.. :b = b*4+5 = 4*(b+q)-q. & q=5/3
- P4(b,2) = P4(..9..,1) :b: == (..1..*4+5) :b1: = 4^b1*(1+q)-q. ≈ 4^(b+qr)-qr. r≈.041
- P4(b,3) = P4(..41..,2) :b: ≈≈ 4^..(1+qr)-qr. :b1 ≈ 4^^bqrs-qrs. s<.001
- P4(b,c) ≈ 4*{c}(b+qr)
De twee systemen zijn aleen bij benadering
≈
te vergelijken.
In feite zijn er geen oplossingen voor variabelen
qr
, qrs
, etc.
We noemen dit surrogaat variabelen.
- P5(b,1) = P5(..6..,0) :b: == 6.+5.. :b = b1*5+1 = 5*bq-q. & q=3/2
- P5(b,2) = P5(..1..,1) :b1: = 5^b1*q1-q. = 5^bqr-q. ≈ 5^bqr-qr. & qr = Log(5,q1)+1 ≈ 1.569
- P5(b,c) ≈ 5*{c}bqr
Voltooi de benadering van de dubbele recursie
Pa
met supermacht operatoren.
Voor grote a
dalen de
optel aftel surrogaten
tot limiet 1
.
- Pa(b,1) = Pa(..1..,0) :b1: == a1.+a.. :b = b1*a+1 = a*bq-q. & q=a1/a-
- Pa(b,2) = Pa(..1..,1) :b1: = a^b1*q1-q. = a^bqr-q. qr ≈ 1+Log(a,2) ≈ 1
- Pa(b,c) ≈ a*{c}b1
Het is aardig om te weten dat de limiet
van Pa
een stap in b
verder is dan bij supersterren,
maar het zet geen zoden aan de dijk.
Geteld vanaf c
produceren beide systemen ongeveer even grote getallen.
Omzetting van Rozsa Péter's
dubbel recursieve functie P()
naar een links associatieve `=
versie met oparator
teken
¶
is eenvoudig.
- b¶1 `= b11
- 1¶c1 `= 1¶c¶c
- b1¶c1 `= b¶c1¶c == 1.¶c.. :b2
Zo vermijden we de 0
en subexpressie haakjes.
En we werken b¶c1
stap na stap uit tot een reeks van b
van zulke
¶c
recursies.
Supersterren *..
regelen we ook liever met enkele stappen.
Maar om deze l-r te evalueren,
zonder haakjes of precedentie, is lastiger.
We introduceren pop operatoren
om supermachten te scheiden.
In deze definitie van supersterren is
c≥0
zodat *{0}
unair optelt.
- a*{c1}b1 `= a+*{c}a*{c1}b
- p+*{c}a+ `= a*{c}p+
- p+*{c}a*{c1}1 `= a+*{c}p
Hogere superster operaties worden van de uitwerking
van de lagere apart gehouden door er popsterren
+*..
tussenin te plaatsen.
Als een plus volgt, dan valt de linker pop
+
voor deze sterren weg,
terwijl de operanten omkeren of popschuiven.
Van dit popschuiven zagen we al een voorbeeld
met tetratie in blog
§2.1.
We zagen gewone plus eliminatie als alternatief
en de operatoren #..
daarvan noemden we hekmachten
.
Vul de regel
a#{c}+b+
=
a#{c}b+
in in het supersterren schema.
Vervang daarin de ster *
door een hekje #
om hekmachten te maken.
Ook hier telt #{0}
eenvoudig direkt op, zodat de initiële regel voor
c=0
overbodig is.
De regels voor een hekmacht functie.
- #(a,1,c1) = a
- #(a,b1,1) = #(a,b,1)a
- #(a,b1,c1) = #(#(a,b,c1),a,c) == #(..a..,a,c) :b:
Hekmachten lossen we steeds
links associatief op.
Bereken de snelheid van onze
#..
hekmacht operaties ten opzichte van Knuth's
^..
supermachten.
- a##a##a = (a^a)^a = a^(a*a)
- a###b1 = a###b^a = a^(1.*a..) :b = a^a^b
- a1###a###a ≈ a1^a1^a^a
- a####b ≈ a^^b^a^^b ≈ a^^b1
- a#{4}a#{4}a ≈ (a^^a1)^^a1 ≈ a^..a^^a1 :a = a^^aa1
- a#{5}b2 ≈ a#{5}b1^^a1 ≈ a^..a^^a{b}1 :a ≈ a^^(a*b1)
- a#{5}a1#{5}a ≈ a^^a^^(a*a)
- a#{6}b ≈ a^^^b\*a
- a#{cc1}b ≈ a^{c}(a*b)
- a#{cc}b ≈ a^{c}b
Vanaf c=2
machten wordt het aantal hekken
#..
verdubbeld
ten opzichte van *..
sterren.
Een halve supermacht tilt het grondtal a
de superexponent in (eerst als macht, dan als factor)
en de andere helft ontwikkelt
de supertoren van exponenten.
In de
Grzegorczyk hierarchie10
is er geen aparte klasse recursieve functies
tussen de supermachten in.
Toch slaagden we erin c
op te delen:
in functies die op halve supersnelheid gaan en op hele.
Wie weet is zo rationele verdeling van supers
c
mogelijk…?
Toch denken we dat een fijnere algoritmische verdeling
buiten iteratie over operant b
van supermachten niet bestaat.
En dat alle algoritmen
die primitieve recursie overtreffen
dit doen door te itereren over c
.
Dit is ons dubbele vermoeden.
Dubbele recursie kan dus niet
3
keer of 1/3
keer zo snel gaan
als supersterren bijvoorbeeld.
In het vervolg speelt deze kwestie bij geneste arrays. Als we posities in array functies indexeren, moeten geneste arrays dubbel zo diep zijn om hetzelfde getal uit te drukken. We tonen aan, dat verdubbeling van de nestdiepte een geschikte uitkomst geeft. Enkel of dubbel zijn in deze structuren blijkbaar de enige natuurlijke alternatieven…∴
Keer de richting van de parameters om, zodat de laatste parameters de grotere getallen maken, gg: Péter's recursion in "Number operations" voor bigPsi (concept 2011).
Het is belangrijk om te begrijpen dat eindige getallen extreem groot kunnen zijn, in Donald Knuth "Coping with Finiteness" 1976.
4.
Een vergaande generalisatie van Ramsey theorie[grafen theorie], Martin Gardner over Graham's number, in "Mathematical Games" Scientific American, Nov. 1977.
5.
Het hoogste getal dat ooit in een rekenkundige proef werd gebruikt, Guinness over Graham's number, p.59 in "Het groot Guinness record boek" 1989.
6.
Deze bovengrenzen zijn meestal enorm, Ron Graham over Graham's number, in R.L. Graham & B.L. Rothschild "Ramsey's theorem for n-parameter sets" 1971.
7.
Deze recursies
[over c
]
zijn geen normale, stapsgewijze
,
in David Hilbert "On the infinite" 1925,
p.388 in "From Frege to Gödel" 1967.8.
De functie F(a,a,a)
neemt sneller toe dan elke type 1 functie
in Wilhelm Ackermann
"On Hilbert's construction of the reals"
1928, p.495 in "From Frege to Gödel".9.
Het is voldoende om een tweetallige 'majorant'
ψ(m,n)
te definiëren
,
p.106 in Rozsa Péter
"Recursive Functions" 1967.10.
Elke klasse En
van recursieve functies is gesloten
onder de operaties van substitutie en beperkte recursie
,
in Andrzej Grzegorczyk
"Some classes of recursive functions" 1953.
No comments:
Post a Comment