Języki, automaty i obliczenia

Podobne dokumenty
Języki, automaty i obliczenia

Języki, automaty i obliczenia

Obliczenia inspirowane Naturą

Maszyna Turinga języki

Hierarchia Chomsky ego Maszyna Turinga

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

Obliczenia inspirowane Naturą

Matematyczne Podstawy Informatyki

Imię, nazwisko, nr indeksu

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

Języki, automaty i obliczenia

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

Maszyna Turinga, ang. Turing Machine (TM)

Maszyna Turinga (Algorytmy Część III)

Hierarchia Chomsky ego

Elementy Teorii Obliczeń

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

Efektywność Procedur Obliczeniowych. wykład 5

PROBLEMY NIEROZSTRZYGALNE

Języki formalne i automaty Ćwiczenia 9

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

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

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

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

1 Automaty niedeterministyczne

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra 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}

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

Jaki język zrozumie automat?

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Podstawy Informatyki Maszyna Turinga

Struktura danych. Sposób uporządkowania informacji w komputerze.

MODELOWANIE RZECZYWISTOŚCI

Turing i jego maszyny

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

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

Niestandardowe modele obliczeń

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

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

MASZYNA TURINGA UPRASZCZANIE DANYCH

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

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

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

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

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

10110 =

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

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

Teoria obliczeń czyli czego komputery zrobić nie mogą

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

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

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

Języki formalne i automaty Ćwiczenia 1

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

O ALGORYTMACH I MASZYNACH TURINGA

Języki formalne i automaty Ćwiczenia 7

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Algorytmy i struktury danych. wykład 2

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

O ROLI TEZY CHURCHA W DOWODZIE PEWNEGO TWIERDZENIA

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

Wprowadzenie do maszyny Turinga

1 Maszyny Turinga. stan 1 litera 1 litera 2 ruch stan 2. Matematycznie P S (Q {B}) (Q {B}) {L, R, } S

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

Złożoność obliczeniowa zadania, zestaw 2

Wyrażenia regularne.

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki

ZADANIA Z AUTOMATU SKOŃCZONEGO SPRAWOZDANIE NR 4

TEORIA ZŁOŻONOŚCI PROBLEMY I ALGORYTMY OGRANICZENIE DOLNE I GÓRNE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

R O Z D Z I A Ł V I I

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

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

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

Wprowadzenie do złożoności obliczeniowej

Instrukcje dla zawodników

Języki regularne, rozpoznawanie wzorców regularnych, automaty skończone, wyrażenia regularne

Złożoność obliczeniowa

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

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)

AUTOMATY SKOŃCZONE. Automat skończony przedstawiamy formalnie jako uporządkowaną piątkę:

Definicja: zmiennych zdaniowych spójnikach zdaniowych:

Maszyna Turinga Złożoność obliczeniowa

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Teoretyczne Podstawy Informatyki

Topologia zbioru Cantora a obwody logiczne

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Teoretyczne podstawy informatyki

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

Matematyczne Podstawy Informatyki

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

Zastosowanie bisymulacji do. Non-Interference XVI FIT, Karpacz 2002

TEORETYCZNE PODSTAWY INFORMATYKI

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Języki formalne i automaty Ćwiczenia 2

Implementacja maszyny Turinga w maszynie RAM

Algorytmiczny model uczenia się języka Prezentacja

Transkrypt:

Języki, automaty i obliczenia Wykład 10: Maszyny Turinga Sławomir Lasota Uniwersytet Warszawski 29 kwietnia 2015

Plan

Maszyny Turinga (Niedeterministyczna) maszyna Turinga M = (A, Q, q 0, F, T, B, δ) A alfabet wejściowy Q zbiór stanów q 0 Q stan początkowy F Q stany akceptujące (bez u.o. jeden stan akceptujący) T alfabet taśmowy, A T B T A symbol pusty (ang. blank) δ Q T Q T {,, } relacja przejścia Co oznacza przejście? (q, a, q, a, k) δ: zmień stan z q na q, czytaj a, zapisz a, zmień pozycję wg. k Konfiguracja początkowa maszyny M wygląda tak: q... B B B a b a a b a b B B...

Przykład A = {a, b} Q = {start, start a, start b, ret, go, go a, go b, go a, go b, ret, check, ok} q 0 = start F = {ok} T = A {B, #} relacja przejścia (na następnym slajdzie) δ : Q T P(Q T {,, }) Pytanie Jaki język rozpoznaje ta maszyna?

Przykład (relacja przejścia) a b B # start (start a, #, ) (start b, #, ) (ok, B, ) start a (start a, a, ) (start a, b, )? (ret, #, ) start b (start b, a, ) (start b, b, )? (ret, #, ) ret (ret, a, ) (ret, b, ) (go, #, ) go (go a, #, ) (go b, #, ) (check, #, ) go a (go a, a, ) (go a, b, ) (go a, #, ) go b (go b, a, ) (go b, b, ) (go b, #, ) go a (ret, #, )?? (go a, #, ) go b? (ret, #, )? (go b, #, ) ret (ret, a, ) (ret, b, ) (check, B, ) (ret, #, ) check?? (ok, B, ) (check, #, )

Przykład (język) L(M) = {w w : w A } Pytanie Jak zmodyfikować maszynę M, aby obliczała funkcję: w w w?

Taśma... B B B a b a a b a b B B... Taśma jest nieskończona w obydwie strony. Taśma reprezentuje pamięć maszyny: nie nieskończoną, ale dowolnie dużą skończoną. Bez u.o. możemy założyć, że maszyna nigdy nie zapisuje symbolu B; wtedy B oznacza nieużywane pozycje taśmy. Poza obszarem używanym przez maszynę, na wszystkich pozycjach taśmy jest symbol B. Nieistotne, na której pozycji taśmy zaczyna się obszar używany przez maszynę (przesunięcie tego obszaru w prawo lub w lewo nic istotnego nie zmienia).

Konfiguracje Zapisując konfiguracje, pomijamy nieskończenie wiele symboli B poza obszarem odwiedzonym przez maszynę, i poza słowem wejściowym: q... B B B a b a a b a b B B... (q, a) b a a b a b albo q a b a a b a b Formalnie, konfiguracja maszyny M to c = w q w T Q T Umowa q a b a a b a b = B q a b a a b a b = q a b a a b a b B = B B q a b a a b a b B =... Konfiguracje początkowa: c 0 = q 0 w (w A to słowo wejściowe) Konfiguracje akceptujące: T F T = {w q w : q F ; w, w T }

Język rozpoznawany przez maszynę Przejścia pomiędzy konfiguracjami c M c : (w, v T ) jeśli (q, a, q, a, ) δ to w q a v M w q a v jeśli (q, a, q, a, ) δ to w q a v M w a q v jeśli (q, a, q, a, ) δ to w b q a v M w q b a v Umowa q a b a a b a b = B q a b a a b a b = q a b a a b a b B = B B q a b a a b a b B =... Język rozpoznawany przez maszynę M: L(M) = {w A : q 0 w M c dla jakiejś konfiguracji akceptującej c}

Dwukierunkowe automaty skończone q a b a a b a b 0 1... i n n+1 Automaty dwukierunkowe to...

Dwukierunkowe automaty skończone q a b a a b a b 0 1... i n n+1 Automaty dwukierunkowe to... maszyny Turinga, które nie mogą pisać na taśmie.

Języki rekurencyjnie przeliczalne Klasa języków rozpoznawanych przez maszyny Turinga: języki częściowo rozstrzygalne języki rekurencyjnie przeliczalne Hierarchia Chomsky ego: (typ 0) (typ 1) (typ 2) (typ 3) języki rekurencyjnie przeliczalne języki kontekstowe języki bezkontekstowe języki regularne

Plan

Przykład (maszyna 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, #, ) Maszyna deterministyczna: δ : (Q {ok, nok }) T Q T {,, }

Przykład (maszyna 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, #, ) Maszyna deterministyczna: δ : (Q {ok, nok }) T Q T {,, } Pytanie Czy maszynę z poprzeniego przykładu można zdeterminizować?

Determinizacja? 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 {,, } Pytanie Czy dla każdej maszyny Turinga istnieje równoważna maszyna deterministyczna?

Plan

Warianty maszyn Turinga Maszyny z: taśmą jednostronnie nieskończoną wieloma taśmami taśmą wielowymiarową...

Maszyny z taśmą jednostronnie nieskończoną a b a a b a b B B... Pytanie Czy maszyna z taśmą jednostronnie nieskończoną potrafi symulować maszynę z taśmą dwustronnie nieskończoną?

Maszyny z taśmą jednostronnie nieskończoną a b a a b a b B B... Pytanie Czy maszyna z taśmą jednostronnie nieskończoną potrafi symulować maszynę z taśmą dwustronnie nieskończoną?... B B B a b a a b a b B B... B B B B B B B a b a a b a b B B...

Maszyny wielotaśmowe q... B B B a b a a b a b B B... q... B B B B c b c b c b c B... δ Q T 2 Q T 2 {,, } 2 Pytanie Czy maszyna jednotaśmowa potrafi symulować maszynę wielotaśmową?

Maszyny wielotaśmowe q... B B B a b a a b a b B B... q... B B B B c b c b c b c B... δ Q T 2 Q T 2 {,, } 2 Pytanie Czy maszyna jednotaśmowa potrafi symulować maszynę wielotaśmową? q... c a b a a b a b B B B B B c b c b c b c B...

Maszyny z taśmą dwuwymiarową...... B B B B B B B B B B B B B B a b b c a a a a B B B a b a a b q b a a b B B B B B a b a a b a b B B B B B B c b c b c b c B B B B B B B B B B B B B...... δ Q T Q T {,,,, } Pytanie Czy maszyna z taśmą jednowymiarową potrafi symulować maszynę z taśmą dwuwymiarową?

Maszyny z taśmą dwuwymiarową...... B B B B B B B B B B B B B B a b b c a a a a B B B a b a a b q b a a b B B B B B a b a a b a b B B B B B B c b c b c b c B B B B B B B B B B B B B...... δ Q T Q T {,,,, } Pytanie Czy maszyna z taśmą jednowymiarową potrafi symulować maszynę z taśmą dwuwymiarową? a # a b b c b a b b # a a a c b...

Plan

Języki jako problemy decyzyjne Języki będziemy utożsamiać z problemami decyzyjnymi (zadaniami obliczeniowymi). 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 Ogólnie, język L A można utożsamić z następującym zadaniem obliczeniowym: Dane wejściowe: w A Wynik: rozstrzygnąć, czy w L?

Maszyny Turinga a obliczalność Teza Churcha-Turinga: języki rozpoznawane (problemy obliczane) przez maszyny Turinga = problemy, dla których istnieje efektywny algorytm, przy założeniu nieograniczonych zasobów albo: maszyny Turinga = komputery Wątpliwości: nieskończoność taśmy? alfabet stosowy większy niż rozmiar dysku? liczba stanów większa niż rozmiar dysku? niedeterminizm?

Język uniwersalny (problem stopu) Problem stopu Dane: maszyna Turinga M nad alfabetem A i słowo w A Wynik: czy w L(M)? 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##... Nie ma istotnej różnicy między programem a daną... Pytanie Czy alfabet {0, 1, #} można zmiejszyć?

Język uniwersalny i maszyna uniwersalna Bez u.o. możemy ograniczyć się do maszyn, których alfabet taśmowy T = {0, 1, B}. Faktycznie, słowo nad alfabetem T {B} = {a, b, c, d} można zapisać jako słowo nad {0, 1}, na przykład: a b c a d = 1000 0100 0010 1000 0001 Język uniwersalny (problem stopu): { (M, w) : w L(M)} {kod M $ w : w L(M)} {0, 1, #, $} Twierdzenie Język uniwersalny jest rekurencyjnie przeliczalny. Dowód: Uniwersalna maszyna Turinga: 000100 $ 00#000000#001000#000011#000##000100#001#010000#100#001##...... $ 0010101010101111101011

Modele obliczeń równoważne maszynom Turinga gramatyki typu 0 automaty wielostosowe maszyny (automaty) licznikowe automaty z kolejką... maszyny RAM (ang. random access machines) albo maszyny rejestrowe rachunek λ...

W następnym odcinku: Obliczalność i nieobliczalność