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