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

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

Vlastnosti regulárních jazyků

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

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

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

Minimalizace KA - Úvod

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

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

AUTOMATY A GRAMATIKY

Syntaxí řízený překlad

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

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

Modely Herbrandovské interpretace

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.

= 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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Vztah jazyků Chomskeho hierarchie a jazyků TS

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

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

Teoretická informatika - Úkol č.1

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

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

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

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

Logické programy Deklarativní interpretace

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

Dijkstrův algoritmus

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

Doporučené příklady k Teorii množin, LS 2018/2019

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

LIMITA A SPOJITOST FUNKCE

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

Úvod do informatiky. Miroslav Kolařík

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

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ŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

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.

PŘEDNÁŠKA 7 Kongruence svazů

Logika. 6. Axiomatický systém výrokové logiky

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

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

Konečný automat Teorie programovacích jazyků

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

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

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

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

MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY. }w!"#$%&'()+,-./012345<ya

Teoretická informatika

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

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 α

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

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

Matematická analýza 1

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

Regulární výrazy. Filtry grep, sed a awk.

8 Přednáška z

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

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

ANALÝZA A KLASIFIKACE DAT

Teoretická informatika TIN 2013/2014

FI MU. Automaty nad nekonečnými slovy. Fakulta informatiky Masarykova univerzita. Učební text FI MU verze 1.0

Systém přirozené dedukce výrokové logiky

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

Teoretická informatika

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

4 Pojem grafu, ve zkratce

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

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

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

FI MU. Automaty a formální jazyky I. Mojmír Křetínský Antonín Kučera. Fakulta informatiky Masarykova univerzita. Učební text FI MU verze 1.

Základy matematické analýzy

Automaty a gramatiky. Na zopakování X*/~ Roman Barták, KTIML. Iterační (pumping) lemma. Pravidelnost regulárních jazyků

Hypergrafové removal lemma a Szemérediho

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

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

Úlohy k procvičování textu o univerzální algebře

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

}w!"#$%&'()+,-./012345<ya

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

Úvod do vybíravosti grafů, Nullstellensatz, polynomiální metoda

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

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

Konečný automat. Jan Kybic.

PŘEDNÁŠKA 2 POSLOUPNOSTI

Vrcholová barevnost grafu

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Další NP-úplné problémy

Principy indukce a rekursivní algoritmy

3. přednáška 15. října 2007

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

Greenova funkce pro dvoubodové okrajové úlohy pro obyčejné diferenciální rovnice

Základy logiky a teorie množin

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

Transkript:

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a Σ jsou regulární výrazy nad Σ (tzv. základní regulární výrazy). 2 Jsou-li E, F regulární výrazy nad Σ, jsou také (E.F), (E + F) a (E ) regulární výrazy nad Σ. 3 Každý regulární výraz vznikne po konečném počtu aplikací kroků 1-2.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 2/29 Každý regulární výraz E nad abecedou Σ popisuje (jednoznačně určuje) jazyk L(E) nad abecedou Σ podle těchto pravidel: L(ε) L( ) L(a) L( E.F ) L( E + F ) L( E ) def = {ε} def = def = {a} pro každé a Σ def = L(E).L(F) def = L(E) L(F) def = L(E)

Příklady IB102 Automaty, gramatiky a složitost, 6. 10. 2014 3/29

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 4/29 Ekvivalence konečných automatů a reg. výrazů Věta 2.43 Věta 2.48 RE DFA NFA NFA s ε-kroky Věta 2.60. Necht E je regulární výraz. Pak existuje konečný automat rozpoznávající L(E). Důkaz. Pro libovolnou abecedu Σ lze zkonstruovat konečné automaty, které rozpoznávají jazyky popsané základními regulárními výrazy, tj., {ε} a {a} pro každé a Σ. Tvrzení věty pak plyne z uzavřenosti jazyků rozpoznatelných konečnými automaty vůči operacím sjednocení, zřetězení a iteraci.

Příklad IB102 Automaty, gramatiky a složitost, 6. 10. 2014 5/29

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 6/29 Věta 2.43 Věta 2.48 RE DFA NFA NFA s ε-kroky Věta 2.62. Necht L je akceptovaný nějakým DFA, pak L je popsatelný nějakým regulárním výrazem. Důkaz bude podán později pomocí regulárních přechodových grafů. Kleeneho věta 2.63. Libovolný jazyk je popsatelný regulárním výrazem právě když je rozpoznatelný konečným automatem. Ekvivalentní formulace: Třída jazyků rozpoznatelných konečnými automaty je nejmenší třída, která obsahuje všechny konečné množiny a je uzavřena na sjednocení, zřetězení a iteraci.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 7/29 Regulární přechodový graf Definice 2.64. Regulární přechodový graf M je pětice (Q, Σ, δ, I, F ), kde Q je neprázdná konečná množina stavů, Σ je vstupní abeceda, δ : Q Q RE(Σ) je parciální přechodová funkce, I Q je množina počátečních stavů, F Q je množina koncových stavů.

Příklad IB102 Automaty, gramatiky a složitost, 6. 10. 2014 8/29

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 9/29 Slovo w Σ je akceptováno grafem M, právě když existuje posloupnost stavů q 0,..., q n, kde n 0, q 0 I, q n F a δ(q i 1, q i ) je definováno pro každé 0 < i n taková, že w lze rozdělit na n částí w = v 1... v n tak, že v i L(δ(q i 1, q i )) pro každé 0 < i n. Slovo ε je akceptováno také tehdy, je-li I F.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 10/29 Převod regulárního přechodového grafu na NFA Motivace Věta 2.65. Pro libovolný regulární přechodový graf M = (Q, Σ, δ, I, F) existuje ekvivalentní NFA M s ε-kroky.

Důkaz. Algoritmus konstrukce NFA M s ε-kroky. IB102 Automaty, gramatiky a složitost, 6. 10. 2014 11/29

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 12/29 ε Krok 1: Ke grafu M přidáme nový stav q 0 a hranu q 0 q pro každé q I. Stav q 0 bude (jediným) počátečním stavem automatu M, prvky F jeho koncovými stavy.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 13/29 Krok 2: Opakovaně realizuj kroky (a) a (b) dokud přechodový graf obsahuje alespoň jednu hranu ohodnocenou symbolem, který nepatří do Σ {ε}, tedy je tvaru F + G, F.G, F nebo. (a) Odstraň všechny hrany, které jsou ohodnoceny symbolem. (b) Vyber libovolnou hranu p E q, kde E Σ {ε}, odstraň ji a proved následující: p F + G q = p F q G p F.G q F G = p s q F p F ε ε q = p s q

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 14/29 Konečnost algoritmu M obsahuje pouze konečně mnoho hran, tj. konečně mnoho regulárních výrazů. Každý regulární výraz obsahuje jen konečně mnoho výskytů +,. a. V každém kroku 2(b) jeden výskyt odstraníme. Korektnost algoritmu Výsledný graf je přechodovým grafem nedeterministického konečného automatu M s ε-kroky. Přímo z definice regulárního přechodového grafu se snadno ověří, že kroky 1 a 2 popsaného transformačního algoritmu zachovávají ekvivalenci automatů, proto L(M) = L(M ).

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 15/29 Převod DFA na regulární výraz Motivace Věta 2.66. Pro každý regulární přechodový graf M = (Q, Σ, δ, I, F) existuje ekvivalentní přechodový graf M = ({x, y}, Σ, δ, {x}, {y}), kde δ může být definováno pouze pro dvojici (x, y).

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 16/29 Důkaz. Algoritmus transformace Krok 1: Ke grafu M přidáme nový počáteční stav x a nový koncový stav y. Přidáme také hrany x ε ε q pro každé q I a r y pro každé r F.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 17/29 Krok 2: Každý stav p různý od x, y nyní odstraníme spolu s hranami, které do p vcházejí nebo z p vycházejí. Pokud do p nevede hrana z jiného uzlu, je nedosažitelný z počátečního stavu. Pokud z p nevede hrana do jiného uzlu, nelze z p dosáhnout koncový stav. V obou případech p odstraníme bez náhrady. Pro každou dvojici vstupní hrany vedoucí do p z jiného uzlu a výstupní hrany vedoucí z p do jiného uzlu přidáme přímý přechod. Pak p odstraníme. F G r p q F.G = r q E F G r p q F.E =.G r q

r 1 E F 1 G 1 p q 1 F 2 G 2 r 2 q 2 F 1.(E + ).G 1 r 1 q 1 F 2.(E + ).G 1 F 1.(E + ).G 2 r 2 q 2 F 2.(E + ).G 2 Po odstranění všech stavů různých od x a y zůstanou tyto dva stavy spolu s (žádnou nebo jednou) hranou z x do y. Konečnost algoritmu Každým krokem 2 snížíme počet stavů. Korektnost algoritmu Z definice regulárního přechodového grafu přímo ověříme, že kroky 1 i 2 zachovávají ekvivalenci. Na regulární výraz lze stejně převést každý konečný automat (nejen DFA). IB102 Automaty, gramatiky a složitost, 6. 10. 2014 18/29

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 19/29 Ekvivalence konečných automatů a regulárních gramatik Věta 2.60, Věta 2.65 Věta 2.62 Věta 2.43 Věta 2.48 RE DFA NFA NFA s ε-kroky Věta 2.66 Reg. gramatiky Pojem regulárního jazyka byl definován dvakrát nejprve pomocí regulární gramatiky a pak ještě jednou pomocí konečného automatu.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 20/29 Převod regulární gramatiky na konečný automat Lemma 2.69. Ke každé regulární gramatice G = (N, Σ, P, S) existuje nedeterministický konečný automat M = (Q, Σ, δ, q 0, F ) takový, že L(G) = L(M). Důkaz.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 21/29 Konstrukce konečného automatu M = (Q, Σ, δ, q 0, F) Q = {A A N} {q f }, kde q f N q 0 = S δ je nejmenší funkce Q Σ 2 Q splňující: pokud A ab je pravidlo v P, pak B δ(a, a) pokud A a je pravidlo v P, kde a ε, pak q f δ(a, a) { {S, qf } pokud S ε je pravidlo v P F = {q f } jinak

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 22/29 Korektnost Nejprve indukcí vzhledem ke k dokážeme, že pro každé a 1,..., a k Σ a B N platí: S a 1... a k B B ˆδ(S, a 1... a k ) Základní krok k = 0: Z definice ˆδ plyne ˆδ(S, ε) = {S} a proto: S B B = S B = S B ˆδ(S, ε) Indukční krok: S a 1... a k+1 B C N takové, že S a 1... a k C a 1... a k+1 B C N takové, že C ˆδ(S, a 1... a k ) C a k+1 B C N takové, že C ˆδ(S, a 1... a k ) B δ(c, a k+1 ) B ˆδ(S, a 1... a k+1 ).

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 23/29 Dokázali jsme: S a 1... a k B B ˆδ(S, a 1... a k ) Ukážeme, že w L(G) w L(M): w = ε: ε L(G) S ε P S F ε L(M) w = va, kde v Σ, a Σ: va L(G) S vb va S vb B a P B ˆδ(S, v) q f δ(b, a) q f ˆδ(S, va) va L(M)

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 24/29 Převod konečného automatu na regulární gramatiku Lemma 2.71 Pro každý konečný automat M = (Q, Σ, δ, q 0, F) existuje regulární gramatika G = (N, Σ, P, S) taková, že L(M) = L(G). Důkaz.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 25/29 Bez újmy na obecnosti předpokládejme, že M je nedeterministický. N = {q q Q} {S}, kde S Q. P je nejmenší množina pravidel splňující: pokud p δ(q, a), je q ap pravidlo v P pokud p δ(q, a) a p F, je q a pravidlo v P pokud p δ(q 0, a), je S ap pravidlo v P pokud p δ(q 0, a) a p F, je S a pravidlo v P pokud q 0 F, je S ε pravidlo v P Gramatika G = (N, Σ, P, S) je zřejmě regulární. Platí: ˆδ(q 0, a 1... a k ) F, kde k 0, a 1,..., a k Σ S a 1... a k

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 26/29 Rozhodnutelné problémy pro třídu reg. jazyků Regulární jazyk popsaný některým z uvažovaných formalismů. Otázky: Máme-li dány konečné automaty M a M nad Σ ekvivalence: jsou M a M ekvivalentní? (platí L(M)=L(M )?) inkluze (jazyků): platí L(M) L(M )? příslušnost (slova k jazyku): je-li dáno w Σ, platí w L(M)? prázdnost (jazyka): je L(M) =? univerzalita (jazyka): je L(M) = Σ? konečnost (jazyka): je L(M) konečný jazyk?

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 27/29 Věta 2.74 Problém prázdnosti (L(M)? = ) a problém univerzality (L(M)? = Σ ) jsou rozhodnutelné pro regulární jazyky. Důkaz. L(M) je prázdný, právě když mezi dosažitelnými stavy automatu M není žádný koncový stav. Univerzalita: L(M) = Σ co L(M) =. Věta 2.77 Problém ekvivalence je rozhodnutelný pro regulární jazyky. Důkaz. Pro libovolné L 1, L 2 platí: (L 1 =L 2 ) (L 1 co L 2 ) (co L 1 L 2 ) =. Pro L 1, L 2 zadané automaty lze uvedené operace algoritmicky realizovat. Alternativně: minimalizace a kanonizace.

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 28/29 Věta 2.76 Problém, zda jazyk L zadaný automatem M je konečný, resp. nekonečný, je rozhodnutelný. Důkaz. Necht M je DFA. L je nekonečný právě když M akceptuje alespoň jedno slovo w Σ s vlastností n w < 2n, kde n = card(q). (= ) Je-li L nekonečný, pak existuje u L takové, že u n. Je-li u < 2n, jsme hotovi. Necht u 2n. Z lemma o vkládání plyne, že u = xyz, kde 1 y n a xz L. Platí xz n. Pokud xz 2n, celý postup opakujeme. ( =) Je-li w n, pak M při čtení w musí projít dvakrát stejným stavem. Proto w = xyz tak, že y 1 a platí xy i z L pro každé i N 0 (viz důkaz lemmatu o vkládání), tedy L je nekonečný. Existenci w L takového, že n w < 2n, lze algoritmicky ověřit (slov je konečně mnoho, vyzkoušíme každé z nich).

IB102 Automaty, gramatiky a složitost, 6. 10. 2014 29/29 Aplikace reg. jazyků a konečných automatů Vyhledávání vzorů (pattern matching) v textu (editory, textové systémy), DNA sekvencích,... Například v Unixu: grep - vyhledávání podle zadaného regulárního výrazu egrep - vyhledávání podle zadaného rozšířeného regulárního výrazu fgrep - vyhledávání podle zadaného řetězce Zpracování lexikálních jednotek například při automatizované konstrukci překladačů (lex, flex) Zpracování obrazů (image processing) Konečné automaty nad nekonečnými slovy Specifikace a verifikace konečně stavových systémů Konečné automaty s výstupem