Przeskocz do treści

Delta mi!

Niemożliwy skrót

Damian Niwiński

o artykule ...

  • Publikacja w Delcie: sierpień 2012
  • Publikacja elektroniczna: 31-07-2012
  • Autor: Damian Niwiński
    Afiliacja: Instytut Informatyki, Uniwersytet Warszawski

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

display-math

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 math ), ale przecież przedstawiliśmy ją powyżej jednoznacznie. W konsekwencji niedługie przedstawienie będzie miała też na pozór bardziej skomplikowana liczba

display-math

utworzona przez math  początkowych cyfr rozwinięcia dziesiętnego liczby math którą możemy zapisać w postaci math Czytelnik zauważy oczywiście, że odwołujemy się tutaj do pewnych „kodów kulturowych” (notacja potęgowania, definicja liczby math ). 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 math 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ę math  gdzie math  jest zbiorem wszystkich słów, jakie można utworzyć z liter pewnego skończonego alfabetu math  Dla jednoznaczności potrzeba, by funkcja math  była różnowartościowa. Interesować nas będzie długość math słowa math Mamy, na przykład, standardowe przedstawienia liczb w  math -arnym systemie pozycyjnym (np. binarnym lub dziesiętnym), math gdzie math 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 math  istnieje nieskończenie wiele math dla których math gdzie math jest liczbą elementów zbioru math

Dowód. Zauważmy najpierw, że słów krótszych niż math jest

display-math

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

display-math

Wybierzmy najpierw math  dla którego math Wtedy

display-math

(ostatnia nierówność z nieostrej monotoniczności funkcji math ). Połóżmy math Przypuśćmy teraz, że wybraliśmy już math różnych liczb math  z których każda spełnia math Wybierzmy math  tak, by

display-math(*)

Ponownie, dla pewnego math  mamy math Z nierówności math mamy math  Kładziemy więc math

Utworzony w ten sposób ciąg math  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

Twierdzenie 1 (Euklides). Istnieje nieskończenie wiele liczb pierwszych

Dowód. Przypuśćmy, że przeciwnie – pierwsze są jedynie liczby math A zatem każdą liczbę naturalną można przedstawić w postaci

display-math

dla pewnych math To pozwala nam określić przedstawienie math


display-math

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

display-math

Z Lematu wynika, że dla nieskończenie wielu math

display-math

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 math 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 math  jest nieco za ogólne, oczekujemy przecież, by z przedstawienia math dało się odtworzyć math Ściślej mówiąc, interesują nas przedstawienia math dane razem z algorytmem, który na podstawie math oblicza math w jakimś zrozumiałym dla nas przedstawieniu (np. dziesiętnym). W pewnym sensie math stanowi więc program, jaki może posłużyć do obliczenia math 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ę math (Nie radzimy go jednak uruchamiać math ) Ogólnie, dla dowolnej liczby math niech math będzie programem o najmniejszej długości, który bez żadnych dodatkowych danych generuje liczbę math jeśli takich programów jest więcej, wybieramy pierwszy w porządku leksykograficznym. Funkcja math 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 math ). 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 math jest

display-math

gdzie math 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 math. Liczby te są „nieskracalne” z powodu braku jakiejkolwiek regularności, a więc losowe. Funkcja math 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 math 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 math znajduje najmniejsze math  takie że math nazwijmy je math

Niech math będzie programem (z jedną zmienną wolną), który realizuje ten algorytm. Jeśli teraz ustalimy liczbę math i podstawimy ją w programie math za zmienną wolną, otrzymamy program (powiedzmy) math  generujący liczbę math  Oszacujmy jego długość. Zakładając, że math jest dane w postaci binarnej, otrzymujemy

display-math

gdzie stała math 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 math prawa strona tej nierówności jest ostro mniejsza od math co daje nam nierówność math Ale założyliśmy przecież, że liczby math  nie da się wygenerować programem krótszym od math Otrzymana sprzeczność dowodzi nieobliczalności funkcji math


Uwaga. Czytelnik rozpoznał zapewne w powyższym rozumowaniu schemat paradoksu Berry’ego: math  jest najmniejszą liczbą, której nie da się wygenerować programem krótszym od math Ta liczba rzeczywiście istnieje, nie da się jej jednak obliczyć z  math

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 math  reprezentująca relację math  tzn. w teorii math  dowodzi się math  wtedy i tylko wtedy, gdy math

Twierdzenie 3 (Gödel–Chaitin). Jeśli teoria math spełnia powyższe założenie i jest niesprzeczna, to istnieje zdanie math takie że ani math ani math nie są twierdzeniami math

szkic dowodu. Przypuśćmy, że nie ma takiego zdania, więc w szczególności, dla każdej pary liczb math  w teorii math  dowodzi się dokładnie jednej z formuł math  i  math  Skoro istnienie w  math dowodu math  jest równoważne math  to, wobec założonej dychotomii, istnienie w  math dowodu math jest równoważne math

Mając dane math możemy więc, przeszukując wszystkie takie dowody, znaleźć najmniejsze math  takie że math Podobnie jak poprzednio, nazwijmy je math  i niech program math realizuje algorytm math  Jeśli w programie math podstawimy za zmienną liczbę math w postaci binarnej, to analogicznie jak poprzednio, znajdziemy (przy dostatecznie dużym math ) program math  zaprzeczający definicji math


Inaczej niż w oryginalnym dowodzie Gödla, nie otrzymaliśmy tutaj explicite konstrukcji niezależnej formuły math 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.