Niemożliwy skrót
Ten list uczyniłem dłuższym tylko dlatego, że nie miałem dość czasu, by napisać go krócej. Usprawiedliwienie, jakie Blaise Pascal wkłada w swój XVI List prowincjalny, wyraża intuicję, iż zapisanie jakiejś myśli zwięźle może być bardziej czasochłonne niż zapisanie jej rozwlekle. Umiejętność skrótu bywa przejawem geniuszu.
Tadeusz Boy-Żeleński odnotowuje następujący przykład sztuki translatorskiej Stanisława Wyspiańskiego. Pierwsze zdanie tragedii Pierre’a Corneille’a Cyd brzmiałoby w dosłownym przekładzie z francuskiego na polski:
Elwiro, czy zupełnie szczerze powtórzyłaś mi wszystko? Czy nie ukrywasz nic z tego, co powiedział ojciec?
W przekładzie Wyspiańskiego fragment ten brzmi
Więc mówił...?
Zostawiamy tymczasem poezję, by przyjrzeć się zagadnieniu skrótu w dziedzinie matematyki. Na przykład, jakie jest najkrótsze przedstawienie danej liczby naturalnej? Pytanie nie jest całkiem precyzyjne (co to jest przedstawienie?), ale ma pewien potencjał sensu. Jasne jest w szczególności, że odpowiedź zależy od własności danej liczby bardziej niż od jej rozmiaru. Na przykład, wypisanie cyfr dziesiętnego rozwinięcia liczby

przekroczyłoby ramy tego artykułu, a nawet zapewne wszystkich numerów
Delty (dla porównania: liczbę atomów we Wszechświecie szacuje się „jedynie”
przez
), ale przecież przedstawiliśmy ją powyżej jednoznacznie.
W konsekwencji niedługie przedstawienie będzie miała też na pozór bardziej
skomplikowana liczba

utworzona przez
początkowych cyfr rozwinięcia dziesiętnego liczby
którą możemy zapisać w postaci
Czytelnik
zauważy oczywiście, że odwołujemy się tutaj do pewnych „kodów
kulturowych” (notacja potęgowania, definicja liczby
). O tym,
że droga ta może być ryzykowna, świadczy tzw. paradoks Berry’ego
podany przez Bertranda Russella (G.G. Berry, któremu Russell przypisał
autorstwo tego paradoksu, był bibliotekarzem w oksfordzkiej Bodleian
Library):
najmniejsza liczba naturalna
której nie da się opisać w języku
polskim przez mniej niż 1000 symboli
właśnie została tak opisana!
Aby uniknąć paradoksu, spójrzmy na możliwe przedstawienie liczb naturalnych
globalnie, jak na funkcję
gdzie
jest zbiorem
wszystkich słów, jakie można utworzyć z liter pewnego skończonego
alfabetu
Dla jednoznaczności potrzeba, by funkcja
była
różnowartościowa. Interesować nas będzie długość
słowa
Mamy, na przykład, standardowe przedstawienia liczb w
-arnym systemie pozycyjnym (np. binarnym lub dziesiętnym),
gdzie
Mogłoby się
wydawać, że w każdej liczbie dopatrzymy się jakiejś „regularności”
(czyż nie uruchamiamy inwencji, by zapamiętać kod PIN?), która
pozwoli zapisać ją istotnie krócej. Jednak prosty rachunek wykaże pewną
barierę.
Lemat (o nieskracalności). Dla dowolnej
różnowartościowej funkcji
istnieje nieskończenie wiele
dla których
gdzie
jest liczbą
elementów zbioru
Dowód. Zauważmy najpierw, że słów krótszych niż
jest

Przyjmując
widzimy, że dla każdego
musi
istnieć pewna liczba
dla której

Wybierzmy najpierw
dla którego
Wtedy

(ostatnia nierówność z nieostrej monotoniczności funkcji
).
Połóżmy
Przypuśćmy teraz, że wybraliśmy już
różnych liczb
z których każda spełnia
Wybierzmy
tak, by
![]() | (*) |
Ponownie, dla pewnego
mamy
Z nierówności
mamy
Kładziemy więc
Utworzony w ten sposób ciąg
potwierdza tezę Lematu.
Pozwolimy sobie teraz na dygresję i pokażemy, że Lemat o nieskracalności dostarcza jednego z wielu możliwych argumentów na
Dowód. Przypuśćmy, że przeciwnie – pierwsze są jedynie
liczby
A zatem każdą liczbę naturalną można
przedstawić w postaci

dla pewnych
To pozwala nam określić
przedstawienie

gdzie
oznacza binarne przedstawienie liczby
Mamy
a z drugiej strony
bo
A zatem przedstawienie
spełnia

Z Lematu wynika, że dla nieskończenie wielu

co jest, oczywiście, nie do pogodzenia z asymptotycznym zachowaniem występujących tu funkcji. A więc hipoteza skończoności zbioru liczb pierwszych była błędna.
Powróćmy do postawionego na wstępie pytania o najkrótszy opis liczby
Widzieliśmy już, że każde przedstawienie ma przykłady trudno
skracalne, a z drugiej strony drastyczny skrót jest czasem możliwy.
Zauważmy jednak, że rozważanie dowolnej funkcji różnowartościowej
jest nieco za ogólne, oczekujemy przecież, by z przedstawienia
dało się odtworzyć
Ściślej mówiąc, interesują nas
przedstawienia
dane razem z algorytmem, który na podstawie
oblicza
w jakimś zrozumiałym dla nas przedstawieniu
(np. dziesiętnym). W pewnym sensie
stanowi więc program, jaki
może posłużyć do obliczenia
Idąc tym tropem, ustalmy sobie jakiś
język programowania (np. Pascal lub C). Zachęcamy Czytelnika, by dla
rozgrzewki napisał w swoim ulubionym języku program generujący wspomnianą
wyżej liczbę
(Nie radzimy go jednak uruchamiać
)
Ogólnie, dla dowolnej liczby
niech
będzie programem
o najmniejszej długości, który bez żadnych dodatkowych danych generuje
liczbę
jeśli takich programów jest więcej, wybieramy pierwszy
w porządku leksykograficznym. Funkcja
zależy wprawdzie od
wyboru języka programowania, jednak z ogólnej teorii obliczalności wynika,
że długości programów wskazywanych przez funkcje dla sensownych
języków różnią się co najwyżej o stałą (zależną od tych języków, ale nie od
). Powyższe przedstawienie liczb naturalnych wprowadził Andriej N.
Kołmogorow w badaniach nad losowością (Kołmogorow użył jako
języka programowania abstrakcyjnego formalizmu maszyn Turinga).
Z Lematu o nieskracalności wynika bowiem, że dla nieskończenie wielu
jest

gdzie
jest rozmiarem alfabetu, jakiego używamy w naszym języku
programowania. Można z grubsza powiedzieć, że dla takich liczb optymalnym
(lub prawie optymalnym) rozwiązaniem jest banalny program w rodzaju
write
. Liczby te są „nieskracalne” z powodu braku jakiejkolwiek
regularności, a więc losowe. Funkcja
zaproponowana przez
Kołmogorowa jako miara losowości, jest dziś powszechnie nazywana
złożonością Kołmogorowa. Subtelniejsza analiza dowodu Lematu pokazuje,
że liczby trudno skracalne dominują pod względem gęstości. Paradoks polega
na tym, że trudno jest wygenerować konkretne przykłady właśnie ze względu
na losowy charakter tych liczb.
Złożoność Kołmogorowa rozwiązuje w pewnym sensie problem najkrótszego opisu, ma jednak pewną wadę, która ogranicza jej praktyczne zastosowanie. W pewnym sensie „dopada” nas tu paradoks Berry’ego.
Twierdzenie 2 (Kołmogorow). Funkcja
jest nieobliczalna,
tzn. nie da się jej obliczyć żadnym algorytmem.
szkic dowodu. Zakładając, że mamy taki algorytm, możemy dalej
skonstruować algorytm, który dla danego
znajduje najmniejsze
takie że
nazwijmy je
Niech
będzie
programem (z jedną zmienną wolną), który realizuje ten algorytm. Jeśli
teraz ustalimy liczbę
i podstawimy ją w programie
za
zmienną wolną, otrzymamy program (powiedzmy)
generujący
liczbę
Oszacujmy jego długość. Zakładając, że
jest
dane w postaci binarnej, otrzymujemy

gdzie stała
jest odpowiedzialna za podstawienie wartości
liczbowej za zmienną. (W tym miejscu odwołujemy się do składni języka
programowania.) Dla dostatecznie dużych
prawa strona tej
nierówności jest ostro mniejsza od
co daje nam nierówność
Ale założyliśmy przecież, że liczby
nie
da się wygenerować programem krótszym od
Otrzymana
sprzeczność dowodzi nieobliczalności funkcji
Uwaga. Czytelnik rozpoznał zapewne w powyższym rozumowaniu schemat
paradoksu Berry’ego:
jest najmniejszą liczbą, której nie da się
wygenerować programem krótszym od
Ta liczba rzeczywiście
istnieje, nie da się jej jednak obliczyć z
Podobne rozumowanie prowadzi do alternatywnego dowodu Twierdzenia Gödla o niezupełności, któremu poświęcony jest artykuł Wiktora Bartola Eubulides, Richard, Gödel (w tym samym numerze). Spostrzegł to Gregory Chaitin, który w tym samym czasie miał podobne idee co Kołmogorow (z tym że Kołmogorow był wtedy – w latach sześćdziesiątych XX wieku – u szczytu swojej długiej kariery, a Chaitin był jeszcze uczniem college’u). Założenia o sile wyrazu teorii są tu trochę inne, ale równie łatwe do uzyskania z prostych arytmetycznych aksjomatów.
Zakładamy mianowicie, że istnieje formuła
reprezentująca
relację
tzn. w teorii
dowodzi się
wtedy
i tylko wtedy, gdy
Twierdzenie 3 (Gödel–Chaitin). Jeśli teoria
spełnia powyższe
założenie i jest niesprzeczna, to istnieje zdanie
takie że ani
ani
nie są twierdzeniami
szkic dowodu.
Przypuśćmy, że nie ma takiego zdania, więc w szczególności, dla
każdej pary liczb
w teorii
dowodzi się dokładnie
jednej z formuł
i
Skoro istnienie w
dowodu
jest równoważne
to,
wobec założonej dychotomii, istnienie w
dowodu
jest równoważne
Mając dane
możemy więc, przeszukując wszystkie takie
dowody, znaleźć najmniejsze
takie że
Podobnie jak poprzednio, nazwijmy je
i niech
program
realizuje algorytm
Jeśli w programie
podstawimy za zmienną liczbę
w postaci binarnej, to
analogicznie jak poprzednio, znajdziemy (przy dostatecznie dużym
) program
zaprzeczający definicji
Inaczej niż w oryginalnym dowodzie Gödla, nie otrzymaliśmy tutaj
explicite konstrukcji niezależnej formuły
Jednak argument –
wywodzący się z paradoksu Berry’ego – jest chyba nieco prostszy i bardziej
intuicyjny, jako że odwołuje się do tempa wzrostu funkcji w miejsce
tajemniczego błędnego koła z paradoksu kłamcy. I tu, i tam widzimy, jak
paradoksy, przy odpowiedniej interpretacji, stają się konstruktywnymi
argumentami.