Formální jazyky a automaty Petr Šimeček Úvod Formální jazyky a automaty jsou základním kamenem teoretické informatiky. Na počátku se zmíníme o Chomského klasifikaci gramatik, nástroje, který lze aplikovat třeba i v lingvistice či analýze gregoriánských chorálů. Hlavní oblastí našeho zájmu budou konečné automaty. Hádejte, kdo obstarává to,žepodseznamem,atlasem,altavistou... najdetevšetakrychle? Na závěr se zmíníme o Turingových strojích a dokážeme, že počítače nikdy nebudou předvídat budoucnost, ani nikdy nespočítají všechny možné reálné funkce. Jazyky Libovolná neprázdná množina V je abecedou. Její prvky nazýváme znaky nebo symboly. Slovem nad abecedou V myslíme konečnou posloupnost znaků z V, značíme w= a 1 a 2 a n. Délkaslova wjedélka wjakoposloupnosti,značíme w =n. Prázdnéslovo(posloupnostdélky0)značíme ε, ε =0.Symbolem V značíme množinuvšechslovnadabecedou V,symbolem V + množinu V {ε}. Jazykem L nad abecedou V rozumíme libovolnou(ne nutně konečnou!) množinuslov,tedy L V. Nechť u=a 1 a 2... a m, v= b 1 b 2... b njsouslovanad V.Definujmeoperaci zřetězení V V V tak,že uv= a 1 a 2... a mb 1 b 2... b n(napíšemeu,vzasebe). Gramatiky (Gramatika) Gramatika je čtveřice G =(N, Σ, P, S) s následujícím významem: Njemnožinaneterminálů,obvykleznačíme A,B,... 32
Petr Šimeček: Formální jazyky a automaty Σjemnožinaterminálů,obvykleznačíme a, b,...;platí N Σ=,dálezavedeme značení V = N Σ. P je množina pravidel(pravidlem rozumíme dvojici slov z nichž první obsahuje alespoň jeden neterminál, značíme α β). Sjestartovnísymbol, S N. Budeme nyní definovat odvození v G: vjednomkroku: u G v,pokudexistujepravidlo,které upřepíšena v. vevícekrocích:analogicky G. vevícekrocích,alevminimálnějednom: + G. Jazykgenerovanýgramatikou Gjemnožina L(G)={w Σ ; S G w}slov z terminálů odvoditelných z S. Gramatiky G 1 a G 2 jsouekvivalentní,pokud L(G 1 )=L(G 2 ). (Chomského hierarchie gramatik) Gramatika typu 0 je libovolná gramatika. Gramatika typu 1(kontextová) je gramatika, pro jejíž všechna pravidla α β platí α β. Gramatika typu 2(bezkontextová) je gramatika, jejíž všechna pravidla jsou tvaru A β,kde Ajeneterminál, β V +. Gramatika typu 3 (regulární) je gramatika, jejíž všechna pravidla jsou tvaru A β,kde Ajeneterminál, β V + jebuď anebo ab. Deterministické konečné automaty Konečnýautomat(KA) MnadabecedouΣjepětice(K,Σ,δ,q 0,F),kde K je konečná neprázdná množina stavů. ΣjeabecedaKA. δjepřechodováfunkce: K Σ K. q 0 je q 0 K,počátečnístav. Fje F K,množinakoncovýchstavů. Přechodovou funkci δ lze induktivně rozšířit na zobecněnou přechodovou funkci δ : K Σ Kpředpisem: δ (q, a):= δ(q, a)pro a Σ. δ (q, xa):= δ(δ (q, x), a)pro x Σ +, a Σ. Místo δ lzepsátpouze δ(nasymbolechserovnají). 33
Tříska 01 Slovo wjepřijímané(akceptované,rozpoznávané)ka,pokud δ(q 0, w) F. JazykrozpoznávanýKA Mjemnožina L(M)={w Σ ; wpřijímané M}. KA M 1 a M 2 jsouekvivalentní,pokud L(M 1 )=L(M 2 ). Lemma. (pumpovací) Nechť L je jazyk rozpoznávaný KA. Pak existuje číslo p takové,žekaždéslovo w L, w plzerozložittakto: w=xyz, y pavšechna w i = xy i zjsoutakézjazyka L. Nechť jeekvivalence,řekneme,že jepravákongruence,pokudzx yplyne xz yzprokaždoutrojici x, y, z. Index ekvivalence je počet tříd odpovídajícího rozkladu. Věta.(Nerodova) Následující tři tvrzení jsou ekvivalentní: Jazyk L Σ jeakceptovanýnějakýmka. Jazyk L je sjednocením některých tříd rozkladu pravé kongruence s konečným indexem. Nechť jedefinovanánaσ předpisem: x yprávětehdy,kdyžprokaždé r Σ platí xr L yr L.Paktaktodefinovaná mákonečnýindex. KA s nejmenším počtem stavů, který rozpoznává daný jazyk L, se nazývá minimální automat pro L. Věta. Minimální automat je dán jednoznačně až na izomorfismus. Poznámka. Minimálníautomatdostanemetak,žeodstraníme nedosažitelnéstavy a ztotožníme stavy ekvivalentní. Nedeterministické konečné automaty Místo KA budeme dále psát DKA, abychom odlišili od NKA. Nedeterministický konečný automat(nka) M nad abecedou Σ je pětice (K,Σ,δ,q 0,F),kde K je konečná neprázdná množina stavů. ΣjeabecedaKA. δjepřechodováfunkce: K Σ 2 K (Pozor!). q 0 je q 0 K,počátečnístav. Fje F K,množinakoncovýchstavů. 34
Petr Šimeček: Formální jazyky a automaty Přechodovou funkci δ lze opět induktivně rozšířit na zobecněnou přechodovoufunkci δ : K Σ Kpředpisem: δ (q, ε):= {q}. δ (q, xa):= p δ (q,x) δ(p,a)pro x Σ+, a Σ. NavícproNKArozšiřujemeobor δna2 K Σ : δ + (P, x)= p P δ (p,x). Slovo wjepřijímané(akceptované,rozpoznávané)nka,pokud δ(q 0, w) F. JazykrozpoznávanýNKA Mjemnožina L(M)={w Σ ; wpřijímané M}. NKA M 1 a M 2 jsouekvivalentní,pokud L(M 1 )=L(M 2 ). Věta. Nechť L je jazyk rozpoznávaný NKA. Potom existuje DKA, jenž rozpoznává L. Regulární gramatiky a KA Věta. Nechť G je regulární gramatika. Potom existuje KA M takový, že L(M) = L(G). Věta. Nechť M je konečný automat. Potom existuje gramatika G taková, že L(G) = L(M). Důsledek. Jazyk L je generovaný nějakou gramatikou G právě tehdy když existuje nějaký KA, který jej rozpoznává. Věta. Třída regulárních jazyků je uzavřená vzhledem k operaci (a) sjednocení. (b) doplňku. (c) průniku. (d) zřetězení. (e) uzávěru. Poznámka. Všechny konečné jazyky jsou zjevně regulární. 35
Tříska 01 Turingovy stroje Turingůvstroj (TS)jesystém T=(Q,Σ,Γ,ε,δ,q 0,F),kde Q je množina stavů. Σjevstupníabeceda,Σ Γ {ε}. Γ je pásková abeceda. εjeprázdnýsymbol(tzn.napáscenicnení), ε Γ. δjepřechodováfce Q Γ Q Γ {L, R}. q 0 jepočátečnístav. F je množina koncových stavů. Poznámka. Turingův stoj je systém s konečně stavovou řídící jednotkou a pamětí ve formě pásky rozdělené na políčka. Na políčku může být zapsán symbol jisté abecedy nebomůžebýtprázdné.páskajealespoňvjednomsměrunekonečná.tsvkaždém krokuzměníobsahpolíčkanakterémje,posunesedolevačidopravaapřípadně změnísvůjstav.změnyzávisínastavuaobsahupolíčka,nakterémsetsnachází. Věta.(Turingova) Problém zastavení Turingova stroje je nerozhodnutelný. Literatura Křetínský a kol., Formální jazyky a automaty I,II(k dostání na FI MU, knihkupectví umarečka). www.fi.muni.cz/zkusto zápisky studentů z FI MU. Chytil, Automaty a gramatiky. 36