JAZYKY A AUTOMATY. e-book

Podobne dokumenty
Minimalizace automatů. Z. Sawa (VŠB-TUO) Teoretická informatika 2. října / 53

Určitý (Riemannův) integrál a aplikace. Nevlastní integrál. 19. prosince 2018

Definice Řekneme, že PDA M = (Q,Σ,Γ,δ,q 0,Z 0,F) je. 1. pro všechna q Q a Z Γ platí: kdykoliv δ(q,ε,z), pak δ(q,a,z) = pro všechna a Σ;

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

1 Soustava lineárních rovnic

Linea rnı (ne)za vislost

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Edita Pelantová, katedra matematiky / 16

Numerické metody minimalizace

Obsah. 1 Konstrukce (definice) Riemannova integrálu Výpočet Newtonova Leibnizova věta Aplikace výpočet objemů a obsahů 30

Kristýna Kuncová. Matematika B2 18/19

Úvodní informace. 18. února 2019

Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

Matematika (KMI/PMATE)

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Obsah. Aplikovaná matematika I. Vlivem meze Vlivem funkce Bernhard Riemann. Mendelu Brno. 3 Vlastnosti určitého integrálu

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

Funkce zadané implicitně. 4. března 2019

Matematika I (KMI/PMATE) Co se naučíme? x = a a x = b. rozumět pojmu střední hodnota funkce na daném intervalu. Obrázek 1.

Numerické metody 8. května FJFI ČVUT v Praze

Matematická analýza II (NMUM102)

Matematika 2, vzorová písemka 1

Algebra I Cvičení. Podstatná část příkladů je převzata od kolegů, jmenovitě Prof. Kučery, Doc. Poláka a Doc. Kunce, se

5. a 12. prosince 2018

3.1 Derivace funkce Definice derivace Vlastnosti derivace Derivace elementárních funkcí... 49

Inverzní Z-transformace

Kristýna Kuncová. Matematika B2

Vybrané kapitoly z matematiky

Pojem množiny nedefinujeme, pouze připomínáme, že množina je. Nejprve shrneme pojmy a fakta, které znáte ze střední školy.

Průvodce studiem V této kapitole se budeme zabývat diferenciálním počtem pro funkce více

Operace s funkcemi [MA1-18:P2.1] funkční hodnota... y = f(x) (x argument)

Co nám prozradí derivace? 21. listopadu 2018

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

Stavový popis Stabilita spojitých systémů (K611MSAP) Katedra aplikované matematiky Fakulta dopravní ČVUT. čtvrtek 20. dubna 2006

MATEMATICKÁ ANALÝZA II. Martin Klazar

MATEMATIKA 2. Úlohy, otázky, aplikace

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

DFT. verze:

(2) Funkce. Kristýna Kuncová. Matematika B2. Kristýna Kuncová (2) Funkce 1 / 25

Petr Hasil. c Petr Hasil (MUNI) Nekonečné řady MA III (M3100) 1 / 187

Teorie. kuncova/ Definice 1. Necht f je reálná funkce a a R. Jestliže existuje.

Obsah. Limita posloupnosti a funkce. Petr Hasil. Limita posloupnosti. Pro a R definujeme: Je-li a < 0, pak a =, a ( ) =. vlastní body.

Cauchyova úloha pro obyčejnou diferenciální rovnici

Stochastické modelování v ekonomii a financích Konzistence odhadu LWS. konzistence OLS odhadu. Předpoklady pro konzistenci LWS

Nekomutativní Gröbnerovy báze

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Obsah. 1.5 Věty o střední hodnotě integrálu... 23

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Vysvětlování modelovacích chyb 133 / 156

YNUM - Numerická matematika

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

Diferenciální rovnice základní pojmy. Rovnice se

Petr Beremlijski, Marie Sadowská

Lineární algebra - iterační metody

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Úvod 1 / 32

Obsah. 1.2 Integrály typu ( ) R x, s αx+β

Martin Pergel. 26. února Martin Pergel

Univerzita Karlova v Praze Matematicko-fyzikální fakulta. algoritmu. Katedra algebry

Kombinatorika a komplexní aritmetika

Geometrická nelinearita: úvod

Internet a zdroje. (Zdroje na Internetu) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17.

x2 + 2x 15 x 2 + 4x ) f(x) = x 2 + 2x 15 x2 + x 12 3) f(x) = x 3 + 3x 2 10x. x 3 + 3x 2 10x x 2 + x 12 10) f(x) = log 2.

ÚVOD DO ARITMETIKY Michal Botur

Formálne jazyky Automaty. Formálne jazyky. 1 Automaty. IB110 Podzim

1 Definice. A B A B vlastní podmnožina. 4. Relace R mezi množinami A a B libovolná R A B. Je-li A = B relace na A

x y (A)dy. a) Určete a načrtněte oblasti, ve kterých je funkce diferencovatelná. b) Napište diferenciál funkce v bodě A = [x 0, y 0 ].

Statistika (KMI/PSTAT)

Obsah. Petr Hasil. (konjunkce) (disjunkce) A B (implikace) A je dostačující podmínka pro B; B je nutná podmínka pro A A B: (A B) (B A) A (negace)

Rovnice proudění Slapový model

kontaktní modely (Winklerův, Pasternakův)

Kompaktnost v neklasických logikách

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

NDMI002 Diskrétní matematika

Matematika 1 Jiˇr ı Fiˇser 24. z aˇr ı 2013 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 24. z aˇr ı / 52

(A B) ij = k. (A) ik (B) jk.

(a). Pak f. (a) pro i j a 2 f

Matematika prˇedna sˇka Lenka Prˇibylova 7. u nora 2007 c Lenka Prˇibylova, 200 7

Matematická analýza II

TGH01 - Algoritmizace

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Zobecněné metriky Různé poznámky 12. METRIZACE. Miroslav Hušek, Pavel Pyrih KMA MFF UK. 12. Poznámky

02GR - Odmaturuj z Grup a Reprezentací

Matematická analýza II pro kombinované studium. Konzultace první a druhá. RNDr. Libuše Samková, Ph.D. pf.jcu.cz

Laplaceova transformace

TGH01 - Algoritmizace

Zadání: Vypočítejte hlavní momenty setrvačnosti a vykreslete elipsu setrvačnosti na zadaných

Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Paradoxy geometrické pravděpodobnosti

Okrajový problém podmínky nejsou zadány v jednom bodu nejčastěji jsou podmínky zadány ve 2 bodech na okrajích, ale mohou být

Funkce více proměnných: limita, spojitost, parciální a směrové derivace, diferenciál

GEM a soustavy lineárních rovnic, část 2

Matematyczne Podstawy Informatyki

Úvod do Informatiky (FI:IB000)

FAKULTA STAVEBNÍ. Stavební statika. Telefon: WWW:

Kapitola 2. Nelineární rovnice

Sb ırka pˇr ıklad u z matematick e anal yzy II Petr Tomiczek

Transkrypt:

JAZYKY A AUTOMATY e-ook Václv NÝDL, Vivin WHITE, Ann MALCEVA Ktedr plikovné mtemtiky informtiky Ekonomická fkult, Jihočeská univerzit v Českých Budějovicích 1

Tto pulikce vznikl v rámci projektu IP16-18 12/EF-Klufová/1/Nýdl - je určen k výuce předmětu Jzyky utomty n EF JU. České Budějovice, prosinec 2016 c Václv Nýdl, 2016 2

TÉMA 1 - Alger n množině slov nd dnou ecedou Zákldními pojmy teorie jsou eced slovo. Množin všech slov nd dnou ecedou Σ se nzývá univerzum slov nd Σ oznčuje se Σ. Univerzum oshuje vždy prázdné slovo ε - pokud ho z univerz vyjmeme, použijeme oznčení Σ +. Dále prcujeme se slovy jednoznkovými (což jsou vlstně jednotlivé znky dné ecedy). Delší slov jsou řetězce znků z ecedy - tedy vlstně vrice s opkováním. Zápis #(w) určuje celkový počet symolů ve slově w (délku slov w) - má-li eced Σ celkem n znků, pk počet slov délky k nd Σ ude n k (vrice s opkováním k-tého řádu z n prvků). Zápis # (w) udává počet výskytů (opkování) znku ve slově w. N univerzu Σ lze definovt celou řdu lgerických opercí (unárních, inárních, td.) mluvíme o lgeře slov. Zvedeme některé stndrdní některé méně stndrdní, le užitečné. 1 (1) Zrcdlový orz (reverzi) slov w získáme zpsáním jeho znků v opčném pořdí, ozn. w R. Je-li w = w R, nzýváme slovo w plindromem (npř. ROTOR ). Příkld 1.1. Σ = {,, c}, w = cc. Nyní je w R = cc. Dále ε R = ε, R =. (2) Zřetězení (konktence)(tj. spojení dvou neo více slov z seou) - oznčení conct(w 1, w 2 ) neo conct(w 1, w 2, w 3 ), či w 1 w 2 neo w 1 w 2 w 3, ještě jednodušeji w 1 w 2 neo w 1 w 2 w 3. Příkld 1.2. Σ = {,, c}, w 1 = cc, w 2 =, w 3 = cc. Nyní ude w 2 w 1 = cc, w 1 w 2 w 3 = cccc, #(w 2 w 1 ) = 7, # (w 1 w 2 w 3 ) = 5. Speciálně pk i-tá mocnin slov w, ozn. v w i, vznikne i-krát opkovným zřetězením slov w, tedy npř. () 3 =. Řekneme, že slovo u je podslovem slov w, jestliže existují slov w 1, w 2 tk, že w = w 1 uw 2. Speciálně, je-li w = uv, říkáme, že podslovo u je předpon (prefix) podslovo v je přípon (suffix) slov w. Zřejmý je zápis # u (w) udávjící počet výskytů slov u jko podslov ve slově w. Tedy npř. pro w = je podslovo slov w, dále jednou z předpon jednou z přípon slov w. A pltí # (w) = 3. V nšem kurzu si zvedeme ještě dlší zjímvé operce: (3) Výřezem ze slov w tvru su(i..j, w) míníme podslovo slov w tvořené jeho i-tým ž j-tým znkem, pokud i j. Nové slovo má délku j i+1. Pro i > j je výřez roven ε. Příkld 1.3. Σ = {,, c}, w = ccc; pk su(2..3, w) = c, su(2..9, w) = ccc. (4) Pro i j ude npumpováním slov w tvru pump(i..j, w, k) slovo, které vznikne tkto: nejdříve vezmeme podslovo u = su(i..j, w) píšeme w = w 1 uw 2, kde w 1 = su(1..i 1, w) je předpon w 2 = su(j+1..n, w) je přípon; nyní již položíme pump(i..j, w, k) = w 1 u k w 2. Znmená to, že uvnitř slov w zřetězíme ( npumpujeme ) k kopií podslov u = su(i..j, w) n místě, kde původně ylo podslovo u. Nové slovo má délku rovnu #(w) + (k 1) #(u). Speciálně pump(i..j, w, 0) = w 1 w 2 ude pro nás znment, že podslovo u = su(i..j, w) ze slov w vyškrtneme (tj. též možno psát jednoduše del(i..j, w)). td. 1 Připomeňme operce s řetězci v Pythonu: u+v pro konktenci, w[i..j] pro výřez, w 3 pro mocninu, 3

Příkld 1.4. Σ = {,, c}, w = ccccc. Pk pump(3..4, w, 8) = ccccc délk tohoto slov je 8 + (8 1) 2 = 22. Dále pump(3..5, w, 0) = del(3..5, w) = cccc délk je 8 + (0 1) 3 = 5. Příkld 1.5. Operce lze kominovt: je-li Σ = {,, c}, ude w R 1 [su(2..3, w 2 )] 2 pump(4..6, w 1, 3) = cccccc. w 1 = cc, w 2 =, pk UKÁZKY Ukázk 1.1. Njděte ukázky plindromů v některém ěžném jzyce. Řešení. (řešil Mrtin CHUCHLOVÁ) češtin: nepotopen; nezřzen; zemnsenodonesnmez, ngličtin: mdm; wsitctisw. Ukázk 1.2. Pro dvě slov u = v = cc nd ecedou Σ = {,, c} vytvořte nové slovo w = pump(2..3, v, 4)[del(3..5, u 2 )] R pk určete hodnotu # c (w). Řešení. (řešil Frntišek DRDÁK) pump(2..3, v, 4) = ccccc, u 2 =, del(3..5, u 2 ) =, [del(3..5, u 2 )] R =, w = pump(2..3, v, 4)[del(3..5, u 2 )] R = ccccc; # c (w) = 4. Ukázk 1.3. Které z uvedených formulí pltí pro kždé slovo w nd Σ = {, }? FORMULE I. # (w 4 ) = (# (w)) 4. FORMULE II. su(1..2, su(1..4, w)) = su(1..2, w) pro #(w) 4. Řešení. První formule je nesprávná. Npříkld, je-li w =, pk w 4 =. Nkonec je # (w) = 2, # (w 4 ) = 8, le (# (w)) 4 = 2 4 = 16. F.II je pltná: je-li w = x 1 x 2 x 3 x 4... x k, pk su(1..4, w) = x 1 x 2 x 3 x 4 su(1..2, su(1..4, w)) = su(1..2, x 1 x 2 x 3 x 4 ) = x 1 x 2 = su(1..2, w). ÚLOHY K ŘEŠENÍ Úloh 1.1. Njděte polindromy v češtině, ngličtině, frncouzštině, němčině, slovenštině, špnělštině, ruštině dlších jzycích. Úloh 1.2. Pro dná dvě slov u v nd ecedou Σ = {,, c} nejdříve vytvořte dvě nová slov w 1 = u 2 v R su(3..5, v), w 2 = pump(1..2, v, 3)[del(2..5, u 2 )] R pk řešte úkoly T1 T2: T1: Npište slov w 1 w 2. T2: Určete hodnoty # (w 1 ) # c (w 2 ). (i) u = c, v = c (ii) u =, v = ccc (iii) u = c, v = c. Úloh 1.3. Které z uvedených formulí pltí pro kždé slovo w nd Σ = {,, c}? FORMULE I. # c (w R ) = # c (w). FORMULE II. # (w) = 2 # (w). FORMULE III. # c (w R ) = # c (w). FORMULE IV. # (w) + # (w) # (w). FORMULE V. pump(1..2, pump(3..4, w, 2), 2) = pump(1..4, w, 2), pro #(w) 4 4

TÉMA 2 - Operce s jzyky 2 Jzykem nd ecedou Σ míníme liovolnou množinu L jejích slov, tj. liovolnou podmnožinu L Σ. Jkmile Σ je neprázdná konečná množin, je Σ nekonečná - přesněji spočetná množin též jzyků je nekonečně mnoho - dokonce přesněji nespočetně mnoho (jde o známou poučku z teorie množin, že potenční množin, tj. množin všech podmnožin, spočetné množiny je nespočetná. Příkld 2.1. Zvolíme Σ = {, }. Příkldem konečného jzyk nd Σ je J 1 = {,, } Příkldem nekonečného jzyk nd Σ je J 2 = {w Σ ; # (w) = 3}, který je tvořen všemi slovy oshujícími právě 3 písmen liovolný počet písmen. Jsou to npř.,,. Jiný nekonečný jzyk J 3 = { i i ; i N} oshuje jen t slov, jejichž první polovin má smé kopie písmen druhá polovin stejný počet písmen ; tj. ε,,,,.... Jednou ze zákldních otázek teorie formálních jzyků je hledání prostředků jk popst nekonečný jzyk nějkým konečným způsoem. První způso vidíme výše n jzycích J 2, J 3. Tyto jzyky jsou popsány fomulemi složenými z konečně mnoh symolů. Oecně mjí tyto zápisy tvr: J = {w Σ ; P (w)}, kde P je predikát s proměnnou w. Do jzyk J se vyerou všechn slov w, pro něž je P (w) prvdivý výrok. Zvedeme stndrdní operce (i ěžné množinové) s jzyky nd zvolenou ecedou Σ: (1) Komplement (doplněk) jzyk L je co(l) = {w; w / L} = Σ L. Pokrčování Př. 2.1. Pro jzyk J 1 je jzyk co(j 1 ) tvořen všemi slovy nd Σ s výjimkou právě slov,,. Dále je co(j 2 ) = {w Σ ; # (w) 3} (2) Zrcdlový orz (reverze) jzyk L je L R = {w R ; w L}. Pokrčování Př. 2.1. Pro jzyky z ukázky pltí: J R 1 = {,, }, J R 2 = J 2, dále ude J R 3 = { i i ; i N}. (3) Průnik jzyků K L je K L = {w; w K zároveň w L}. Pokrčování Př. 2.1. Pro jzyky z ukázky pltí: J 1 J 3 = {}, J 2 J 3 = {}. (4) Sjednocení jzyků K L je K L = {w; w K neo w L}. Do sjednocení pdnou tedy všechn slov, která náleží spoň do jednoho ze sjednocovných jzyků. Sjednotit i proniknout je možno i více jzyků. (5) Zřetězení (konktence) jzyků K L je KL = {w 1 w 2 ; w 1 K, w 2 L}. Je možno definovt i zřetězení více jzyků. Pro liovolný jzyk L definujeme mocniny L k pro k = 0, 1, 2, 3,... tkto: L 0 = {ε}, L 1 = L, L k = LL... L (k-krát). (6) Iterce jzyk L je L = L 0 L 1 L 2 L 3.... Pokrčování Př. 2.1. Pro jzyk J 2 je iterce J2 tvořen (vedle ε) všemi slovy w, pro něž je číslo # (w) dělitelné 3. 2 Odhduje se, že v součsné doě mluví lidé n světě celkem si 6-ti tisíci jzyky. Npř. v Nigérii lze nlézt 515 jzyků. Nejrozšířenější jzyky podle počtu rodilých mluvčích jsou (zdroj Worldwtch Institute): čínštin - 885 mil., špnělštin - 332 mil., ngličtin - 332 mil., rštin - 220 mil., engálštin - 190 mil., hindštin - 180 mil., td. N světě je ezprostředně ohroženo vyhynutím 500-1500 jzyků, v Evropě je n tomto seznmu si 50 řečí (zdroj www.idnes.cz). 5

UKÁZKY Ukázk 2.1 Úlohy T 1, T 2, T 3 níže pro jzyky nd Σ = {, }: L 1 = {w; # (w) # (w) = 1}, L 2 = {w; w=w R }, L 3 = {w; w = uu R u Σ }. T1: V L 1 L 1 njděte slovo w tkové, že # (w) = 6, npište ho. T2: V co(l 2 ) njděte slovo w tkové, že # (w) > 3, npište ho. T3: V (L 2 L 3 L 2 L 3 ) njděte dvě slov npište je. Řešení. (řešil Ann STEPURA) d T1:, d T2:, d T3:,. Ukázk 2.2 Dán eced Σ = {, } jzyky L 1 = {w; w=w R }, L 2 = {w; # (w) # (w) 1}, L 3 = {w; w=() i () i, i N}, jsou podmnožiny Σ. Pomocí Vennov digrmu vyjádřete jejich vzájemný vzth. Ukázk 2.3 Která z následujících formulí pltí pro liovolné jzyky L 1, L 2? FORMULE I. (L 1 L 2 ) = L 1L 2, FORMULE II. co(l R 1 ) = (co(l 1 )) R. Řešení. (řešil Mrtin ŠIK) L 2 L 1 L 3 Řešení. První formule je nesprávná. Npř. je-li L 1 = {}, L 2 = {}, pk L 1 L 2 = {} (L 1 L 2 ) = {w; w = () i, i N {0}}. N druhé strně: L 1 = { i, i N {0}}, L 2 = { i, j N {0}} nd L 1L 2 = {w; w = i j, i, j N {0}} = (L 1 L 2 ). FORM. II je správná: w co(l R 1 ) w / L R 1 w R / L 1 w R co(l 1 ) w (co(l 1 )) R. ÚLOHY K ŘEŠENÍ Úloh 2.1 Pro jzyky L 1, L 2, L 3, L 4 nd Σ = {, } níže řešte následující úkoly: T1: V L 1 L 1 njděte slovo w, tkové že # (w) = 6, npište ho. T2: V co(l 2 ) njděte slovo w, tkové že # (w) > 3, npište ho. T3: V (L 2 L 4 L 2 L 4 ) njděte dvě slov npište je. T4: V L 2 L 3 njděte dvě slov npište je. T5: V Σ njděte slovo, které neptří do co(l 4 ) L 2 L 3, npište ho. () L 1 = {w; # (w) # (w) 1}, L 2 = {w; w=() i () i, i N}, L 3 = {w; w=w R }, L 4 = {w; w = uu R u Σ }. () L 1 = {w; # (w) # (w) > 1}, L 2 = {w; w=() i () j, i, j N}, L 3 = {w; w w R }, L 4 = {w; w = uu R u Σ }. Úloh 2.2 Σ = {, } jzyky K, L, M jsou tři podmnožiny Σ. Pomocí Vennov digrmu vyjádřete jejich vzájemný vzth. () K = {w; # (w) # (w) = 1}, L = {w; w=w R }, M = {w; w=() i () i, i N}, () K = {w; w=() i () i, i N}, L = {w; # (w) # (w) = 2}, M = {w; w=w R }, (c) K = {w; w w R }, L = {w; # (w) # (w) = 1}, M = {w; w=() i () i, i N}. Úloh 2.3 Která z následujících formulí pltí pro liovolné jzyky L 1, L 2, L 3? FORMULE I. L 1 L 2 = L 2 L 1, FORMULE II. L 1 (L 2 L 3 ) = L 1 L 2 L 1 L 3, FORMULE III. (L 2 ) = (L ) 2, FORMULE IV. co(l 1 L 2 ) = co(l 1 ) co(l 2 ), FORMULE V. (L 1 L 2 ) = L 1 L 2, FORMULE VI. L 1 L 2 = (L 1 L 2 ) 6

TÉMA 3 - Jzyk přijímný konečným utomtem (kceptorem) Druhým způsoem konečného popisu (i nekonečných) jzyků jsou konečné utomty. Zákldní předstv. Konečný utomt 3 A je systém sestávjící z řídící jednotky, nývjící konečně mnoh stvů, čtecí hlvy spojené se vstupní páskou, n níž je vždy npsáno zlev doprv (po zncích v jednotlivých uňkách pásky) vstupní slovo (zprcovávná dt). N zčátku je řídící jednotk v počátečním stvu čtecí hlv je nstven n první uňku vstupní pásky. Činnost utomtu se nzývá výpočet proíhá v krocích. V kždém kroku nejprve čtecí hlv přečte jeden znk z pásky posune se o jedno políčko doprv. Řídící jednotk znk zprcuje tk, že podle jeho hodnoty svého ktuálního stvu přejde do nového stvu (tento proces řídí přechodová funkce, která je v řídící jednotce npevno zudován). N řídící jednotce je též siglizční zřízení - mják, které se rozsvítí vždy, když je jednotk v přijímcím stvu. Výpočet skončí v okmžiku, kdy n pásce již není dlší znk (konec dt). Pokud je v tomto okmžiku řídící jednotk v přijímcím stvu, řekneme, že vstupní slovo ylo utomtem přijto; též řekneme, že proěhl přijímcí výpočet. Množin všech přijtých slov tvoří jzyk přijímný dným utomtem A oznčí se L(A). Příkld 3.1. Deterministický Konečný utomt B nd ecedou Σ = {, } je znázorněn stvovým digrmem vprvo. Jeho součásti: Σ = {, }... (vstupní) eced, Q = {q 0, q 1, q 2 }... množin stvů; počáteční stv q 0 ozn. šipkou utomt B δ : Q Σ Q... přechodová funkce (viz stvový digrm výše - kolečk jsou stvy, -šipky -šipky jsou přechody) je definovná předpisem: q 0 q 1 q 2, δ(q 0, ) = q 0, δ(q 0, ) = q 1, δ(q 1, ) = q 2, δ(q 1, ) = q 1, δ(q 2, ) = δ(q 2, ) = q 1, F = {q 1 }... množin přijímcích stvů utomtu (zde pouze jeden stv) - dvojitá kolečk. Příkld 3.2. Výpočet utomtu B (viz výše) n slově w 1 = proěhne v krocích: N počátku je B ve stvu q 0, konfigurce utomtu je (q 0, ). Přečte se první znk zlev (tj. ) n zdném slově. Přechodová funkce určí nový stv, tj. δ(q 0, ) = q 0 čtené slovo se zkrátí o přečtený znk n (čtecí hlv se posune n druhou pozici původního slov) - nová konfigurce je (q 0, ). V dlším kroku se čte dlší znk (tj. ), přechodová funkce dá δ(q 0, ) = q 1 čtené slovo se zkrátí n, td. (symol znmená ( přejde n ) - jde vždy o přechod konfigurce (stv, slovo) n konfigurci novou v jednom kroku; pro přípd přechodu konfigurce ve více krocích užijeme symolu pro iterci který lze vyjádřit frází jko npř. ( přejde postupně ž n ): (q 0, ) (q 0, ) (q 1, ) (q 2, ) (q 1, ) (q 2, ) (q 1, ε), tj. (q 0, ) (q 1, ε). w Zkráceně (v řeči stvů ) lze npst: q 0 q 0 q 1 q 2 q 1 q 2 q 1 neo tké q 1 0 q1. Výpočet skončil ve stvu q 1 F, tj. utomt B přijímá slovo w 1 =. Příkld 3.3. Průěh výpočtu utomtu B n slově w 2 = (n počátku je B ve stvu q 0 ): w (q 0, ) (q 0, ) (q 1, ) (q 1, ) (q 2, ε), tj. q 0 q 0 q 1 q 1 q 2 neoli q 2 0 q2. Výpočet skončil ve stvu q 2 / F, tj. utomt nepřijímá slovo w 2 =. 3 Přesný termín je deterministický konečný utomt, nglicky deterministic finite utomton (DFA). 7

N zákldě pozorování konsttujeme, že jzyk přijímný utomtem B je nekonečný je to L(B) = {w Σ ; B přijímá slovo w} = {w Σ ; w má suffix tvru i, kde i = 0, 2, 4, 6,...}. Přehled mlých utomtů nd ecedou Σ = {, } Existují právě dv jednostvové utomty nd Σ. Jsou to zřejmě: První z nich přijímá všechn slov jzyk Σ druhý z nich žádné.,, q 0 q 0 Dvoustvových utomtů nd Σ se stvy q 0, q 1 je celá řd, ovšem všechny ty, pro něž je F = {q 0, q 1 } přijímjí všechn slov jzyk Σ, ztímco ty, pro něž je F = nepřijímjí žádné slovo. Dále zvláštní skupinu tvoří ty utomty, jejichž přechodová funkce dává δ(q 0, ) = δ(q 0, ) = q 0. V nich je totiž stv q 1 nedosžitelný, tkže se redukují n jednostvové (viz úvhy výše). Tulk níže zchycuje všechny podsttné dvoustvové utomty. Osttní se z nich získjí výměnou rolí znků či změnou příjímcího stvu z q 1 n q 0 : AUTOMAT A, q 0 q 1 q 0 q 1 q 0 q 1, q 0, q 1,, q 0 q 1 JAZYK L(A) všechn slov oshující spoň jeden symol, tj. {w Σ ; # (w) 1} všechn slov oshující lichý počet symolů, tj. {w Σ ; # (w) je liché } všechn slov mjící příponu, tj. {u; u Σ } všechn slov mjící n konci lichý počet symolů, tj. { n ; n liché } {u n ; u Σ n liché } všechn slov kromě ε, tj. Σ {ε}, {n ; n liché } {un ; u Σ n sudé, včetně n=0} q 0 q 1, q 0, q 1 všechn slov liché délky, tj. {w Σ ; #(w) je liché číslo } 8

UKÁZKA Ukázk 3.1. Nd ecedou Σ = {,, c} jsou dán dvě slov u =, v = cc. Nejdříve utvořte slovo w = pump(2..3, v, 4)su(3..5, u 2 ) R. Pk řešte následující úkoly: (i) Ukžte výpočet utomtu B n vstupním slově w. Pk rozhodněte, zd toto slovo ptří do jzyk L(B). (ii) Njděte slovo w 1 tk, že w 1 co(l(b)) # (w 1 ) = 6. Ukžte výpočet utomtu B n tomto slově. utomt B,c,c q 1 q 0 q 2 c Řešení. (řešil Mrtin HOŘEJŠ) v 1 = pump(2..3, v, 4) = ccccc, u 2 =, v 2 = su(3..5, u 2 ) R = () R =, w = v 1 v 2 = ccccc. d (i) (q 0, ccccc) (q 0, ccccc) (q 0, ccccc) (q 1, cccc) (q 0, cccc) (q 1, ccc) (q 0, ccc) (q 1, cc) (q 0, cc) (q 1, c) (q 1, c) (q 1, ) (q 0, ) (q 0, ) (q 2, ) (q 2, ε), i.e. (q 0, w) (q 2, ε). To znmená, že w L(B). d (ii) Vezmeme w 1 = c výpočet dává q 0 q 2 q 2 q 0 q 0 q 2 q 2 q 0 q 0 q 2 q 2 q 0 q 0 q 1 q 0, i.e. (q 0, w) (q 0, ε) to znmená, že w 1 / L(B) neoli w 1 co(l(b)). ÚLOHY K ŘEŠENÍ Úloh 3.1. Nd ecedou Σ = {,, c} jsou dán dvě slov u = c v = c dv utomty A 1 nd A 2 : utomt A 1,c q 0,c q 1 utomt A 2,c,c q 1 q 0 q 2 c Nyní vytvořte dvě nová slov w 1 = u 2 v R su(2..5, v), w 2 = pump(2..3, v, 3)su(3..5, u 2 ) R pro kždý utomt A i, i = 1, 2, řešte následující 4 úkoly: pk, (i) Popište průěh výpočtu utomtu B n slově w 1, resp. w 2. Pk rozhodněte, zd dné slovo ptří do jzyk L(A i ). (ii) Njděte slovo w tk, že w co(l(a i )) #(w) > 20. Popište průěh výpočtu utomtu A i n tomto slově. (iii) Njděte slovo w tk, že w / co(l(a i )) # (w) = 6. Popište průěh výpočtu utomtu A i n tomto slově. (iv) Popište vlstními slovy funkci utomtu L(A i ). Úloh 3.2. Nd ecedou Σ = {, } nvrhněte dvoustvový utomt A tkový, že () L(A) = {ε}, () L(A) = { n ; n 0}, (c) L(A) = {w Σ ; # (w) 1}, (d) L(A) = {w Σ ; #(w) = 0, 2, 4,...}, (e) L(A) = {u; u Σ }, (f) L(A) = { n ; n is odd} {u n ; u Σ n is odd}. 9

TÉMA 4 - Anlýz činnosti konečného deterministického utomtu Je dán konečný deterministický utomt A nd ecedou Σ s množinou stvů Q, přechodovou funkcí δ : Q Σ Q množinou přijímcích stvů F Q. Jzyk přijímný utomtem A je L(A). Iterce přechodové funkce δ (oznčovná δ ) půsoí n množině všech konfigurcí jko (stv, slovo) (stv, slovo ). Tkový iterovný přechod nzýváme dílčím výpočtem utomtu A. Speciálně pro slovo w Σ má výpočet utomtu A n slově w tvr (q 0, w) (q i, ε); řekneme, že výpočet skončil ve stvu q i. Zřejmě pltí: w L(A) právě když výpočet utomtu A n slově w skončí v přijímcím stvu. Příkld 4.1. Automt A nd Σ = {, } je zdán přechodovým digrmem. (1) Ukážeme prciální výpočet tohoto utomtu n slově w = Σ, přičemž strtovním stvem ude q 1 ; provedeme 4 kroky: 3 ε,,, q 0 (q 1, ) (q 2, ) (q 2, ) (q 3, ) (q 2, ); 3,... zkráceně: (q 1, ) (q 2, ). (2) Pro i = 0, 1, 2, 3 chrkterizujeme množiny slov M 0, M 1, M 2, M 3, tj. M i = {w Σ ; (q 0, w) (q i, ε)}. Dostáváme: M 0 = {ε,, 2, 3,...} = { n ; n = 0, 1, 2, 3,...}. M 1 = {,, 2, 3,...} = { n ; n = 0, 1, 2, 3,...}, M 2 = {,, 2,...} = {w Σ ; w = u # (w) 1}, M 3 = {,,,,...} = {w Σ ; w = u # (w) 2}.,,, q 1 3,... M 0 M 1 3,,, q 2,... M 2 3,,, q 3 M 3 3... Vidíme, ře jsme održeli rozkld množiny Σ n 4 třídy zřejmě je L(A) = M 1 M 2. Právě provedený příkld ojsňuje oecnou vlstnost konečných deterministických utomtů: Kždý konečný deterministický utomt A nd ecedou Σ definuje n množině slov Σ relci A A předpisem w 1 w2 právě když existuje i tk, (q 0, w 1 ) (q i, ε) zároveň (q 0, w 2 ) (q i, ε). Tto relce je ekvivlencí její rozkldové třídy M 0, M 1, M 2,... odpovídjí stvům q 0, q 1, q 2,.... Dlší pozntky shrnuje následující vět: (Nerodov vět) Pro kždý konečný deterministický utomt A nd ecedou Σ je relce A prvou kongruencí n Σ, tj. pro kždá slov w 1, w 2, u pltí: w 1 A w2 w 1 u A w 2 u. N množině Σ vzniká pro relci A rozkld n konečný systém množin M i odpovídjících stvům q i utomtu A, přičemž je L(A) = M i. i F Poznámk. Vlstnost prvé kongruence lze využít n důkz, že existují jzyky, které nejsou přijímány žádným utomtem; npř. { n2 ; n = 0, 1, 2, 3,...}, neo {w {, } ; w = w R }. Příkld 4.2. Jzyk K = { i i ; i = 1, 2, 3,...} nd Σ = {, } není přijímám žádným utomtem. Důkz (sporem). Předpokládejme nopk, že K = L(K), kde K je n-stvový utomt se stvy q 0, q 1,..., q n 1. Automt K definuje n Σ prvou kongruenci K rozkld M 0, M 1,..., M n 1. Vezmeme n+1 slov nd Σ sice 1, 2, 3,..., n, n+1. Podle Dirichletov přihrádkového principu musí existovt čísl i, j, (i < j n + 1) dále index l tk, že i M l j M l. To le znmená, že i K j. Podle Nerodovy věty ude pltit též i i K j i. Spor je v tom, že K přijme slovo i i, le nepřijme slovo j i (neot j i), čkoliv tto slov jsou kongruentní. 10

UKÁZKA Ukázk 4.1. Automt A nd ecedou Σ = {, } je popsán stvovým digrmem. (i) Proved te 4-krokový prciální výpočet n slově, přičemč strtovním stvem ude q 1. Zpište průěh výpočtu., q 0 q 1 q 2 (ii) Ke kždému ze stvů q 0, q 1, q 2 je přiřzen množin slov M 0, M 1, M 2. Pro kždou z těchto množin njděte 3 její různé prvky. (iii) Popište jzyk L(A). Zdůvodněte vši odpověd. Řešení. (řešil Ondřej LEVÝ) (i) (q 1, ) (q 1, ) (q 1, ) (q 1, ) (q 2, ), zkráceně: (q 1, ) (q 2, ). (ii) M 0 = {ε,,,...}, M 1 = {,,,...}, M 2 = {,,,...}. (iii) L(A) = { i j ; i 0, j > 0}. Zdůvodnění: Vidíme, že M 0 = { i ; i 0}. Pk je jsně M 1 = {w; w = u kde u M 0 neo u M 1 } = { i j ; i 0, j > 0}, nd L(A) = M 1. ÚLOHY K ŘEŠENÍ Úloh 4.1. Dv utomty A 1, A 2 nd ecedou Σ = {, } jsou zdány svými přechodovými digrmy. A 1 q 0, q 1 A 2 q 0 q 1 q 2 (i) N slově proved te 5-ti krokový výpočet strtovný ve stvu q 1. Zpište tento výpočet. (ii) V utomtu A 1 (neo v A 2 ) jsou ke kždému stvu q 0, q 1 (neo q 0, q 1, q 2 ) přidruženy množiny slov M 0, M 1 (neo M 0, M 1, M 2 ). Pro kždou z těchto množin njděte 3 její různé prvky. (iii) Njděte jzyk L(A i ) v tulce vyrných jzyků Q 1 ž Q 6 níže. Zdůvodněte vši odpověd. Tulk vyrných jzyků nd ecedou Σ = {, } Lnguge Q 1... {w; w Σ }, Lnguge Q 2... {w; w Σ }, Lnguge Q 3... {w i ; w Σ i=0, 2, 4, 6,...}, Lnguge Q 4... Q 3 { i ; i=0, 2, 4, 6,...}, Lnguge Q 5... {w i ; w Σ i=1, 3, 5, 7,...}, Lnguge Q 6... Q 5 { i ; i=1, 3, 5, 7,...}. Úloh 4.2. () Užijte Nerodovu větu dokžte sporem, že L = {w {, } ; w = w R } není jzykem generovným žádným utomtem. () Užijte Nerodovu větu dokžte sporem, že L = { n2 ; n = 0, 1, 2, 3,...} není jzykem generovným žádným utomtem. 11

TÉMA 5 - Konečné nekonečné regulární jzyky Definice. Jzyk L nd ecedou Σ nzýváme regulárním jyzkem, jestliže existuje konečný deterministický utomt A tkový, že L = L(A). Třídu všech regulárních jzyků nd ecedou Σ oznčíme REG(Σ). Pozorování. Kždý konečný jzyk L je regulární, tj. k němu existuje utomt A tkový, že L = L(A). V konstrukci utomtu A se užije tzv. prciální přechodová funkce, která popisuje pouze důležité přechody, ztímco nedůležité přechody se opominou [v tulce ude symol (pomlčk)]. Ke zkompletování tulky přechodů se pk užije jeden zvláštní stv, výlevk. Příkld 5.1. Pro Σ = {k, o, s} L = {k, o, s, kos, kok} zkonstruujeme utomt A užitím prciální přechodové funkce δ prciálního přechodového digrmu. k o s k o k,s q 0 q 1 q 4 q 4 q 0 q 1 q 2 q 3 q1 q 2 q 2 q 3 q 3 q3 o,s q4 q 4 Nyní ukážeme kompletci prciální přechodové funkce. Zvedeme nový stv - výlevku q 5 všechny chyějící přechody nsměrujeme do q 5 : k o k,s k o s q 0 q 1 q 2 q 3 q 0 q 1 q 4 q 4 q1 q 5 q 2 q 5 o,s k,s o k,o,s q 2 q 3 q 5 q 3 q3 q 4 q 5 q 5 q 5 q 5 k,o,s q4 q 5 q 5 q 5 k,o,s q 5 q 5 q 5 q 5 Vět. Necht pro n-stvový utomt A existuje slovo w L(A) tkové, že #(w) n. Pk je jzyk L(A) nekonečný. Ideu důkzu udeme ilustrovt n příkldě. Příkld 5.2. 4-stvový utomt A nd Σ = {, } je popsán stvovým digrmem nprvo. Tento utomt přijímá slovo w = ; výpočet je: (q 0, ) (q 1, ) (q 3, ) (q 1, ) (q 3, ) (q 2, ) (q 1, ε), neo: q 0 q 1 q 3 q 1 q 3 q 2 q 1. Posloupnost má #(w) + 1 = 6+1 = 7 členů nutně se v ní musí některý člen opkovt (Dirichletův princip). utomt A q 0 q 1, q 2 q 3 Proto můžeme njít prciální výpočet ve tvru výpočetní smyčky; npř. (q 1, ) (q 3, ) (q 1, ) je smyčk z q 1 do q 1. Tuto smyčku můžeme při výpočtu opkovt k-krát (k = 1, 2, 3,...) pro tkový výpočet prostě slovo npumpujeme n pump(2..3,, k). Souhrn: Tento utomt přijme všechn slov tvru pump(2..3, w, k) with k = 1, 2, 3,..., tj.,,,,... td. To znmená, že jzyk L(A) je nekonečný. 12

UKÁZKY Ukázk 5.1. Pro konečný jzyk L = {or, for, of} {w; #(w) = 1} nd ecedou Σ = {f, r, o} vytvořte utomt B tkový, že L = L(B). Ukžte jeho prciální přechodovou funkci jeho prciální přechodový digrm. Řešení. (řešil Jn ŠIMEČEK) f r o q 0 q 2 q 3 q 1 q1 q 3 q 3 q2 q 4 q3 q 4 q 3 Ukázk 5.2. Pro dný 3-stvový utomt A (vprvo) njděte slovo w délky spoň 6, které je přijímáno tímto utomtem. N toto slovo použijte pumpovcí princip dokžte, že jzyk L(A) je nekonečný. Řešení. (řešil Mrtin CHUCHLOVÁ) w = výpočet ude: f o q 0 q o 1 q 2 q 4 r f,r r q 3 utomt A, q 0 q 1 q 2 (q 0, ) (q 0, ) (q 1, ) (q 0, ) (q 1, ) (q 2, ) (q 2, ) (q 2, ε). Výpočetní smyčk je (q 1, ) (q 0, ) (q 1, ). Pumpováním n původním slově w dostneme pump(3..4, w, k), kde k = 1, 2, 3,..., tj.,,,... td. Všechn tto slov ptří do L(A), tj. L(A) je nekonečný jzyk. ÚLOHY K ŘEŠENÍ Úloh 5.1. Pro zdný jzyk L nd ecedou Σ vytvořte utomt A tkový, že L = L(A). Ukžte jeho prciální přechodovou funkci jeho prciální přechodový digrm. () Σ = {f, g, o}, L = {fog, off} {w; #(w) = 2}, () Σ = {f, g, o}, L = {go, for, off} {w; #(w) = 1}, (c) Σ = {d, g, o}, L = {go, do, god} {w; #(w) = 2}, (d) Σ = {f, r, o}, L = {or, of} {w; #(w) = 3}, Úloh 5.2. Pro níže zdný utomt B njděte slovo w délky spoň 5, které je přijímáno tímto utomtem. Pk použijte n toto slovo pumpovcí princip dokžte, že jzyk L(B) je nekonečný. () utomt B q 0 q 1 () utomt B q 0 q 1 q 2, (c) utomt B,c,c q 1 q 0 q 2 c (d) utomt B, q 0 q 1 q 2 q 3, 13

TÉMA 6 - Alger utomtů - část 1 (1) Kopie utomtu. Necht A je n-stvový deterministický utomt nd Σ se stvovou množinou Q; necht Φ : Q P je ijekce. Pk můžeme přirozeně definovt Φ-kopii utomtu A (ozn. Φ(A) ) se stvovou množinoup (viz Diskrétní mtemtik v příkldech 1). Φ(A) ude pk též n-stvový deterministický utomt nd Σ pltí L(Φ(A)) = L(A). (2) Ko-utomt. Necht Σ je eced let A je deterministický utomt nd Σ mjící stvovou množinu Q množinu přijímcích stvů F Q. Nyní změníme v A množinu přijímcích stvů n Q F (tím vyměníme stvy nepřijímcí přijímcí); dostneme ko-utomt co(a) pltí L(co(A)) = Σ L(A). Příkld 6.1. utomt B utomt co(b),, q 0 q 1 q 2 q 0 q 1 q 2 (3) Synchronní prlelní kompozice utomtů. Necht A, B jsou dv utomty nd Σ, jejich stvové množiny jsou Q A, Q B, strtovní stvy jsou q 0,A, q 0,B, přechodové funkce jsou δ A, δ B množiny přijímcích stvů jsou F A, F B. Pk pro Synchronní prlelní kompozici udou: množin stvů Q = Q A Q B = {[q, q ]; q Q A, q Q B }, strtovní stv ude [q 0,A, q 0,B ]; přechodová funkce ude: δ([q, q ], ) = [δ A (q, ), δ B (q, )] pro kždé Σ. Uvžujeme tři možné množiny přijímcího stvu F, totiž: pro utomt A B: F = {[q, q ]; q F A q / F B } L(A B) = L(A) L(B); pro utomt A B: F = {[q, q ]; q F A q F B } L(A B) = L(A) L(B); pro utomt A B: F = {[q, q ]; q F A q F B } L(A B) = L(A) L(B). utomt B Příkld 6.2. Orázek ukzuje příprvu množiny, stvů pro prlelní kompozici utomtů A B. q 0 q 1 q 2 Fkticky se jedná o krtézský součin množin Q A Q B, kde nmísto [q i, q j ] píšeme q i,j ; speciálně utomt A ude strtovní stv q 0,0. Přechodové šipky jsou vytvořeny evidentním způsoem. Pro množinu 3 q 0 q 0,0 q 0,1 q 0,2 přijímcích stvů F uvžujeme 3 způsoy: pro A B je F = {q 1,1 }, pro A B je F = {q 0,0, q 1,0, q 1,1, q 0,2, q 1,2 }, 3 q 1 q 1,0 pro A B je F = {q 1,0, q 1,2 }. q 1,1 q 1,2 The three utomt re shown elow: utomt A B utomt A B utomt A B q 0,0 q 0,1 q 0,2 q 0,0 q 0,1 q 0,2 q 0,0 q 0,1 q 0,2 q 1,0 q 1,1 q 1,2 q 1,0 q 1,1 q 1,2 q 1,0 q 1,1 q 1,2 14

UKÁZKY Ukázk 6.1. Níže jsou dány dv utomty A B nd ecedou Σ = {, }. Vším úkolem je popst tři nové utomty: A B, A co(b) co(a) co(b). utomt A utomt B utomt B q 0 q 1 q 0 q 1 q 2 q 0 q 1 q 2,, utomt A Řešení. (řešil Jku BÁRTA) Orázek ukzuje množinu stvů pro prlelní kompozici utomtů 3 A B přechody. Poždovné tři utomty jsou q 0 q 0,0 q 0,1 q 0,2 pk popsány jko: pro A B je F = {q 1,2 }, 3 pro A co(b) je F = {q 1,0, q 1,1, q 1,2, q 0,2 }, q 1 q 1,0 q 1,1 q 1,2 pro co(a) co(b) je F = {q 0,2 }. Ukázk 6.2. Let A nd B jsou utomty nd Σ = {, } z Uk. 6.1. Užijte konstrukce z Uk. 6.1. njděte slovo string w Σ tkové, že () w L(A) w / L(B) #(w) = 5 () w / L(A) w / L(B) # (w) = 3. Řešení. d () Potřeujeme w L(A B) víme, že tento utomt má pouze jeden přijímcí stv, totiž q 12. Vezmeme w = výpočet v A B dává (q 00, ) (q 10, ) (q 11, ) (q 12, ) (q 02, ) (q 12, ε), tj. (q 00, w) (q 12, ε). d () Potřeujeme w L(co(A) co(b)) víme, že tento utomt má pouze jeden přijímcí stv, totiž q 02. Vezmeme w = výpočet v co(a) co(b) dává (q 00, w) (q 02, ε). ÚLOHY K ŘEŠENÍ Úlohs 6.1. Nd ecedou Σ = {, } jsou dány tři utomty A 1, A 2, A 3 : utomt A 1 utomt A 2 q 0 q 1 q 0 q 1 q 2, () Určete počet přijímcích stvů v utomtu utomt A 3, q 0 q 1 q 2 q 3, (i) co(a 3 ) A 1 (ii) A 2 A 3 (iii) A 1 A 2 A 2 () Nvrhněte stvový digrm pro utomt (i) co(a 1 ) A 2 (ii) A 1 A 2 (iii) A 1 A 3 (c) Pro kždý utomt z Úl. 6.1. () zpište výpočet n slovu w =. (d) Pro kždý utomt z Úl. 6.1. () njděte v jeho jzyce slovo u tk, že (1) #u = 8 # u 1, (2) [# u = # (u)] u = u R. 15

TÉMA 7 - Nedeterministický konečný utomt 4 Poznámk: V této kpitole ude užitečné zčínt číslování stvů utomtu od q 1, tj. Q = {q 1, q 2,...}. Je-li Q množin stvů, pk symol P(Q) oznčuje potenční množinu množiny Q, tj. množinu všech podmnožin množiny Q. Nedeterministický konečný utomt A nd ecedou Σ je zoecněním deterministického utomtu v následujícím smyslu: Počáteční stv nemusí ýt jen jeden, le jkákoliv neprázdná množin stvů Q 0 Q. Přechodová funkce může ýt víceznčná, tj. δ : Q Σ P(Q). Kždý výpočetní krok má tvr (q i, w) (q j, w) znmená, že q j δ(q i, ). Dílčí výpočet je definován stejně, totiž jko sled výpočetních kroků oznčován (q i, w 1 ) (q j, w 2 ); tké pro kždý stv q i je definován množin slov M i Σ předpisem M i = {w Σ ; existuje q Q 0 tk, že (q, w) (q i, ε). Systém těchto množin všk nemusí ýt rozkldem n Σ, le oecně je to hypergrf. Pk jzyk přijímný utomtem A je opět L(A) = {w Σ ; existují q Q 0, q F tk, že (q, w) (q, ε)}. Důsledkem zoecnění je nový jev - výsledek výpočtu n slově w Σ odstrtovného z některého počátečního stvu q Q 0 může záviset n zvolené cestě tedy nemusí ýt určen jednočnčně. Mohou nstt tři přípdy (tře i všechny zároveň pro totéž slovo w): existuje q F tk, že (q, w) (q, ε) - tj. dný výpočet slovo w přijímá, existuje q / F tk, že (q, w) (q, ε) - tj. dný výpočet slovo w nepřijímá, existují q Q u Σ, u ε tk, že (q, w) (q, u) výpočet nelze dokončit. Příkld 7.1. Nedeterministický utomt A znázorňuje stvový digrm vprvo. Jeho součásti jsou: Σ={, }, Q={q 0, q 1, q 2 }, Q 0 ={q 0 }, F ={q 1 }; přechodovou funkci δ : Q Σ P(Q) popisuje tulk. Ukázky výpočtů: (q 0, ) (q 0, ) (q 0, ) (q 1, ) (q 2, ε) - slovo přijto, (q 0, ) (q 0, ) (q 0, ) (q 0, ) (q 1, ε) - slovo nepřijto, (q 0, ) (q 1, ) (q 2, ) výpočet nelze dokončit. Nyní ukážeme hypergrf n množině Σ, jehož hyperhrny M i korespondují se stvy q i utomtu A. M 1... zřejmě M 1 = Σ, protože pro kždé slovo w Σ existuje výpočet tvru (q 1, w) (q 1, ε) M 2... M 2 = {w; w Σ }, protože právě pro tto slov existuje výpočet (q 1, w) (q 1, ) (q 2, ε) M 3... M 3 = {w; w Σ } {w; w Σ }, protože právě pro tto slov existuje výpočet (q 1, wx) (q 1, x) (q 2, x) (q 3, ε), kde x = neo x =. utomt A,, q 0 q 1 q 2 q 0 {q 0 } {q 0, q 1 } q1 {q 2 } {q 2 } q 2 { } { } 3, q 1 M 1 =Σ Jzyk L(A) = M 3, tto množin je složen ze všech slov mjících předposlední znk. q 2 M 2, q 3 M 3 Vět. Ke kždému n-stvovému nedeterministickému utomtu A existuje deterministický utomt A d tkový, že L(A) = L(A d ). Automt A d má 2 n stvů. Důkz se provádí pomocí tzv. podmnožinové konstrukce. Vyjdeme z původního nedeterministického utomtu A s množinou stvů Q, množinou počátečních stvů Q 0 Q, množinou přijímcích stvů F Q, přechodovou funkcí δ : Q Σ P(Q). Pro nový deterministický utomt A d je: Q d = P(Q) množin stvů, Q 0 P(Q) strtovní stv, F d = {Q P(Q); Q F } P(Q) přijímcí stv. Přechodová funkce je definován jko δ d : P(Q) Σ P(Q), kde δ d (Q, ) = δ(q, ) P(Q). q Q 4 nglicky Non-deterministic Finite Automton (NFA) 16

Konstrukci ukážeme n utomtu A z Př. 7.1., kde stvová množin je Q = {q 1, q 2, q 3 }. Přitom pro prvky potenční množiny P(Q) (je jich 8 = 2 3 ) použijeme šikovné oznčení pomocí inárního kódu, totiž: = p 000, {q 1 } = p 100, {q 2 } = p 010, {q 3 } = p 001, {q 1, q 2 } = p 110, {q 1, q 3 } = p 101, {q 2, q 3 } = p 011, {q 1, q 2, q 3 } = p 111. Zytek konstrukce je zřejmý z výsledného přechodového digrmu utomtu A d (níže vlevo). utomt A reduk d utomt A d,, p 000 p 100 p 110 p 101 p 100 p 110 p 101, =, p 010 p 001 p 011,, p 111 p 111 Z orázku vlevo vidíme, že některé stvy vůec nelze dosáhnout výpočtem ze strtovního stvu. Tyto čtyři stvy se nzvou nedosžitené mohou se z přechodovéh digrmu odstrnit. Přechodový digrm tkto vzniklého redukovného utomtu A reduk d vidíme nprvo., UKÁZKA Ukázk 7.1. Nprvo vidíme nedeterministický utomt A q 1 q 2 nd ecedou Σ = {, }. (i) Njděte pro utomt A (pokud existují) tři slov w 1, w 2, w 3 Σ tková, že: w 1 L(A), w 2 / L(A) kždý výpočet n něm ude dokončen, w 3 / L(A) žádný výpočet n něm neude dokončen. (ii) Užijte stndrdní podmnožinovou konstrukci vytvořte přechodový digrm deterministického utomtu A d. Zjistěte počet nedosžitelných stvů v A d. Řešení. (řešil Jn ŠIMEČEK) d (i) w 1 = pk (q 1, ) (q 2, ) (q 2, ε), tj. w 1 L(A); w 2 = ε / L(A) jediný možný výpočet je (q 1, ε); w 3 = / L(A) jediný možný výpočet je (q 1, ) ten tedy neude dokončen. deterministic utomton A d d (ii) Nprvo je přechdový digrm utomtu A d tulk přechodové funkce. Z di-, p 10 grmu vidíme, že nový utomt nemá žádné nedosžitelné stvy. ÚLOHY K ŘEŠENÍ p 10 p 00 p 01 p 01 p 01 p 11 p 00 p 11 p 01 p 11 p 00 p 00 p 00 Úloh 7.1. Pro zdný nedeterministický utomt A nd Σ = {, } njděte (i) u, v Σ tk, že u L(A), v / L(A), (ii) počet nedosžitelných stvů v A d. utomt A utomt A utomt A p 11 p 01,,, q 1 q 2 q 1 q 2 q 3 q 1 q 2 q 3 q 4 () () (c) 17

TÉMA 8 - Nedeterministický konečný utomt s ε-přechody 5 Nedeterministický konečný utomt A s ε-kroky nd ecedou Σ je následujícím zoecněním nedeterministického utomtu: ve stvovém digrmu přiývjí šipky nového druhu oznčené ε, tj. ε přechodová funkce je δ : Q (Σ {ε}) P(Q). Kždé šipce q i qj odpovídá výpočetní krok tvru (q i, w) ε (q j, w), kde w je liovolné slovo. Příkld 8.1. Příkld nedeterministického utomtu s ε-přechody B je: Σ={, }, Q={q 0, q 1, q 2 }, Q 0 ={q 0 }, F ={q 2 }; přechodová funkce včetně ε-přechodů je δ : Q (Σ {ε}) P(Q) je popsán pomocí přechodového digrmu i tulky. Příkldy výpočtů: (q 0, ) (q 1, ) (q 2, ) ε (q 1, ) (q 2, ) ε (q 0, ) (q 1, ) (q 2, ε) slovo je přijto, (q 0, ) (q 1, ) (q 1, ) (q 1, ) nedokončeno, (q 0, ) (q 1, ) (q 2, ) ε (q 0, ) (q 1, ) (q 1, ) (q 1, ε) slovo není přijto. Jzyk L(B) = { k 1 k 2... k n ; n 1, k i 1}. utomton B ε q 0 q 1 q 2 ε ε q 0 {q 1 } { } { } q 1 { } {q 1,q 2 } { } q 2 { } { } {q 0,q 1 } Vět. Ke kždému nedeterministickému utomtu s ε-přechody A existuje n stejné množině stvů nedeterministický utomt ez ε-kroků A ε tkový, že L(A) = L(A ε ). Důkz. Konstrukce nového utomtu je zložen n tom, že místo kždého řetězce šipek původního utomtu tvru q i1 ε qi2 ε... ε qik x qik+1 ε... ε qin 1 ε qin, kde x Σ, přidáme složenou šipku q i1 x qin. Nkonec odtrníme všechny ε-přechody. Příkld 8.1. - pokrč. Aychom trnsformovli utomt s ε-přechody B z Př. 8.1. n utomt ez ε-přechodů, udeme zkoumt všechny speciální řetězce šipek tvořit nové šipky, které nejsou ε-šipkmi: q 1 q 2 ε q1 q 1 q 1 (již existuje), q 1 q 2 ε q0 q 1 q 0 (nová -šipk), q 2 ε q1 q 2 q 2 q 2 (nová -šipk), q 2 ε q0 q1 q 2 q1 (nová -šipk), q 2 ε q1 q 1 q 2 q 1 (nová -šipk), q 2 ε q1 q 2 ε q0 q 2 q 0 (nová -šipk). Nový stvový digrm nová tulk přechodové funkce utomtu B ε jsou:, q 0 {q 1 } { } q 0 q 1 q 2 q 1 { } {q 0,q 1,q 2 } q2 {q 1} {q 0,q 1,q 2 } ÚLOHY K ŘEŠENÍ Úloh 8.1. Pro kždý zdný nedeterministiký utomt B nd Σ = {, } níže ukžte jeden přijímcí jeden nepřijímcí výpočet n slově. Úloh 8.2. Pro dný nedeterministický utomt B nd Σ = {, } zkonstruujte B ε. utomt B utomt B utomt B, ε q 1 () q 2 () ε ε ε q 1 q 2 q 3 (c) ε q 1 q 2 q 3 q 4 5 nglicky Nondeterministic Finite Automton with ε-trnsitions (ε-nfa) 18

TÉMA 9 - Alger utomtů - část 2 (4) The reverze utomtu. Necht A je nedeterministický konečný utomt s ε-přechody nd ecedou Σ; stvové množiny jsou Q, Q 0, F přechodová funkce je δ. Pro nový utomt orátíme směr všech šipek v přechodovém digrmu utomtu A; nvíc ještě se F stne množinou strtovních stvů Q 0 se stne množinou přijímcích stvů nového utomtu. Vznikne utomt A R L(A R ) = L(A) R. Příkld 9.1. Orázek ukzuje utomt A jeho reverzi A R : utomt A utomt A R ε ε q 0 q 1 q 2 q 0 q 1 q 2 ε ε Příkldy výpočtů v A: (q 0, ) (1) (q 1, ) (2) (q 2, ) (3)ε (q 1, ) (4) (q 2, ε), tj. L(A), v A R : (q 2, ) (4)R (q 1, ) (3)εR (q 2, ) (2)R (q 1, ) (1)R (q 0, ε), tj. L(A) R. L(A) = { k 1 k 2... k n ; n 1, k i 1} nd L(A R ) = { k 1 k 2... k n ; n 1, k i 1}. (5) Sériová kompozice utomtů. A 1, A 1 jsou dv konečné nedeterministické utomty s ε- přechody nd ecedou Σ s množinmi stvů Q 1, Q 2 (Q 1 Q 2 = ), počátečních stvů Q 0 1, Q0 2, přijímcích stvů F 1, F 2, přechodovými funkcemi δ 1, δ 2. Jejich zřetězením vznikne nový utomt s množinou stvů Q = Q 1 Q 2, počátečních stvů Q 0 = Q 0 1, přijímcích stvů F = F 2, přechodovou funkcí δ = δ 1 δ 2, do níž se přidjí ještě všechny propojovcí ε-šipky tvru q ε q, kde q F 1, q Q 0 2. Nový utomt se oznčí A 1 A 2 pltí L(A 1 A 2 ) = L(A 1 )L(A 2 ). Příkld 9.2. ε ut. A 1 ut. A 2 q 0 q 1 q 2 r 0 r 1 ε utomt A 1 A 2 ε q 0 q 1 q 2 ε r 0 r 1 Příkldy výpočtů v A 1 : (q 0, ) (1) (q 1, ) (2)ε (q 0, ) (3) (q 1, ) (4) (q 2, ε), tj. L(A 1 ), v A 2 : (r 0, ) (5) (r 0, ) (6) (r 1, ε), tj. L(A 2 ), v A 1 A 2 : (q 0, ) (1) (q 1, ) (2)ε (q 0, ) (3) (q 1, ) (4) (q 2, ) (r ε 0, ) (5) (r 0, ) (6) (r 1, ε), tj. L(A 1 A 2 ). L(A 1 ) = { m n ; m 1, n {0, 1}}, L(A 2 ) = { s ( k 1 )... ( k p ); s 1, k i 1, p 0}, L(A 1 A 2 ) = { m n s ( k 1 )... ( k p ); m 1, s 1, n {0, 1}, k i 1, p 0}. (6) Iterce utomtu. Nd ecedou Σ dán konečný nedeterministický utomt s ε-kroky A, se stvovými množinmi Q, Q 0, F přechodovou funkcí δ. Nový utomt má přidné všechny zpětně propojovcí ε-šipky tvru q ε q, kde q F, q Q 0. Nvíc se do množiny stvů přidá jeden nový q ε, který je zároveň počáteční i přijímcí (nutnost přijetí ε). Nový utomt se oznčí A pltí L(A ) = L(A). Příkld 9.3. utomt A q ε ε utomt A q 0 q 1 q 2 q 0 q 1 q 2 Příkldy výpočtů v A: (q 0, ) (1) (q 1, ϵ), neo (q 0, ) (2) (q 1, ) (3) (q 2, ε), tj., L(A), v A : (q 0, ) (2) (q 1, ) (3) (q 2, ) ε (q 0, ) (1) (q 1, ) ε (q 0, ) (1) (q 1, ε), L(A). 19 ε

L(A) = {, } L(A ) = { k 1 k 2... kn j ; n 1, k i 1, j {0, 1}} {ε}. Shrnutí. N třídě všech nedeterministických utomtů s ε-kroky lze provádět operce kopírování, ko-utomt, synchronní prlelní kompozice, reverze, sériová kompozice, iterce. Výsledkem kždé operce je oecně nedeterministický utomt s ε-kroky. Tedy tříd REG(Σ) je uzvřen n doplňky, rozdíly, průniky, sjednocení, reverze, zřetězení iterce. Aplikce 9.1. Jk jsme viděli utomty s ε-přechody dávjí více svoody při tvorě utomtu přijímcího zdný jzyk. Příkld níže pochází z knihy utorů Hopcroft, Motwni, Ullmn. Introduction to Automt Theory, Lnguges, nd Computtion, 2001, str. 73: 0,1,...,9 0,1,...,9 In the picture is n ε-nfa tht ccepts deciml numers. Of prticulr interest is the trnsition ε, +, from q 0 to q 1 of ny of ε, +, or. Thus, stte q 1. 0,1,...,9 ε q 0 q 1 q 2 q 3 q 5 represents the sitution in which we hve seen the sign if there is one, nd perhps some digits, ut 0,1,...,9. q 4 not the deciml point. Stte q 2 represents the sitution where we hve just seen the deciml point, nd my or my not hve seen prior digits. In q 4 we hve definitely seen t lest one digit, ut not the deciml point. utomt A utomt B UkÁZKA,,, Ukázk 9.1. Nprvo jsou nedeterministické utomty A B nd Σ = {, }. Nejdříve vytvořte q 1 q 2 r 0 r 1 reverzi utomtu B, tj. B R, pk C = A B R. Nkonec odstrňte ε-přechody z C získejte C ε. Nkonec ještě užijte podmnožinovou konstrukci převed te utomt C ε n deterministický D = (C ε ) d, přičemž znázorníte v digrmu jen jeho dosžitelné stvy. Řešení. (řešil Ann STEPURA) utomt B R, r 0 r 1 utomt C = A B R,,, ε q 1 q 2 r 1 r 0 utomt C ε,,,, s 1 s 2 s 3 s 4, utomt D = (C ε ) d, p 1000 p 0110 p 1111 p 0111 ÚLOHY K ŘEŠENÍ Úloh 9.1. Užijte utomty A 1 A 2 nd Σ = {, } k vytvoření nového utomtu B ten převed te n utomt B ε. utomt A 1 q 0 ε q 1 utomt A 2, r 0 r 1 ε r 2 () B = A R 1, () B = A 2, () B = AR 2, (d) B = A 1 A R 2. Prolem 9.2. V Aplikci 9.1 odstrňte z utomtu ε-přechody získejte tk nederministický konečný utomt ez ε-přechodů. 20

TÉMA 10 - Mooreův Melyho stroj U těchto modifikcí (utomty s výstupem) utomt v krocích čte vstupní slovo, mění své stvy píše výstupní slovo. Exmple 10.1. Mooreův stroj M je znázorněn stvovým digrmem vprvo. Jeho součásti jsou: Q = {q 0, q 1, q 2 }... množin stvů, q 0 je počáteční stv, Σ = {, }... vstupní eced, Γ = {x, y, z}... výstupní eced, δ : Q Σ Q... přechodová funkce (t. vprvo): Množin přijímcích stvů utomtu není potřená, neot výsledkem výpočtu je nové slovo. Nově všk je u kždého stvu vyznčen (z lomítkem) znk výstupní ecedy odpovídjící tomuto stvu (ten se npíše, kdykoliv je tento stv nuzen), tj. q 0 /x, q 1 /z, q 2 /x (znčkovcí funkce µ : Q Γ). Mooreův stroj M q 0 /x q 1 /z, q 2 /x vyst. symol q 0 q 0 q 1 x q 1 q 2 q 1 z q 2 q 1 q 1 x Příkld výpočtu. Výpočet Mooreov stroje M n slově w = proěhne v krocích: N počátku je M nszen do stvu q 0 okmžitě npíše znk x. Nyní přečte první znk zlev (tj. ) n zdném slově. Přechodová funkce určí nový stv, tj. δ(q 0, ) = q 0 okmžitě se zpíše dlší znk, tj. x. Psné slovo je v tomto okmžiku xx čtené slovo se zkrátí n. V dlším kroku se čte dlší znk (tj. ) td. Konfigurce utomtu jsou tedy trojice tvru (stv, čtenéslovo, psnéslovo) výpočet ude: (q 0,, x) (q 0,, xx) (q 1,, xxz) (q 2,, xxzx) (q 1, ε, xxzxz), neoli (q 0,, x) (q 1, ε, xxzxz). Výsledkem výpočtu utomtu M n slově je slovo xxzxz. P59kld 10.2. Melyho stroj N je znázorněn stvovým digrmem vprvo. Jeho součásti jsou: Q = {q 0, q 1, q 2 }... množin stvů, q 0 je počáteční stv, Σ = {, }... vstupní eced, Γ = {x, y, z}... výstupní eced, δ : Q Σ Q Γ... modifikovná přechodová funkce Melyho stroj N /x /z /y /y q 0 q 1 q 2 /y /z má tu vlstnost, že u kždé přechodové šipky je vyznčen (z lomítkem) znk výstupní ecedy odpovídjící přechodu přes ní (ten se npíše, když se tento přechod uskuteční). Tedy δ(q 0, ) = (q 0, x), δ(q 0, ) = (q 1, z), δ(q 1, ) = (q 2, y), δ(q 1, ) = (q 1, y), δ(q 2, ) = (q 1, y), δ(q 2, ) = (q 1, z). Vprvo je tulk této modifikovné přechodové funkce: q 0 q 0 /x q 1 /z q 1 q 2 /y q 1 /y q 2 q 1 /y q 1 /z Příkld výpočtu. Výpočet Melyho stroje N n slově w = v krocích Konfigurce utomtu jsou trojice tvru (stv, čtenéslovo, psnéslovo) výpočet je: (q 0,, ε) (q 0,, x) (q 1,, xz) (q 2,, xzy) (q 1, ε, xzyz), neoli (q 0,, ε) (q 1, ε, xzyz). Výsledkem výpočtu utomtu N n slově je slovo xzyz. 21

UKÁZKA Ukázk 10.1. N orázku jsou dv utomty M 1 M 2, o mjí Σ = {0, 1} Γ = {X, Y }. utomt M 1 utomt M 2 0 0 1/Y 0/X 0/Y 1 q 2 /X q 1 /X q 0 /Y q 1/Y 1/X 0 q 1 q 2 1 1 0 1 0 0/Y q 3 /Y (i) Rozhodněte, který z nich je Mooreův který Melyho vysvětlete proč. (ii) Pro kždý z nich sestvte tulku přechodů. (iii) Pro kždý z nich proved te výpočet n slově 010111. Řešení. (řešil Frntišek DRDÁK) d (i) M 1 je Mooreův stroj, neot znčkovcí funkce závisí pouze n stvech. d (ii) M 1 : 0 1 vyst. symol q 0 q 0 q 2 Y q 1 q 3 q 0 X q 2 q 2 q 1 X q 3 q 2 q 0 Y, M 2 : 0 1 q 0 q 2 /Y q 1 /Y q 1 q 2 /Y q 1 /Y q 2 q 2 /X q 1 /X. d (iii) V M 1 : (q 0, 010111, Y ) (q 0, 10111, Y Y ) (q 1, 0111, Y Y X) (q 2, 111, Y Y XX) (q 2, 11, Y Y XXX) (q 1, 1, Y Y XXXY ) (q 1, ε, Y Y XXXY X), v M 2 : (q 0, 010111, ε) (q 2, 10111, Y ) (q 1, 0111, Y X) (q 2, 111, Y XY ) (q 1, 11, Y XY X) (q 1, 1, Y XY XY ) (q 1, ε, Y XY XY Y ). ÚLOHY K ŘEŠENÍ Úloh 10.1. Nprvo je tulk přechodů Melyho stroje. Sestrojte přechodový digrm pk proved te výpočet n slově. q 0 q 2 /C q 1 /D q 1 q 0 /D q 1 /D q 2 q 3 /C q 3 /D q 3 q 2 /D q 0 /C. Úloh 10.2. Nprvo je tulk přechodů Mooreov stroje. Sestrojte přechodový digrm pk proved te výpočet n slově. vyst. symol q 0 q 1 q 2 D q 1 q 2 q 0 C q 2 q 0 q 1 E, Úloh 10.3. Kždý Mooreův stroj se dá převést n Melyho stroj. Převed te M 1 z n Melyho stroj. Úloh 10.4. Kždý Melyho stroj se dá převést n Mooreův stroj. Převed te M 2 z n Mooreův stroj. Úlohy 10.1. Úlohy 10.1. 22

TÉMA 11 - Regulární výrzy utomty Regulární výrz (nglicky regulr expression, zkrtk RE) nd ecedou Σ je vzoreček, kterým lze vypočítávt některá slov z Σ. Je-li R regulární výrz nd ecedou Σ, pk symolem L(R) oznčíme jzyk nd ecedou Σ generovný výrzem R. Kleeneho vět: jzyky generovné regulárními výrzy nd ecedou Σ jsou právě regulární jzyky nd ecedou Σ, tj. jzyky přijímné konečnými deterministickými utomty nd ecedou Σ. Níže podáváme korektní mtemtickou definici regulárního výrzu jzyk generovného regulárním výrzem: Induktivní definice regulárního výrzu nd ecedou Σ: 1. prázdný výrz zápis ε jsou regulární výrzy nd Σ, 2. kždé písmeno z ecedy Σ je regulárním výrzem nd Σ, 3. jsou-li R 1, R 2, R regulární výrzy nd Σ, pk následující jsou regulární výrzy nd Σ: (R 1 + R 2 ) neo zjednodušeně R 1 + R 2, (R 1 R 2 ) neo zjednodušeně R 1 R 2, (R) neo zjednodušeně R. Poznámk. Množství závorek lze zredukovt, pokud respektujeme hierrchii tří uvedených operátorů +,,, tj. přednost má, pk je nkonec +. Tedy místo ( + (() )) stčí npst +. Nopk výrz ( + ) je něco jiného než výrz +. Induktivní definice jzyk L(R) generovného regulárním výrzem R nd ecedou Σ: 1. pro prázdný výrz je L( ) = pro výrz ε je L(ε) = {ε}, 2. pro kždé písmeno z ecedy Σ je L() = {}, 3. jestliže regulární výrzy R 1, R 2, R nd Σ generují jzyky L(R 1 ), L(R 2 ), L(R), pk: L(R 1 + R 2 ) = L(R 1 ) L(R 2 ), L(R 1 R 2 ) = L(R 1 R 2 ) = L(R 1 )L(R 2 ), L(R ) = [L(R)] = [L(R)] 0 [L(R)] 1 [L(R)] 2 [L(R)] 3... = = {ε} L(R) [L(R)] 2 [L(R)] 3.... Příkld 11.1. Mějme Σ = {, }. Je-li R = ε + + + ( + ), potom L(R) oshuje ε,, dále všechn slov nd Σ s předponou, tedy L(R) = {ε,,,,,,,,...} = {ε,, } {w; w Σ }. Příkld 11.2. Mějme Σ = {, }. Je-li R =, potom L(R) oshuje všechn slov nd Σ tvru i j, tedy L(R) = {,,,,...} = { i j ; i = 0, 1, 2,..., j = 1, 2, 3,...}. Regulární výrzy předstvují dlší, třetí způso popisu jzyků. Název vystihuje, že tento způso je použitelný pouze pro regulární jzyky, tj. jzyky přijímné utomty (Vět 11.1. Vět 11.2. níže). 23

Vět 11.1. Pro ecedu Σ existuje ke kždému regulárnímu výrzu R utomt B tk, že L(B) = L(R). Důkz. Přesný důkz je nutno provést indukcí vycházet přitom z definice regulárního výrzu. Stčí, když zkonstruovný utomt B je nedeterministický s ε-přechody, neot máme metody, jk přejít k deterministické verzi. Při prvním kroku je tře ukázt utomty B 1. B 2, B 3 pro elementární regulární výrzy tvru L 1 =, L 2 = {ε}, L 3 = {}. Jsou to zřejmě B 1 B 2 B 3 Pro indukční krok pk potřeujeme kostrukce utomtů pro sjednocení, zřetězení iterci regulárních výrzů. Ty jsou nznčeny níže: ε Sjednocení ε ε ε Zřetězení ε Iterce ε ε ε ε Příkld 11.3. Nd zdnou ecedou Σ = {, } zkonstruujte utomt B přijímjící jzyk K = {w Σ ; w má příponu } {}. Řešení. Nejdříve sestvíme příslušný regulární výrz: R = ( + ) +. Pk postupně konstruujeme dílčí utomt pro výrz + pk jeho iterci, dále provedeme jeho zřetězení s utomtem pro výrz výrz, nkonec ještě sjednotíme s utomtem pro zřetězení. Výsledek je n orázku (vnitřní mlé oválky jsou ponechné pro lepší orientci): utomt B ε ε ε ε ε ε ε ε ε ε 7 ε ε ε ε ε 24

Vět 11.2. Pro ecedu Σ existuje ke kždému utomtu A regulární výrz R tk, že L(R) = L(A). Důkz. Pro potřey důkzu definujeme mtici regulárních přechodů R = (R ij ) n i,j=1 řádu n, jejíž prvky jsou regulární výrzy R ij tkové, že M ij = L(R ij ). Tto mtice se seství postupně (podoně jko u známého Floydov lgoritmu) jko výsledek posloupnosti mtic 0 R, 1 R,..., n R = R. Nyní vysvětlíme podsttu mtic k R, kde k = 0, 1,..., n: nejdříve symolem k M i,j oznčíme množinu slov w Σ tkových, že v utomtu A existuje dílčí výpočet tvru (q i, w) (q j, ε), přičemž ( pro) kždý stv q l v tomto výpočtu kromě prvního posledního pltí l k. Nyní ude n k R = k R ij mtice řádu n, jejíž prvky jsou regulární výrzy k R ij tkové, že k M ij = L( k R ij ). i,j=1 Přitom výrzy 0 R ij se konstruují přímo z šipek v A (přičemž při neexistenci šipky z q i do q j položíme 0 R ij = ). Dále pk se postupuje v indukčních krocích: ( ) k+1 R ij = k R ij + k R i,k+1 k R k+1,k+1 kr k+1,j ( k R k+1,k+1 ) Přitom druhá část tohoto výrzu je: q i R i,k+1 k R k+1,j Podronosti osvětlí konkrétní příkld níže. q k+1 Poznámk. Užijeme oznčení R 1 R 2, jestliže tyto dv regulární výrzy určují stejný jzyk. Npř. ude: xx x x, (ε + x) x, (ε + x)x x (ε + x) x, ε + x + x x td. q j Příkld 11.4. Pro utomt q 1 ε, q 2 q 3 přechodů R pk regulární výrz pro jeho jzyk. sestvte mtici regulárních Řešení. Mtice k R vytváříme postupně s využitím mtic k P OM. 0 R= ε+ ε+ ε ε+ q 1 q 2 q 3 ε+ ε+ q 1 ε+ q 2 q 1 1 HLP = q 3 1 R = ε ε+ q 1 q 2 q 3 ε ε ε q 2 q 1 q 2 q 3 2 HLP = ε 2 R = ε ε++ q 1 q 2 q 3 q (+) 1 q 2 q 3 3 HLP = ε++ ε++ q 3 (+) (+) (+) (+) (+) (+) 3 R = + (+) (+) ε+(+) (+) (+) (+) Tedy R = 3 R 11 + 3 R 13 = + (+). 25

UKÁZKY Ukázk 11.1. R 1 = R 2 = ( + ) + ( + ) jsou dv regulární výrzy nd Σ = {, }. Ze seznmu jzyků L 1 ž L 6 níže, vyerte jzyky L(R 1 ) L(R 2 ). Svou odpověd zdůvodněte. Řešení. (řešil Jiří HOMAN) L(R 1 ) = L 2, protože výrz popisuje jkékoliv slovo mjící právě dvě kopie znku liovolný počet kopií znku před, mezi z nimi. L(R 1 ) = L 6, protože tento výrz popisuje dv druhy slov, ud w neo w, kde w Σ. ÚLOHY K ŘEŠENÍ Úloh 11.1. Vyerte jzyk L(R) z níže zdného seznmu jzyků L 1 ž L 6. Zdůvodněte svou odpověd. () R = (+) (), () R = ( + ), (c) R = ( + ), (d) R = ( + ). Úloh 11.2. Převed te regulární výrz R n nederministický utomt s ε-přechody. () R = +, () R = + +, (c) R = ( + ), (d) R = ε + +. Úloh 11.3. Převed te nederministický utomt s ε-přechody B n regulární výrz. () utomt B q 1 ε q 2 () utomt B q 1 q 2 q 3 ε utomt B utomt B (c) q 1 q 2 q 3 ε (d),ε q 1 q 2 q 3 q 4 ε Tulk vyrných jzyků nd ecedou Σ = {, } Jzyk L 1... {w; w Σ }, Jzyk L 2... {w Σ ; # (w) = 2}, Jzyk L 3... {w i ; w Σ i=0, 2, 4, 6,...}, Jzyk L 4... {w Σ ; # (w) = 0, 2, 4, 6,...}, Jzyk L 5... { i x; x {, } i = 0, 1, 2, 3,...}, Jzyk L 6... {xwx; x {, } w Σ }. 26

TÉMA 12 - Grmtik konečného deterministického utomtu Grmtiky 6 jsou čtvrtým způsoem popisu jzyků. Jejich předností je, že mohou definovt i jzyky, které nejsou regulární. Nejdříve všk zčneme u regulárních jzyků. Příkld 12.1. Automt A nd ecedou Σ = {, } je znázorněn stvovým digrmem vprvo. Jeho součásti jsou: Q = {q 0, q 1, q 2 }... množin stvů, q 0 je počáteční stv, F = {q 1 } je množin přijímcích stvů utomtu A, δ : Q Σ Q... přechodová funkce (viz stvový digrm): utomt A q 0 q 1 q 2, Nyní v utomtu A zvedeme místo znků pro stvy q 0, q 1, q 2 znky pro proměnné S, X, Y popíšeme grmtiku G: Σ = {, }... eced terminálů: Π = {S, X, Y } eced neterminálů - proměnných, S... vyrný neterminál zvný kořen grmtiky. P... množin přepisovcích prvidel grmtiky G: (1) S S X (2) X X Y ε (3) Y X X uprvený utomt A S X Y, Proces vytvoření slov w pomocí produkčních prvidel se nzývá odvození slov w. V záznmu procesu odvození použijeme symol k zápisu jednoho kroku postupu (k němu lze umístit i číslo produkčního prvidl, tj. S (i) ); řetěz tkových kroků jko celek zpíšeme pomocí iterční konvence, tj. (říkáme postupně přejde n ). Proces odvození zčne vždy n kořeni grmtiky S oznčení S w znmená, že výsledkem odvození je slovo w. Ukázk. Odvození slov pomocí prvidel grmtiky G (prcuje se se slovy nd Σ Π): N počátku máme kořen S s využitím prvidl (1) ho převedeme n slovo S. Dále pk ve slově S nhrdíme neterminál S slovem X (prvidlo (1)) dostneme X. Dále, užitím prvidl (2), ho převedeme n slovo X, td.... Před posledním krokem již máme X zývá nhrdit proměnnou X prázdným slovem ε (prvidlo (2)) - pk již dostneme slovo. Při přepisování podle seznmu prvidel P ude symol znment přepsání slov n nové slovo to v jednom kroku (lze k němu uvést i číslo užitého prvidl); pro přípd přechodu konfigurce ve více krocích užijeme pk symolu pro iterci, který lze vyjádřit frázi se přepíše postupně n ): S (1) S (1) X (2) X (2) X (2) Y (3) X (2) neoli S. Grmtik G generuje jzyk L(G); ukázli jsme, že L(G). 6 Pro inspirci připomeňme grmtické prvidlo o stndrdní struktuře nglické oznmovcí věty SVOMPT, tj. požduje se dodržení pořdí suject -ver - oject - mnner - plce - time, čili kdo - dělá - co - jk - kde - kdy 27