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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

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 Σ

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

Minimalizace KA - Úvod

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

Vlastnosti regulárních jazyků

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

AUTOMATY A GRAMATIKY

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

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

Základní pojmy matematické logiky

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

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

Syntaxí řízený překlad

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

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

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

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

Vztah jazyků Chomskeho hierarchie a jazyků TS

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

2.2 Sémantika predikátové logiky

5 Orientované grafy, Toky v sítích

PŘEDNÁŠKA 7 Kongruence svazů

Základy teorie množin

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

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

Dijkstrův algoritmus

Formální systém výrokové logiky

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.

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

4 Pojem grafu, ve zkratce

Automaty a gramatiky

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

Modely Herbrandovské interpretace

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

8 Přednáška z

Úvod do informatiky. Miroslav Kolařík

Množiny, relace, zobrazení

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

Logické programy Deklarativní interpretace

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Teoretická informatika - Úkol č.1

Vrcholová barevnost grafu

NP-úplnost problému SAT

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

10 Přednáška ze

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

Definice. Necht M = (Q, T, δ, q 0, F ) je konečný automat. Dvojici (q, w) Q T nazveme konfigurací konečného automatu M.

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

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.

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

Báze a dimenze vektorových prostorů

Lineární algebra : Násobení matic a inverzní matice

3.10 Rezoluční metoda ve výrokové logice

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

PŘEDNÁŠKA 2 POSLOUPNOSTI

Kostry. 9. týden. Grafy. Marie Demlová (úpravy Matěj Dostál) 16. dubna 2019

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

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

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

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

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

Lineární algebra : Násobení matic a inverzní matice

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

Úvod do informatiky. Miroslav Kolařík

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

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

Matematická analýza pro informatiky I. Limita funkce

Základy logiky a teorie množin

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

TGH02 - teorie grafů, základní pojmy

Matematická logika. Miroslav Kolařík

15. Moduly. a platí (p + q)(x) = p(x) + q(x), 1(X) = id. Vzniká tak struktura P [x]-modulu na V.

Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s

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

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

Inference v deskripčních logikách

1 Pravdivost formulí v interpretaci a daném ohodnocení

Pojem relace patří mezi pojmy, které prostupují všemi částmi matematiky.

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

LIMITA A SPOJITOST FUNKCE

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

Základy matematické analýzy

Konečný automat Teorie programovacích jazyků

TGH02 - teorie grafů, základní pojmy

Matematická logika. Miroslav Kolařík

Kolik existuje různých stromů na pevně dané n-prvkové množině vrcholů?

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

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

1 Báze a dimenze vektorového prostoru 1

Jan Pavĺık. FSI VUT v Brně

4.2 Syntaxe predikátové logiky

Oproti definici ekvivalence jsme tedy pouze zaměnili symetričnost za antisymetričnost.

Přednáška 6, 6. listopadu 2013

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

Transkript:

[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p i+1 q právě tehdy, když p i q a pro každé a Σ máme δ(p, a) i δ(q, a). Položíme := i pro i+1 = i. Správnost tohoto postupu vyplyne z následujících tvrzení. 2.1.36 Tvrzení. Platí 0 1... i... Existuje k takové, že k je rovna k+1. Pak pro každé j 1 platí k = k+j a tedy k =. 2.1.37 Tvrzení. Pro relace i z 2.1.35 platí p i q právě tehdy, když pro každé slovo u délky menší nebo rovné i platí δ (p, u) F iff δ (q, u) F. 2.1.38 Poznámka. Ekvivalence i v praxi konstruujeme tak, že konstruujeme odpovídající rozklady R i množiny stavů Q na třídy ekvivalence i. 2.1.39 Algoritmus redukce. Je dán DFA M = (Q, Σ, δ, q 0, F ). 1. Zkonstruujeme množinu Q všech dosažitelných stavů automatu M podle postupu 2.1.25. 2. Podle předchozího odstavce zkonstruujeme rozklady R i ekvivalencí i pro DFA M = (Q, Σ, δ, q 0, F Q ). Končíme tehdy, když i = i+1. Pak = i. Označme [q] třídu ekvivalence obsahující stav q. 3. Vytvoříme DFA M 1 = (Q 1, Σ, δ 1, q 1, F 1 ), kde Q 1 := {[q] q Q }, q 1 := [q 0 ], δ 1 ([q], a) = [δ(q, a)], F 1 = {[q] F [q] }. Slovně můžeme automat M 1 popsat takto: za stavy jsme vzali třídy ekvivalence, počáteční stav je třída, ve které leží původní počáteční stav q 0, přechodová funkce pracuje na třídách (což je možné vzhledem k vlastnosti ), a množina koncových stavů je množina těch tříd, ve kterých leží alespoň jeden koncový stav automatu M. 2.1.40 Příklad. K DFA automatu M, který je dán následující tabulkou, najděte redukovaný automat M 1. a b 1 2 3 2 2 4 3 3 5 4 2 7 5 6 3 6 6 6 7 7 4 8 2 3 9 9 4

12 [161014-1204 ] Řešení. Nejprve najdeme všechny dosažitelné stavy automatu M. Jsou to stavy {1, 2, 3, 4, 5, 6, 7}. Tedy Q = {1, 2, 3, 4, 5, 6, 7}, F = F = {3, 5, 6}. Automat M je dán tabulkou: a b 1 2 3 2 2 4 3 3 5 4 2 7 5 6 3 6 6 6 7 7 4 Podle definice ekvivalence 0 je rozklad R 0 tvořen dvěma třídami: O = {1, 2, 4, 7} F = {3, 5, 6}. Platí δ(1, a) = 2, δ(2, a) = 2, δ(4, a) = 2, δ(7, a) = 7, tj. všechny výsledky leží ve třídě O. δ(1, b) = 3, δ(2, b) = 4, δ(4, b) = 7, δ(7, b) = 4, tj. δ(1, b) F a δ(2, b), δ(4, b), δ(7, b) O. Proto musíme množinu O rozdělit na dvě podmnožiny: {1} a {2, 4, 7}. Dále Proto množinu F nedělíme. Rozklad odpovídající ekvivalenci 1 je Výpočet zahrneme do tabulky δ(3, a) = 3 F, δ(5, a) = 6 F, δ(6, a) = 6 F, δ(3, b) = 5 F, δ(5, b) = 3 F, δ(6, b) = 6 F. A = {1}, O = {2, 4, 7}, F = {3, 5, 6}. a b 0 a b 1 1 2 3 O O F A 2 2 4 O O O O 3 3 5 F F F F 4 2 7 O O O O 5 6 3 F F F F 6 6 6 F F F F 7 7 4 O O O O Analogicky vytváříme ekvivalence 2. Výpočet již zkrátíme jen do tabulky. a b 0 a b 1 a b 2 1 2 3 O O F A O F A 2 2 4 O O O O O O O 3 3 5 F F F F F F F 4 2 7 O O O O O O O 5 6 3 F F F F F F F 6 6 6 F F F F F F F 7 7 4 O O O O O O O

2.2. Nedeterministické konečné automaty [161014-1204 ] 13 Z tabulky vyplývá, že 1 = 2. Proto 1 = je hledaná ekvivalence. Máme tedy tři třídy ekvivalence, a to A, O a F. Redukovaný automat M 1 má tři stavy a je dán tabulkou a b A O F O O O F F F Není těžké nahlédnout, že automat M 1 přijímá všechna slova jazyka L = {bu u {a, b} }. 2.1.41 Věta. Automat M i k němu redukovaný automat M 1 přijímají stejný jazyk, tj. jsou ekvivalentní. Myšlenka důkazu této věty vyplývá z konstrukce redukovaného automatu. Nejprve jsme odstranili nedosažitelné stavy, které se nemohou vyskytnout při přijetí žádného slova. Následně jsme pouze slepovali ty stavy a to tak, že jestliže jsme se po orientovaném sledu z q 0 dostali do koncového stavu v původním automatu, tak to samé platilo v redukovaném, a naopak. 2.1.42 Věta. Dva DFA M 1 a M 2 přijímají stejný jazyk (tj. jsou ekvivalentní) právě tehdy, když jejich odpovídající redukované automaty se liší pouze pojmenováním stavů. Myšlenka důkazu. Jestliže se redukované automaty k automatům M 1 a M 2 liší pouze pojmenováním stavů, pak jsou automaty M 1 a M 2 ekvivalentní. To vyplývá z předchozí věty. Předpokládejme, že automaty M 1 a M 2 jsou ekvivalentní. Utvořme k nim redukované automaty M 1 a M 2 ; označme M 1 = (Q 1, Σ, δ 1, q 1, F 1 ) a M 2 = (Q 2, Σ, δ 2, q 2, F 2 ). Vytvoříme přiřazení stavů Q 1 stavům Q 2 takto: Počáteční stavy si odpovídají, tj. q 1 q 2. Protože všechny stavy M 1 jsou dosažitelné (a také všechny stavy M 2 jsou dosažitelné), pro každé q Q 1 existuje slovo w tak, že δ 1 (q 1, w) = q. Položíme δ 1 (q 1, w) δ 2 (q 2, w). Dá se dokázat, že se jedná o přejmenování stavů, které je dobře definované, zachovává přechodové funkce a stavy z F 1 odpovídají stavům z F 2. 2.2 Nedeterministické konečné automaty Konečný deterministický automat měl tu vlastnost, že v každém stavu reagoval na každé písmeno přeně jedním způsobem (přechodová funkce byla zobrazení z množiny Q Σ do Q). Nedeterministické automaty se liší tím, že jsme-li ve stavu q a čteme vstupní písmeno a, můžeme přejít do několika (a také žádného) stavu. V této sekci ukážeme, že ke každému nedeterministickému automatu existuje deterministický konečný automat, který přijímá stejný jazyk. To nám, spolu s faktem, že nedeterministické automaty se snáze navrhují, umožní zjednodušit postup při návrhu konečného automatu přijímajícího daný jazyk. 2.2.1 Definice. Nedeterministický konečný automat, zkráceně NFA, je pětice (Q, Σ, δ, I, F ), kde Q je konečná neprázdná množina stavů, Σ je konečná neprázdná množina vstupů, δ je přechodová funkce, I Q je množina počátečních stavů, F Q je množina koncových stavů. Nedeterministický konečný automat se od deterministického konečného automatu liší tím, že

14 [161014-1204 ] 1. NFA může mít víc počátečních stavů, nejen jeden, 2. každému stavu q a každému vstupnímu písmenu a přiřazuje přechodová funkce δ několik stavů (i žádný stav); tj. δ(q, a) je množina stavů, třeba i prázdná. Formálně: δ: Q Σ P(Q), kde P(Q) je množina všech podmnožin množiny stavů Q. 2.2.2 Stavový diagram NFA. Je dán nedeterministický automat M = (Q, Σ, δ, I, F ). Stavový diagram automatu M je orientovaný ohodnocený graf, jehož množina vrcholů je množina stavů Q, z vrcholu q do vrcholu p vede hrana ohodnocená vstupním symbolem a právě tehdy, když p δ(q, a). (Počáteční i koncové stavy jsou označeny stejně jako u stavového diagramu deterministického automatu; tj. do každého počátečního stavu a z každého koncového stavu vede šipka.) Rozdíl mezi stavovým diagramem NFA a DFA je jen v tom, že ve stavovém diagramu nedeterministického automatu mohou existovat stavy, ze kterých vychází několik orientovaných hran ohodnocených stejným písmenem i stavy, ze kterých nevychází žádná hrana ohodnocená některým písmenem. Dříve než definujeme rozšířenou přechodovou funkci, zavedeme následující značení. Pro danou množinu stavů X Q a a Σ položíme δ(x, a) = {δ(q, a) q X}. 2.2.3 Rozšířená přechodová funkce NFA. Je dán automat (Q, Σ, δ, I, F ). Rozšířená přechodová funkce δ : Q Σ P(Q) je definovaná induktivně takto: 1. δ (q, ε) = {q}, pro všechna q Q, 2. δ (q, ua) = δ(δ (q, u), a)(= {δ(p, a) p δ (q, u)}), pro všechna q Q, a Σ, u Σ. 2.2.4 Příklad. Je dán NFA tabulkou q 0 {q 0 } {q 0, q 1 } q 1 {q 2 } q 2 Rozšířená přechodová funkce δ pracuje nad slovem 0110 takto: 1. δ (q 0, 0) = {q 0 }; 2. δ (q 0, 01) = δ(q 0, 1) = {q 0, q 1 }; 3. δ (q 0, 011) = δ(q 0, 1) δ(q 1, 1) = {q 0, q 1 } = {q 0, q 1 }; 4. δ (q 0, 0110) = δ(q 0, 0) δ(q 1, 0) = {q 0 } {q 2 } = {q 0, q 2 }. 2.2.5 Tvrzení. Je dán NFA M = (Q, Σ, δ, I, F ). Pak pro každý stav q a každé slovo w Σ jsou následující dvě vlastností ekvivalentní: 1. p δ (q, w) 2. existuje orientovaný sled ve stavovém diagramu z vrcholu q do vrcholu p označený slovem w.

2.2. Nedeterministické konečné automaty [161014-1204 ] 15 2.2.6 Slovo přijímané NFA. Řekneme, že NFA M = (Q, Σ, δ, I, F ) přijímá slovo w Σ právě tehdy, když δ (I, w) F = ; jinými slovy pro nějaký z počátečních stavů q 0 I platí δ (q 0, w) F. Předchozí definici můžeme přeformulovat i takto: slovo w je přijímáno NFA právě tehdy, když ve stavovém diagramu existuje orientovaný sled označený slovem w, který začíná v některém z počátečních stavů automatu a končí v některém z koncových stavů. V příkladu 2.2.4, NFA přijímá slovo 0110. 2.2.7 Jazyk přijímaný NFA. Je dán NFA M = (Q, Σ, δ, I, F ). Jazyk L(M) přijímaný NFA M se skládá z právě všech slov, které jsou přijímány M. 2.2.8 Pozorování. Každý deterministický automat M = (Q, Σ, δ, q 0, F ) můžeme považovat za nedeterministický. Stačí říci, že množina počátečních stavů obsahuje jen q 0 a u přechodové funkce δ(q, a) = p ztotožnit stav p s jednoprvkovou množinou {p}. 2.2.9 Tvrzení. Ke každému nedeterministickému automatu M existuje deterministický automat M, který přijímá stejný jazyk; tj. L(M) = L( M). Způsob, kterým se DFA M konstruuje, se nazývá podmnožinová konstrukce. 2.2.10 Podmnožinová konstrukce. Je dán nedeterministický automat M = (Q, Σ, δ, I, F ). Definujeme deterministický automat M = ( Q, Σ, δ, q 0, F ) takto: Q je množina všech podmnožin množiny Q (tj. Q = P(Q)); q 0 = I; F je množina všech těch podmnožin Q, které obsahují aspoň jeden koncový stav M, (tj. F = {X Q X F }); δ(x, a) = {δ(q, a) q X} (tj. δ(x, a) je podmnožina všech stavů, do kterých vede hrana označená písmenem a z některého stavu množiny X.) 2.2.11 Modifikace podmnožinové konstrukce hledání pouze dosažitelných stavů Obdobně jako v 2.1.25 se jedná o modifikaci prohledávání stavového diagramu do šířky. Je dán nedeterministický automat M = (Q, Σ, I, δ, F ). 1. Q := {I}; A := {I}; 2. if A do B := ; for all X A do for all a Σ do δ(x, a) := δ(x, a); if δ(x, a) Q then B := B {δ(x, a)}; 3. if B do Q := Q B; A := B go to 2 4. q 0 := I; Q := Q; F := {X Q X F }; 5. return M = ( Q, Σ, q 0, δ, F ) 2.2.12 Věta. Jazyk L je přijímán nějakým nedeterministickým automatem právě tehdy, když existuje deterministický automat M 1 takový, že L = L(M 1 ). Jinými slovy, automaty NFA i DFA přijímají stejnou třídu jazyků, a to regulární jazyky. Důkaz: Jedna implikace vyplývá z pozorování 2.2.8.

16 [161014-1204 ] Druhá implikace vyplývá z podmnožinové konstrukce 2.2.10. Indukcí podle délky slova u Σ se dá dokázat: Pro každou podmnožinu X a každé slovo u Σ platí δ (X, u) = {δ (q, u) q X}. Tedy z definice DFA M dostáváme L(M) = L( M). Proto M vytvořený postupem 2.2.11, tj. podmnožinovou konstrukcí, je hledaný DFA M 1. 2.2.13 Poznámka. Poznamenejme, že počet stavů DFA M z předchozí věty může vzrůst exponenciálně oproti počtu stavů NFA M. 2.2.14 Příklad. Je dán NFA tabulkou Najděte DFA M, který přijímá stejný jazyk. p {p, q} {p} q {r, s} {t} r {p, r} {t} s t Řešení. DFA vytvoříme pomocí postupu 2.2.11. Na začátku práce algoritmu máme I = {p}, Q = {{p}}, A = {{p}}. Množinu stavů Q i přechodovou funkci δ konstruujeme takto: Po prvním průchodu bodem 2 dostáváme: δ({p}, 0) := δ(p, 0) = {p, q}, δ({p}, 1) := δ(p, 1) = {p} a proto B := {{p, q}}. V kroku 3 Q := {{p}, {p, q}} a A := {{p, q}}. Po druhém průchodu bodem 2 dostáváme: δ({p, q}, 0) := δ(p, 0) δ(q, 0) = {p, q, r, s} V kroku 3 δ({p, q}, 1) := δ(p, 1) δ(q, 1) = {p, t} a B := {{p, q, r, s}, {p, t}}. Q := {{p}, {p, q}, {p, q, r, s}, {p, t}} a A := {{p, q, r, s}, {p, t}}. Po třetím průchodu bodem 2 dostáváme: δ({p, q, r, s}, 0) = {p, q, r, s} a δ({p, q, r, s}, 1) = {p, t}, V kroku 4 pak definujeme: δ({p, t}, 0) = {p, q}, δ({p, t}, 1) = {p} a B :=. Q := {{p}, {p, q}, {p, q, r, s}, {p, t}}, q 0 := {p}, F := {{p, q, r, s}, {p, t}}.

2.2. Nedeterministické konečné automaty [161014-1204 ] 17 Předchozí postup je znázorněn v následující tabulce: {p} {p, q} {p} {p, q} {p, q, r, s} {p, t} {p, q, r, s} {p, q, r, s} {p, t} {p, t} {p, q} {p} Označíme-li I = {p}, A = {p, q}, B = {p, q, r, s} a C = {p, t}, dostaneme následující tabulku. I A I A B C B B C C A I Není těžké nahlédnout, že jazyk přijímaný automatem M (i M) se skládá ze všech binárních slov, které končí bud 01 nebo 00, tj. ze všech binárních slov, které mají jako předposlední symbol 0.