Początki informatyki teoretycznej

Transkrypt

Początki informatyki teoretycznej
Początki informatyki teoretycznej
Paweł Cieśla
Wstęp
Przykładowe zastosowanie dzisiejszych komputerów:
• edytowanie tekstów, dźwięku, grafiki
• odbiór telewizji
• gromadzenie informacji
• komunikacja
Komputery mają w dzisiejszych czasach tak szerokie zastosowanie, że z reguły zapominamy o ich pierwotnym przeznaczeniu, czyli obliczaniu. W
latach trzydziestych XX wieku, uczeni zajmujący się podstawami matematyki znaleźli opis tego, co można obliczać za pomocą maszyn. Dzięki temu
znamy dzisiaj granice możliwości współczesnych komputerów i potrafimy
zdefiniować obliczalność.
Obliczalny - dający się obliczyć np. na kartce papieru, za pomocą komputerów lub innych urządzeń.
Teoria mnogości
Georg Cantor pod koniec XIX w. sformułował teorię mnogości, która do
dzisiaj jest jedną z podstawowych teorii matematycznych. Polegała ona na
intuicyjnym traktowaniu zbiorów (działania na zbiorach bez aksjomatów).
Takie rozumowanie doprowadziło do możliwości dowodzenia antynomii. Zauważono, że antynomie pojawiały się gdy korzystano ze zbiorów takich jak:
{x : ϕ(x)}
Antynomia - (z języka greckiego: anti - przeciw, nomos - prawo) - rodzaj sprzeczności, który powstaje na podstawie przesłanek uznanych za
prawdziwe. Rozumując w sposób ogólnie uważany za poprawny, dochodzi się do negacji jednej z przesłanek lub do koniunkcji dwóch sprzecznych zdań.
W ten sposób można zdefiniować np. zbiór wszystkich zbiorów, podstawiając za ϕ(x), x = x. Po wprowadzeniu ograniczenia:
{x ∈ X : ϕ(x)}
problemy z antynomią przestały istnieć.
Reakcja na antynomię
David Hilbert sformułował tzw. program Hilberta, w którym zaproponował rozpoczęcie prac nad stworzeniem układu aksjomatów stanowiącego
postawę dla całej matematyki. Ten układ miał być:
• niesprzeczny - nie powinno być możliwe wywnioskowanie z aksjomatów zdań sprzecznych, czyli zdania i jego zaprzeczenia. Aby uzyskać
niesprzeczność można ograniczać zbiór aksjomatów lub osłabiać wyrażane przez nie własności.
• zupełny - po sformułowaniu jakiejkolwiek hipotezy powinno być możliwe udowodnienie jej za pomocą aksjomatów, albo obalenie przez udowodnienie negacji.
W 1931 Kurt Gödel pokazał, że programu Hilberta nie można zrealizować,
dowodząc twierdzenie o niezupełności arytmetyki.
Twierdzenie Gödla
Wprowadźmy arytmetykę wyrażającą najprostrze własności dodawania
i mnożenia. Oznaczmy ją symbolem A. Niech dla każdego x i y zachodzą
własności:
x + 1 = y + 1 ⇒ x = y,
x + 0 = x ∧ x + (y + 1) = (x + y) + 1,
x · 0 = 0 ∧ x · (y + 1) = x · y + x,
¬x < 0 ∧ (x < y + 1 ⇔ x < y ∨ x = y),
x < y ∨ x = y ∨ y < x.
Dodając do tych aksjomatów schemat indukcji (Wraz z każdą liczbą należącą do jakiegoś zbioru, należy do niego także jej następnik), otrzymujemy
arytmetykę Peano . W arytmetyce A mamy prawo posługiwać się stałymi 0 i
1, symbolami funkcyjnymi + i - oraz symbolami relacji równości i mniejszości.
Możemy się także posługiwać innymi symbolami pod warunkiem, że zostaną
wcześniej zdefiniowane. Zdefiniowanie potęgowania jest procesem trudnym,
więc nie powinniśmy korzystać ze zwykłych przedstawień liczb naturalnych
i dlatego liczbę n > 1 przedstawiamy za pomocą wyrażenia:
n̄ = (. . . ((1 + 1) + 1) + · · · + 1) + 1.
zawierającego n jedynek. W arytmetyce A możemy posługiwać się funkcją:
f (n, m) =
(n + m + 1)(n + m)
+n
2
przekształcającą wzajemnie jednoznacznie zbiór liczb naturalnych na zbiór
liczb naturalnych. Dzięki tej funkcji możemy mówić o parach i skończonych
ciągach liczb naturalnych.
Definicja 4.1. Funkcję f : X → Y nazywamy injekcją lub odwzorowaniem różnowartościowym, jeżeli f ma własność:
∀x1 ,x2 ∈X [x1 6= x2 ⇒ f (x1 ) 6= f (x2 )],
co jest równoważne
∀x1 ,x2 [f (x1 ) = f (x2 ) ⇒ x1 = x2 ].
Definicja 4.2. Funkcję f : X → Y nazywamy surjekcją lub odwzorowaniem ”na”, jeżeli f ma własność:
∀y∈Y ∃x∈X y = f (x).
Sprawdzimy, że f(n, m) jest bijekcją:
Przypuśćmy, że f (n, m) = f (u, v) dla pewnych (n, m), (u, v) ∈ N2 .
(u + v + 1)(u + v)
(n + m + 1)(n + m)
+n=
+u⇒
2
2
(n + m)2 + 3n + m = (u + v)2 + 3u + v ⇒
n = u ∧ m = v.
Weźmy dowolne u ∈ N. Wykażemy, że istnieje (n, m) ∈ N2 takie, że
f (n, m) = u.
(n + m + 1)(n + m)
+ n = u,
2
Kurt Gödel dowiódł, że arytmetyka A jest niezupełna. Zgodnie z twierdzeniem Gödela - Rossera, każda niesprzeczna, aksjomatyzowalna teoria zawierająca arytmetykę A jest niezupełna. Z tego wynika, że arytmetyka Peano
jest niezupełna. Dowodząc twierdzenie o niezupełności, Gödel korzystał z
pewnej klasy funkcji obliczalnych. Następnie sformalizował pojęcie obliczalności, podając definicję obszerniejszej klasy funkcji rekurencyjnych. Formalizacja obliczalności pozwala dzisiaj dowieść twierdzenie Gödela. Obliczalność
przysługuje zbiorowi twierdzeń dowolnej aksjomatyzowalniej teorii zupełnej
i nie przysługuje zbiorowi twierdzeń żadnej dostatecznie bogatej arytmetyki.
Problemy
Przypuśćmy, że mamy zadanie (np. sprawdzenie czy liczba n jest liczbą
pierwszą). Aby rozwiązać dany problem na komputerze musimy:
• określić zbiór wszystkich możliwych danych.
• pojęcie problemu definujemy przyjmując, że jest to pewien zbiór danych
• jeżeli naszym problemem jest zbiór X, to rozwiązanie naszego problemu
polega na znajdowaniu odpowiedzi na pytanie czy dana wartość należy
do X
Dane
Dane definiujemy w zależności od potrzeb. Mogą to być liczby naturalne
lub napisy, czyli skończony zbiór znaków. Zbiór wszystkich możliwych znaków nazywamy alfabetem. Dowolny tekst złożony jest ze słów, które powstały
ze znaków alfabetu.
Rozstrzygalność
Problemy rozpoznawalne lub rekurencyjnie przeliczalne - problemy dla których istnieją programy wczytujące zmienną d, tak długo aż
d ∈ X, gdzie X jest naszym problemem. Gdy warunek d ∈ X jest spełniony, program zatrzymuje się.
Problemy rozstrzygalne lub rekurencyjne = Jeżeli d ∈ X, program
przekazuje informację ”tak”. Jeżeli d ∈
/ X, program przekazuje informację ”nie”. Program rozpoznawalny może nie zakończyć swojej pracy, co jest
równoważne z ”zapętleniem” programu. Program rozstrzygalny dla każdej
danej zakończy działanie z wynikiem negatywnym lub pozytywnym. Każde
problemy rozstrzygalne są rozpoznawalne.
Aksjomatyzowalność
Teorie aksjomatyzowalne - są to teorie, które mają rostrzygalny zbiór
aksjomatów. Aksjomatyzowalność teorii A jest oczywista, ponieważ jest to
teoria o skończonej liczbie aksjomatów.
Arytmetyzacja napisów
Każdy napis w informatyce ma swoją reprezentację liczbową. Przypuśćmy, że posługujemy się p - elementowym zbiorem znaków. W dowolny sposób
przypiszmy znakom z tego zbioru liczby mniejsze od p. Znak, któremu przypisaliśmy liczbę c, będziemy uważać za cyfrę oznaczającą c. W tej sytuacji
dowolny napis możemy uważać za zwykłe przedstawienie przy podstawie p
pewnej liczby. W systemach pozycyjnych wadą jest niejednoznaczność pomiędzy przedstawieniem a liczbą (np. 01 i 1). Aby usunąć tą wadę wystarczy
przestać używać zero i jednocześnie za liczbę dziesięć podstawić znak X.
X1X = X · 100 + 1 · 101 + X · 102 = 10 + 10 + 103 = 1020.
9X = 9 ∗ 101 + X ∗ 100 = 100.
X1 = X ∗ 101 + 1 ∗ 100 = 101.
Plan dowodu
• Pokazanie rozpoznawalności zbioru twierdzeń dowolnej aksjomatyzowalnej teorii
• Zauważymy, że zbiór twierdzeń teorii aksjomatyzowalnej i zupełnej jest
także rozstrzygalny
• Prezkonamy się o nierozstrzygalności zbioru twierdzeń arytmetyki A
Dowody
Dowodem w teorii T nazywamy ciąg zdań, którym każdy wyraz jest aksjomatem logiki albo aksjomatem teorii T , albo jest wnioskiem ze zdań poprzedzających otrzymanym zgodnie z jedną z określonych reguł dowodzenia
(np. reguła odrywania α ⇒ β). Zbiór wszystkich dowodów w teorii aksjomatyzowalnej jest rozstrzygalny.
Rozpoznawalność T hmT (zbiór twierdzeń
teorii T)
Zbiór twierdzeń T hmT aksjomatycznej teorii T jest rozpoznawalny. Wynika to z następującego algorytmu:
• wczytaj dane do zmiennej N,
• podstaw do zmiennej D wartość 0
• dopóki przedstawienie liczby D nie jest dowodem napisu N w teorii T
zwiększaj wartość D o 1
• zwróć słowo ”tak”.
Zmienna D jest liczbą naturalną. Wiemy, że każda liczba naturalna odpowiada określonemu napisowi. Przeglądane są wszystkie napisy w poszukiwaniu
dowodu zdania przechowywanego w zmiennej N .
Rozstrzygalność teorii zupełnych
Pokażemy teraz jak rozstrzygać, czy dane zdanie jest twierdzeniem teorii
aksjomatyzowalnej i zupełnej. Badanie czy zdanie ϕ jest twierdzeniem teorii
T, polega na szukaniu dowodu. Jeżeli teoria T jest zupełna to, na pewno istnieje jeden z dowodów ϕ lub −ϕ. Jeżeli dodatkowo teoria T jest niesprzeczna
to istnieje tylko jeden z tych dowodów.
Algorytm rozstrzygalności:
• wczytuję dane do zmiennej N
• sprawdza, czy N zawiera poprawne zdanie
• jeżeli nie, to zwraca słowo ”nie” i zatrzymuje program
•D=0
• dopóki przedstawienie D nie jest dowodem w T ani napisu N, ani jego
negacji D = D + 1
• jeżeli D jest dowodem N, to zwracaj ”tak”, w przeciwnym razie zwracaj
”nie”
Rozstrzygalność teorii T oznacza, że można napisać program, który sprawdza
dowodliwość teorii T i podaje odpowiednie dowody. Takiego programu nie
można napisać dla arytmetyki A. Możliwe jest to dla arytmetyki Presburgera
złożonej ze wszystkich własności dodawania.
Klasy ∆0 i P1
Nierozstrzygalność T hmA jest najtrudniejszą częścią twierdzenia Godla.
W arytmetyce możemy posługiwać się kwantyfikatorami ograniczonymi. Formuły, w których występują jedynie kwantyfikatory ograniczone będziemy naP
zywać formułami klasy ∆0 . Będziemy mówić, że formuła jest klasy 1 , jeżeli
jest klasy ∆0 lub powstała z formuły ∆0 przez dopisanie kwantyfikatorów
egzystencjanych.
P
Przykład klasy 1
∃x,y (1 < x ∧ 1 < y ∧ n = xy)
Przykład klasy ∆0
∃x<n ∃y<n (n = xy)
W arytmetyce A dają się dowieść wszystkie prawdziwe zdania klasy 1 .
Dowodzenie formuł z ograniczonym kwantyfikatorem ogólnym jest najtrudniejszym fragmentem uzasadnienia interesującej nas własności.
P
Zbiór uniwersalny
Niech U będzie zbiorem par (ϕ, n) złożonych z formuły ϕ klasy 1 i liczby
naturalnej n takiej, że ϕ(n̄) ∈ T hmA . Zbiór U jest rozpoznawalny, ponieważ T hmA jest rozpoznawalny. Formalna definicja zbioru U wymaga oprócz
rozpoznawalności, aby dla dowonego zbioru rozpoznawalnego zbioru liczb naP
turalnych Z istniała formuła ϕ klasy 1 taka, że n ∈ Z ⇔ (ϕ, n) ∈ U Nierostrzygalność wymaga utworzenia zbioru D = {n ∈ N ; (przedst(n), n) ∈
/
U }. Zbiór D z jednej strony różni się od zbioru rozpoznawalnego, z drugiej
zaś strony okazuje się rozstrzygalny gdy założymy rostrzygalność.
P