Języki, automaty i obliczenia

Podobne dokumenty
Języki, automaty i obliczenia

Języki, automaty i obliczenia

Hierarchia Chomsky ego Maszyna Turinga

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Imię, nazwisko, nr indeksu

Hierarchia Chomsky ego

Maszyna Turinga języki

Języki, automaty i obliczenia

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

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

Obliczenia inspirowane Naturą

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

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

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

Obliczenia inspirowane Naturą

Jaki język zrozumie automat?

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

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

Języki formalne i automaty Ćwiczenia 1

ZLOŻONOŚĆ OBLICZENIOWA - WYK. 2

JAO - Wprowadzenie do Gramatyk bezkontekstowych

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

10110 =

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

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Matematyczne Podstawy Informatyki

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

Języki formalne i automaty Ćwiczenia 9

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

PROBLEMY NIEROZSTRZYGALNE

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

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

Języki formalne i automaty Ćwiczenia 7

GRAMATYKI BEZKONTEKSTOWE

Języki formalne i automaty Ćwiczenia 3

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

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}

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

3.4. Przekształcenia gramatyk bezkontekstowych

Teoria obliczeń czyli czego komputery zrobić nie mogą

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

JIP. Analiza składni, gramatyki

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

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

Języki formalne i automaty Ćwiczenia 2

Języki i gramatyki formalne

Efektywność Procedur Obliczeniowych. wykład 5

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Złożoność obliczeniowa

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

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

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

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

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

O ALGORYTMACH I MASZYNACH TURINGA

Matematyczne Podstawy Informatyki

Języki formalne i automaty Ćwiczenia 4

Maszyna Turinga, ang. Turing Machine (TM)

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

Grupy pytań na egzamin inżynierski na kierunku Informatyka

1 Automaty niedeterministyczne

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

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Obliczenia inspirowane Naturą

JĘZYKI FORMALNE I METODY KOMPILACJI

Opisy efektów kształcenia dla modułu

Efektywna analiza składniowa GBK

Lista 5 Gramatyki bezkontekstowe i automaty ze stosem

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

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

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

Elementy Teorii Obliczeń

1. Maszyna Turinga, gramatyki formalne i ONP

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

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

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

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

Wprowadzenie do złożoności obliczeniowej

Algorytmiczny model uczenia się języka Prezentacja

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

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)

Zakładamy, że maszyna ma jeden stan akceptujacy.

1 X-gramatyki, Hierarchia Chomsky ego

Maszyna Turinga (Algorytmy Część III)

Wyrażenia regularne.

Wstęp do programowania

AUTOMATYKA INFORMATYKA

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

ZYKI BEZKONTEKSTOWE (KLASA

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

Języki formalne i automaty Ćwiczenia 8

Obliczenia inspirowane Naturą

Analizator syntaktyczny

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

Matematyczna wieża Babel. 3. Gramatyki o językach bezkontekstowych materiały do ćwiczeń

Technologie Informacyjne

Wprowadzenie do złożoności obliczeniowej

JĘZYKIFORMALNE IMETODYKOMPILACJI

Podstawy Informatyki Gramatyki formalne

R O Z D Z I A Ł V I I

Transkrypt:

Języki, automaty i obliczenia Wykład 12: Gramatyki i inne modele równoważne maszynom Turinga. Wstęp do złożoności obliczeniowej Sławomir Lasota Uniwersytet Warszawski 20 maja 2015

Plan 1 Gramatyki 2 Języki kontekstowe 3 Automaty z licznikami 4 Złożoność czasowa i pamięciowa

Hierarchia Chomsky ego typ języki automaty gramatyki typ 0 rekurencyjnie maszyny? przeliczalne Turinga typ 1 kontekstowe?? typ 2 bezkontekstowe automaty bezkontekstowe ze stosem typ 3 regularne automaty regularne skończone

Gramatyka (typu 0) G = (A, N, S, α) A to skończony zbiór symboli końcowych (terminalnych) N to skończony zbiór symboli niekońcowych (nieterminalnych), A N = S N to symbol początkowy α (A N) + (A N) to skończony zbiór reguł przepisywania (produkcji) Notacja Reguły (v, v ) α będziemy zapisywać v G v albo v v. Reguły rozszerzamy do relacji G (A N) (A N) : w G w (v G v ) α, u, t (A N), w = u v t, v = u v t i domykamy zwrotno-tranzytywnie: w G w wtw. gdy istnieje ciąg w = v 0 G v 1 G... G v n = w, n 0 zwany wyprowadzeniem (wywodem) w z w (w gramatyce G).

Język generowany przez gramatykę Język generowany przez gramatykę: L(G) = {w A : S G w} Przykład Gramatyka G: A = {a, b, c} N = {S, X, B} S ε X abxc Ba ab S X X abc Bb bb L(G) =?

Maszyny Turinga a gramatyki Twierdzenie Języki częściowo rozstrzygalne to języki generowane przez gramatyki. Dowód: gramatyka G maszyna Turinga M: maszyna symuluje gramatykę wstecz v G w q w M q v, zaczyna w konfiguracji q w, akceptuje w konfiguracji qs. Więc L(G) = L(M). maszyna Turinga z taśmą jednostronnie nieograniczoną gramatyka: Faza 1: S G $ w [q f, a] v B w, v (T {B}), a T {B} Faza 2: b [q, c] [q, a] c jeśli (q, a, q, b, ) δ [q, c] b c [q, a] jeśli (q, a, q, b, ) δ b [q, B] [q, B] jeśli (q, B, q, b, ) δ [q, c] b B c [q, B] jeśli (q, B, q, b, ) δ $ [q 0, a] $ a a B a

Nierozstrzygalność gramatyk Problem słów Dane: gramatyk G i dwa słowa v, w Wynik: czy v G w? Wniosek Problem słów jest nierozstrzygalny. Dowód: Redukujemy problem stopu do problemu słów: funkcja obliczalna: maszyna M, słowo w G i słowa S, w poprawność: w L(M) S G w Pytanie Czy problem słów jest częściowo rozstrzygalny?

Plan 1 Gramatyki 2 Języki kontekstowe 3 Automaty z licznikami 4 Złożoność czasowa i pamięciowa

Hierarchia Chomsky ego typ języki automaty gramatyki typ 0 rekurencyjnie maszyny? przeliczalne Turinga typ 1 kontekstowe?? typ 2 bezkontekstowe automaty bezkontekstowe ze stosem typ 3 regularne automaty regularne skończone

Gramatyki i języki kontekstowe Gramatyka G = (A, N, S, α) jest kontekstowa jeśli produkcje są postaci: S ε u X v u w v X N, u, v, w (A N), w ε, S / w Pytanie Gramatyka G: A = {a, b, c} N = {S, X, B} S ε X abxc Ba ab S X X abc Bb bb L(G) = {a n b n c n : n N} Jak przerobić tę gramatykę na gramatykę kontekstową?

Gramatyki i języki kontekstowe Gramatyka G = (A, N, S, α) jest kontekstowa jeśli produkcje są postaci: S ε u X v u w v X N, u, v, w (A N), w ε, S / w Pytanie Gramatyka G: A = {a, b, c} N = {S, X, B} S ε X abxc Ba ab S X X abc Bb bb L(G) = {a n b n c n : n N} Jak przerobić tę gramatykę na gramatykę kontekstową? Odpowiedź Pomysł jest następujący: Ba Bā Bā Bā Bā BB BB ab

Gramatyki monotoniczne Gramatyka G = (A, N, S, α) jest kontekstowa jeśli produkcje są postaci: S ε u X v u w v X N, u, v, w (A N), w ε, S / w Gramatyka G = (A, N, S, α) jest monotoniczna jeśli produkcje są postaci: S ε v w v w, S / w Twierdzenie Gramatyki kontekstowe i monotoniczne rozpoznają te same języki. Dowód: j.w.

Maszyny liniowo ograniczone q... B B B a b a a b a b B B... Maszyna Turinga jest liniowo ograniczona jeśli nigdy nie pisze na pozycji taśmy zajętej przez symbol B. Czyli zabraniamy przejść postaci: (q, B, q, a, x) a B

Maszyny liniowo ograniczone a gramatyki monotoniczne Twierdzenie Języli kontekstowe to języki rozpoznawane przez niedet. maszyny liniowo ograniczone. Dowód: gramatyka G maszyna Turinga M: maszyna symuluje gramatykę wstecz v G w q w M q v, zaczyna w konfiguracji q w, akceptuje w konfiguracji qs. Więc L(G) = L(M). maszyna Turinga z taśmą jednostronnie nieograniczoną gramatyka: Faza 1: S G $ w [q f, a] v B w, v (T {B}), a T {B} Faza 2: b [q, c] [q, a] c jeśli (q, a, q, b, ) δ [q, c] b c [q, a] jeśli (q, a, q, b, ) δ b [q, B] [q, B] jeśli (q, B, q, b, ) δ [q, c] b B c [q, B] jeśli (q, B, q, b, ) δ $ [q 0, a] $ a a B a

(Nie)rozstrzygalność gramatyk monotonicznych Fakt Problem słów jest rozstrzygalny dla gramatyk monotonicznych. Więc problem stopu jest rozstrzygalny dla liniowo ograniczonych maszyn Turinga. Twierdzenie Problem (nie)pustości jest nierozstrzygalny dla języków kontekstowych. Dowód: Dla ustalonej instancji PCP, zbiór rozwiązań jest językiem kontekstowym. funkcja obliczalna: instancja PCP x G x poprawność: x ma rozwiązanie L(G x ) Pytanie Czy problem (nie)pustości jest częściowo rozstrzygalny?

Hierarchia Chomsky ego typ języki automaty gramatyki typ 0 rekurencyjnie maszyny typu 0 przeliczalne Turinga typ 1 kontekstowe maszyny liniowo ogr. kontekstowe/monotoniczne typ 2 bezkontekstowe automaty bezkontekstowe ze stosem typ 3 regularne automaty regularne skończone

Plan 1 Gramatyki 2 Języki kontekstowe 3 Automaty z licznikami 4 Złożoność czasowa i pamięciowa

Automaty z licznikami A = (A, Q, I, F, C, δ) A alfabet Q skończony zbiór stanów I Q stany początkowe F Q stany akceptujące C skończony zbiór liczników δ Q (A {ε}) {c++, c, c==0? : c C} Q relacja przejścia Przykład A = {(, ), [, ]} C = {c, d} (, c++ c==0?; d==0? [, d++ ], d L(A) =? ), c

Automaty z licznikami są równoważne maszynom Turinga Twierdzenie Języki częściowo rozstrzygalne to języki rozpoznawane przez automaty z licznikami. Dowód (idea): Maszyna Turinga automat z 3 licznikami:... B B B 1 1 0 1 1 0 1 B B... q q 1 1 0 1 1 0 1 6 = 4 + 2 + 0 1 + 2 + 0 + 8 = 11

Automaty z licznikami są równoważne maszynom Turinga Twierdzenie Języki częściowo rozstrzygalne to języki rozpoznawane przez automaty z licznikami. Dowód (idea): Maszyna Turinga automat z 3 licznikami:... B B B 1 1 0 1 1 0 1 B B... q q 1 1 0 1 1 0 1 6 = 4 + 2 + 0 1 + 2 + 0 + 8 = 11 Potrzebne operacje na licznikach: parz(c)? nparz(c)? c = c >> 1 c = c << 1

Maszyna Turinga automat z licznikami Potrzebne operacje na licznikach: parz(c)? nparz(c)? c = c >> 1 c = c << 1 parz(c) nparz(c) c==0? c c==0? c==0? start start c ; d++; d++ c ; d++

Automaty z 2 licznikami Twierdzenie Maszyny z 2 licznikami potrafią symulować maszyny z 3 licznikami. Dowód:? Najprostszy problem nierozstrzygalny Dane: A automat deterministyczny z 2 licznikami c 1, c 2 Wynik: czy A zatrzyma się, jeśli rozpocznie w konfiguracji (q 0, c 1 = 0, c 2 = 0)? Pytanie Kiedy automat z licznikami jest deterministyczny?

Automaty z 2 licznikami Twierdzenie Maszyny z 2 licznikami potrafią symulować maszyny z 3 licznikami. Dowód:? Najprostszy problem nierozstrzygalny Dane: A automat deterministyczny z 2 licznikami c 1, c 2 Wynik: czy A zatrzyma się, jeśli rozpocznie w konfiguracji (q 0, c 1 = 0, c 2 = 0)? Pytanie Kiedy automat z licznikami jest deterministyczny? c==0? c++ c

Plan 1 Gramatyki 2 Języki kontekstowe 3 Automaty z licznikami 4 Złożoność czasowa i pamięciowa

Czas i pamięć n długość słowa wejściowego. Rozważamy funkcje f : N N t.że f (n) log n. klasa języków DTIME(f (n)) NTIME(f (n)) DSPACE(f (n)) NSPACE(f (n)) języki rozpoznawane przez deterministyczną maszynę w czasie f (n) niedeterministyczną maszynę w czasie f (n) deterministyczną maszynę w pamięci f (n) niedeterministyczną maszynę w pamięci f (n) Pytanie Czy wystarczy ograniczyć się do obliczalnych funkcji f? Twierdzenie Wszystkie klasy są właściwymi podklasami języków rozstrzygalnych. Dowód: L p = {w : w L f (M(w))}

Hierarchia Twierdzenie DTIME(f (n)) NTIME(f (n)) DSPACE(f (n)) NSPACE(f (n)) NSPACE(f (n)) c DTIME(2c f (n) ) = DTIME(2 O(f (n)) ) zalożenie!... EXPSPACE = c DSPACE(2 nc ) = c NSPACE(2 nc ) NEXPTIME = c NTIME(2 nc ) EXPTIME = c DTIME(2 nc ) PSPACE = c DSPACE(n c ) = c NSPACE(n c ) NP = NPTIME = c NTIME(n c ) P = PTIME = c DTIME(n c ) NL = L = NLOGSPACE = NSPACE(log(n)) LOGSPACE = DSPACE(log(n))

Hierarchia Chomsky ego typ języki automaty gramatyki klasa złożoności typ 0 rekurencyjnie maszyny dowolne przeliczalne Turinga typ 1 kontekstowe maszyny liniowo kontekstowe/ NSPACE(n) ograniczone monotoniczne typ 2 bezkontekstowe automaty bezkontekstowe PTIME ze stosem typ 3 regularne automaty regularne NSPACE(1)/ skończone DSPACE(1)

W następnym odcinku: Czas wielomianowy i pamięć wielomianowa: PSPACE = c DSPACE(n c ) = c NSPACE(n c ) NP = NPTIME = c NTIME(n c ) P = PTIME = DTIME(n c ) c