Teoretická informatika TIN 2013/2014

Podobné dokumenty
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ů

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

Vlastnosti regulárních jazyků

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 2/3. Bezkontextové jazyky 2 p.1/27

Teoretická informatika - Úkol č.1

AUTOMATY A GRAMATIKY

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

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

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

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

Bezkontextové gramatiky nad volnými grupami

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

Teoretická informatika TIN

UČEBNÍ TEXTY VYSOKÝCH ŠKOL. Prof. RNDr. Milan Češka, CSc. Gramatiky a jazyky

Jednoznačné a nejednoznačné gramatiky

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

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

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

Vztah jazyků Chomskeho hierarchie a jazyků TS

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

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.

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

2 Formální jazyky a gramatiky

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

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

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

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.

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

Lineární algebra Kapitola 1 - Základní matematické pojmy

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

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

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Úvod do informatiky. Miroslav Kolařík

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

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

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

Úvod do lineární algebry

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

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Automaty a gramatiky

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

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

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

PŘEDNÁŠKA 7 Kongruence svazů

prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. BI-ZMA ZS 2009/2010

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 α

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

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

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

Algebra 2 KMI/ALG2. Zpracováno podle přednášek prof. Jiřího Rachůnka a podle přednášek prof. Ivana Chajdy. slidy k přednáškám

PŘEDNÁŠKA 2 POSLOUPNOSTI

Množiny, relace, zobrazení

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

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Minimalizace KA - Úvod

Vysoké učení technické v Brně Fakulta informačních technologií. Regulární pologrupy. Semestrální práce do předmětu Algebra, Kombinatorika, Grafy

Syntaxí řízený překlad

Úvod do informatiky. Miroslav Kolařík

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

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

Substituce a morfismy jednoduše

Matematická analýza 1

Konečný automat Teorie programovacích jazyků

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

α β ) právě tehdy, když pro jednotlivé hodnoty platí β1 αn βn. Danou relaci nazýváme relace

Naproti tomu gramatika je vlastně soupis pravidel, jak

1. Matice a maticové operace. 1. Matice a maticové operace p. 1/35

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

Věta o dělení polynomů se zbytkem

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

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

6. Vektorový počet Studijní text. 6. Vektorový počet

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

Základy maticového počtu Matice, determinant, definitnost

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

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

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

1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),

Součin matice A a čísla α definujeme jako matici αa = (d ij ) typu m n, kde d ij = αa ij pro libovolné indexy i, j.

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

1 Báze a dimenze vektorového prostoru 1

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

0. ÚVOD - matematické symboly, značení,

Lineární algebra Operace s vektory a maticemi

Lineární algebra : Polynomy

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Teoretická informatika

ZÁKLADY TEORETICKÉ INFORMATIKY

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

Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008

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

Matematika B101MA1, B101MA2

Lineární algebra : Skalární součin a ortogonalita

3 Množiny, Relace a Funkce

B i n á r n í r e l a c e. Patrik Kavecký, Radomír Hamřík

Hypergrafové removal lemma a Szemérediho

Transkript:

Teoretická informatika TIN 2013/2014 prof. RNDr. Milan Češka, CSc. ceska@fit.vutbr.cz doc.ing. Tomáš Vojnar, Ph.D. vojnar@fit.vutbr.cz sazba Ing. A. Smrčka, Ing. P. Erlebach, Ing. P. Novosad Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno Regulární jazyky 1 p.1/41

Referenční literatura Předmět vychází zejména z následujících zdrojů: Češka, M.: Teoretická informatika, učební text FIT VUT v Brně, 2002. http://www.fit.vutbr.cz/study/courses/tin/public/texty/ti.pdf Kozen, D.C.: Automata and Computability, Springer-Verlag, New York, Inc, 1997. ISBN 0-387-94907-0 Černá, I., Křetínský, M., Kučera, A.: Automaty a formální jazyky I, učební text FI MU, Brno, 1999. Hopcroft, J.E., Motwani, R., Ullman, J.D.: Introduction to Automata Theory, Languages, and Computation, Addison Wesley, 2. vydání, 2000. ISBN 0-201-44124-1 Gruska, J.: Foundations of Computing, International Thomson Computer Press, 1997. ISBN 1-85032-243-0 Bovet, D.P., Crescenzi, P.: Introduction to the Theory of Complexity, Prentice Hall Europe, Pearson Education Limited, 1994. ISBN 0-13-915380-2 Regulární jazyky 1 p.2/41

Jazyky a jejich reprezentace, algebra formálních jazyků Regulární jazyky 1 p.3/41

Formální jazyky Prvotní pojmy: symbol, abeceda. Definice 1.1 Necht Σ je abeceda. Označme Σ množinu všech konečných posloupností w tvaru: w = a 1 a 2...a n,a i Σ pro i = 1,...,n. Posloupnosti w nazýváme řetězce nad abecedou Σ. Dále definujeme délku w řetězce w : w = n. Množina Σ obsahuje také speciální řetězec ε, pro který platí ε = 0. ε se nazývá prázdný řetězec. Regulární jazyky 1 p.4/41

Na množině Σ zavedeme operaci takto: Jsou-li dány dva řetězce w,w z Σ (nad abecedou Σ): w = a 1 a 2...a n, w = a 1a 2...a m n,m 0, pak w w = a 1 a 2...a n a 1a 2...a m (= ww ). Operace se nazývá zřetězení nebo konkatenace. Pro w,w,w platí: 1. ww = w + w, 2. w(w w ) = (ww )w tj. asociativnost konkatenace, 3. wε = εw = w tj. ε je jednotkový prvek vzhledem k operaci. Terminologie: Σ se nazývá iterace abecedy Σ. Σ + = Σ \{ε} se nazývá pozitivní iterace abecedy Σ. Dále zavádíme pojmy: prefix, sufix, podřetězec, a i, w R. Regulární jazyky 1 p.5/41

Věta 1.1 monoid. Algebraická struktura < Σ +, >, resp. < Σ,, ε > je pologrupa, resp. Alternativní způsob definice množiny Σ : Σ = Σ n = Σ 0 Σ 1 Σ 2 Σ n... n 0 = {ε} Σ Σ Σ...(Σ Σ Σ) }{{} n krát... Definice 1.2 Množinu L, pro kterou platí L Σ (resp. L Σ + ) nazýváme formálním jazykem nad abecedou Σ. Příklady jazyků: L 1 = {0 n 1 n n 0} L 2 = {ww R w {0,1} + } L 3 progr. jazyk Pascal Regulární jazyky 1 p.6/41

Operace nad jazyky Jazyk je množina jsou definovány všechny množinové operace nad jazyky např.: L = Σ L \L komplement jazyka L Definice 1.3 Necht L 1 je jazyk nad abecedou Σ 1, L 2 je jazyk nad abecedou Σ 2. Součinem (konkatenací) jazyků L 1 a L 2 nad abecedou Σ 1 Σ 2 rozumíme jazyk L 1 L 2 = {xy x L 1 y L 2 } Příklad 1.1 Necht P = {A,B,...,Z,a,b,...,z}, c = {0,1,...,9} jsou abecedy, L 1 = P a L 2 = (P C) jazyky nad P resp. P C. Jaký jazyk určuje součin L 1 L 2? Regulární jazyky 1 p.7/41

Iterace a pozitivní iterace Definice 1.4 Necht L je jazyk. Iterací L jazyka L a pozitivní iterací L + jazyka L definujeme takto: 1. L 0 = {ε} 2. L n = L L n 1 pro n 1 3. L = L n n 0 4. L + = L n n 1 Příklad 1.2 L 1 = {(p}, L 2 = {,p}, L 3 = {)} L 1 L 2L 3 = {(p), (p,p), (p,p,p),...} Poznámka 1: Operátor se nazývá také Kleene star. Poznámka 2: Všimněte si, že (pozitivní) iterace abecedy odpovídá (pozitivní) iteraci jazyka tvořeného větami délky jedna. Regulární jazyky 1 p.8/41

Definice 1.5 Algebraická struktura < A, +,, 0, 1 > se nazývá polookruh, jestliže: 1. < A, +, 0 > je komutativní monoid, 2. < A,, 1 > je monoid, 3. pro operaci platí distributivní zákon vzhledem k +: a,b,c A : a(b+c) = ab+ac,(a+b)c = ac+bc. Věta 1.2 Algebra jazyků < 2 Σ,,,, {ε} >, kde je sjednocení a konkatenace jazyků tvoří polookruh. Důkaz. 1. < 2 Σ,, > je komutativní monoid ( je komutativní a asociativní operace a L = L = L pro všechna L 2 Σ ). 2. < 2 Σ,, {ε} > je monoid: L {ε} = {ε} L = L pro všechna L 2 Σ. Důkaz pokračuje dále. Regulární jazyky 1 p.9/41

Pokračování důkazu. 3. Pro všechny L 1,L 2,L 3 2 Σ : L 1 (L 2 L 3 ) = {xy (x L 1 ) (y L 2 y L 3 )} = = {xy (x L 1 y L 2 ) (x L 1 y L 3 )} = = {xy x L 1 y L 2 } {xy x L 1 y L 3 } = = L 1 L 2 L 1 L 3. Věta 1.3 Je-li L jazyk, pak platí: 1. L = L + {ε} 2. L + = L L = L L Důkaz. 1. Zřejmé z definice L a L +. 2. Důsledek Věty 1.2 (platnosti distributivního zákona). Regulární jazyky 1 p.10/41

Gramatiky Pozn. Reprezentace jazyků problém reprezentace, způsoby reprezentace. Definice 1.6 Gramatika G je čtveřice G = (N, Σ, P, S), kde 1. N je konečná množina nonterminálních symbolů. 2. Σ je konečná množina terminálních symbolů. 3. P je konečná podmnožina kartézského součinu (N Σ) N.(N Σ) (N Σ) nazývaná množina přepisovacích pravidel 4. S N je výchozí (startovací) symbol gramatiky G. Prvek (α,β) P je přepisovací pravidlo a zapisuje se ve tvaru α β, kde α je levá strana, β je pravá strana pravidla α β. Regulární jazyky 1 p.11/41

Příklady: G 1 = ({A,S},{0,1},P 1,S) P 1 : S 0A1 0A 00A1 A ε G 2 = (N 2,Σ 2,P 2,I) N 2 = {I,P,C} Σ 2 = {a,b,...,z,0,1,...,0} P 2 : I P I IP I IC P a C 0 P b C 1.. P z C 9 Regulární jazyky 1 p.12/41

Konvence 1: Obsahuje-li množina P přepisovací pravidla tvaru pak pro zkrácení budeme používat zápisu α β 1,α β 2,...,α β n α β 1 β 2 β n Konvence 2: Pro zápis symbolů a řetězců budeme užívat této úmluvy: 1. a, b, c, d reprezentují terminální symboly. 2. A, B, C, D, S reprezentují nonterminální symboly, S výchozí symbol. 3. U, V,..., Z reprezentují terminální nebo nonterminální symboly. 4. α,β,...,ω reprezentují řetězce z množiny (N Σ). 5. u,v,w,...,z reprezentují řetězce z Σ. Regulární jazyky 1 p.13/41

Definice 1.7 Necht G = (N,Σ,P,S) je gramatika a necht λ,µ jsou řetězce z (N Σ). Mezi λ a µ platí binární relace G, zvaná přímá derivace, můžeme-li řetězce λ a µ vyjádřit ve tvaru λ = γαδ µ = γβδ γ,δ (N Σ) a α β je nějaké přepisovací pravidlo z P. Pak píšeme λ G µ nebo λ µ. Poznámka. 1. Je-li α β pravidlo z P, pak α β. 2. relace 1 se nazývá (přímá) redukce. Regulární jazyky 1 p.14/41

Definice 1.8 Necht G = (N,Σ,P,S) je gramatika a relace přímé derivace na (N Σ). Relace + označuje tranzitivní uzávěr relace a nazývá se relací derivace. Platí-li λ + µ, pak existuje posloupnost λ = ν 0 ν 1... ν n = µ, n 1, která se nazývá derivací délky n. Relace označuje reflexivní a tranzitivní uzávěr relace : λ µ λ + µ nebo λ = µ Regulární jazyky 1 p.15/41

Příklad 1.3 Derivace v gramatice G 1, resp. G 2, ze strany 11: V gramatice G 1 : Pravidlo 0A 00A1 implikuje 0 n A1 n 0 n+1 A1 n+1, tedy 0A1 0 n A1 n pro libovolné n > 0. V gramatice G 2 : I IP IPP ICPP PCPP acpp a1pp a1xp a1xy, tj. I + a1xy. Regulární jazyky 1 p.16/41

Definice 1.9 Necht G = (N,Σ,P,S) je gramatika. Řetězec α (N Σ) nazýváme větnou formou, platí-li S α. Větná forma, která obsahuje pouze terminální symboly se nazývá věta. Jazyk L(G) generovaný gramatikou G je množina: L(G) = {w S w w Σ } Příklad 1.4 L(G 1 ) = {0 n 1 n n > 0} protože S 0A1 S 0 n A1 n (viz předchozí příklad) S 0 n 1 n (pravidlo A ε) Regulární jazyky 1 p.17/41

Chomského hierarchie Je definována na základě tvaru přepisovacích pravidel: Typ 0 obecné (neomezené) gramatiky: α β α (N Σ) N(N Σ),β (N Σ) Typ 1 kontextové gramatiky: αaβ αγβ A N, α,β (N Σ),γ (N Σ) + nebo S ε, pakliže se S neobjevuje na pravé straně žádného pravidla (Alternativní definice definující stejnou třídu jazyků: α β, α β nebo S ε omezené jako výše.) Typ 2 bezkontextové gramatiky: A α A N, α (N Σ) Typ 3 pravé lineární gramatiky: A xb A x nebo A,B N, x Σ Regulární jazyky 1 p.18/41

Definice 1.10 Jazyk generovaný gram. typu i, i = 0,1,2,3, se nazývá jazykem typu i. Existuje synonymní označení jazyků: Jazyk typu 0 rekurzivně vyčíslitelný jazyk. Jazyk typu 1 kontextový jazyk. Jazyk typu 2 bezkontextový jazyk. Jazyk typu 3 regulární jazyk. Regulární jazyky 1 p.19/41

Věta 1.4 Necht L i značí třídu všech jazyků typu i. Pak platí: L 3 L 2 L 1 L 0 Důkaz. Důkaz plyne z definice tříd Chomského hierarchie jazyků. Věta 1.5 Platí: L 3 L 2 L 1 L 0 Důkaz později. Regulární jazyky 1 p.20/41

Automaty Anglický termín recognizer. Klasifikace: podle mechanismu a funkce čtecí hlavy, pomocné paměti, určenosti přechodů. Regulární jazyky 1 p.21/41

Jazyky typu 3 regulární jazyky Význam regulárních jazyků. Prostředky specifikace regulárních jazyků: gramatikou typu 3 (a jejími modifikacemi) např. G = ({A,S}, {0,1}, {S 0S,S 1A,A 0}, S) konečným automatem např. M = ({q 0,q 1,q F }, {0,1}, δ, q 0, {q F }), δ : δ(q 0,0) = {q 0 } δ(q 0,1) = {q 1 } δ(q 1,0) = {q F }... regulárním výrazem např. (1+0 + 1)0 Regulární jazyky 1 p.22/41

Konečný automat Definice 1.11 Konečným automatem (KA) rozumíme jednocestný iniciální automat M specifikovaný 5-ticí M = (Q,Σ,δ,q 0,F), kde: 1. Q je konečná množina stavů, 2. Σ je konečná vstupní abeceda, 3. δ je funkce přechodů (přechodová funkce) tvaru δ : Q Σ 2 Q, 4. q 0 Q je počáteční stav, 5. F Q je množina koncových stavů. Je-li q Q a Σ : δ(q,a) 1, pak M nazýváme deterministickým konečným automatem (zkráceně DKA), v případě, že q Q a Σ : δ(q, a) > 1 pak nedeterministickým konečným automatem (zkráceně NKA). Regulární jazyky 1 p.23/41

Deterministický konečným automat je také často specifikován 5-ticí M = (Q,Σ,δ,q 0,F), kde: δ je parciální funkce tvaru δ : Q Σ Q, a význam ostatních složek zůstává zachován. Je-li přechodová funkce δ totální, pak M nazýváme úplně definovaným deterministickým konečným automatem. Dále budeme obvykle pracovat s touto specifikací DKA. Lemma 1.1 Ke každému DKA M existuje ekvivalentní úplně definovaný DKA M. Důkaz. (idea) Množinu stavů automatu M rozšíříme o nový, nekoncový stav (anglicky označovaný jako SINK stav) a s využitím tohoto stavu doplníme prvky přechodové funkce δ automatu M tak, aby byla totální. Regulární jazyky 1 p.24/41

Příklad 1.5 M 1 = ({q 0,q 1,q 2,q F }, {0,1}, δ, q 0, {q F }) δ : δ(q 0,0) = {q 0,q 1 } δ(q 0,1) = {q 0,q 2 } δ(q 1,0) = {q 1,q F } δ(q 1,1) = {q 1 } δ(q 2,0) = {q 2 } δ(q 2,1) = {q 2,q F } δ(q F,0) = δ(q F,1) = Alternativní způsoby reprezentace funkce δ: 1. maticí (přechodů) 2. diagramem přechodů 0 1 q 0 {q 0,q 1 } {q 0,q 2 } q 1 {q 1,q F } {q 1 } q 2 {q 2 } {q 2,q F } q F Regulární jazyky 1 p.25/41

Definice 1.12 Necht M = (Q,Σ,δ,q 0,F) je konečný automat (tj. NKA). Konfigurace C konečného automatu M je uspořádaná dvojice C = (q,w), (q,w) Q Σ kde q je aktuální stav, w je dosud nezpracovaná část vstupního řetězce. Počáteční konfigurace je konfigurace (q 0,a 1 a 2...a n ). Koncová konfigurace je konfigurace (q F,ε), q F F. Přechodem automatu M rozumíme binární relaci M v množině konfigurací C která je definována takto: M (Q Σ ) (Q Σ ) (q,w) M (q,w ) def. w = aw q δ(q,a) pro q,q Q,a Σ,w,w Σ Relace k M, + M, M a reflexivní uzávěr relace. mají obvyklý význam, tj. k tá mocnina relace, tranzitivní a tranzitivní Regulární jazyky 1 p.26/41

Řetězec w přijímaný NKA M je definován takto: (q 0,w) M (q,ε), q F. Jazyk L(M) přijímaný NKA M je definován takto: L(M) = {w (q 0,w) M (q,ε) q F}. Příklad 1.6 Uvažujme NKA M 1 z příkladu 1.5. Platí: a tedy: (q 0,1010) (q f,ε) (q 0,1010) (q 0,010) (q 1,10) (q 1,0) (q f,ε) Neplatí například (q 0,ε) (q f,ε) Vyjádření jazyka L(M 1 ): L(M 1 ) = {w w {0,1} w končí symbolem, který je již v řetězci w obsažen} Regulární jazyky 1 p.27/41

Ekvivalence NKA a DKA Věta 1.6 Každý NKA M lze převést na DKA M tak, že L(M) = L(M ). Důkaz. 1. Nalezneme algoritmus převodu M M (níže). 2. Ukážeme, že L(M) = L(M ) tj. ukážeme, že platí: (a) L(M) L(M ) a současně, (b) L(M ) L(M). Regulární jazyky 1 p.28/41

Převod NKA na ekvivalentní DKA Algoritmus 1.1 Vstup: NKA M = (Q,Σ,δ,q 0,F) Výstup: DKA M = (Q,Σ,δ,q 0,F ) Metoda: 1. Polož Q = 2 Q \{ }. 2. Polož q 0 = {q 0 }. 3. Polož F = {S S 2 Q S F }. 4. Pro všechna S 2 Q \{ } a pro všechna a Σ polož: δ (S,a) = δ(q,a), je-li δ(q,a). q S q S Jinak δ (S,a) není definována. Regulární jazyky 1 p.29/41

Příklad 1.7 Uvažujme NKA M 2 = ({S,A,B,C}, {a,b,c}, δ, S, {A}) δ : δ(s,a) = {A} δ(s,c) = {B} δ(b,b) = {B,C} δ(c,a) = {B} δ(c,c) = {A} K nalezení funkce δ příslušného DKA aplikujeme zkrácený postup, využívající skutečnosti, že řada stavů z 2 Q může být nedostupných: 1. Počáteční stav: {S} 2. δ ({S},a) = {A} koncový stav δ ({S},c) = {B} 3. δ ({B},b) = {B,C} 4. δ ({B,C},a) = δ(b,a) δ(c,a) = {B} δ ({B,C},b) = {B,C} δ ({B,C},c) = {A} Regulární jazyky 1 p.30/41

Konečné automaty a jazyky typu 3 Definice 1.13 Gramatika G = (N, Σ, P, S) s pravidly tvaru: resp. tvaru: A xb A,B N,x Σ nebo A x x Σ, A Bx A,B N A x x Σ se nazývá pravá lineární, resp. levá lineární, gramatika. Gramatika G = (N, Σ, P, S) s pravidly tvaru: A ab A,B N,a Σ A a a Σ případně S ε pokud se S neobjevuje na pravé straně žádného pravidla resp. s pravidly tvaru: A Ba A,B N,a Σ A a a Σ případně S ε pokud se S neobjevuje na pravé straně žádného pravidla se nazývá pravá regulární, resp. levá regulární, gramatika. Regulární jazyky 1 p.31/41

Poznámka. Gramatika G = (N, Σ, P, S) s pravidly tvaru A xby nebo A x, kde A,B N a x,y Σ se nazývá lineární gramatika. Označme: L PL všechny jazyky generované pravými lineárními gramatikami, Platí: L LL všechny jazyky generované levými lineárními gramatikami, L L všechny jazyky generované lineárními gramatikami. L PL = L LL a L PL L L Lemma 1.2 Každá pravá lineární gramatika G = (N,Σ,P,S) může být převedena na gramatiku G = (N,Σ,P,S ), kde P obsahuje pouze pravidla tvaru tak, že L(G) = L(G ). A ab A,B N,a Σ nebo A ε Regulární jazyky 1 p.32/41

Důkaz. Množinu P vytvoříme takto: 1. Pravidla z P tvaru zařadíme do P. 2. Každé pravidlo tvaru z P nahradíme v P soustavou pravidel: A ab A,B N,a Σ nebo A ε A a 1 a 2...a n B, n 2 A a 1 A 1 A 1 a 2 A 2. A n 1 a n B Důkaz pokračuje dále. Regulární jazyky 1 p.33/41

Pokračování důkazu. 3. Každé pravidlo tvaru A a 1 a 2...a n, n 1 z P nahradíme v P soustavou pravidel: A a 1 A 1 A 1 a 2 A 2. A n 1 a n A n A n ε 4. Odstraníme (zbývající) tzv. jednoduchá pravidla tvaru A B. Nyní se již snadno dokáže ekvivalence G a G tj. L(G) = L(G ) Regulární jazyky 1 p.34/41

Příklad 1.8 Uvažujme gramatiku s pravidly S abca ab A B ε B ca bbc Aplikací Lemmy 1.1 obdržíme pravidla ekvivalentní gramatiky. Nové nonterminály budeme označovat X,Y,...: S ax ab X by Y ca Z bu A B ε B ca bz U cv V ε Po odstranění jednoduchého pravidla A B dostaneme výslednou gramatiku: S ax ab X by Y ca Z bu A ca bz ε B ca bz U cv V ε Regulární jazyky 1 p.35/41

Převod gramatiky typu 3 na NKA Věta 1.7 Necht L M je množina (třída) všech jazyků přijímaných konečnými automaty a necht L je libovolný jazyk typu 3 (L L 3 ). Pak existuje konečný automat M takový, že: L = L(M), tj. L 3 L M. Důkaz. 1. Podle věty 1.7 můžeme předpokládat, že L = L(G), kde gramatika G obsahuje pouze pravidla tvaru: A ab nebo A ε 2. Ke gramatice G = (N,Σ,P,S) sestrojíme NKA M = (Q,Σ,δ,q 0,F) takto: (a) Q = N (b) Σ = Σ (c) δ : δ(a,a) obsahuje B, jestliže A ab je v P (d) q 0 = S (e) F = {A A ε je v P} Důkaz pokračuje dále. Regulární jazyky 1 p.36/41

Pokračování důkazu. 3. Matematickou indukcí ukážeme, že L(G) = L(M). Indukční hypotézu formulujeme obecněji ve tvaru: A N : A i+1 G w (A,w) i M (C,ε) pro C F,w Σ Pro i = 0 dostáváme a tvrzení tedy platí. A ε (A,ε) 0 (A,ε) pro A F Nyní předpokládejme, že dokazovaná hypotéza platí pro i > 0 a položme w = ax, kde a Σ a x = i 1. Důkaz pokračuje dále. Regulární jazyky 1 p.37/41

Pokračování důkazu. 3. pokračování. Dále předpokládejme z indukční hypotézy plyne A ab i ax, B i x (B,x) i 1 (C,ε),C F a z definice funkce δ: A ab B δ(a,a) Dohromady tedy A ab i ax = w tedy A i+1 w (A,ax) (B,x) i 1 (C,ε),C F (A,w ) i (C,ε),C F tj. tvrzení platí i pro i+1. Pro případ A = S je dokázaná hypotéza tvrzením věty, tj. w Σ : S w (S,w ) (C,ε),C F, tj. L(G) = L(M) Regulární jazyky 1 p.38/41

Příklad 1.9 Gramatika z příkladu 1.8 G = ({S,A,B,U,V,X,Y,Z}, {a,b,c}, P, S), má pravidla P : S ax ab X by Y ca Z bu A ca bz ε B ca bz U cv V ε Takové gramatice odpovídá konečný automat: Regulární jazyky 1 p.39/41

Převod NKA na gramatiku typu 3 Věta 1.8 Necht L = L(M) pro nějaký konečný automat M. Pak existuje gramatika G typu 3 taková, že: L = L(G), tj. L M L 3. Důkaz. Necht M = (Q,Σ,δ,q 0,F). Předpokládejme, že M je NKA. Necht G = (Q,Σ,P,q 0 ) je gramatika, jejíž pravidla jsou definována takto: 1. je-li δ(q, a) = r, pak P obsahuje pravidlo q ar 2. je-li p F, pak P obsahuje pravidlo p ε 3. jiná pravidla množina P neobsahuje. G je zřejmě typu 3 a indukcí lze dokázat, že platí L(G) = L(M). Regulární jazyky 1 p.40/41

Příklad 1.10 Uvažujme KA M 3 = ({A,B,C,D}, {a,b,c}, δ, A, {C,D}), kde δ : δ(a,a) = B δ(c,c) = D δ(b,b) = A δ(d,a) = A δ(b,c) = B δ(d,b) = D δ(b,a) = C Gramatika G typu 3, která generuje jazyk L(M 3 ), má tvar: G = ({A,B,C,D}, {a,b,c}, P, A) P : A ab C cd ε B ba cb ac D aa bd ε Po odstranění ε-pravidel (algoritmus viz přednáška 4), získáme ekvivalentní pravou regulární gramatiku G s pravidly: A ab C cd c B ba cb ac a D aa bd b Regulární jazyky 1 p.41/41