AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Podobné dokumenty
Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

AUTOMATY A GRAMATIKY

Vztah jazyků Chomskeho hierarchie a jazyků TS

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Fakulta informačních technologií. Teoretická informatika

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

Univerzální Turingův stroj a Nedeterministický Turingův stroj

TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Automaty a gramatiky. Roman Barták, KTIML. Separované gramatiky. Kontextové gramatiky. Chomského hierarchie

Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13

Složitost Filip Hlásek

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Vlastnosti regulárních jazyků

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,

Třída PTIME a třída NPTIME. NP-úplnost.

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Naproti tomu gramatika je vlastně soupis pravidel, jak

Formální jazyky a automaty Petr Šimeček

Automaty a gramatiky

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Turingovy stroje. Turingovy stroje 1 p.1/28

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Úvod do informatiky. Miroslav Kolařík

Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:

Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému

Formální jazyky a gramatiky Teorie programovacích jazyků

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S.

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.

x 2 = a 2 + tv 2 tedy (a 1, a 2 ) T + [(v 1, v 2 )] T A + V Příklad. U = R n neprázdná množina řešení soustavy Ax = b.

Od Turingových strojů k P=NP

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Konečný automat. Jan Kybic.

VzorTest-1. Prohlídka náhledu

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti. Petr Kučera

Poznámky k přednášce NTIN090 Úvod do složitosti a vyčíslitelnosti. Petr Kučera

Syntaxí řízený překlad

Bezkontextové jazyky 3/3. Bezkontextové jazyky 3 p.1/27

Intervalová data a výpočet některých statistik

Matematická analýza 1

Základy teoretické informatiky Formální jazyky a automaty

Teoretická informatika Tomáš Foltýnek Teorie čísel Nekonečno

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 3. PREDNÁŠKA - KOMPAKTNÍ PROSTORY.

Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy

Jednoznačné a nejednoznačné gramatiky

ZÁKLADY TEORETICKÉ INFORMATIKY

Automaty a gramatiky. Roman Barták, KTIML. Chomského normální forma

2. přednáška 8. října 2007

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

5. Lokální, vázané a globální extrémy

Učební texty k státní bakalářské zkoušce Programování Základy teoretické informatiky. študenti MFF 15. augusta 2008

SIMULÁTOR TURINGOVÝCH STROJŮ POPSANÝCH POMOCÍ KOMPOZITNÍCH DIAGRAMŮ

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

YZTI - poznámky ke složitosti

Teoretická informatika průběh výuky v semestru 1

2 Formální jazyky a gramatiky

Matematika I. Přednášky: Mgr. Radek Výrut, Zkouška:

Predikátová logika. prvního řádu

Výroková a predikátová logika - V

Úvod do teorie her

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Přijímací zkouška - matematika

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Z. Sawa (VŠB-TUO) Teoretická informatika 11. prosince / 63

Výroková a predikátová logika - VIII

BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS MASTER S THESIS AUTHOR

UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY. Vyčíslitelnost a složitost 1. Mgr. Viktor PAVLISKA

Lineární programování

METRICKÉ A NORMOVANÉ PROSTORY

Teoretická informatika TIN 2013/2014

H {{u, v} : u,v U u v }

Lineární algebra : Báze a dimenze

Výroková a predikátová logika - VIII

Teoretická informatika průběh výuky v semestru 1

Úvod do informatiky. Miroslav Kolařík

Obor: Informatika Červen 2005 Okruh: Základy matematiky Otázka: 1. Jméno: Bodů:...

Třídy složitosti P a NP, NP-úplnost

Výroková a predikátová logika - XII

Teorie množin. pro fajnšmekry - TeMno. Lenka Macálková BR Solutions Orličky. Lenka (Brkos 2010) TeMno

Teoretická informatika

1 Determinanty a inverzní matice

Substituce a morfismy jednoduše

Markov Chain Monte Carlo. Jan Kracík.

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Naproti tomu gramatika je vlastně soupis pravidel, jak

Naivní teorie množin. Naivní pojem množiny Funkce jako nálepkovací schéma Konečnost, nekonečnost Spočetnost, nespočetnost

Projekty - Úvod do funkcionální analýzy

Pravděpodobnost a statistika

Vysoké učení technické v Brně Fakulta informačních technologií. Gramatiky nad volnými grupami Petr Blatný

NP-úplnost problému SAT

Transkript:

AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

Kontextové uzávěrové vlastnosti (1) kontextové jazyky jsou uzavřené na konečná sjednocení kontextové gramatiky G 1 =(V N1, V T, S 1, P 1 ) a G 2 =(V N2, V T, S 2, P 2 ), kde V N 1 V N2 = položme G = (V N 1 V N2 {S }, V T, S, P1 P2 {S S 1 S 2 }) S je nový neterminál ošetřit přepis původních počátečních symbolů na λ platí L(G) = L(G 1 ) L(G 2 ) kontextové jazyky jsou uzavřené na konkatenaci položme G = (V 1 N V N2 {S }, V T, S, P 1 P 2 {S S 1.S 2 }) S je nový neterminál ošetřit přepis původních počátečních symbolů na λ platí L(G) = L(G 1 ).L(G 2 ) kontextové jazyky jsou uzavřené na iteraci položme G = (V N1 {S, S }, V T, S, P 1 {S λ S, S S S 1 S 1 }) S, S jsou nové neterminály je třeba dávat pozor na výskyt počátečního neterminálu vpravo (u bezkontextových netřeba) platí L(G) = L(G 1 )* kontextové jazyky jsou uzavřené na zrcadlový obraz položme G = (V N1, V T, S 1, {v R w R v w P 1 }) platí L(G) = L(G 1 ) R 2 Automaty a gramatiky 11

Kontextové uzávěrové vlastnosti (2) kontextové jazyky jsou uzavřené na kontextovou substituci substituce f: X 2 Y* je kontextová substituce, jestliže f(x) je kontextový jazyk pro každé x X máme G x = (V Nx, Y, S x, P x ), že f(x) = L(G x ) pro každé x X V Nx jsou po dvou disjunktní mějme G = (V N, X, S, P), zajímá nás kontextovost f(l(g)) položíme G = (V N x X V N x X, Y, S, P x X P x {x S x x X}) případně ošetříme přepis neterminálů jiných než S na λ platí L(G ) = f(l(g)) kontextové jazyky jsou uzavřené na doplňky a konečné průniky velmi hluboký výsledek (řešilo se asi 20 let) věta Immerman Szelepcsényi 3 Automaty a gramatiky 11

Turingův stroj (1) Turingův stroj automat, který může přepisovat pásku páska je potenciálně nekonečná v konečném čase stroj použije její konečnou část historická vsuvka 30. léta 20. století konečná výpočetní zařízení, formalizace algoritmu a problému Turingův stroj, λ-kalkulus, RAM (random access machine) osobnosti Turing, Kleene, Markov, Post, Church Churchova hypotéza (metavěta) všechna konečná výpočetní zařízení jsou ekvivalentní, tj. ekvivaletní Turingovu stroji nedokázáno ani nevyvráceno 4 Automaty a gramatiky 11

Turingův stroj (2) Turingův stroj formálně T = (Q, X, δ, q 0, b, F) Q - konečná neprázdná množina stavů X - konečná neprázdná množina symbolů (abeceda) F Q - množina přijímajících stavů δ: (Q-F) X Q X {-1, 0, +1} přechodová funkce pro stav a čtený symbol dává nový stav, symbol k zápisu a následující pozici na pásce v přijímajícím stavu výpočet končí q 0 Q - počáteční stav b X - symbol pro prázdnou buňku na pásce předpoklady páska je směrem doprava nekonečná vstupní slovo je napsané na levém konci pásky zprava doplněné symbolem b do nekonečna páska počáteční pozice je na prvním písmenu vstupního slova x X q Q 5 Automaty a gramatiky 11

Výpočet Turingova stroje konfigurace Turingova stroje trojice (u,q,v), kde u,v X* a q Q u.v je slovo na nejmenší souvislé části pásky obsahující symboly b a čtenou buňku u je část vlevo od aktuální čtené pozice (kromě) v je část vpravo od aktuální čtené pozice (včetně) změna konfigurace (u,q,v) na (w,p,z), jestliže (i) v = x.v pro x X, w = u, z = y.v a δ(q,x)=(p,y,0), nebo žádný posun (ii) v = x.v pro x X, w = u.y, z = v a δ(q,x)=(p,y,+1), nebo posun doprava (iii) u= u.x, v = x.v pro x,x X, w = u, z = x.y.v a δ(q,x)=(p,y,-1) posun doleva zapisujeme (u,q,v) T (w,p,z) nutno ošetřit případy, kdy u=λ změna konfigurace na konečně mnoho kroků (u,q,v) T * (w,p,z) (u,q,v) b b (ii) b b b b u X* u u v X* q Q w x q Q y v v z = v p Q b b b (u,q,v) b b b (w,p,z) b b b 6 Automaty a gramatiky 11

Varianty Turingova stroje nedeterministický přechodová funkce bude nedeterministická 1. páska x 1 X δ: (Q-F) X 2 Q X {-1, 0, +1} pojem změny konfigurace se upraví místo δ(q,x) =... budeme mít δ(q,x)... vícepáskový (k pásek) δ: (Q-F) X k Q X k {-1, 0, +1} k případně δ: (Q-F) X k 2 Q X k {-1, 0, +1}k u nedeterministické varianty vstupní slovo na první pásce změna konfigurace analogicky multi-dimenzionální páska má několik rozměrů (například 2D, 3D) pohyb je možný ve všech směrech 2. páska... k. páska 2D q Q x k X x 2 X q Q 7 Automaty a gramatiky 11

Jazyky a Turingovy stroje slovo w (X-{b})* je přijímáno Turingovým strojem T = (Q, X, δ, q 0, b, F), jestliže (λ, q 0,w) T * (u,f,v) pro u,v X* a f F někdy je vyžadováno smazání pásky, tj. (λ, q 0,w) T * (λ,f,b) jazyk L(T) přijímaný Turingovým strojem T L(T) = { w w (X-{b})* ( f F) (λ, q 0,w) T * (u,f,v) } jazyky přijímané Turingovými stroji jsou právě rekurzivně spočetné jazyky (typu 0) [recursively enumerable language] platí s libovolnou variantou Turingova stroje (více pásek, více dimenzí, s nedeterminismem) všechny varianty TS mají stejnou výpočetní sílu lze se omezit na jednopáskový deterministický 8 Automaty a gramatiky 11

Turingův stroj gramatika mějme deterministický jednopáskový TS T = (Q, X, δ, q 0, b, F) hledáme gramatiku G=(V N,X,S,P) (bez omezení), že L(G) = L(T) G vygeneruje pásku s prostorem pro výpočet a kopii vstupního slova, simuluje výpočet T nad vygenerovanou páskou (páska obsahuje zracadlový obraz vstupu) V N = { X x x X } { Q q q Q } {S, I, B, E} I pomocný neterminál pro generování w X* a w R, B pro generování prostoru na simulované pásce, E pro mazání simulační pásky pravidla P zahájení S I Q q 0 B I x I X x B pro x X generování slova w a jeho kopie w R B X b B X b generování volného prostoru simulace výpočtu nad w R X x Q q X y X z Q p X y když δ(q,x)=(p,z,0) X x Q q X y Q p X z X y když δ(q,x)=(p,z,+1) X x Q q X y X z X y Q p když δ(q,x)=(p,z,-1) mazání pásky nechť w = x 1 x 2...x n derivace: S G *... x 1 x 2...x n I X x n X xn-1...x x1 Q q0 B G x 1 x 2...x n B X x n X xn-1...x x1 Q q0 B G*... x 1 x 2...x n X b...x b X x n X xn-1...x x1 Q q0 X b...x b G *... x 1 x 2...x n u Q f v pro u,v {X x x X}* a f F G x 1 x 2...x n u E v G *... x 1 x 2...x n E v G * x 1 x 2...x n E G * x 1 x 2...x n Q f E pro f F X E E pro X V N E X E pro X V N E λ 9 Automaty a gramatiky 11

Gramatika Turingův stroj mějme gramatiku (bez omezení) G=(V N,V T,S,P) hledáme TS T = (Q, X, δ, q 0, b, F), že L(T) = L(G) pracné po technické stránce, ukážeme abstraktně konstrukce, z nichž na vyšší úrovni sestavíme T TS T 1, že L(T 1 ) = {#u#v# u,v X* u G v }, # V N V T na všech možných místech v u je vyzkoušena aplikace všech pravidel G TS T 2, že L(T 2 ) = { w ( n N 0 ) w = #u 1 #u 2 #...#u n # u 1,...,u n (V N V T )* u 1 G u 2 u 2 G u 3... u n-1 G u n } T 2 bude založen na T 1 TS T 3 generující systematicky všechna slova nad V N V T {#} začínající #S# T 3 vstupní slovo přepíše na následující slovo spojením T 2 a T 3 vznikne požadovaný TS T vstup: z V T * na volné místo na pásce zapiš w = #S# loop if w L(T 2 ) then if w končí #z# then přijmi z w výsledek práce T 3 nad w 10 Automaty a gramatiky 11

Kódování, slova a čísla kódování různých datových typů vysoké úrovně na nižší úrovni jen řetězce nebo přirozená čísla ASCII či Unicode řetězce jsou reprezentovány posloupností bitů, tj. slovy nad {0, 1} slova nad {0, 1} lze interpretovat jako přirozená čísla interpretace b n-1...b 1 b 0 = b i 2 i + 2 n, kde b i {0,1} pro i=0,1,...,n-1 máme pojem i-tého řetězce pro i N analogicky pro bitmapové obrázky obrázek kódování jako binární řetězec číslo máme pojem i-tého obrázku program je jen vhodně interpretovaný řetězec máme i-tý program (respektive i-tý Turingův stroj) program + bitmapové obrázky = počítačová hra máme i-tou hru důkaz je posloupnost výrazů i-tý důkaz Př.: 101 13. binární řetězec 0101 21. binární řetězec 00101 37. binární řetězec 11 Automaty a gramatiky 11

Množiny konečné a nekonečné konečná množina K Př.: {a, b, c} je konečná množina kardinality 3 počet jejích prvků - kardinalita je číslo N 0 neexistuje vzájemně jednoznačné zobrazení mezi K a její 12 Automaty a gramatiky 11 vlastní podmnožinou nekonečná množina N existuje vzájemně jednoznačné zobrazení mezi N a její vlastní podmnožinou spočetná množina S existuje vzájemně jednoznačné zobrazení mezi S a N spočetné množiny jsou nekonečné Př.: N je nekonečná 1 2 2 4 3 6... Př.: celá čísla Z 0 1 -i 2i i 2i+1...

Enumerace a jazyky (1) enumerace množiny M je vzájemně jednoznačné zobrazení mezi M a N máme tedy enumeraci řetězců, programů, obrázků,... lze enumerovat jazyky na danou abecedou X (={0,1})? nikoli pro spor předpokládejme, že jazyky nad {0, 1} enumerovat lze máme tedy pojem i-tého jazyka, označme jazyky L i pro i N položme L = { w w {0,1}* w je i-tý binární řetězec w L i } L je nad {0, 1}, mělo by se tedy jednat o j-tý jazyk pro jisté j N uvažme j-tý binární řetězec v a otázku, zda v L když v L, pak v L podle definice L když v L, pak v L podle definice L 13 Automaty a gramatiky 11

Enumerace a jazyky (2) byla použita diagonalizace překlopíme hodnoty na diagonále nová diagonála nemůže být řádkem s každým řádkem se v jedné buňce liší předpoklad, že jazyky nad {0,1} lze enumerovat, byl chybný jazyky řetězce 1 2 3 4 5... máme více jazyků než programů (Turingových strojů) existují jazyky, pro které nemáme program (Turingův stroj), který je přijímá nikoli všechny jazyky jsou rekurzivně spočetné nekonstruktivní přístup jak takový jazyk vypadá? 1 2 3 4 5... 10 0 1 1 0 10 01 01 10 14 Automaty a gramatiky 11