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

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

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

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

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

Automaty a gramatiky

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

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

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

Jednoznačné a nejednoznačné gramatiky

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

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

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

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

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 Σ

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

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

AUTOMATY A GRAMATIKY

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

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

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

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

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

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

Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

Syntaxí řízený překlad

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

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

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.

Čí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:

Vlastnosti regulárních jazyků

Složitost Filip Hlásek

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

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

Automaty a gramatiky

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/31

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.

Turingovy stroje. Turingovy stroje 1 p.1/28

Teoretická informatika TIN 2013/2014

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

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

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

Automaty a gramatiky. Úvod do formáln. lních gramatik. Roman Barták, KTIML. Příklady gramatik

Úvod do informatiky. Miroslav Kolařík

Naproti tomu gramatika je vlastně soupis pravidel, jak

Teoretická informatika

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

(viztakéslidyktétopřednášce...) Poznámka. Neudělali jsme vše tak podrobně, jak je to v zápisu.

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

Teoretická informatika - Úkol č.1

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

2 Formální jazyky a gramatiky

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

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).

PŘEDNÁŠKA 2 POSLOUPNOSTI

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

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

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

Přijímací zkouška na navazující magisterské studium 2017

NP-úplnost problému SAT

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

1 Determinanty a inverzní matice

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

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ

ZÁKLADY TEORETICKÉ INFORMATIKY

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

Operace s maticemi. 19. února 2018

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

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

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

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

Barevnost grafů MFF UK

Teoretická informatika TIN

Zimní semestr akademického roku 2014/ prosince 2014

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Matematika 2 Úvod ZS09. KMA, PřF UP Olomouc. Jiří Fišer (KMA, PřF UP Olomouc) KMA MA2AA ZS09 1 / 25

Konečný automat. Jan Kybic.

Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu odhaduje, jak se svět může vyvíjet.

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

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í.

Minimalizace KA - Úvod

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

Interpolace, ortogonální polynomy, Gaussova kvadratura

6. Lineární nezávislost a báze p. 1/18

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

Limita a spojitost funkce

Úvod do informatiky. Miroslav Kolařík

EKO-KOLONIE. Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě 24.

Poznámka. Kezkoušcejemožnojítjenposplněnípožadavkůkzápočtu. Kromě čistého papíru a psacích potřeb není povoleno používat žádné další pomůcky.

Operace s maticemi

Limita a spojitost funkce a zobrazení jedné reálné proměnné

Od Turingových strojů k P=NP

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

Lineární programování

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

/1: Teoretická informatika(ti) přednáška 4

Transkript:

Chomského hierarchie Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak gramatiky typu 0 (rekurzivně spočetné jazyky L 0 ) pravidla v obecné formě gramatiky typu 1 (kontextové jazyky L 1 ) pouze pravidla ve tvaru αxβ αwβ, X V N, α,β (V N V T )*, w (V N V T ) + jedinoýjimkou je pravidlo S λ, potom se ale S nevyskytuje na pravé straně žádného pravidla gramatiky typu 2 (bezkontextové jazyky L 2 ) pouze pravidla ve tvaru X w, X V N, w (V N V T )* gramatiky typu 3 (regulární/pravé lineární jazyky L 3 ) pouze pravidla ve tvaru X wy, X w, X,Y V N, w V T * Kontextové gramatiky pouze pravidla ve tvaru αxβ αwβ, X V N, α,β (V N V T )*, w (V N V T ) + jedinoýjimkou je pravidlo S λ, potom se ale S nevyskytuje na pravé straně žádného pravidla Poznámky: neterminál X se přepisuje na w pouze v kontextu α a β pravidlo S λslouží pouze pro přidání λ do jazyka Příklad: L = {a n b n c n n 1} je kontextový jazyk (není BKJ) S asbc abc CB BC pozor, není kontextové pravidlo! bb bb bc bc cc cc Separované gramatiky Gramatika je separovaná, pokud obsahuje pouze pravidla tvaru α β, kde: buď α,β V + N (neprázdné posloupnosti neterminálů) nebo α V N a β V T {λ}. Lemma: Ke každé gramatice G lze sestrojit ekvivalentní separovanou gramatiku G. nechť G = (V N,V T,S,P) pro každý terminál x V T zavedeme nový neterminál X v pravidlech z P nahradíme terminály odpovídajícími neterminály a přidáme pravidla X x G = (V N V T,V T,S,P {X x x V T }) zřejmě L(G) = L(G ) 1

Od monotonie ke kontextovosti Gramatika je monotónní (nevypouštějící), jestliže pro každé pravidlo (u v) P platí u v. Monotónní gramatiky slovo v průběhu generování nezkracují. Věta: Ke každé monotónní gramatice lze nalézt ekvivalentní gramatika kontextovou. nejprve převedeme gramatiku na separovanou tím se monotonie neporuší (+ pravidla X x jsou kontextová) zbývají pravidla A 1 B 1 B n (kde m n) převedeme na kontextová pravidla s novými neterminály C A 1 C 1 A 2 C 1 A 2 C 1 C 2 C 1 C m-1 A m C 1 C m-1 C m C 1 C m B 1 C m B 1 C 2 C m B 1 B 2 C m B 1 B m-1 C m B 1 B m-1 B m B n Příklad kontextového jazyka L = {a i b j c k 1 i j k} je kontextový jazyk (není BKJ) S asbc abc B BBC C CC CB BC ab ab bb bb bc bc cc cc generování symbolů a množení symbolů B množení symbolů C uspořádání symbolů B a C začátek přepisu B na b pokračování přepisu B na b začátek přepisu C na c pokračování přepisu C na c CB BC není kontextové pravidlo, nahradíme ho: CB XB, XB XY, XY BY, BY BC Chomského hierarchie gramatiky typu 0 (rekurzivně spočetné jazyky L 0 ) pravidla v obecné formě gramatiky typu 1 (kontextové jazyky L 1 ) pouze pravidla ve tvaru αxβ αwβ, X V N, α,β (V N V T )*, w (V N V T ) + jedinoýjimkou je pravidlo S λ, potom se ale S nevyskytuje na pravé straně žádného pravidla gramatiky typu 2 (bezkontextové jazyky L 2 ) pouze pravidla ve tvaru X w, X V N, w (V N V T )* gramatiky typu 3 (regulární/pravé lineární jazyky L 3 ) pouze pravidla ve tvaru X wy, X w, X,Y V N, w V T * Turingovy stroje - historie a motivace 1931-1936 pokusy o formalizaci pojmu algoritmu Gödel, Kleene, Church, Turing Turingův stroj zachycení práce matematika (nekonečná) tabule lze z ní číst a lze na ni psát mozek (řídící jednotka) Formalizace TS: místo tabule oboustranně nekonečná páska místo křídy čtecí a zapisovací hlava, kterou lze posouvat místo mozku konečná řídící jednotka (jako u ZA) Další formalizace: λ-kalkul, částečně rekurzivní funkce, RAM 2

Definice Turingova stroje Turingovým strojem nazýváme pětici T=(Q,X,δ,q 0,F), kde Q - neprázdná konečná množina stavů X - neprázdná konečná množina symbolů obsahuje symbol ε pro prázdné políčko δ -přechodová funkce δ : (Q-F) X Q X {-1,0,1} popisuje změnu stavu, zápis na pásku a posun hlavy q 0 Q - počáteční stav F Q - množina koncových stavů páska řídící jednotka 1) výpočet začíná ve stavu q 0 2) v každém taktu dojde ke změně stavu k přepisu políčka na pásce k posunu hlavy 3) výpočet končí, když není definována žádná instrukce (speciálně platí pro koncové stavy) Turingovy stroje - konfigurace a modifikace Konfigurace Turingova stroje je souhrn údajů přesně popisující stav výpočtu. Obsahuje: nejmenší souvislou část pásky, která obsahuje všechny neprázdné buňky čtenou buňku obvyklý zápis: uqv vnitřní stav polohu čtené buňky (hlavy) TS postupně přepracovává konfigurace. Modifikace Turingova stroje: více pásek, více hlav, jednostranná páska omezené činnosti v taktu omezený počet stavů, omezená abeceda dva zásobníky λ q λ Příklad Turingova stroje Navrhněte Turingův stroj převádějící konfiguraci q 0 w na q F w R, kde w {a 1,,a n }* (tj. obrácení slova). q 0,ε q F,ε,0 prázdné slovo q 0,a i q i,r,a i,+1 přečte písmeno, pamatuje si ve stavu q 0,a i q R,a i,+1 konec (slovo sudé délky) q i,r,a j q i,r,a j,+1 běží doprava q i,r,ε q i,w,ε,-1 na konci se otočí q i,r,a j q i,w,a j,-1 q i,w,a j q j,l,a i,-1 vymění písmena q i,w,a i q R,a i,+1 konec (slovo liché délky) q i,l,a j q i,l,a j,-1 a běží zpět (doleva) q i,l,a j q 0,a i,+1 na zarážce uloží písmeno a začne znova q R,a j q R,a j,+1 běží doprava q R,ε q C,ε,-1 na konci se otočí q C,a j q C,a j,-1 při běhu doleva ruší označení q C, ε q F, ε,+1 slovo je obráceno Výpočet Turingova stroje Turingovým strojem nazýváme pětici T=(Q,X,δ,q 0,F) prázdné políčko ε Konfigurace TS popisuje aktuální stav výpočtu - uqv. ε c a Krok výpočtu (přímá změna konfigurace): uqv wpz v=av, w=u, z=bv q,a p,b,0 v=av, w=ub, z=v q,a p,b,+1 v=av, u=wc, z=cbv q,a p,b,-1 Poznámky: technicky je potřeba ošetřit případy, kdy v=λ nebo u=λ s u a v lze pracovat jako se dvěma zásobníky Výpočet je posloupnost přímých kroků uqv * wpz q ε 3

Turingovy stroje a jazyky Slovo w je přijímáno Turingovým strojem T, pokud q 0 w * upv, p F někdy je na konci výpočtyžadováno smazání pásky (q 0 w * λpε) Jazyk přijímaný Turingovým strojem T L(T) = {w w (X-{ε})* & q 0 w * upv, p F}. Jazyk L nazveme rekurzivně spočetným, pokud je přijímán nějakým Turingovým strojem T (L=L(T)). Příklad: {a 2n } q 0,ε q F,ε,0 q 0,a q 1,a,+1 q 1,a q 0,a,+1 prázdné slovo (konec výpočtu) zvětší čítač (2k+1 symbolů) nuluje čítač (2k symbolů) Od Turingova stroje ke gramatice Každý rekurzivně spočetný jazyk je typu 0. pro Turingův stroj T najdeme gramatiku G tak, že L(T)=L(G) gramatika nejdříve vygeneruje pásku stroje + kopii slova potom simuluje výpočet (stavy jsou součástí slova) v koncovém stavu smažeme pásku, necháme pouze kopii slova w ε n w R q 0 ε n (ε n představují volný prostor pro výpočet) I) S D Q 0 E D xd X E generuje slovo a jeho reverzní kopii pro výpočet E εe ε generuje volný prostor pro výpočet II) X P Y X Q Y pro δ(p,x)=(q,x,0) X P Y Q X Y pro δ(p,x)=(q,x,+1) X P Y X Y Q pro δ(p,x)=(q,x,-1) III) P C pro p F C A C mazání pásky A C C mazání pásky C λ konec výpočtu Od Turingova stroje ke gramatice - pokračování Ještě L(T) = L(G)? w L(T) existuje konečný výpočet stroje T (konečný prostor) gramatika vygeneruje dostatečně velký prostor pro výpočet simulujeme výpočet a smažeme dvojníky w L(G) pravidla v derivaci nemusí být v pořadí, jakém chceme derivaci můžeme přeuspořádat tak, že pořadí je I, II, III podtržené symboly smazány, tj. vygenerován koncový stav Příklad: δ(q 0,ε) = (q F,ε,0) δ(q 0,a) =(q 1,a,+1) δ(q 1,a) = (q 0,a,+1) Gramatika po zjednodušení S D q 0 D ad a ε ε q 0 C a q 0 q 1 a a q 1 q 0 a C a C C λ Od gramatik k Turingově stroji Každý jazyk typu 0 je rekurzivně spočetný. Důkaz (neformálně): idea: Turingův stroj postupně generuje všechny derivace derivaci S w 1 w n =w kódujeme jako slovo #S#w 1 # #w# TS postupně generuje všechna slova #S# w 1 # #w k # pokud w n =w, výpočet končí jinak, TS generuje další derivaci umíme udělat TS, který přijímá slova #u#v#, kde u v umíme udělat TS, který přijímá slova #w 1 # #w k #, kde w 1 *w k umíme udělat TS postupně generující všechna slova stroje spojíme do while cyklu Generuj (další) slovo Slovo tvoří derivaci? ne ano Derivace končí w? ne ano 4

Nedeterministické Turingovy stroje Nedeterministickým Turingovým strojem nazýváme pětici T=(Q,X,δ,q 0,F), kde Q,X,q 0,F jsou jako u TS a δ : (Q-F) X P(Q X {-1,0,1}). Slovo w je přijímáno nedeterministickým Turingovým strojem T, pokud existuje nějaký výpočet q 0 w * upv, p F. Tvrzení: N Turingovy stroje přijímají právě rekurzivně spočetné jazyky. Důkaz (neformálně): Ukážeme, že výpočty NTS lze modelovat pomocí TS. Pozor! Nelze použít podmnožinovou konstrukci (kvůli pásce)! TS modeluje všechny výpočty NTS prohledáváním do šířky max δ(q,x) Na pásce můžeme mít všechny konfigurace v hloubce k (páska je nekonečná), nebo můžeme generovat popis výpočtu (posloupnost pravidel) a vždy k němu dopočítat výslednou konfiguraci Lineárně omezené automaty Ještě potřebujeme ekvivalent pro kontextové gramatiky. Připomeňme, že kontextovou gramatiku dostaneme z libovolné monotónní gramatiky Lineárně omezený automat (LOA) je nedeterministický TS, kde na pásce je označen levý a pravý konec (l, r). Tyto symboly nelze při výpočtu přepsat a nesmí se jít nalevo od l a napravo od r. Slovo w je přijímáno lineárně omezeným automatem, pokud q 0 lwr * upv, p F. Prostor výpočtu je definován vstupním slovem a automat při jeho přijímání nesmí překročit jeho délku u monotónních (kontextových) derivací to není problém: žádné slovo v derivaci není delší než výstupní slovo Od kontextových jazyků k LOA Každý kontextový jazyk lze přijímat pomocí LOA. derivaci gramatiky budeme simulovat pomocí LOA použijeme pásku se dvěma stopami (větší abeceda) l 1) slovo w dáme do horní stopy a na začátek dolní stopy dáme S 2) přepisujeme slovo ve druhé stopě podle pravidel G 2.1) nedeterministicky vybereme část k přepsání 2.2) provedeme přepsání dle pravidla (pravá část se odsune) αxβ αγβ S w u α X β v u α γ β v 3) pokud jsoe druhé stopě samé terminály, porovnáme ji s první stopou (slovo přijmeme či zamítneme) r odsunutí Od LOA ke kontextovým jazykům LOA přijímají pouze kontextové jazyky. potřebujeme převést LOA na monotónní gramatiku tj. gramatika nesmí generovat nic navíc! výpočet ukryjeme do dvoustopých neterminálů 1) generuj slovo ve tvaru (a 0,[q 0,l,a 0 ]),(a 1,a 1 ),,(a n,[a n,r]) stav a okraje musíme ukrýt to neterminálů w q 0,l,a 0 a 0,r 2) simuluj práci LOA ve druhé stopě (stejně jako u TS) 3) pokud je stav koncový, smaž druhou stopu speciálně je potřeba ošetřit přijímání prázdného slova pokud LOA přijímá λ, přidáme speciální startovací pravidlo 5

Rekurzivní jazyky Co se stane, když TS nepřijímá nějaké slovo? a) výpočet skončí v nekoncovém stavu b) výpočet nikdy neskončí protože výpočet neskončil, nevíme, zda slovo do jazyka patří Říkáme, že TS T rozhoduje jazyk L, pokud L=L(T) a pro každé slovo w je výpočet stroje nad w konečný. Jazyky rozhodnutelné TS nazýváme rekurzivní jazyky. Věta (Postova): Jazyk L je rekurzivní, právě když L a doplněk L jsou rekurzivně spočetné. máme Turingovy stroje T 1 pro L a T 2 pro -L pro dané slovo w naráz simulujeme výpočet T 1 i T 2 T 1 a T 2 rozpoznávají komplementární jazyky, tedy po konečném počtu kroků víme zda w L Problém zastavení TS Existuje rekurzivně spočetný jazyk, který není rekurzivní? ANO Problém zastavení Turingova stroje (halting problem) je algoritmicky nerozhodnutelný. Neexistuje algoritmus, který by pro daný kód TS a daný vstup rozhodl, zda se TS zastaví. Důkaz (neformálně): vychází z existence univerzálního TS (Turingův stroj, který simuluje výpočet jiného TS nad daným vstupem) U(T,X) = T(X) T je kód stroje, X jsostupní data můžeme udělat stroj P(X), který se na datech X zastaví právě když U(X,X) se nezastaví U(P,P) vede ke sporu: P(P) U(P,P) P(P) (diagonální metoda) Postův korespondenční problém Postovým korespondenčním problémem (PKP) nazýváme konečný seznam dvojic neprázdných slov [u 1,v 1 ],, [u n,v n ]. Říkáme, že Postův korespondenční problém má řešení, pokud existují indexy i 1, i k tak, že 1 i j n a u u i 1 i2 u ik = v i1 v i2 v ik Říkáme, že Postův korespondenční problém má iniciální řešení, pokud existují indexy i 1, i k tak, že 1 i j n a u 1 u u i 1 i2 u ik = v 1v v i 1 i2 v ik Věta: PKP je algoritmicky rozhodnutelný, právě když je algoritmicky rozhodnutelné zda PKP má iniciální řešení. PKP s iniciálním řešením PKP (stačí vyzkoušet všechny začátky) PKP PKP s iniciálním řešením značení a 1 a 2 a n = a 1 a 2 a n a 1 a 2 a n = a 1 a 2 a n x 1 = u 1, x j+1 = u j, x n+2 = y 1 = v 1, y j+1 = v j, y n+2 = PKP s u,v má iniciální řešení právě když PKP s x,y má řešení Algoritmická nerozhodnutelnost PKP Existence iniciálního řešení PKP není algoritmicky rozhodnutelná. výpočet TS pro slovo w převedeme na PKP + +εq 0 w+ x x x X + + px qy δ(p,x)=(q,y,0) p+ qy+ δ(p,ε)=(q,y,0) px yq δ(p,x)=(q,y,+1) p+ yq+ δ(p,ε)=(q,y,+1) zpx qzy δ(p,x)=(q,y,-1) zp+ qzy+ δ(p,ε)=(q,y,-1) +px +qεy δ(p,x)=(q,y,-1) u: + K 0 + v: + K 0 + K 1 + K n-1 + K n + + K n + uqv + xqy q q F xq+ q+ +qy +q q++ + PKP má iniciální řešení TS se zastaví nad w + q + + + q + + výpočet mazání 6

Algoritmická rozhodnutelnost u BKJ Pro bezkontextové jazyky je algoritmicky rozhodnutelné, zda dané slovo patří či nepatří do jazyka. umíme λ L(G) (S *λ) pro ostatní slova použijeme ChNF (X YZ, X a) v každé derivaci se délka slova zvětšuje nebo roste počet terminálních symbolů (tj. v derivaci není cyklus!) na terminální slovo délky n použijeme právě (2n-1) pravidel derivací pro všechna slova délky n je konečně můžeme postupně vyzkoušet všechny derivace vedoucí ke slovům dané délky, například prohledáváním do hloubky Pro bezkontextové jazyky je algoritmicky rozhodnutelné, zda je jazyk prázdný. umíme zjistit, zda z S lze generovat terminální slovo (algoritmus redukce) Algoritmicky nerozhodnutelné problémy Pro bezkontextové gramatiky G 1,G 2 je algoritmicky nerozhodnutelné zda L(G 1 ) L(G 2 )=. převedeme PKP na daný problém máme PKP [u 1,v 1 ],, [u n,v n ] zvolíme nové terminály a 1,,a n pro kódy indexů G 1 : S u i Sa i u i a i generuje slova u u i 1 ik a ik a i1 G 2 : S v i Sa i v i a i generuje slova v v i 1 ik a ik a i1 PKP má řešení právě když L(G 1 ) L(G 2 ) u-část = v-část + složky a i zajišťují stejné pořadí Je algoritmicky nerozhodnutelné, zda je bezkontextová gramatika víceznačná. S S 1 S 2 S 1 u i S 1 a i u i a i S 2 v i S 2 a i v i a i PKP má řešení právě když je gramatika víceznačná Další algoritmicky nerozhodnutelné problémy Je algoritmicky nerozhodnutelné, zda L(G)=X* pro BKG G. G 1 : S u i Sa i u i a i generuje slova u u i 1 ik a ik a i1 G 2 : S v i Sa i v i a i generuje slova v v i 1 ik a ik a i1 jazyky L(G 1 ), L(G 2 ) jsou deterministické, tedy -L(G 1 ) a -L(G 2 ) jsou deterministické BKJ a -L(G 1 ) -L(G 2 ) je BKJ máme BKG G takovou, že L(G) = -L(G 1 ) -L(G 2 ) PKP má řešení L(G 1 ) L(G 2 ) L(G) = -L(G 1 ) -L(G 2 ) X* Poznámka: L(G) = je algoritmicky rozhodnutelné. Důsledky: Nelze algoritmicky rozhodnout, zda L(G) = R, pro BKG G a regulární jazyk R (důkaz: za R zvolme X*) R L(G), pro BKG G a regulární jazyk R (důkaz: za R zvolme X*) L(G 1 ) = L(G 2 ), pro BKG G 1 a G 2 (důkaz: nechť G 1 generuje X*) L(G 1 ) L(G 2 ), pro BKG G 1 a G 2 (důkaz: nechť G 1 generuje X*) Poznámka: L(G) R je algoritmicky rozhodnutelné L(G) R L(G) -R = + (L(G) -R) je BKJ Shrnutí popis nekonečných objektů konečnými prostředky regulární jazyky konečné automaty (NKA,2KA) Nerode, Kleene, pumpování bezkontextové jazyky zásobníkové automaty (DZA) Dyckovy jazyky, pumpování kontextové jazyky lineárně omezené automaty monotonie rekurzivně spočetné jazyky Turingovy stroje algoritmická nerozhodnutelnost použití nejen pro práci s jazyky! 7