Języki, automaty i obliczenia

Podobne dokumenty
Języki, automaty i obliczenia

Języki, automaty i obliczenia

Imię, nazwisko, nr indeksu

Maszyna Turinga języki

Języki, automaty i obliczenia

Hierarchia Chomsky ego Maszyna Turinga

Teoria obliczeń czyli czego komputery zrobić nie mogą

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

Obliczenia inspirowane Naturą

10110 =

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

(j, k) jeśli k j w przeciwnym przypadku.

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

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

Hierarchia Chomsky ego

PROBLEMY NIEROZSTRZYGALNE

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

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

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

Obliczenia inspirowane Naturą

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Jaki język zrozumie automat?

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

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

Wykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ

Rekurencyjna przeliczalność

Matematyczne Podstawy Informatyki

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}

1 Automaty niedeterministyczne

Równoważność automatów wielotaśmowych

Arytmetyka pierwszego rz du

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, δ)

JAO - Języki, Automaty i Obliczenia - Wykład 2. JAO - Języki, Automaty i Obliczenia - Wykład 2

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

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

R O Z D Z I A Ł V I I I

złożony ze słów zerojedynkowych o długości co najmniej 3, w których druga i trzecia litera od końca sa

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Automaty Büchi ego i równoważne modele obliczeń

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

Języki formalne i automaty Ćwiczenia 9

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Jȩzyki, automaty, zlożoność obliczeniowa

Lista 6 Problemy NP-zupełne

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

Typy algorytmów losowych. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

O ALGORYTMACH I MASZYNACH TURINGA

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Efektywność Procedur Obliczeniowych. wykład 5

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

Elementy Teorii Obliczeń

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

3.4. Przekształcenia gramatyk bezkontekstowych

O ROLI TEZY CHURCHA W DOWODZIE PEWNEGO TWIERDZENIA

Matematyczna wieża Babel. 4. Ograniczone maszyny Turinga o językach kontekstowych materiały do ćwiczeń

Maszyna Turinga, ang. Turing Machine (TM)

Około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej (i jedno chyba trudne)

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)

Około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej (i jedno chyba trudne)

Wykład 10. Stwierdzenie 1. X spełnia warunek Borela wtedy i tylko wtedy, gdy każda scentrowana rodzina zbiorów domkniętych ma niepusty przekrój.

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

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

Języki formalne i automaty Ćwiczenia 7

Około dwustu łatwych zadań z języków formalnych i złożoności obliczeniowej (i jedno chyba trudne)

Logika stosowana. Ćwiczenia Złożoność obliczeniowa problemu spełnialności. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

R O Z D Z I A Ł V I. Automaty skończenie-stanowe

R O Z D Z I A Ł V I I

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

Początki informatyki teoretycznej. Paweł Cieśla

Jednotaśmowa, deterministyczna maszyna Turinga :

Języki formalne i automaty Ćwiczenia 1

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

zbiorów domkniętych i tak otrzymane zbiory domknięte ustawiamy w ciąg. Oznaczamy

Języki, automaty i obliczenia

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

Złożoność obliczeniowa

Korzystając z własności metryki łatwo wykazać, że dla dowolnych x, y, z X zachodzi

Wyrażenie nawiasowe. Wyrażenie puste jest poprawnym wyrażeniem nawiasowym.

Języki formalne i automaty Ćwiczenia 3

Kombinowanie o nieskończoności. 3. Jak policzyć nieskończone materiały do ćwiczeń

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

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

Topologia zbioru Cantora a obwody logiczne

Wyrażenia regularne.

Robert Kowalczyk. Zbiór zadań z teorii miary i całki

Teoretyczne podstawy informatyki

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Zadanie 4 Zadanie 5 Zadanie 6. Repetytorium z JFiZO. Jakub Michaliszyn 25 maja 2017

Teoretyczne podstawy informatyki

Spacery losowe generowanie realizacji procesu losowego

n=0 Dla zbioru Cantora prawdziwe są wersje lematu 3.6 oraz lematu 3.8 przy założeniu α = :

Rekurencja, schemat rekursji i funkcje pierwotnie rekurencyjne

Lista egzaminacyjna zadań z matematycznych podstaw informatyki, wersja 3.

JĘZYKIFORMALNE IMETODYKOMPILACJI

Dialog z przyroda musi byc prowadzony w jezyku matematyki, w przeciwnym razie przyroda nie odpowiada na nasze pytania.

Transkrypt:

Języki, automaty i obliczenia Wykład 11: Obliczalność i nieobliczalność Sławomir Lasota Uniwersytet Warszawski 6 maja 2015

Plan 1 Problemy częściowo rozstrzygalne 2 Problemy rozstrzygalne 3 Funkcje (częściowo) obliczalne 4 Jak dowodzić nierozstrzygalności?

Maszyny Turinga Maszyny Turinga: q... B B B a b a a b a b B B... Język (problem) L A nazywamy częściowo rozstrzygalnym, albo rekurencyjnie przeliczalnym, jeśli L = L(M) dla pewnej maszyny Turinga M. Słowo w A nazywamy instancją problemu. Przykład Dane wejściowe: Wynik: graf skierowany G rozstrzygnąć, czy G ma cykl Hamiltona? Graf można opisać jako słowo nad A = {0, 1, #}, np. 110#101#001

Problem stopu maszyna M kod M {0, 1} Maszynę M można opisać jako słowo kod M {0, 1, #}, na przykład 00#000000#001000#000011#000##000100#001#010000#100#001##... albo jako słowo kod M {0, 1}, na przykład 00 1 000000 1 001000 000011 000 000100 001 010000 100 001... Twierdzenie Język uniwersalny (problem stopu) L u = { (M, w) : w L(M)} L u = {kod M $ w : w L(M)} {0, 1, $} jest rekurencyjnie przeliczalny. Pytanie Czy każdy język jest rekurencyjnie przeliczalny?

Problem nie rekurencyjnie przeliczalny Maszyny Turinga = słowa nad {0, 1}: kod M {0, 1} maszyna M w {0, 1} maszyna M(w) = { M, jeśli kod M = w M, w p.p. L(M ) = Język przekątniowy : L p = {w : w L(M(w))} Twierdzenie Język L p nie jest rekurencyjnie przeliczalny. Dowód: paradoks golibrody

Problem nie rekurencyjnie przeliczalny Maszyny Turinga = słowa nad {0, 1}: kod M {0, 1} maszyna M w {0, 1} maszyna M(w) = { M, jeśli kod M = w M, w p.p. L(M ) = Język przekątniowy : L p = {w : w L(M(w))} Twierdzenie Język L p nie jest rekurencyjnie przeliczalny. Dowód: Przypuśćmy, że L(M p) = L p. Niech w p = kod Mp. Wtedy paradoks golibrody w p L p w p / L(M(w p)) w p / L(M p) w p / L p

Plan 1 Problemy częściowo rozstrzygalne 2 Problemy rozstrzygalne 3 Funkcje (częściowo) obliczalne 4 Jak dowodzić nierozstrzygalności?

Deterministyczne maszyny Turinga Deterministyczna maszyna Turinga M = (A, Q, q 0, q tak, T, B, δ) q tak Q stan akceptujący δ : (Q {q tak }) T Q T {,, } Twierdzenie Dla każdej maszyny Turinga istnieje równoważna maszyna deterministyczna. Dowód:?

Całkowite deterministyczne maszyny Turinga Deterministyczna maszyna Turinga M = (A, Q, q 0, q tak, q nie, T, B, δ) q tak Q stan akceptujący q nie Q stan odrzucający δ : (Q {q tak, q nie }) T Q T {,, } Konfiguracje końcowe: T {q tak, q nie } T = {w q w : q {q tak, q nie }; w, w T } Deterministyczna maszyna Turinga M zatrzymuje się dla słowa wejściowego w jeśli q 0 w M c dla jakiejś konfiguracji końcowej c. Maszyna M jest całkowita, jeśli zatrzymuje się dla każdego słowa wejściowego.

Przykład (maszyna całkowita i deterministyczna) L(M) = {a n b a n : n N} a b B # start (cont, #, ) (check, b, ) ( nok, B, ) ( nok, #, ) cont (cont, a, ) (cont, b, ) (start, B, ) (start, #, ) start (cont, #, ) ( nok, b, ) ( nok, B, ) ( nok, #, ) cont (cont, a, ) (cont, b, ) ( nok, B, ) (start, #, ) check ( nok, a, ) ( nok, b, ) ( nok, B, ) (ok, #, )

Problemy rozstrzygalne Język (problem) L A nazywamy rozstrzygalnym, albo rekurencyjnym, jeśli L = L(M) dla pewnej całkowitej deterministycznej maszyny Turinga M. Pytanie Czy języki bezkontekstowe są rozstrzygalne? A ich dopełnienia?

Problemy rozstrzygalne Język (problem) L A nazywamy rozstrzygalnym, albo rekurencyjnym, jeśli L = L(M) dla pewnej całkowitej deterministycznej maszyny Turinga M. Pytanie Czy języki bezkontekstowe są rozstrzygalne? A ich dopełnienia? Fakt Jeśli L A jest rozstrzygalny to L = A L też. Pytanie Problem stopu L u = {kod M $ w : w L(M)} jest częściowo rozstrzygalny. Czy jest rozstrzygalny?

Problem stopu jest nierozstrzygalny Twierdzenie Problem stopu L u jest nierozstrzygalny. Dowód: Przypuśćmy, że L u = L(M u), dla całkowitej deterministycznej maszyny M u. Skonstruujemy (całkowitą deterministyczną) maszynę M d dla języka L d... rysunek Przykładowe problemy nierozstrzygalne: Pustość języka maszyny Turinga Dane: maszyna Turinga M Wynik: czy L(M) =? Uniwersalność języka bezkontektowego Dane: język bezkontekstowy L A Wynik: czy L = A?

Dopełnienie Fakt Jeśli L i L są częściowo rozstrzygalne, to są rozstrzygalne. Dowód: Z dwóch niedeterministycznych maszyn M i M dla języków L i L skonstruujemy całkowitą deterministyczną maszynę dla L... rysunek Wniosek Dla każdego języka L zachodzi dokładnie jeden z warunków: L jest rozstrzygalny (i L też) L jest częściowo rozstrzygalny, L nie jest częściowo rozstrzygalny L jest częściowo rozstrzygalny, L nie jest częściowo rozstrzygalny L i L nie są częściowo rozstrzygalne

Plan 1 Problemy częściowo rozstrzygalne 2 Problemy rozstrzygalne 3 Funkcje (częściowo) obliczalne 4 Jak dowodzić nierozstrzygalności?

Funkcje (częściowo) obliczalne I Relację R (A ) n możemy utożsamić z językiem L R = {w 1 $w 2 $... $w n : (w 1, w 2,..., w n) R} Funkcję częściową f : (A ) n A nazywamy częściowo obliczalną, albo częściowo rekurencyjną, jeśli L f = {w 1 $w 2 $... $w n$f (w 1, w 2,..., w n) : (w 1, w 2,..., w n) dom(f )} jest językiem częściowo rozstrzygalnym. Całkowitą, częściowo obliczalną funkcję f : (A ) n A nazywamy obliczalną, albo rekurencyjną.

Funkcje (częściowo) obliczalne II Deterministyczna maszyna Turinga M = (A, Q, q 0, q wynik, T, B, δ) q wynik Q stan końcowy δ : (Q {q wynik }) T Q T {,, } Funkcja częściowa obliczana przez maszynę M: F (M) : (A ) n A F (M)(w 1,..., w n) = v q 0 w 1 $w 2 $... $w n M q wynik v Funkcję częściową f : (A ) n A nazywamy częściowo obliczalną, albo częściowo rekurencyjną, jeśli f = F (M) dla jakiejś maszyny M. Pytanie Czy te dwie definicje są równoważne?

Podsumowanie niedeterministyczne maszyny Turinga całkowite deterministyczne maszyny Turinga języki częściowo rozstrzygalne rozstrzygalne (problemy) rekurencyjnie przeliczalne rekurencyjne funkcje częściowo obliczalne obliczalne częściowo rekurencyjne rekurencyjne

Plan 1 Problemy częściowo rozstrzygalne 2 Problemy rozstrzygalne 3 Funkcje (częściowo) obliczalne 4 Jak dowodzić nierozstrzygalności?

Redukcja Problem L A redukuje się (sprowadza się) do problemu K B jeśli istnieje funkcja obliczalna f : A B taka, że w L f (w) K, dla każdego w A. Ozn. L K, gdy L redukuje się do K. rysunek Fakt Jeśli L K to L K. Fakt Jeśli L K i problem K jest (częściowo) rozstrzygalny to problem L jest też (częściowo) rozstrzygalny. Dowód:... rysunek

Dowód nierozstrzygalności Problem stopu Dane: maszyna Turinga M nad alfabetem {0, 1} i słowo w {0, 1} Wynik: czy w L(M)? Niepustość języka maszyny Turinga Dane: maszyna Turinga M Wynik: czy L(M)? funkcja obliczalna: M, w M poprawność: w L(M) L(M ) Maszyna M działa następująco: ignoruje swoje słowo wejściowe pisze na taśmie słowo w symuluje maszynę M na słowie w akceptuje, gdy M akceptuje

Dowód nierozstrzygalności Pustość języka maszyny Turinga Dane: maszyna Turinga M Wynik: czy L(M) =? Uniwersalność języka bezkont. Dane: język bezkontekstowy L A Wynik: czy L = A? funkcja obliczalna: M G poprawność: L(M) = L(G) = A Bieg maszyny M: ρ = c 0 M c 1 M... M c n kod ρ = $c 0 $c 1 $... $c n$ Niech L(G) = {kod ρ : ρ bieg akceptujący maszyny M} Fakt Język {c$c : c M c } jest bezkontekstowy.

Problem odpowiedniości Posta (ang. Post Correspondence Problem) Problem odpowiedniości Posta (PCP) Dane: ciąg par słów (w 1, v 1 ),..., (w n, v n) Wynik: czy istnieje niepusty ciąg (i 1,..., i m) t. że w i1... w im = v i1... v im? Odpowiedni ciąg (i 1,..., i m) nazywamy rozwiązaniem. Przykład Instancja (b, bbb), (babbb, ba), (ba, a) ma rozwiązanie (2, 1, 1, 3): babbb b b ba = ba bbb bbb a a poniższa instancja nie ma rozwiązań: (ba, bab), (abb, bb), (bab, abb) 1 b bbb 2 babbb ba 3 ba a 1 ba bab 2 abb bb 3 bab abb Twierdzenie Problem odpowiedniości Posta jest nierozstrzygalny.

Dowód nierozstrzygalności PCP Ograniczony problem odpowiedniości Posta (ograniczony PCP) Dane: ciąg par słów (w 1, v 1 ),..., (w n, v n) Wynik: czy istnieje niepusty ciąg (i 1,..., i m) t. że w i1... w im = v i1... v im i i 1 = 1? Lemat Ograniczony PCP PCP. Dowód: 1 b bbb 2 babbb ba 3 ba a 0 b b b b 1 b b b b 2 b a b b b b a 3 b a a 4 $ $ (1, i 2,..., i m) jest rozwiązaniem (0, i 2,..., i m, n + 1) jest rozwiązaniem

Dowód nierozstrzygalności PCP (c.d.) Lemat Problem stopu ograniczony PCP. Dowód: Bieg akceptujący maszyny M na słowie w, czyli q 0 w M c 1 M... M c n, odpowiada rozwiązaniu PCP postaci $q 0 w$c 1 $... $c n$d 1 $... $d j $q tak $$. M, w $ $q 0 w$ 0 0 1 1 B B $ $ q a q a q a a q b q a q b a q $ a q $ $ q a $ q B a...... q tak a q tak a q tak q tak q tak $$ $ jeśli (q, a, q, a, ) δ jeśli (q, a, q, a, ) δ jeśli (q, a, q, a, ) δ jeśli (q, B, q, a, ) δ jeśli (q, a, q, a, ) δ

Problem stopu jest zupełny Twierdzenie Każdy problem częściowo rozstrzygalny redukuje się do problemu stopu. Dowód: Niech L częściowo rozstrzygalny i niech L = L(M). funkcja obliczalna: w M, w poprawność: w L(M) w L(M)

W następnym odcinku: Gramatyki równoważne maszynom Turinga