Nedeterministické konečné automaty. Nedeterminismu Podmnožinová konstrukce

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

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

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ů

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

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

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

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

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

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Minimalizace KA - Úvod

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.

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

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

Syntaxí řízený překlad

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

AUTOMATY A GRAMATIKY

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

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

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

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ů

Teoretická informatika TIN 2013/2014

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

Logika a regulární jazyky

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

Automaty a gramatiky

Úvod do informatiky. Miroslav Kolařík

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

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

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

1 Linearní prostory nad komplexními čísly

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

Modely Herbrandovské interpretace

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

Teoretická informatika - Úkol č.1

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

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.

Týden 11. Přednáška. Teoretická informatika průběh výuky v semestru 1. Nejprve jsme dokončili témata zapsaná u minulé přednášky.

Principy indukce a rekurentní rovnice

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

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

NP-úplnost problému SAT

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

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

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

2 Formální jazyky a gramatiky

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

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

Konečný automat. Jan Kybic.

Predikátová logika. Teoretická informatika Tomáš Foltýnek

4 Pojem grafu, ve zkratce

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

ZÁKLADY TEORETICKÉ INFORMATIKY

Prohledávání do šířky = algoritmus vlny

Základy logiky a teorie množin

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

Matematická indukce, sumy a produkty, matematická logika

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

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

Zavedení a vlastnosti reálných čísel

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ

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

Úvod do matematiky. Mgr. Radek Horenský, Ph.D. Důkazy

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

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

Konečný automat Teorie programovacích jazyků

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

Pozn.MinulejsmesekPSPACEnedostali,protojezdepřekryvstextemzminula.

10. Vektorové podprostory

METRICKÉ A NORMOVANÉ PROSTORY

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

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

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

Principy indukce a rekursivní algoritmy

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

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

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Výroková logika. Teoretická informatika Tomáš Foltýnek

Definice 5.1 Graf G = (V, E) je tvořen množinou vrcholů V a množinou hran, kde

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

Na rozšiřující přednášce minulý týden jsme se věnovali zejména. algoritmu, který k zadanému konečnému automatu sestrojí ekvivalentní regulární výraz

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

PŘEDNÁŠKA 7 Kongruence svazů

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

8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice

Logické programy Deklarativní interpretace

JICH APLIKACE FAKULTA INFORMAČNÍCH TECHNOLOGIÍ BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

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

Úvod do teorie her

Cvičení ke kursu Vyčíslitelnost

Zobecněný Riemannův integrál

Teoretická informatika

Matematika B101MA1, B101MA2

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

Transkript:

Nedeterministické konečné automaty Nedeterminismu Podmnožinová konstrukce 1

Nedeterminismus Nedeterministický konečný automat má schopnost být v několika stavech současně. Přechody z libovolného stavu pod libovolným symbolem mohou vést do libovolné množiny stavů. 2

Nedeterminismus (2) Začni v jednom počátečním stavu. Akceptuj, pokud jakákoliv sekvence voleb vede do koncového stavu. Intuitivně: NFA vždy hádá správně 3

Příklad: Tahy na šachovnici stavy = políčka vstupy = r (tah na sousední červené pole) a b (tah na sousední černé pole). Počáteční stav a koncový stav jsou v protějších rozích. 4

Příklad: Šachovnice (2) 1 1 2 3 4 5 6 7 8 9 r b b 2 1 4 3 5 7 5 1 3 7 9 * r b 1 2,4 5 2 4,6 1,3,5 3 2,6 5 4 2,8 1,5,7 5 2,4,6,8 1,3,7,9 6 2,8 3,5,9 7 4,8 5 8 4,6 5,7,9 9 6,8 5 Akceptuj, koncový stav dosažen 5

Formální definice NFA Konečná množina stavů Q. Vstupní abeceda Σ. Přechodová funkce δ. Počáteční stav q 0 v Q. Množina koncových stavů F Q. 6

Přechodová funkce NFA δ(q,a) je množina stavů. Rozšíření na řetezce následovně: Základní krok: δ(q,ε) = {q}q} Indukce: δ(q,wa) = sjednocení přes všechny stavy p v δ(q,w) množin δ(p,a) 7

Jazyk NFA Řetězec w je akceptován NFA, pokud δ(q 0,w) obsahuje alespoň jeden koncový stav. Jazyk NFA je množina řetezců, které akceptuje. 8

Příklad: Jazyk NFA 1 2 3 4 5 6 7 8 9 Pro náš šachový NFA jsme viděli, že rbb je akceptováno. Pokud vstup obsahuje pouze b, tak množina dosažitelných stavů alternuje mezi {q}5} a {q}1,3,7,9}, tj. pouze neprázdné řetezce b sudé délky jsou akceptovány. A co řetezce s alespoň jedním r? 9

Ekvivalence DFAs a NFAs DFA lze převést na NFA akceptující stejný jazyk. Pokud δ D (q,a)=p, NFA bude mít δ N (q,a)={q}p}. Pak je NFA vždy v množině stavů obsahující přesně jeden stav stav, ve kterém je DFA po přečtení stejného vstupu. 10

Ekvivalence (2) Překvapivě, pro každý NFA existuje DFA, který akceptuje stejný jazyk. Důkaz je podmnožinová konstrukce. Počet stavů DFA může být exponenciální vzhledem k počtu stavů NFA. Tedy NFAs akceptují přesně regulární jazyky. 11

Podmnožinová konstrukce Je dán NFA se stavy Q, vstupy Σ, přechodovou funkcí δ N, počátečním stavem q 0 a koncovými stavy F, zkonstruujeme ekvivalentní DFA se Stavy 2 Q (množina podmnožin Q). Vstupy Σ. Počátečním stavem {q}q 0 }. Koncovými stavy = všechny ty, které obsahují stav z F. 12

Kritický bod Stavy DFA mají jména, která jsou množiny stavů NFA. Ale jako stav DFA, výraz tvaru např. {q}p,q} se musí číst jako jediný symbol, ne množina. Analogie: třída objektů, jejichž hodnoty jsou množiny objektů jiné třídy. 13

Podmnožinová konstrukce (2) Přechodová funkce δ D je definována jako: δ D ({q}q 1,,q k }, a) = sjednocení přes všechna i = 1,,k množin δ N (q i, a). Příklad: Zkonstruujeme DFA ekvivalentní k našemu šachovému NFA. 14

Př.: Podm. konstrukce * r b 1 2,4 5 2 4,6 1,3,5 3 2,6 5 4 2,8 1,5,7 5 2,4,6,8 1,3,7,9 6 2,8 3,5,9 7 4,8 5 8 4,6 5,7,9 9 6,8 5 r b {q}1} {q}2,4} {q}5} {q}2,4} {q}5} Pozor: Zde děláme tzv. línou konstrukci DFA, kde konstruujeme stav pouze pokud musíme. 15

Př.: Podm. konstrukce * r b 1 2,4 5 2 4,6 1,3,5 3 2,6 5 4 2,8 1,5,7 5 2,4,6,8 1,3,7,9 6 2,8 3,5,9 7 4,8 5 8 4,6 5,7,9 9 6,8 5 r b {q}1} {q}2,4} {q}5} {q}2,4} {q}2,4,6,8} {q}1,3,5,7} {q}5} {q}2,4,6,8} {q}1,3,5,7} 16

Př.: Podm. konstrukce * r b r b 1 2,4 5 {q}1} {q}2,4} {q}5} 2 4,6 1,3,5 {q}2,4} {q}2,4,6,8} {q}1,3,5,7} 3 2,6 5 {q}5} {q}2,4,6,8} {q}1,3,7,9} 4 2,8 1,5,7 {q}2,4,6,8} 5 2,4,6,8 1,3,7,9 {q}1,3,5,7} 6 2,8 3,5,9 * {q}1,3,7,9} 7 4,8 5 8 4,6 5,7,9 9 6,8 5 17

Př.: Podm. konstrukce * r b r b 1 2,4 5 {q}1} {q}2,4} {q}5} 2 4,6 1,3,5 {q}2,4} {q}2,4,6,8} {q}1,3,5,7} 3 2,6 5 {q}5} {q}2,4,6,8} {q}1,3,7,9} 4 2,8 1,5,7 {q}2,4,6,8}{q}2,4,6,8} {q}1,3,5,7,9} 5 2,4,6,8 1,3,7,9 {q}1,3,5,7} 6 2,8 3,5,9 * {q}1,3,7,9} 7 4,8 5 * {q}1,3,5,7,9} 8 4,6 5,7,9 9 6,8 5 18

Př.: Podm. konstrukce * r b r b 1 2,4 5 {q}1} {q}2,4} {q}5} 2 4,6 1,3,5 {q}2,4} {q}2,4,6,8} {q}1,3,5,7} 3 2,6 5 {q}5} {q}2,4,6,8} {q}1,3,7,9} 4 2,8 1,5,7 {q}2,4,6,8}{q}2,4,6,8} {q}1,3,5,7,9} 5 2,4,6,8 1,3,7,9 {q}1,3,5,7} {q}2,4,6,8} {q}1,3,5,7,9} 6 2,8 3,5,9 * {q}1,3,7,9} 7 4,8 5 * {q}1,3,5,7,9} 8 4,6 5,7,9 9 6,8 5 19

Př.: Podm. konstrukce * r b r b 1 2,4 5 {q}1} {q}2,4} {q}5} 2 4,6 1,3,5 {q}2,4} {q}2,4,6,8} {q}1,3,5,7} 3 2,6 5 {q}5} {q}2,4,6,8} {q}1,3,7,9} 4 2,8 1,5,7 {q}2,4,6,8}{q}2,4,6,8} {q}1,3,5,7,9} 5 2,4,6,8 1,3,7,9 {q}1,3,5,7} {q}2,4,6,8} {q}1,3,5,7,9} 6 2,8 3,5,9 * {q}1,3,7,9}{q}2,4,6,8} {q}5} 7 4,8 5 * {q}1,3,5,7,9} 8 4,6 5,7,9 9 6,8 5 20

Př.: Podm. konstrukce * r b r b 1 2,4 5 {q}1} {q}2,4} {q}5} 2 4,6 1,3,5 {q}2,4} {q}2,4,6,8} {q}1,3,5,7} 3 2,6 5 {q}5} {q}2,4,6,8} {q}1,3,7,9} 4 2,8 1,5,7 {q}2,4,6,8}{q}2,4,6,8} {q}1,3,5,7,9} 5 2,4,6,8 1,3,7,9 {q}1,3,5,7} {q}2,4,6,8} {q}1,3,5,7,9} 6 2,8 3,5,9 * {q}1,3,7,9}{q}2,4,6,8} {q}5} 7 4,8 5 * {q}1,3,5,7,9}{q}2,4,6,8} {q}1,3,5,7,9} 8 4,6 5,7,9 9 6,8 5 21

Důkaz ekvivalence: podmnožinová konstrukce Důkaz je téměř hříčka. Ukažme indukcí k w, že δ N (q 0, w) = δ D ({q}q 0 }, w) Základ: w = ε: δ N (q 0, ε) = δ D ({q}q 0 }, ε) = {q}q 0 }. 22

Indukce Nechť IP platí pro řetezce kratší než w Nechť w = xa; IP platí pro x. Nechť δ N (q 0, x) = δ D ({q}q 0 }, x) = S. Nechť T = sjednocení přes všechny stavy p v S množin δ N (p, a). Pak δ N (q 0, w) = δ D ({q}q 0 }, w) = T. Pro NFA: rozšíření δ N. Pro DFA: definice δ D plus rozšíření δ D. tj., δ D (S, a) = T; pak rozšiř δ D na w = xa. 23

NFAs s ε-přechodpřechody Povolíme přechody mezi stavy pod vstupem ε. Tyto přechody se provádí samovolně bez ohledu na vstupní řetezec. Občas užitečné, nicméně stále akceptuje pouze regulární jazyky. 24

Příklad: ε-přechodnfa A 1 0 ε B E 1 1 C ε 0 ε 0 F D * 0 1 ε A {q}e} {q}b} B {q}c} {q}d} C {q}d} D E {q}f} {q}b, C} F {q}d} 25

Stavový uzávěr CL(q) = množina stavů dosažitelná ze stavu q hranami označenými ε. Příklad: CL(A) = {q}a}; ε CL(E) = {q}b,c,d,e}. Uzávěr množiny stavů = sjednocení jednotlivých stavových uzávěrů. A 1 0 B ε ε E 1 C 1 0 F 0 26 D

Rozšířená Delta δ Basic: (q,ε) = CL(q). δ Indukce: (q,xa) se počítá následovně: 1. Začni s δ (q,x) = S. 2. Vezmi sjednocení CL(δ(p,a)) pro všechna p v S. δ Intuice: (q,w) je množina stavů dosa-přechod žitelná z q po cestách označených w. A všimněte si, že δ(q,a) není ta množina stavů pro symbol a. 27

Příklad: Rozšířená Delta 1 C 1 0 0 F δ (A,ε) = CL(A) = {q}a}. δ(a,0) = CL({q}E}) = {q}b,c,d,e}. δ(a,01) = CL({q}C,D}) = {q}c,d}. Jazyk ε-přechodnfa je množina řetezců w takových, že δ (q 0,w) obsahuje koncový stav. A 1 0 B ε ε E ε D 28

Ekvivalence NFA a ε-přechodnfa Každý NFA je ε-přechodnfa. Prostě nemá žádné ε-přechodpřechody. Opak vyžaduje k ε-přechodnfa zkonstruovat NFA, který akceptuje stejný jazyk. To uděláme kombinací ε přechodů s následujícím skutečným vstupem. Pozor: V knize trochu odlišně. 29

Obrázek odstraňování ε-přechodpřechodů a a Přechody pod ε a Přechody pod ε 30

Obrázek odstraňování Kniha jde odtud ε-přechodpřechodů a a Sem a pak se použije podmnožinová konstrukce Přechody pod ε a Přechody pod ε 31

Obrázek odstraňování ε-přechodpřechodů Sem bez podmn. konstrukce My půjdeme odtud a a Přechody pod ε a Přechody pod ε 32

Ekvivalence (2) Vyjdeme z ε-přechodnfa se stavy Q, vstupy Σ, počátečním stavem q 0, koncovými stavy F a přechodovou funkcí δ E. Zkonstruujeme obyčejný NFA se stavy Q, vstupy Σ, počátečním stavem q 0, koncovými stavý F a přechodovou funkcí δ N. 33

Ekvivalence (3) Vypočti δ N (q,a) následovně: 1. Nechť S = CL(q). 2. δ N (q,a) = sjednocení přes všechna p v S množin δ E (p,a). F = množina stavů q takových, že CL(q) obsahuje stav z F. Intuice: δ N zahrnuje ε přechody před použitím a, ale ne po. 34

Ekvivalence (4) Dokažte indukcí k w, že CL(δ N (q 0,w)) = δ E (q 0,w). Tedy ε-přechodnfa akceptuje w právě tedy, když obyčejný NFA akceptuje w. 35

Zajimavé uzávěry: CL(B) = {q}b,d}; CL(E) = {q}b,c,d,e} Př.: Převod ε-přechodnfa na NFA * 0 1 ε A {q}e} {q}b} B {q}c} {q}d} C {q}d} D E {q}f} {q}b,c} F {q}d} ε-přechodnfa * * * Protože uzávěry B a E obsahují koncový stav D. 0 1 A {q}e} {q}b} B {q}c} C {q}d} D E {q}f} {q}c,d} F {q}d} Protože uzávěr E obsahuje B a C; ty mají přechody pod 1 do C a D. 36

Souhrn DFAs, NFAs a ε NFAs všechny akceptují přesně stejnou třídu jazyků: regulární jazyky. NFA jsou snadnější pro návrh a mohou mít exponenciálně měně stavů než DFA....ale pouze DFA lze implementovat! 37

Regulární výrazy Definice Ekvivalence s konečnými automaty 1

RE: úvod Regulární výrazy (RE) jsou algebraický způsob popisu jazyků. Popisují přesně regulární jazyky. Pokud je E regulární výraz, pak L(E) je jazyk, který definuje. Popíšeme RE a jejich jazyky rekurzivně. 2

RE: Definice Základ 1: Pokud a je libovolý symbol, pak a je RE a L(a) = {a}. Pozn.: {a} je jazyk obsahující jeden řetězec a tento řetězec je délky 1. Základ 2: ε je RE a L(ε) = {ε}. Základ 3: je RE a L( ) =. 3

RE: Definice (2) Indukce 1: Pokud jsou E 1 a E 2 regulární výrazy, pak E 1 +E 2 je regulární výraz a L(E 1 +E 2 ) = L(E 1 ) L(E 2 ). Indukce 2: Pokud jsou E 1 a E 2 regulární výrazy, pak E 1 E 2 je regulární výraz a L(E 1 E 2 ) = L(E 1 )L(E 2 ). Konkatenace: množina řetězců wx takových, že w je z L(E 1 ) a x z L(E 2 ). 4

RE: Definice (3) Indukce 3: Pokud je E RE, pak E* je RE a L(E*) = (L(E))*. Uzávěr či Kleeneho uzávěr = množina řetezců w 1 w 2 w n pro nějaké n > 0, kde každé w i je z L(E). Pozn.: pro n=0 je řetězec = ε. 5

Priorita operátorů Závorky lze použít kdekoliv, kde je potřeba ovlivnit působení operátorů. Priorita operátorů je * (nejvyšší), pak konkatenace, pak + (nejnižší). 6

Příklad: RE L(01) = {01}. L(01+0) = {01, 0}. L(0(1+0)) = {01, 00}. Všimněte si priority operátorů. L(0*) = {ε, 0, 00, 000, }. L((0+10)*(ε+1)) = všechny řetězce 0 a 1 bez dvou sousedních 1. 7

Ekvivalence RE a automatů Musíme ukázat, že pro každý RE existuje automat, který akceptuje stejný jazyk. Použijeme nejméně restriktivní typ automatů: ε-nfa.nfa. Naopak musíme ukázat, že pro každý automat existuje RE definující jeho jazyk. Použijeme nejvíce restriktivní typ: DFA. 8

Konverze RE na ε-nfa.nfa Důkaz indukcí vzhledem k počtu operátorů (+, konkatenace, *) v RE. Vždy zkonstruujeme automat speciálního tvaru (další slajd). 9

Tvar zkonstruovaných ε-nfa.nfa Poč. stav: Jediný stav s externím předchůdcem Žádné hrany z venku, žádné hrany ven Koncový stav: Jediný stav s externím následníkem 10

Od RE k ε-nfa.nfa: základ Symbol a: ε: a ε : 11

Od RE k ε-nfa.nfa: Indukce 1 Sjednocení ε pro E 1 ε ε pro E 2 ε pro E 1 + E 2 12

Od RE k ε-nfa.nfa: Indukce 2 Konkatenace ε pro E 1 pro E 2 pro E 1 E 2 13

Od RE k ε-nfa.nfa: Indukce 3 Kleeneho uzávěr ε ε pro E ε ε pro E* 14