Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Podobne dokumenty
Rekurencyjna przeliczalność

Funkcje rekurencyjne

Logika Matematyczna (1)

Maszyna Turinga języki

Logika Matematyczna (1)

Przykład: Σ = {0, 1} Σ - zbiór wszystkich skończonych ciagów binarnych. L 1 = {0, 00, 000,...,1, 11, 111,... } L 2 = {01, 1010, 001, 11}

Hierarchia Chomsky ego Maszyna Turinga

Maszyna Turinga. Algorytm. czy program???? Problem Hilberta: Przykłady algorytmów. Cechy algorytmu: Pojęcie algorytmu

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Języki, automaty i obliczenia

O ALGORYTMACH I MASZYNACH TURINGA

Obliczenia inspirowane Naturą

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Alan M. TURING. Matematyk u progu współczesnej informatyki

Logika i teoria mnogości Wykład 14

Podstawy Informatyki Maszyna Turinga

Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Teoretyczne podstawy informatyki

Wstęp do Matematyki (4)

Elementy Teorii Obliczeń

Semiotyka logiczna. Jerzy Pogonowski. Dodatek 4. Zakład Logiki Stosowanej UAM

Języki, automaty i obliczenia

Obliczanie. dr hab. inż. Joanna Józefowska, prof. PP 1

Obliczenia inspirowane Naturą

Odmiany maszyny Turinga. dr hab. inż. Joanna Józefowska, prof. PP 1

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Matematyczne Podstawy Informatyki

Języki formalne i automaty Ćwiczenia 9

Teoria obliczeń czyli czego komputery zrobić nie mogą

Informacje ogólne. Językoznawstwo i nauka o informacji

Jaki język zrozumie automat?

LOGIKA I TEORIA ZBIORÓW

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

Wstęp do Matematyki (1)

Turing i jego maszyny

Imię, nazwisko, nr indeksu

Logika Matematyczna (10)

PROBLEMY NIEROZSTRZYGALNE

Rozwiązania około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej i być może jednego chyba trudnego (w trakcie tworzenia)

Języki formalne i automaty Ćwiczenia 1

Podstawowe Pojęcia. Semantyczne KRZ

Elementy rachunku lambda. dr hab. inż. Joanna Józefowska, prof. PP 1

Złożoność obliczeniowa. wykład 1

Matematyczne Podstawy Informatyki

2. Wymagania wstępne w zakresie wiedzy, umiejętności oraz kompetencji społecznych (jeśli obowiązują):

Dowód pierwszego twierdzenia Gödela o. Kołmogorowa

Symbol, alfabet, łańcuch

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

PRZEWODNIK PO PRZEDMIOCIE

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Początki informatyki teoretycznej. Paweł Cieśla

Wstęp do Matematyki (2)

Jak należy się spodziewać, mamy. Zauważmy jednak, że nie zachodzi równość

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

1 Automaty niedeterministyczne

Zajęcia nr. 3 notatki

O ROLI TEZY CHURCHA W DOWODZIE PEWNEGO TWIERDZENIA

KARTA KURSU. Kod Punktacja ECTS* 7

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

domykanie relacji, relacja równoważności, rozkłady zbiorów

Zadanie 1. (6 punktów) Słowo w nazwiemy anagramem słowa v jeśli w można otrzymać z v poprzez zamianę kolejności liter. Niech

Kierunek i poziom studiów: matematyka, studia I stopnia, rok I. Sylabus modułu: Wstęp do matematyki (03-MO1S-12-WMat)

Definicje. Algorytm to:

1. Wykład NWD, NWW i algorytm Euklidesa.

Języki, automaty i obliczenia

MODELOWANIE RZECZYWISTOŚCI

Teoria obliczeń i złożoność obliczeniowa

KARTA KURSU. Wstęp do logiki i teorii mnogości Introduction to Logic and Set Theory

Opis efektów kształcenia dla modułu zajęć

Wykład 8. Informatyka Stosowana. 26 listopada 2018 Magdalena Alama-Bućko. Informatyka Stosowana Wykład , M.A-B 1 / 31

1. Granice funkcji - wstępne definicje i obliczanie prostych granic

ZALICZENIE WYKŁADU: 30.I.2019

Matematyka dyskretna Literatura Podstawowa: 1. K.A. Ross, C.R.B. Wright: Matematyka Dyskretna, PWN, 1996 (2006) 2. J. Jaworski, Z. Palka, J.

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Indukcja matematyczna

Twierdzenia Gödla. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Festiwal Myśli Abstrakcyjnej, Warszawa, Czy SZTUCZNA INTELIGENCJA potrzebuje FILOZOFII?

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Technologie i systemy oparte na logice rozmytej

Zadanie 1. Czy prawdziwa jest następująca implikacja? Jeśli L A jest językiem regularnym, to regularnym językiem jest też. A = (A, Q, q I, F, δ)

Teoretyczne podstawy informatyki

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

OBLICZALNOŚĆ I NIEOBLICZALNOŚĆ

LOGIKA ALGORYTMICZNA

Zasada indukcji matematycznej

Semiotyka logiczna (1)

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Rachunek prawdopodobieństwa- wykład 2

Zbiory, relacje i funkcje

Języki programowania zasady ich tworzenia

Języki formalne i automaty Ćwiczenia 7

Logika Matematyczna (2,3)

Dopełnienie to można wyrazić w następujący sposób:

1 Działania na zbiorach

PRZEWODNIK PO PRZEDMIOCIE

Minimalizacja automatów niedeterministycznych na słowach skończonych i nieskończonych

Języki, automaty i obliczenia

Temat: Zastosowanie wyrażeń regularnych do syntezy i analizy automatów skończonych

Transkrypt:

Maszyny Turinga Jerzy Pogonowski Zakład Logiki Stosowanej UAM www.logic.amu.edu.pl pogon@amu.edu.pl Funkcje rekurencyjne Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 1 / 29

Wprowadzenie Plan na dziś: Definicja maszyny Turinga; Przykłady obliczeń. Wreszcie podamy pierwszą z matematycznych reprezentacji pojęcia obliczalności. Ograniczymy się przy tym do podstawowych definicji oraz kilku przykładów obliczeń. Należy pamiętać, że ten kurs ma charakter wyłącznie propedeutyczny tak był dotąd traktowany, a wedle nieoficjalnych jeszcze projektów nowego programu studiów Językoznawstwa i Nauk o Informacji, ma być całkiem zniesiony. Wykładu na temat maszyn Turinga szukać trzeba wtedy będzie w innych miejscach. Może istotnie studentom JiNoI zbyteczna jest jakakolwiek wiedza o matematycznych podstawach informatyki? Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 2 / 29

Wprowadzenie Będziemy korzystać z definicji oraz przykładów zamieszczonych w: I.A. Ławrow, L.L. Maksimowa Zadania z teorii mnogości, logiki matematycznej i teorii algorytmów. Wydawnictwo Naukowe PWN, Warszawa 2004. Z języka rosyjskiego przełożył Jerzy Pogonowski. Dalsza, przykładowa, literatura: Hopcroft, J.E., Ullman, J.D. 1994. Wprowadzenie do teorii automatów, języków i obliczeń. Wydawnictwo Naukowe PWN, Warszawa. Kościelski, A. 1997. Teoria obliczeń. Wykłady z matematycznych podstaw informatyki. Wydawnictwo Uniwersytetu Wrocławskiego, Wrocław. Moczurad, M. 2002. Wybrane zagadnienia z teorii rekursji. Wydawnictwo Uniwersytetu Jagiellońskiego, Kraków. Murawski, R. 2000 3. Funkcje rekurencyjne i elementy metamatematyki. Problemy zupełności, rozstrzygalności, twierdzenia Gödla. Wydawnictwo Naukowe UAM, Poznań. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 3 / 29

Wprowadzenie Alan Turing Pomnik w Manchester Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 4 / 29

Wprowadzenie Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 5 / 29

Definicja maszyny Turinga Uwaga. Definicje, które zostaną za chwilę podane, przystosowane są do maszyn Turinga, które liczą wartości pewnych funkcji. Przy tym, korzystamy z faktu, że liczby naturalne (a także ich ciągi) mogą być kodowane poprzez ciągi binarne. Można także patrzeć na maszyny Turinga jako na konstrukcje, które pozwalają rozpoznawać języki formalne, czyli ciągi słów utworzone ze znaków pewnego alfabetu. Rozważane będą deterministyczne maszyny Turinga. Definicje maszyn Turinga, spotykane w literaturze, mogą różnić się pewnymi drobnymi szczegółami (np. liczbą stanów końcowych). Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 6 / 29

Definicja maszyny Turinga Maszyna Turinga T określona jest całkowicie przez: (a) alfabet zewnętrzny A = {a 0, a 1,..., a n } (gdzie a 0 = 0, a 1 = 1); (b) alfabet stanów wewnętrznych Q = {q 0, q 1,..., q m }; (c) program, tj. zbiór wyrażeń T (i, j) (i = 1,..., m; j = 0,..., n), z których każde może mieć jedną z następujących postaci: q i a j q k a l, q i a j q k a l R q i a j q k a l L gdzie 0 k m, 0 l n. Stan q 0 jest wyróżniony jest stanem końcowym. Stan q 1 też jest wyróżniony jest stanem początkowym. Symbole a 0 i a 1 także są wyróżnione a 0 jest symbolem tzw. pustej klatki taśmy. Symbole a 0 i a 1 wystarczają do zapisania każdej informacji. Wyrażenia T (i, j) nazywają się rozkazami. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 7 / 29

Definicja maszyny Turinga Słowem maszynowym lub konfiguracją nazywamy słowo postaci: Aq k a l B gdzie 0 k m, 0 l n, A oraz B są słowami (być może pustymi) w alfabecie A. Piszemy a x i jako skrót wyrażenia a i a i... a }{{} i. x razy Proszę zauważyć, że maszyna Turinga jest pewnym obiektem matematycznym. Wszelkie określenia w rodzaju: praca maszyny, maszyna zatrzymuje się, itd. także mają ściśle zdefiniowany sens matematyczny. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 8 / 29

Definicja maszyny Turinga Niech dane będą maszyna T oraz słowo maszynowe M = Aq i a j B, gdzie 0 i m. Przez M T oznaczymy słowo otrzymane z M według następujących reguł: (1) dla i = 0 niech M T = M; (2) dla i > 0: (a) jeśli T (i, j) jest postaci q i a j q k a l, to M T = Aq ka l B; (b) jeśli T (i, j) jest postaci q i a j q k a l R, to: (B 1) jeśli B nie jest słowem pustym, to M T = Aa l q k B, (B 2) jeśli B jest słowem pustym, to M T = Aa l q k a 0; (c) jeśli T (i, j) jest postaci q i a j q k a l L, to: (C 1) jeśli A = A 1a s dla pewnych A 1 oraz a s, to M T = A 1q k a sa l B, (C 2) jeśli A jest słowem pustym, to M T = q k a 0a l B. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 9 / 29

Definicja maszyny Turinga Przyjmijmy M (0) T = M, M(n+1) T = (M (n) T ). Mówimy, że maszyna T przetwarza słowo maszynowe M w słowo M 1, jeżeli dla pewnego n: M (n) T = M 1. Piszemy wtedy M T M 1. Piszemy M M 1, jeśli maszyna T przetwarza M w M 1 i nie jest przy T tym wykorzystywany warunek (C 2 ) powyższej definicji. Piszemy natomiast M M 1, jeśli maszyna T przetwarza M w M 1, a T przy tym nie są wykorzystywane warunki (B 1 ) oraz (C 2 ) powyższej definicji. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 10 / 29

Definicja maszyny Turinga Zobaczymy za chwilę działanie bardzo prostej maszyny Turinga, na przykładzie programu zawartego w książce: Wychodzimy z tej prezentacji i oglądamy działanie programu. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 11 / 29

Definicja maszyny Turinga Mówimy, że maszyna T oblicza n-argumentową częściową funkcję liczbową f, gdzie δ f N n, ρ f N, jeśli spełnione są następujące warunki: (a) jeśli x 1,..., x n δ f, to maszyna T zatrzymuje się, tj. przetwarza słowo q 1 01 x 1 0... 1 xn 0 w pewne słowo Aq 0 B, a przy tym słowo Aq 0 B zawiera f (x 1,..., x n ) wystąpień symbolu 1; (b) jeśli x 1,..., x n / δ f, to maszyna rozpoczynając działanie od słowa M = q 1 01 x 1 0... 1 xn 0 pracuje w nieskończoność, tj. q 0 nie występuje w M (n) T dla żadnego n. δ f oraz ρ f oznaczają dziedzinę oraz przeciwdziedzinę f, odpowiednio. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 12 / 29

Definicja maszyny Turinga Mówimy, że maszyna T prawidłowo oblicza funkcję f, jeśli spełnione są warunki: (a) jeśli x 1,..., x n δ f, to q 1 01 x 1 0... 1 xn 0 T q 0 01 f (x 1,...,x n) 00... 0; (b) jeśli x 1,..., x n / δ f, to maszyna, rozpoczynając działanie od słowa q 1 01 x 1 0... 1 xn 0 pracuje w nieskończoność. Funkcję f nazywamy obliczalną (prawidłowo obliczalną), jeśli istnieje maszyna, która oblicza (prawidłowo oblicza) funkcję f. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 13 / 29

Definicja maszyny Turinga Dwa przykłady operacji na maszynach Turinga. Niech T 1, T 2, T 3 będą maszynami Turinga z tym samym alfabetem zewnętrznym A = {a 0, a 1,..., a n }, z alfabetami stanów wewnętrznych: Q 1 = {q 0, q 1,..., q r }, Q 2 = {q 0, q 1,..., q s }, Q 3 = {q 0, q 1,..., q t } oraz programami Π 1, Π 2, Π 3, odpowiednio. Złożeniem T 1 T 2 maszyn T 1 i T 2 nazywamy maszynę T, której program jest sumą zbiorów: S q 0 q r+1 Π 1 S q 1...q s q r+1...q r+s Π 2, gdzie S q j q i Π oznacza zbiór rozkazów otrzymanych z Π poprzez zamianę wszystkich wystąpień q j na q i. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 14 / 29

Definicja maszyny Turinga Rozwidleniem maszyn T 1, T 2, T 3 względem (q i, q j ), (symbolicznie T 1 { qi = T 2 q j = T 3 ), gdzie q i, q j Q 1, nazywamy maszynę T, której program otrzymujemy w sposób następujący: z Π 1 usuwamy rozkazy T 1 (i, k) oraz T 1 (j, k) dla k = 0, 1,..., n, otrzymany w ten sposób zbiór oznaczamy przez Π 1 ; wtedy Π = Π 1 S q 1q 2...q s q i q r+1...q r+s+1 Π 2 S q 1q 2...q t q j q r+s...q r+s+t 2 Π 3. Złożenia i rozwidlenia maszyn Turinga to zatem pewne operacje na tych maszynach. Przy obliczaniu różnych funkcji czasem wygodnie jest pracować z maszynami Turinga będącymi wynikami operacji na innych, prostszych maszynach Turinga. Dla przykładu, funkcje definiowane przez schemat rekursji prostej z funkcji prawidłowo obliczalnych w sensie Turinga określać można przez złożenie i rozwidlenie stosownych maszyn Turinga. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 15 / 29

Definicja maszyny Turinga Pokażemy teraz, że maszyny Turinga mogą być kodowane przez liczby naturalne. Niech p n oznacza n-tą liczbę pierwszą. Niech A = a s0... a sk będzie słowem w alfabecie {a 0, a 1, a 2...}. Przyjmijmy: k l (A) = k t=0 p s k t t, k r (A) = k pt st. t=0 Jeśli M = Aq i a j B jest słowem maszynowym, to przyjmijmy: ν(m) = 2 k l (A) 3 i 5 j 7 kr (B). Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 16 / 29

Definicja maszyny Turinga Numerem rozkazu T (i, j) nazwiemy liczbę: µ(t (i, j)) = p pk 0 pl 1 ps 2 c(i,j), gdzie c(x, y) = (x+y)2 +3x+y 2 jest funkcją numerującą Cantora oraz: s = 0, jeśli T (i, j) jest postaci q i a j q k a l, s = 1, jeśli T (i, j) jest postaci q i a j q k a l L, s = 2, jeśli T (i, j) jest postaci q i a j q k a l R. Numerem λ(t ) maszyny T nazwiemy iloczyn wszystkich numerów rozkazów T (i, j) maszyny T. Tak więc, maszyny oraz ich programy (a także ich dane) możemy traktować tak, jak liczby naturalne! Zobaczymy później, jak ważne ma to konsekwencje. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 17 / 29

Przykłady obliczeń 1. Jaką funkcję f (x) oblicza maszyna T o następującym programie: q 1 0 q 2 0R, q 1 1 q 0 1, q 2 0 q 0 1, q 2 1 q 2 1R? Odpowiedź. f (x) = x + 1. Aby tę odpowiedź uzasadnić, należy udowodnić, że maszyna Turinga T przetwarza słowo q 1 01 x 0 w słowo Aq 0 B takie, że w Aq 0 B występuje x + 1 razy symbol 1. Rozważmy przykładowe obliczenie. Weźmy słowo 1 3. Do tablicy idzie ochotnik. Śmiało. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 18 / 29

Przykłady obliczeń 2. Skonstruować maszynę Turinga T, która prawidłowo oblicza funkcję f (x) = x + 1. Odpowiedź. Na przykład: q 1 0 q 2 0R, q 1 1 q 0 1, q 2 0 q 3 1L, q 2 1 q 2 1R, q 3 0 q 0 0, q 3 1 q 3 1L. Aby tę odpowiedź uzasadnić, należy udowodnić, że: q 1 01 x 010 T q 0 01 x+1 00... 0. Rozważmy przykładowe obliczenie. Weźmy słowo 1 3. Do tablicy idzie ochotnik. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 19 / 29

Przykłady obliczeń 3. Skonstruować maszynę Turinga T, która prawidłowo oblicza funkcję o(x) = 0. Odpowiedź. Na przykład: q 1 0 q 2 0R, q 2 0 q 3 0L, q 2 1 q 2 1R, q 3 0 q 0 0, q 3 1 q 3 0L. Aby tę odpowiedź uzasadnić, należy udowodnić, że dla dowolnego słowa A mamy: q 1 0A0 T q 0 000... 0. Rozważmy przykładowe obliczenie. Weźmy słowo 1011. Do tablicy idzie ochotnik. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 20 / 29

Przykłady obliczeń 4. Skonstruować maszynę Turinga T prawidłowo obliczającą funkcję f (x, y) = x + y. Odpowiedź. Na przykład: q 1 0 q 2 0R, q 2 0 q 3 1R, q 2 1 q 2 1R, q 3 0 q 4 0L, q 3 1 q 3 1R, q 4 1 q 5 0L, q 5 0 q 0 0, q 5 1 q 5 1L. Aby tę odpowiedź uzasadnić, należy udowodnić, że dla wszystkich x oraz y: q 1 01 x 01 y 0 T q 0 01 x+y 00... 0. Rozważmy przykładowe obliczenie. Obliczmy 2 + 3. Do tablicy idzie ochotnik. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 21 / 29

Przykłady obliczeń 5. Skonstruować maszynę Turinga T obliczającą funkcję f (x) = x. 1, gdzie x. 1 = x 1 dla x > 0 oraz 0. 1 = 0. Odpowiedź. Na przykład: q 1 0 q 2 0R, q 2 0 q 0 0L, q 2 1 q 3 1R, q 3 0 q 4 0L, q 3 1 q 3 1R, q 4 1 q 5 0L, q 5 0 q 0 0, q 5 1 q 5 1L. Aby tę odpowiedź uzasadnić, należy udowodnić, że dla każdego x > 0: q 1 01 x 010 T Aq 0 B dla pewnych A, B takich, że symbol 1 występuje x 1 razy w Aq 0 B oraz że q 1 000 T Cq 0 D, dla pewnych C, D nie zawierających symbolu 1. Rozważmy przykładowe obliczenie. Obliczmy 2. 1. Do tablicy idzie ochotnik. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 22 / 29

Przykłady obliczeń 6. Skonstruować maszynę Turinga T prawidłowo obliczającą funkcję sg(x); gdzie sg(x) = 1 dla x > 0 oraz sg(0) = 0. Odpowiedź. Na przykład: q 1 0 q 2 0R, q 2 0 q 0 0L, q 2 1 q 3 1R, q 3 0 q 4 0L, q 3 1 q 3 0R, q 4 0 q 4 0L, q 4 1 q 0 0L. Ćwiczenie. Co należy udowodnić, aby uzasadnić tę odpowiedź? Wykonaj przykładowe obliczenie. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 23 / 29

Uwagi metateoretyczne Jak mocne są maszyny Turinga? Języki przez nie rozpoznawane to języki rekurencyjnie przeliczalne. Jest jasne, że nie każdy język może być rozpoznany przez maszynę Turinga: wszystkich języków nad ustalonym skończonym alfabetem jest kontinuum, a maszyn Turinga z tym alfabetem jest tylko przeliczalnie wiele. Problem stopu. Problem, czy dowolna maszyna Turinga dla dowolnych danych zakończy obliczenie, jest problemem nierozstrzygalnym. Maszyny Turinga są dość trudnym narzędziem w praktycznych obliczeniach. Są jednak przydatne w rozważaniach metateoretycznych. A bez takich rozważań, jak wiadomo, byłabyś dzieckiem we mgle. Bo skąd możesz wiedzieć, że coś robisz poprawnie, jeśli nie wiesz, co właściwie robisz? Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 24 / 29

Uwagi metateoretyczne Busy Beaver. Jest skończenie wiele zatrzymujących się maszyn Turinga o n stanach nad alfabetem binarnym. Funkcja przyporządkowująca liczbie n największą liczbę symboli 1, która pozostaje na taśmie po zakończeniu pracy maszyny Turinga o n stanach i zaczynającej pracę z taśmą, na której są tylko symbole 0, jest dobrze określona. Nie jest ona jednak obliczalna przez żadną maszynę Turinga. Gdybyśmy mieli jakiś systematyczny sposób na otrzymywanie wartości tej funkcji, to można byłoby rozstrzygać prawie każdy problem matematyczny. Busy Beaver dla n = 6 wyprodukował 10 865 symboli 1, zatrzymując się po 10 1730 krokach. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 25 / 29

Uwagi metateoretyczne Teza Churcha-Turinga. Każda funkcja, która jest (w intuicyjnym sensie) obliczalna, jest obliczalna przez pewną maszynę Turinga. To oczywiście nie jest twierdzenie matematyczne. Także twierdzenie do niego odwrotne, głoszące, iż każda funkcja obliczalna przez pewną maszynę Turinga jest (w intuicyjnym sensie) obliczalna, nie jest twierdzeniem matematycznym. To, że te dwie klasy funkcji są identyczne (a także pokrywają się z klasami wyznaczonymi przez inne matematyczne reprezentacje obliczalności) nazywa się Tezą Churcha-Turinga. Test Turinga. To procedura zaproponowana przez Turinga. Masz dwóch (niewidocznych) interlokutorów: człowieka oraz komputer. Jeśli nie potrafisz wskazać, który z nich jest komputerem, to należy uznać, iż maszyna przeszła test na bycie podmiotem inteligentnym. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 26 / 29

Uwagi metateoretyczne Gra Conwaya. Popularna gra w życie ma taką samą moc obliczeniową, jak uniwersalna maszyna Turinga. A oto glider, jeden z bohaterów tej gry (a także symbol subkultury hakerów): Chinese Room. To problem zaproponowany przez Johna Searle a. Nie znasz chińskiego. Masz do dyspozycji kompletne reguły przekładu z chińskiego na twój język oraz z twojego języka na chiński. Zamknięto cię w pokoju, do którego dostarczane są pytania po chińsku. Posługując się tylko wspomnianymi regułami, udzielasz odpowiedzi. Czy oznacza to, że rozumiesz język chiński? Ten problem wiąże się zatem z pytaniem o to, jaka część naszej wiedzy ma charakter algorytmiczny. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 27 / 29

Koniec Koniec Od następnego wykładu będziemy pracować z funkcjami rekurencyjnymi. Na jednym z dalszych wykładów wspomnimy (czysto informacyjnie) o innych jeszcze matematycznych reprezentacjach pojęcia obliczalności: algorytmach Markowa; obliczalności według Herbranda Gödla; rachunku lambda; numeracjach Kleene go i Posta. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 28 / 29

Koniec Koniec I tym wesołym akcentem możemy dzisiejsze zajęcia zakończyć. Jerzy Pogonowski (MEG) Maszyny Turinga Funkcje rekurencyjne 29 / 29