neuroleptyk
11.12.25, 17:04
Są różne wersje gry Hydra, tutaj przedstawię jeden z wariantów, czyli Kirby–Paris.
Najprostsze drzewo zawiera tylko węzeł główny oznaczony G.
W innych przypadkach mamy drzewo z węzłami połączonymi jednoznacznie prostymi i węzłem głównym dole.
Węzeł liść to węzeł z którego nie wychodzi inny węzeł oraz nie jest on węzłem G.
Węzły nie łączą się w pętle. Początkowo drzewo nie ma rozgałęzień, tj. można bez cofania odwiedzić wszystkie węzły po liniach drzewa zaczynając od węzła G. Mamy licznik kroków n zaczynając od n = 0, czyli od stanu początkowego.
1) Jeśli w drzewie są liście, to wybieramy liść X do usunięcia po prawej stronie i inkrementujemy n, natomiast jeśli w drzewie nie ma węzłów liści to koniec.
2) Jeśli B to węzeł macierzysty X, to jeśli B = G, to wracamy do 1).
3) Jeśli B ≠ G, to niech C oznacza węzeł z którego wychodzi poddrzewo w którym był X. Dodajemy n kopii poddrzewa (już bez X), które zaczyna się w C i które umieszczamy po prawej stronie innych i wracamy do 1).
Dla łatwiejszego zrozumienia, B dla X to jak jego rodzic, natomiast C to rodzic dla B, itd. Poddrzewo to wszystkie węzły jakie wychodzą z C. Z węzła G można dotrzeć do każdego innego.
f: N → N
Hydra(k) = n jest funkcją liczby kroków od k, aż będzie tylko węzeł G, zaczynając od drzewa k + 1 węzłów łącznie z węzłem G i wybierając zawsze liść z prawej strony.
Dla k = 0 początkowo mamy tylko węzeł G, więc nie trzeba wykonać żadnego kroku, więc n = 0.
Dla k = 1 początkowo mamy dwa węzły; dodatkowy będący zarazem liściem jest połączony z G, więc wystarczy 1 krok, więc n = 1.
Dla k = 2 początkowo mamy trzy węzły: G–B–X_1; po usunięciu X_1 mamy G i rozgałęzienie do B i X_2, n = 1; po usunięciu X_2 mamy G–X_3, n = 2; po usunięciu X_3 mamy tylko G, n = 3.
Dla k = 3 mamy 37 kroków – pierwsza ilustracja na dole je pokazuje.
Dla k = 4 liczba kroków jest dużo większa niż liczba Grahama, tj. Hydra(4) >> g_64.
Wytłumaczenie notacji strzałkowej i czym jest g_64.
a↑b = a^b
a↑↑b = a↑a↑...↑a, gdzie jest z b wystąpień a; tj. równoważne z a^a^...^a, gdzie jest liczba b wystąpień a.
a↑↑↑b = a↑↑(a↑↑(...(a↑↑a)...)), gdzie jest b wystąpień a.
a↑↑↑↑b = a↑↑↑(a↑↑↑(...(a↑↑↑a)...)), gdzie jest b wystąpień a.
a↑(k)b = a↑(k-1)(a↑(k-1)(...(a↑(k-1)a)...)), gdzie jest b wystąpień a.
Przykłady.
3↑3 = 27
3↑↑3 = 3↑(3↑3) = 3↑(27) = 3^27 = 7 625 597 484 987
3↑↑↑3 = 3↑↑(3↑↑3) = 3↑↑(3^27) = 3↑(3↑(...(3↑3)...)),=
3↑↑(3) = 3^3^3 = 3^27 = 7 625 597 484 987
3↑↑(4) = 3^3^3^3 = 3^3^27 = 3^7 625 597 484 987
3↑↑(5) = 3^3^3^3^3 = 3^3^3^27 = 3^3^7 625 597 484 987
.
.
.
3↑↑(3↑↑3) = 3^3^...^3
3↑↑↑3 to inaczej 3^3^...^3, gdzie jest 3^27 = 7 625 597 484 987 wystąpień 3. Z codziennego punktu widzenia to ekstremalnie ogromna liczba.
3↑↑↑↑3 = 3↑↑↑(3↑↑↑3) = 3↑↑↑(3↑↑(3^27)).
Inaczej liczba 3↑↑↑↑3 jest zdefiniowana przez ostatni wyraz ciągu liczb wyrażanych wieżami potęgowymi złożonymi z 3.
Zaczynając od 3 czyli od wyrazu j = 1, wyraz j - 1 definiuje wysokość wieży dla wyrazu j. Wyrazów tych jest 7 625 597 484 987. Dla zilustrowania zaczynamy od 3; czyli druga wieża to 3^3^3, bo 3 definiuje jej wysokość; trzecia to 3↑↑↑3, bo 3^3^3 definiuje jej wysokość; ta z kolei definiuje wysokość czwartej, a czwarta definiuje wysokość piątej, itd.; tak jest aż do numeru wieży 7 625 597 484 987, która reprezentuje 3↑↑↑↑3. Ostatnia ilustracja pokazuje też jak jest dla 3↑↑↑↑↑3 = 3↑(5)3.
Liczba g_64 to 64 wyraz poniższego ciągu.
g_1 = 3↑↑↑↑3 = 3↑(4)3.
g_2 = 3↑(g_1)3, gdzie jest g_1 strzałek
g_3 = 3↑(g_2)3, gdzie jest g_2 strzałek
.
.
.
g_64 = 3↑(g_63)3, gdzie jest g_63 strzałek
Wyżej widać było, że g_1 = 3↑(4)3, czyli zaledwie 4 strzałki dla a i b = 3 to już ogromna liczba. g_2 ma g_1 strzałek, więc ciężko sobie wyobrazić skalę tych liczb już na początku tego ciągu. Hydra(4) "eksploduje" daleko powyżej g_64, druga ilustracja pokazuje stany dla Hydra(4) do 3 kroku. Nie jest oczywiste na pierwszy rzut oka, czy to się w ogóle skończy.
Podsumowanie wartości lub dolnego ograniczenia.
Hydra(0) = 0
Hydra(1) = 1
Hydra(2) = 3
Hydra(3) = 37
Hydra(4) > f_ω · 2 + 4(5) >> f_ω + 2(2) > f_ω + 1(64) > g_64
Hydra(5) > f_ω^(2 +4)(5)
Hydra(6) > f_ω^ω^ω^ω^ω^ω(5)
Hydra(k) dominuje ewentualnie wszystkie funkcje rekurencyjne, których totalność da się dowieść w PA. Czyli w PA nie da się udowodnić, że gra się zawsze skończy, czyli też twierdzenia Kirby – Paris (1982), że tak jest.