Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá tzv. prázdné slovo, označované ε. Počet členů posloupnosti v značíme v a nazýváme délkou slova Počet výskytů znaků b ve slově v značíme # b (v) 2
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 Σ Jazyky nad Σ jsou tedy právě podmnožiny Σ * 3
Binární operace zřetězení, označována, která je definována předpisem u v = uv. Operace zřetězení je asociativní ε se chová jako jednotkový prvek Slovo u je podslovem slova v, jestliže existují slova x,y taková, že v = xuy. Pokud je x = ε, pak říkáme, že u je předponou (prefixem) slova v. Je-li y = ε, nazveme u příponou (sufixem) slova v. Unární operace i-té mocniny slova 4
Standardní množinové operace sjednocení, průnik a rozdíl Zřetězení i-tá mocnina Iterace a pozitivní iterace Doplněk Zrcadlový obraz 5
Konečný automat (Finite automaton - FA) M je pětice (Q, Σ, δ, q 0, F), kde Q je neprázdná konečná množina stavů Σ je konečná vstupní abeceda δ: Q x Σ Q je parciální přechodová funkce q 0 Q je počáteční stav F Q je množina koncových stavů 6
Zavedeme rozšířenou přechodovou funkci : Q x Σ * Q, definovanou induktivně vzhledem k délce slova ze Σ * : (q,ε) = q pro každý stav q (q,wa) = {δ ( (q,w),a) je-li (q,w) i δ( (q,w),a) definováno jinak Slovo w je akceptováno automatem M právě když (q 0,w) F. 7
Jazyk akceptovaný FA M, označovaný L(M), je tvořen právě všemi takovými slovy, pod kterými automat přejde z počátečního stavu do některého z koncových stavů: L(M) = {w Σ * (q 0,w) F} Jazyk, který je rozpoznatelný konečným automatem, se nazývá regulární. Konečné automaty M a M jsou ekvivalentní, pokud L(M) = L(M ). 8
Množinovou symbolikou: M = ({q 0,q 1,q 2 }, {a,b}, δ, q 0, {q 2 }), kde δ(q 0,a) = q 1 δ(q 0,b) = q 2 δ(q 1,a) = q 2 δ(q 1,b) = q 0 δ(q 2,a) = q 0 δ(q 2,b) = q 1 Nevýhodou této reprezentace konečného automatu je její nepřehlednost. 9
Tabulkou přechodové funkce: Pokud je pro některé dvojice přechodová funkce nedefinována, uvádí se v příslušném místě tabulky znak -. 10
Přechodovým grafem b q 0 a a q 1 b b q 2 a Nejpřehlednější a nejčastěji používaná varianta 11
Sestrojte automat rozpoznávající jazyk L = {w {a,b}* w obsahuje podslovo abaa} Označení stavů automatu zvolíme tak, aby bylo patrné, jaká část požadovaného podslova abaa již byla automatem přečtena. 12
Nechť L je regulární jazyk. Pak existuje n N takové, že libovolné slovo w L, jehož délka je alespoň n, lze psát ve tvaru w = xyz, kde xy n, y ε a xy i z L pro každé i N 0. (Číslo n se neformálně nazývá pumpovací konstanta.) 13
Pumping lemma (PL) je tvrzení tvaru implikace L je regulární ==> Q. Při dokazování, že L není regulární použijeme kontrapositivní formu PL, tj. Q ==> L není regulární, či ekvivalentně důkaz sporem: L je regulární ==> Q Λ Q. Platí tedy, že pomocí tohoto lemmatu lze dokázat, že nějaký jazyk není regulární. Nikoliv to, že jazyk regulární je!!! 14
Obecně tedy postupujeme tak, že ukážeme platnost Q, tj. že pro libovolné n N (pumpovací konstantu) vždy existuje takové slovo w L, které má délku alespoň n, a pro které platí, že při libovolném rozdělení slova w na takové tři části x, y, z, že xy n a y ε vždy existuje alespoň jedno i N 0 takové, že xy i z neleží v L. Pak z PL plyne, že L není regulární. 15
Dokažte, že L = {a p p je prvočíslo} nad abecedou {a} není regulární. Řešení: Pro dosažení sporu předpokládejme, že L je regulární. Buď n N libovolné. Jelikož prvočísel je nekonečně mnoho, existuje prvočíslo p, které je větší nebo rovno n. Zvolme w = a p patřící do L. Při jakémkoli rozdělení w na podslova x, y, z musí být y = a k, k 1. 16
Napumpujeme-li y p+1-krát, dostaneme: xy p+1 z = xyy p z = xyzy p = a p a kp = a p(k+1), což je jistě slovo, které nepatří do jazyka L, protože p(k+1) není prvočíslo dostáváme tedy spor s naším předpokladem, že L je regulární. Podle PL tedy L regulární není. 17
Dokažte, že jazyk L = {a i b i i N} nad abecedou {a,b} není regulární. Řešení: Buď n N libovolné. Slovo a n b n jistě patří do L. Pokud ho jakkoli rozdělíme na tři části x,y,z tak, že xy n a y 1, nutně x = a k, y = a l a z = a n-k-l b n, kde k+l n. Pak např. pro i = 2 dostáváme a k a 2l a n-k-l b n, což není součástí jazyka L, neboť k+2l+n-k-l = n+l n. Obdobně bychom ke sporu došli volbou i = 0. 18
Konstrukce minimálního automatu probíhá ve dvou krocích Eliminace nedosažitelných stavů konečného automatu Eliminace ekvivalentních stavů konečného automatu 19
Mějme konečný automat M = (Q, Σ, δ, q 0, F). Stav q Q nazveme dosažitelný, pokud existuje w Σ * takové, že (q 0,w) = q. Stav je nedosažitelný, pokud není dosažitelný. Teorie eliminace: Množinu dosažitelných stavů označíme Q. Označíme-li pro každé i N 0 symbolem S i množinu stavů, do kterých se lze z q 0 dostat cestou o délce nejvýše i, platí: Q = U S i i = 0 20
Dále pro každé i z N 0 platí, že S i Q a S i S i+1. Symbolem n označme počet prvků množiny Q. Existuje k n takové, že S k = S k+1. Z definice množin S i plyne, že pro každé j 0 platí S k = S k+j. Proto můžeme množinu Q všech dosažitelných stavů, vyjádřit jako: Q = US i = S i = 0 k Hledaný automat M je pak pětice ve tvaru: (Q, Σ, δ/q, q 0, F Q ), kde symbol δ/q značí zobrazení δ zúžené na Q. k 21
Nechť M = (Q, Σ, δ, q 0, F) je konečný automat bez nedosažitelných stavů. Pro každý stav q definujeme jazyk L(q) Σ * předpisem L(q) = {x Σ * (q,x) F} Stavy p,q nazveme jazykově ekvivalentní, psáno p q, pokud L(p) = L(q), tedy p q <==> x Σ * : ( (p,x) F <==> (q,x) F) 22
Mějme konečný automat M daný uvedenou tabulkou. Nejprve odstraníme nedosažitelné stavy a zúplníme přechodovou funkci. M a b 1 2-2 3 4 3 6 5 4 3 2 5 6 3 6 2-7 6 1 M a b 1 2 N 2 3 4 3 6 5 4 3 2 5 6 3 6 2 N N N N 23
Nyní přistupme ke konstrukci relací. Provedeme to tak, že sdružíme řádky odpovídající stavům stejné relace. 0 a b 1 a b 2 a b I 1 I I I 1 II I I 1 III II 2 II I N I I II N II II 4 II I II 2 III II III 2 IV III N I I 4 III II 4 IV III II 3 II II III 3 IV III IV 3 V IV 5 II II 5 IV III 5 V IV 6 I I IV 6 II I V 6 III II 24
Minimální automat pro jazyk L(M) vypadá takto: M/ a b I III II II II II III IV III IV V IV V III II 25
Nedeterministický konečný automat (NFA) je pětice M = (Q, Σ, δ, q 0, F), kde význam složek je stejný jako u automatu deterministického s výjimkou přechodové funkce δ. Ta je definována jako zobrazení δ: Q x Σ 2 Q. Rozšířená přechodová funkce : Q x Σ * 2 Q : (q,ε) = {q} (q,wa) = U p (q,w) δ(p,a) 26
Jazyk přijímaný NFA M je definován takto: L(M) = {w Σ * (q 0,w) F Ø} Nedeterministické konečné automaty M a M jsou ekvivalentní, pokud L(M) = L(M ). Nedeterminismus je velmi silný popisný aparát, který často umožňuje zachytit strukturu jazyka elegantním a přirozeným způsobem. Např. jazyk L = {w {a,b} * w obsahuje podslovo abba nebo bab} 27