Czekając bez końca

Pomink Alana Turinga w Bletchley

Jak obiecaliśmy, tak robimy: dziś kolejny tekst o braku komunikatu traktowanym jako komunikat.

Tym razem mowa będzie o teorii obliczalności, która jest dziedziną matematyki. To istotne zastrzeżenie, bo terminologia i sposób opisu poniżej mogą sugerować, że chodzi o informatykę. Tymczasem to, o czym opowiem, to twierdzenia matematyczne, które niewątpliwie należą do teorii informatyki, ale na praktykę informatyczną nie mają większego wpływu.

O pojęciach z zakresu obliczalności mówi się, odwołując do jakiegoś formalnego systemu zapisu algorytmów, najczęściej do maszyny Turinga. Ja zdecydowałem się zrobić inaczej, bo nie planuję przeprowadzać żadnych dowodów, a będę, jak to się w moich kręgach mówi, „machał rękami”. Jednak to, co opiszę poniżej odnosi się jednakowo do właściwie każdej formalizacji pojęcia algorytmu.

Posłużę się (cokolwiek umownym) pojęciem programów. Należy przez nie rozumieć programy, napisane w jakimś ustalonym, ale bliżej niesprecyzowanym języku programowania, uruchamiane na idealnym, nieograniczonym komputerze, któremu nigdy nie zabraknie pamięci operacyjnej, miejsca na dysku, czasu na obliczenia ani prądu do ich wykonania. Co więcej, programista komputera jest również idealny, nigdy nie robi błędów w swoich programach ani nigdy mu nie brakuje cierpliwości, żeby czekać na wyniki obliczeń.

Następnie trzeba zastanowić się, jakie problemy będzie ten nasz idealny komputer rozwiązywał. Wybieramy do tego problemy decyzyjne. Polegają one na sprawdzaniu pewnej konkretnej własności dla każdego możliwego pliku z danymi tekstowymi (skończonej wielkości). Jeśli plik ma tę własność, należy odpowiedzieć „TAK”, jeśli jej nie ma, należy odpowiedzieć „NIE”. Przykładami takich własności mogą być:

  • Plik zmierzony w bajtach ma rozmiar, który jest liczbą pierwszą
  • Wszystkie słowa w pliku sa poprawnie odmienionymi formami słów z pierwszego wydania „Słownika poprawnej polszczyzny” Wydawnictwa PWN
  • Plik zawiera poprawny składniowo program dla naszego idealnego komputera
  • Plik zawiera listę różnych miast wraz z wszystkimi odległościami drogowymi pomiędzy nimi, w dodatku ustawioną w takiej kolejności, żeby objechanie ich wszytkich w tej właśnie kolejności dawało najkrótszą możliwą trasę
  • Plik zawiera wzór równania wielomianowego o wielu zmiennych, które ma rozwiązanie złożone z liczb rzeczywistych

Dla każdego z nich programista może napisać program, którego następnie używa następująco: na dysk swojego idealnego komputera ładuje plik, co do którego ma być podjęta decyzja i uruchamia program, który może dać tylko dwa możliwe wyniki:

  1. zatrzymać się i odpowiedzieć „TAK”,
  2. zatrzymać się i odpowiedzieć „NIE”.

Taki program wówczas rozstrzyga ten problem decyzyjny, a my mówimy, że jest on rozstrzygalny. Wszystkie pięć przykładowych problemów powyżej jest rozstrzygalnych.

Możemy jednak powołać się na paradygmat „brak komunikatu to też komunikat” i zgodzić się na bardziej liberalne warunki działania programu. Otóż dopuszczamy teraz trzy możliwe wyniki działania programu:

  1. może zatrzymać się i odpowiedzieć „TAK”,
  2. może zatrzymać się i odpowiedzieć „NIE”,
  3. może nigdy nie zatrzymać się i kontynuować obliczenie w nieskończoność, co również traktujemy jako formę odpowiedzi „NIE”.

Gdy jakiś program rozstrzyga problem decyzyjny w powyższy sposób, to mówimy, że to problem częściowo rozstrzygalny. Jednym z kluczowych twierdzeń teorii obliczalności jest to, że

Istnieją problemy, które są częściowo rozstrzygalne, ale nie są rozstrzygalne.

Przykładami takich problemów są

  • Plik zawiera poprawny składniowo program dla naszego idealnego komputera, który uruchomiony na tym komputerze kiedyś się zatrzyma (to tzw. „problem stopu”, a dowód w tym wypadku był dziełem Alana Turinga)
  • Plik zawiera wzór równania wielomianowego o wielu zmiennych, które ma rozwiązanie złożone z liczb całkowitych (to tzw. dziesiąty problem Hilberta, a twierdzenie o jego nierozstrzygalności udowodnił Jurij Matijasewicz).

Wynika z tego, że

Traktowanie braku komunikatu jako komunikatu daje nowe możliwości (przynajmniej w teorii obliczalności).

Ten z pozoru optymistyczny komunikat jest w istocie pesymistyczny: wskazuje, że są problemy obliczeniowe, dla których nie da się uniknąć czekania w nieskończoność na rozstrzygnięcie dręczącego nas pytania. A pytania wskazane jako przykłady są dla informatyków bądź matematyków naprawdę interesujące.

Jerzy Tyszkiewicz

Ilustracja: Pomnik Alana Turinga w Bletchley Park, autor Stephen Kettle, zdjęcie Antoine Taveneaux/Wikimedia Commons, CC-BY SA 3.0