Teorie jazyků a automatů I



Podobné dokumenty
Úvod do Teoretické Informatiky ( UTI)

Automaty a gramatiky. Roman Barták, KTIML. Důkaz věty o isomorfismu reduktů. Věta o isomorfismu reduktů. Pro připomenutí

3. ROVNICE A NEROVNICE Lineární rovnice Kvadratické rovnice Rovnice s absolutní hodnotou Iracionální rovnice 90

Je regulární? Pokud ne, na regulární ji upravte. V původní a nové gramatice odvod te řetěz 1111.

Automaty a gramatiky(bi-aag)

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 VE VYHLEDÁVÁNI cvičeni

Automaty a gramatiky

Přirozená exponenciální funkce, přirozený logaritmus

Prostorové nároky Zatížení Velikost zatížení Směr zatížení Nesouosost Přesnost Otáčky Tichý chod...

písemná a ústní část porozumění látce + schopnost formalizace

13. Soustava lineárních rovnic a matice

Automaty a gramatiky

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

Automaty a gramatiky. Úvod do formáln. lních gramatik. Roman Barták, KTIML. Příklady gramatik

Teorie jazyků a automatů

Teorie jazyků a automatů

2002 Katedra obecné elektrotechniky FEI VŠB-TU Ostrava Ing.Stanislav Kocman

Půjdu do kina Bude pršet Zajímavý film. Jedině poslední řádek tabulky vyhovuje splnění podmínky úvodního tvrzení.

6. Zobrazení δ: (a) δ(q 0, x) obsahuje x i, x i Z. (b) δ(x i, y) obsahuje y j, x i y j P 7. Množina F je množinou koncových stavů.

Minimalizace automatů. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 28. března / 31

2.3. DETERMINANTY MATIC

H - Řízení technologického procesu logickými obvody

ZÁKLADNÍ POZNATKY. p, kde ČÍSELNÉ MNOŽINY (OBORY) N... množina všech přirozených čísel: 1, 2, 3,, n,

Goniometrické funkce obecného úhlu

Petriho sítě PES 2007/2008. Doc. Ing. Tomáš Vojnar, Ph.D.

ANALYTICKÁ GEOMETRIE V PROSTORU

Konzultace z předmětu MATEMATIKA pro první ročník dálkového studia

c 2 b 2 a Důkazy Pythagorovy věty Předpoklady:

Převody Regulárních Výrazů. Minimalizace Konečných. Regulární jazyky 2 p.1/35

Konstrukce na základě výpočtu I

Automaty a gramatiky. Organizační záležitosti. Přednáška: na webu ( Proč chodit na přednášku?

Větu o spojitosti a jejich užití

Integrály definované za těchto předpokladů nazýváme vlastní integrály.

2.7.7 Obsah rovnoběžníku

7.5.8 Středová rovnice elipsy

( 5 ) 6 ( ) 6 ( ) Přijímací řízení ak. r. 2010/11 Kompletní znění testových otázek - matematický přehled

UC485 UC kv ESD IEC Protected / S

MULTIDIMENSIONÁLNÍ JAZYKY A JEJICH AUTOMATY MULTI-DIMENSIONAL LANGUAGES AND THEIR AUTOMATA

2.5.4 Věta. Každý jazyk reprezentovaný regulárním výrazem je regulárním jazykem.

Elektromagnetick indukce

7 Analytická geometrie

Úvod 1. 3 Regulární jazyky Konečné jazyky Pumping Lemma pro regulární jazyky a nekonečné jazyky Sjednocení...

Pájený výměník tepla, XB

Hyperbola, jejíž střed S je totožný s počátkem soustavy souřadnic a jejíž hlavní osa je totožná

56. ročník Matematické olympiády. b 1,2 = 27 ± c 2 25

Syntaxí řízený překlad

Jsou to rovnice, které obsahují neznámou nebo výraz s neznámou jako argument logaritmické funkce.

2.8.5 Lineární nerovnice s parametrem

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

4.2.7 Zavedení funkcí sinus a cosinus pro orientovaný úhel I

matematika vás má it naupravidl

D 12 Knauf akustické podhledy

Komplexní čísla tedy násobíme jako dvojčleny s tím, že použijeme vztah i 2 = 1. = (a 1 + ia 2 )(b 1 ib 2 ) b b2 2.

Studium termoelektronové emise:

10. Suffixové stromy

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace

Zvyšování kvality výuky technických oborů

( a, { } Intervaly. Předpoklady: , , , Problém zapíšeme snadno i výčtem: { 2;3; 4;5}?

Teorie informace a kódování (KMI/TIK)

LOGOMANUÁL. informace a doporučení k užití logotypu Singing Rock. Verze 1.5 Česky. Lukáš Matěja lukas.mateja@singingrock.

Mgr. Karel Pazourek. online prostředí, Operační program Praha Adaptabilita, registrační číslo CZ.2.17/3.1.00/31165.

D 12 Knauf Cleaneo akustické podhledy

KVADRATICKÁ FUNKCE (vlastnosti, grafy)

MATA Př 2. Složené výroky: Jsou dány výroky: a: Číslo 5 je prvočíslo. b: Číslo 5 je sudé. c: Číslo 5 je liché. d: Číslo 5 je záporné.

ELEKTŘINA A MAGNETIZMUS Řešené úlohy a postupy: Kapacita a uložená energie

PRAVIDELNÉ MNOHOSTĚNY

Podobnosti trojúhelníků, goniometrické funkce

Svazy. Def Svaz je algebra S ( M ;, ) = se dvěma binárními operacemi taková, že pro libovolné prvky c M platí následující podmínky axiomy svazu:

UC485. PŘEVODNÍK LINKY RS232 na RS485 nebo RS422 S GALVANICKÝM ODDĚLENÍM. Rozlož ení důležitých prvků modulu UC485.

Přehled učiva matematiky 7. ročník ZŠ

{ } ( ) ( ) Vztahy mezi kořeny a koeficienty kvadratické rovnice. Předpoklady: 2301, 2508, 2507

4. přednáška 22. října Úplné metrické prostory. Metrický prostor (M, d) je úplný, když každá cauchyovská posloupnost bodů v M konverguje.

m n. Matice typu m n má

Obr. 1: Optická lavice s příslušenstvím při měření přímou metodou. 2. Určení ohniskové vzdálenosti spojky Besselovou metodou

Složitost a NP-úplnost

3 Algebraické výrazy. 3.1 Mnohočleny Mnohočleny jsou zvláštním případem výrazů. Mnohočlen (polynom) proměnné je výraz tvaru

2.cvičení. 1. Polopřímka: bod O dělí přímku na dvě navzájem opačné polopřímky.

5. Konstrukce trojúhelníků Konstrukce trojúhelníků podle vět sss, sus, usu, Ssu (ssu):

Dílčí kvalifikace Strážný Soubor otázek pro písemnou část zkoušky

13 Analytická geometrie v prostoru

Napájecí kabel. Podkladový list/ podkladový list pro plastické karty

Zavedení a vlastnosti reálných čísel PŘIROZENÁ, CELÁ A RACIONÁLNÍ ČÍSLA

celek jsme rozdělili na 8 dílů, ale žádný jsme si nevzali celek na nulka dílů rozdělit nelze!!!

Tangens a kotangens

( ) ( ) Sinová věta II. β je úhel z intervalu ( 0;π ). Jak je vidět z jednotkové kružnice, úhly, pro které platí. Předpoklady:

Přípoje ocelových konstrukcí teoretické základy

( t) ( t) ( t) Nerovnice pro polorovinu. Předpoklady: 7306

Konstrukce na základě výpočtu II

1. ÚPRAVY ALGEBRAICKÝCH VÝRAZŮ V REÁLNÉM OBORU 1.1. ZLOMKY A ABSOLUTNÍ HODNOTA

Deterministický konečný automat

Kam jezdí formani AGENTURA OCHRANY PŘÍRODY A KRAJINY

TROJÚHELNÍK. JAN MALÝ UK v Praze a UJEP v Ústí n. L. sin α = b a.

11. Projektivní prostor

3.2.1 Shodnost trojúhelníků I

Kvantový paralelismus a kvantové počítače

ZÁKLADNÍ ŠKOLA PŘI DĚTSKÉ LÉČEBNĚ Ostrov u Macochy, Školní 363 INOVACE VÝUKY CZ.1.07/1.4.00/

Konstrukce na základě výpočtu I

Výfučtení: Geometrické útvary a zobrazení

SBÍRKA PŘÍKLADŮ Z MATEMATIKY

Transkript:

Šárk Vvrečková Teorie jzyků utomtů I Sírk úloh pro cvičení Ústv informtiky Filozoficko-přírodovědecká fkult v Opvě Slezská univerzit v Opvě Opv, poslední ktulizce 5. květn 205

Anotce: Tto skript jsou určen pro studenty předmětů Teorie jzyků utomtů I Zákldy teoretické informtiky I. Jedná se o sírku příkldů, která zhrnuje látku proírnou n cvičení dného předmětu. Zde uvedené definice jsou pouze orientční, jejich úkolem je připomenout znčení postupy používné v následných příkldech. Teorie jzyků utomtů I Sírk úloh pro cvičení RNDr. Šárk Vvrečková, Ph.D. Dostupné n: http://vvreckov.zm.slu.cz/forml.html Ústv informtiky Filozoficko-přírodovědecká fkult v Opvě Slezská univerzit v Opvě Bezručovo nám. 3, Opv Sázeno v systému L A TEX Tto inovce předmětu Teorie jzyků utomtů I, cvičení je spolufinncován Evropským sociálním fondem Státním rozpočtem ČR, projekt č. Z..07/2.2.00/28.004, Interdisciplinární vzdělávání v IT s jzykovou kompetencí.

Osh Jzyky regulární výrzy. Řetězec, množin, jzyk....................................2 Regulární výrzy....................................... 4.3 Určení jzyk......................................... 5.4 Operce nd jzyky...................................... 6.4. Regulární operce.................................. 7.4.2 Dlší potřené operce................................ 9.4.3 Prefixy postfixy slov................................ 2.5 K vlstnostem jzyků..................................... 4 2 Konečné utomty 7 2. Vytváříme konečný utomt................................. 7 2.2 Nedeterministický konečný utomt............................ 9 2.3 Totální utomt........................................ 2 2.4 Konečné jzyky........................................ 23 2.5 Odstrnění nepotřených stvů (redukce)......................... 24 2.6 Uzávěrové vlstnosti regulární operce......................... 26 2.6. Sjednocení....................................... 27 2.6.2 Zřetězení........................................ 29 2.6.3 Iterce (Kleeneho uzávěr).............................. 32 2.7 Uzávěrové vlstnosti dlší operce............................ 34 2.7. Pozitivní iterce.................................... 34 2.7.2 Zrcdlový orz (reverze).............................. 36 2.7.3 Průnik......................................... 39 2.7.4 Homomorfismus................................... 42 2.8 Sestrojení konečného utomtu podle regulárního výrzu................ 44 3 Regulární grmtiky 46 3. Vytváříme regulární grmtiku............................... 46 3.2 Konečný utomt podle regulární grmtiky....................... 50 3.3 Regulární grmtik podle konečného utomtu..................... 52 iii

iv 4 Bezkontextové grmtiky 56 4. Vytváříme ezkontextovou grmtiku........................... 56 4.2 Derivční strom........................................ 57 4.3 Úprvy ezkontextových grmtik............................. 59 4.3. Převod n nezkrcující ezkontextovou grmtiku............... 59 4.3.2 Redukce grmtiky.................................. 63 4.3.3 Odstrnění jednoduchých prvidel......................... 64 4.3.4 Grmtik ez cyklu vlstní grmtik..................... 66 4.3.5 Levá prvá rekurze................................. 66 5 Zásoníkový utomt 73 5. o je to zásoníkový utomt................................ 73 5.. Definice........................................ 73 5..2 Typy zásoníkových utomtů........................... 74 5.2 Vytváříme zásoníkový utomt.............................. 77 5.3 Nedeterminismus....................................... 79 5.4 Zásoníkový utomt podle ezkontextové grmtiky................. 8

Kpitol Jzyky regulární výrzy. Řetězec, množin, jzyk U konečných utomtů je nejmenší (tomickou, dále nedělitelnou) jednotkou, se kterou prcujeme, signál (znk). nožinu signálů, se kterými dokáže konkrétní utomt prcovt, nzýváme eced znčíme symolem Σ (velké řecké písmeno sigm). Aeced je vždy konečná množin. Automty rozpoznávjí (tj. přijímjí n svém vstupu) posloupnosti signálů (přípdně znků; tyto posloupnosti nzýváme slov) utomty n vstupu postupně čtou signály zároveň mění svůj vnitřní stv. Jeden utomt ovykle dokáže rozpoznávt více tkových slov. nožin všech slov, která dokáže utomt rozpoznt, je jzyk rozpoznávný utomtem. Pokud je utomt oznčen A, pk jzyk jím rozpoznávný znčíme L(A). Oecně (nejen ve vzthu k utomtům) je jzyk množinou slov nd dnou ecedou. Protože jzyky mohou ýt i hodně rozsáhlé množiny, je tře si zápis jzyk tké jeho slov vhodně zkrátit. ůžeme použít toto znčení: ε tkto znčíme prázdné slovo, tedy řetězec o délce nul (řecké písmeno epsilon) 2, 3, 4,... počet opkování ojektu, který je tkto umocněn, npříkld 3 znmená slovo (symol zřetězení nemusíme psát), 0 předstvuje ε (počet signálů je nul) operátor (Kleeneho operátor, iterce) znmená, že ojekt, z kterým následuje (signál, prvky množiny, pod.) může ýt ve slově opkován, to jkýkoliv počet krát (může ýt i nul opkování), z hvězdičku můžeme dosdit jkoukoliv nezápornou celočíselnou mocninu, tedy předstvuje množinu slov {ε,,,,...} {,, c} = {ε,,, c,,, c,,, c, c, c, cc,,,...} (operce hvězdičk se provádí přes všechny prvky množiny, kterýkoliv z nich může ýt použit n kterémkoliv místě) (c) 4 = cccc (prvky v posloupnosti nrozdíl od prvků množiny nejsou odděleny čárkou, mezi nimi je vzth zřetězení () = {ε,, () 2, () 3,...} = {ε,,,,...} {, dfg, } = {ε,, dfg,,, dfg,, dfg, dfgdfg, dfg,,...} P

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 2 + je pozitivní iterce, uvedený ojekt může ýt v jkémkoliv počtu výskytů podoně jko u operce, le nejméně jednou, tkže + = {, 2, 3,...} operátor pozitivní iterce se z důvodů sndné změnitelnosti s jiným operátorem čsto přepisuje do tvru neo operátor + může ýt použit tké jko inární: + c npříkld určuje množinu dvou slov, c, tedy množinu {, c} tento operátor čsto upltňujeme n dv výrzy, npříkld () +() předstvuje množinu slov, ve kterých se střídjí znky s tím, že slovo může zčít kterýmkoliv z těchto znků, délk slov je vždy sudé číslo ( + ) = {, } o zápisy předstvují množinu všech slov nd ecedou {, } Protože jzyk je vlstně množin slov, můžeme použít klsický mtemtický množinový zápis: { i j ; i, j 0} je totéž jko. Příkld. Zápis výrzů je čsto možné minimlizovt (zjednodušit). Npříkld: 2 ε = 2 (protože ε je neutrálním prvkem vzhledem k operci zřetězení, podoně jko číslo 0 u sčítání čísel) + ε = (protože výrz už v soě zhrnuje slovo ε) ( + ε) = (zdůvodněte) ( + ) = (zdůvodněte) () + + ε = () (zdůvodněte) () + ( + ) = ( + ) ( 2 ) 3 = 6 Příkld.2 Jzyk může ýt specifikován tké pomocí mtemtických opercí. Npříkld: { 2n ; n 0 } je totéž jko (), tedy množin {ε, 2, 4, 6,...} poslední dvě množiny, získáme množinu {, } { 2n ; n } je totéž jko (), tedy množin { 2, 4, 6,...} { 2n ; n 0 } je něco jiného (!), jedná se o množinu { 20, 2, 22, 23,...} = {, 2, 4, 8,...} {w {, } ; w > 5} je množin všech slov nd ecedou {, }, jejichž délk je větší než 5 {w {, } ; w 5} je množin všech slov nd ecedou {, }, jejichž délk je menší neo rovn 5, tedy pokud sjednotíme tuto předchozí množinu, dostneme: {w {, } ; w > 5} {w {, } ; w 5} = {, } {w {, } ; w = w } je množin všech slov nd ecedou {, } tkových, že počet znků je stejný jko počet znků, tj. {ε,,,,,,,,,...} { n n ; n 0} oproti předchozímu přidává podmínku n pořdí (nejdřív znky, ž pk ), tedy: {ε,,,...}, do množiny neptří npříkld slovo ni slovo

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 3 { i j ; i, j 0 } pro změnu stnovuje pouze podmínku n pořdí: {ε,,,,,,,,...}, do této množiny neptří npříkld slovo { i j ; i 2, j } je definováno podoně jko předchozí, le máme odlišnou spodní hrnici pro hodnotu proměnných i j, nejkrtší slovo je Příkld.3 Npíšeme všechn slov následujících jzyků krtší než 5. Postup: nejdřív místo všech proměnných indexů + dosdíme nejnižší možnou hodnotu, tj. npříkld ve výrzu vytvoříme slovo 0 0 = ε, pk postupně doszujeme vyšší hodnoty v různých možných komincích. + = {,,,,,...} 2 {0, } = { 2, 20, 2, 200, 20, 20, 2, 2000, 200, 200, 20, 200, 20, 20, 2,...} { i j ; i, j } {() i ; i 0} = {,,,...} {ε,,,...} = = {,,, ε,,,...} Zde si všimněme odlišných spodních mezí pro proměnné i, j v oou sjednocovných jzycích pokud i, pk i znmená + neoli. (0) 0 = {0, 00,...} (0) (0) = {ε, 0, 0, 00, 00, 00,...} { i c j ; 0 i < j} = {c, c,...} (všimněte si, že kdyy ve slově ylo jedno, musel y následovt nejméně dvě, což y le znmenlo, že délk slov y neyl krtší než 5) {w {, } ; w < w } = {,,,,,,,,,,,...} (do jzyk všk neptří npříkld slovo, protože není splněn podmínk w < w ) {w {, } ; w = w + } = {,,,,...} (všimněte si, že vedlejším důsledkem podmínky je lichá délk slov jzyk) Úkoly Npište všechn slov následujících jzyků krtší než 5. (c) ( ) () c ( ) c {() i j ; i 0, j } 0 (0) { i j ; i, j 0, i j} {w {, } ; w = w + }

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 4 {w {, } ; w < w } { w i ; w {, }, i } {w {, } ; w < 3}.2 Regulární výrzy S regulárními výrzy jsme se již setkli, ted se n ně změříme formálněji. Oznčme pomocnou množinu Φ = {, ε, +,,, (, )}. nožin RV (Σ) všech regulárních výrzů nd ecedou Σ je nejmenší množin slov (řetězců) tková, že slov se skládjí ze symolů ecedy Σ Φ, Σ Φ jsou disjunktní, RV (Σ), ε RV (Σ), RV (Σ) pro kždé Σ, jestliže α, β RV (Σ), pk tky (α + β) RV (Σ), (α β) RV (Σ), (α) RV (Σ). Symol pro zřetězení se nemusí psát. Pro operce používné v regulárních výrzech pltí podoná prvidl jko pro operce v ritmetických výrzech. Npříkld operátory + jsou socitivní distriutivní, + tké komuttivní. Prvky ε plní v regulárních výrzech podonou roli jko v ritmetice nul jedničk. Těchto vlstností lze využít při úprvách složitějších regulárních výrzů. P Příkld.4 + = ε = ε = ε + c = c + ( + c) = + c + = ( + ) = + (c + d) = ( + c + d) ( ) = ( ) = {, } = ( + ) ( + ε) = ( + ε) = + ε = () = () = () + (c) = (ε + (c) ) = (c) + () = (() + () ) = () Úkoly Zjednodušte tyto regulární výrzy: + ( + ε) () + () + c(c) + ( + ε) + {, } () + () {, } + () 0(0) 0 + 0 (0) 0(0) 0 + 0 (0) {0, }

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 5.3 Určení jzyk Když máme sestvit předpis jzyk (tj. množiny řetězců) splňujícího určitou podmínku, musíme vždy zpst mximální množinu vyhovující dné podmínce. Jkýkoliv řetězec vyhovující zdné podmínce musí ptřit do tkového jzyk. Příkld.5 Sestvíme předpis jzyk L splňujícího následující podmínku: L oshuje všechn slov zčínjící řetězcem končící symolem, je nd ecedou {, }: L = ( + ) = {} {, } {} = { w ; w {, } } slov jzyk L oshují nejméně 2 symoly mximálně 0 symolů, nd ecedou {, }: L = {w {, } ; w 2, w 0} v první části slov jsou pouze symoly, v druhé části slov jsou pouze symoly : L = = { i j ; i, j 0} v kždém slově je stejný počet symolů, nd ecedou {, }: L = {w {, } ; w = w } ve slovech je symolů méně než symolů, nd ecedou {, }: L = {w {, } ; w < w } všechn slov mjí sudou délku, nd ecedou {, }: L = (( + ) 2 ) = {w {, } ; w = 2n, n N 0 } (N 0 povžujme z množinu všech přirozených čísel, včetně nuly) jzyk nd ecedou {}, počet symolů ve slově je druhou mocninou některého přirozeného čísl neo nuly: L = { n2 ; n 0} jzyk nd ecedou {, }, počet symolů ve slově je druhou mocninou některého přirozeného čísl neo nuly: L = {w {, } ; w = n 2, n 0} jzyk je nd ecedou {, }; slov zčínjí symolem oshují sudý počet symolů, neo zčínjí symolem oshují lichý počet symolů : L = { w ; w = 2n, n 0} { w ; w = 2n +, n 0}

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 6 slov mjí méně symolů než symolů, zároveň stejný počet symolů c jko symolů, jsou nd ecedou {,, c}: L = {w {,, c} ; w < w } {w {,, c} ; w c = w } = {w {,, c} ; w < w, w c = w } Úkoly Sestvte předpis jzyk, kde. všechn slov zčínjí písmenem počet symolů je větší než 5, 2. počet symolů je dvojnásokem počtu symolů, 3. délk slov je některou (přirozená čísl) mocninou čísl 3, jzyk je nd ecedou {, }, 4. počet symolů ve slovech je některou (přirozená čísl) mocninou čísl 3, jzyk je nd ecedou {, }, 5. počet symolů je větší neo roven počtu symolů ve slově, zároveň délk slov je nejméně 8, jzyk je nd ecedou {, }, 6. počet symolů je větší než počet symolů ve slově, neo délk slov je nejméně 8, jzyk je nd ecedou {, }, 7. jedná se o jzyk přirozených inárních čísel nd ecedou {0, }; symolem 0 může zčínt pouze jednociferné číslo (tj. jednoznkový řetězec 0 ), všechn osttní slov zčínjí symolem, jzyk neoshuje prázdné slovo, 8. jedná se o jzyk reálných inárních čísel s desetinnou tečkou nd ecedou {0,,.}; pro celou část slov (reálného čísl) pltí podmínk z předchozího odu, je nd ecedou {0, }, dále následuje desetinná tečk s reálnou částí, v reálné části z desetinnou tečkou (tké nd ecedou {0, } musí ýt lespoň jeden symol. R.4 Operce nd jzyky Protože jzyky jsou množiny řetězců (slov), lze n nich provádět množinové řetězcové operce. Jzyk reprezentujeme ud množinově neo výrzem (konkrétněji regulárním výrzem). Správně ychom měli používt znčení opercí odpovídjící reprezentci jzyk (tj. množinové operce, jko je npříkld sjednocení či průnik, provádět zásdně n množinových reprezentcích jzyků), le pokud y způso reprezentce yl příliš komplikovný, můžeme od tohoto předpisu upustit. Typicky operci průniku udeme používt i u reprezentce jzyk regulárním výrzem. V následujících definicích udeme vždy předpokládt, že jzyky jsou nd ecedou Σ. Nejdřív se udeme zývt regulárními opercemi sjednocení, zřetězení iterce, které mjí lízký vzth k regulárním výrzům.

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 7.4. Regulární operce Sjednocení: Slovo ptří do sjednocení dvou množin, jestliže je prvkem lespoň jedné z těchto P množin. Formální zápis: L L 2 = {w Σ ; w L neo w L 2 } (.) Jedná se o jednu z regulárních opercí, což znmená, že má svůj orz v reprezentci jzyk formou regulárního výrzu. Tm místo symolu používáme symol +. Příkld.6 Pokud L = {c, c, c} L 2 = {, c}, pk L L 2 = {c, c, c, } Pokud L = L 2 = c, pk L L 2 = + c = ( + c) Pokud L = L 2 = { 2n ; n 0 }, pk L L 2 = L (protože zde L 2 L ) L = L (prázdná množin zde plní roli neutrálního prvku) Zřetězení: Zřetězení dvou slov není tře definovt, zpisujeme je u v, kde u, v Σ. Zřetězením dvou jzyků je jzyk, jehož slov lze rozdělit n dvě části první ptří do prvního stnoveného jzyk, druhá část do druhého jzyk. P L L 2 = {u v ; u L, v L 2 } (.2) Zřetězení jzyků provedeme jednoduše tk, že po dvojicích zřetězujeme slov těchto jzyků (kždé slovo prvního jzyk postupně s kždým slovem druhého jzyk). Příkld.7 Pokud L = {c, c, c} L 2 = {, c}, pk L L 2 = {c, cc, c, cc, c, cc} Pokud L = {ε, } L 2 = {, c}, pk L L 2 = {ε, ε c,, c} = {, c,, c} Pokud L = {ε, } L 2 = {ε, c}, pk L L 2 = {ε ε, ε c, ε, c} = {ε, c,, c} Pokud L = L 2 =, pk L L 2 = Pokud L = L 2 = { 2n L L 2 = (proč?) ; n 0 }, pk

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 8 L {ε} = L (prázdné slovo zde plní úlohu neutrálního prvku) L = (podoně jko když násoíme nulou) Iterce: Iterce (Kleeneho uzávěr) je nám již známá operce hvězdičk. Definujme postupně: P L 0 = {ε} (neutrální prvek vzhledem k zřetězení) (.3) L = L (.4) L n = {w w 2... w n ; w i L, i n}, n (.5) L n+ = L L n, n 0 (.6) L = L 0 L L 2... (.7) = L n (.8) n=0 Příkld.8 L = {}, pk L = Pokud L = {c, c, c}, pk L = (c + c + c) Pokud L = { 2n ; n 0 }, pk L = (protože do L ptří i slovo, z něj lze poskládt všechn slov delší než ε) = {ε} (Je to správně? Proč no/ne? Nápověd: dosd te si do výše uvedeného vzorce pro iterci.) {ε} = {ε} Úkoly. Které z výše uvedených regulárních opercí jsou inární která z těchto inárních je komuttivní? Jsou socitivní? 2. Jsou dány tyto jzyky: L = {} L 2 = L 3 = () L 4 = { i i ; i 0} L 5 = {ε, }. Jk vypdjí následující jzyky?

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 9 L L 2 L L 5 L L 3 L L 4 L L 5 L L 2 L L 3 L 3 L 4 L, L 3 L 2 L 4 L 5 Jk víme z přednášek, regulární výrz je tkové vyjádření (zápis) množiny řetězců, ve kterém používáme operce +, zřetězení iterce. Zde jsme prorli tři operce nd množinmi řetězců sjednocení, zřetězení iterci, nzvli jsme je regulárními opercemi. Shrňme si nyní vzth regulárních opercí k regulárním výrzům: Regulární výrz Jzyk, tedy prázdný jzyk ε {ε} (jzyk oshující jen slovo s nulovou délkou), Σ {} (jzyk oshující jen slovo s délkou ) α + β α β (α) {α} {β} (sjednocení) {α} {β} (zřetězení) {α} (iterce) Tulk.: Vzth mezi zápisem regulárních výrzů jzyků.4.2 Dlší potřené operce Průnik: Do průniku dvou jzyků ptří všechn slov, která jsou jk v prvním, tk (zároveň) P i v druhém jzyce. L L 2 = {w Σ ; w L w L 2 } (.9) (všimněte si vzthu průniku konjunkce; v podoném vzthu pro sjednocení disjunkce) Příkld.9 Pokud L = {c, c, c} L 2 = {, c}, pk L L 2 = {c} Pokud L = {c, c} L 2 = {, c}, pk L L 2 = Pokud L = L 2 =, pk L L 2 = {ε} Pokud L = L 2 = { 2n ; n 0 }, pk L L 2 = L 2 (protože zde L 2 L ) L =

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 0 Rozdíl: Rozdíl dvou jzyků je množin všech slov, která ptří do prvního z těchto jzyků zároveň neptří do druhého jzyk. L L 2 = {w Σ ; w L w / L 2 } (.0) Příkld.0 Pokud L = {c, c, c} L 2 = {, c}, pk L L 2 = {c, c} P Pokud L = {c, c} L 2 = {, c,,, c}, pk L L 2 = Pokud L = L 2 =, pk L L 2 = L {ε} = L = L Doplněk: Doplněk (komplement) jzyk vzhledem k dné ecedě Σ je množin všech slov nd P dnou ecedou, která do původního jzyk neptří. Doplněk jzyk L zpisujeme L neo L. L = L = {w Σ ; w / L} (.) Příkld. Pokud L = {c, c, c}, pk L = Σ {c, c, c} Pokud L = {w Σ ; w > 0}, pk L = {w Σ ; w 0} Pokud L = Σ, pk L = ( nopk) Tké zde pltí Deorgnovy zákony: L L L 2 = L L 2 neo L L 2 = L L 2 L L 2 = L L 2 neo L L 2 = L L 2 (.2) nožinové operce sjednocení průniku jsou nvzájem duální nvzájem n see převeditelné (pokud použijeme operci negce) tk, jk vidíme v Deorgnových zákonech.. Zrcdlový orz: Zrcdlový orz (reverze) slov vznikne převrácením tohoto slov. V reverzi P jzyk provedeme totéž s kždým slovem tohoto jzyk. L R = L = {w R ; w L} (.3)

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY Příkld.2 L = {c, mnp, ε}, pk L R = {c, pnm, ε} Pokud L =, pk L R = (změn pořdí symolů není pozntelná, totéž pltí pro všechny jzyky nd jednoznkovou ecedou) L = { n n ; n 0}, pk L R = { n n ; n 0} L = {wcw R ; w {, } }, pk L R = {wcw R ; w {, } } Pozitivní iterce: Pozitivní iterce (operce plus je definován podoně jko iterce: P L + = L L 2... (.4) = L n (.5) n= Homomorfismus: orfismus (homomorfismus je to totéž) je zorzení h zchovávjící neutrální prvek (zde ε) operci n dné struktuře (u nás zřetězení) v dné ecedě Σ, tj. splňuje homomorfní podmínky:. h(ε) = ε 2. h( w) = h() h(w), Σ, w Σ Pokud zorzení splňuje homomorfní podmínky, lze je definovt jednodušeji pro jednotlivé symoly jzyk. Pltí vzorec: h(l) = h(w) (.6) Příkld.3 N jzyk L = { 2 i () i+ ; i } upltníme homomorfismy h h 2 definovné následovně: h () = cd h () = c 3 h 2 () = c h 2 () = c w L Potom pltí: h (L) = {(cd) 2 c 3i (cdc 3 ) i+ ; i } h 2 (L) = { c i+2 (cc) i+ ; i } = { c 3i+4 ; i } = c 4 c 3 ( c 3) P

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 2 Úkoly. Které z výše uvedených opercí jsou inární které z těchto inárních jsou komuttivní? Jsou socitivní? 2. Jsou dány tyto jzyky: L = {} L 2 = L 3 = () L 4 = { i i ; i 0} L 5 = {ε, }. Jk vypdjí následující jzyky? L L 3 L L 4 L 2 L 5 L 2 L L L 3 L 5 L 3 L L +, L+ 3 L + 5 L R, LR 3 L R 2 L R 4 3. Je dán homomorfismus h definovný následovně: h() = 0, h() = 0. Určete h(l ), pokud L = {ε,,, } Určete h(l 2 ), pokud L 2 = () Určete h(l 3 ), pokud L 3 =.4.3 Prefixy postfixy slov Následující operce nám umožňují prcovt s prefixy (predponmi) postfixy (příponmi) slov. Levý prvý derivát určují množinu slov dného jzyk, jejichž prefixem či postfixem je dné slovo, levý prvý kvocient používjí místo jednoho prefixu či postfixu celou množinu (tedy jiný jzyk). Levý prvý derivát: Levý derivát jzyk L podle slov x je množin všech slov tkových, že pokud je k nim zlev opercí zřetězení přidáno slovo x, ptří do jzyk L. δ l x(l) = {w Σ ; x w L} (.7) Prvý derivát jzyk L podle slov x je množin všech slov tkových, že pokud je k nim zprv opercí zřetězení přidáno slovo x, ptří do jzyk L. δ r x(l) = {w Σ ; w x L} (.8) Příkld.4 Pokud L = {() i () i ; i 2}, pk δ l (L) = {()i () i ; i 2} δ r (L) = {()i () i 2 ; i 2} = {() i+2 () i ; i 0} δ() r (L) = {() i+4 () i ; i 0} (všimněte si, že některá slov jzyk L do výsledného 4 jzyk neyl vůec zřzen)

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 3 Levý prvý kvocient: Jedná se o zoecnění levého prvého derivátu. Levý kvocient jzyk L vzhledem k jzyku L 2 je sjednocením levých derivátů jzyk L vzhledem ke všem slovům jzyk L 2. Podoně prvý kvocient jzyk L vzhledem k jzyku L 2 je sjednocením prvých derivátů jzyk L vzhledem ke všem slovům jzyk L 2. L 2 \L = {w Σ ; existuje x L 2 tk, že x w L } L \ = {w δ l x(l ) ; x L 2 } (.9) L 2 = {w Σ ; existuje x L 2 tk, že w x L } = {w δ r x(l ) ; x L 2 } (.20) nemotechnická pomůck: z toho jzyk, který je níže, ereme prefix (tj. slovo x z výše uvedených vzorců). Ten jzyk, který je výše, ude zlev neo zprv osekán. L Příkld.5 Jsou dány tyto jzyky: L = {,, c} L 2 = { i c i ; i 0} L 3 = L 4 = L 5 = () L 6 = () + L 7 = {ε, c, } Stnovíme tyto levé prvé kvocienty: L \L 2 = {c, cc} (všimněte si, že oprvdu jde o konečný jzyk, třeže L2 je nekonečný) L 2 \L = (protože žádné slovo z jzyk L2 není prefixem žádného slov jzyk L ; pozor, nejkrtší slovo z jzyk L 2 je, nikoliv ε) L 3 \L 2 = { m c i ; 0 m i} (postup: vezmeme slovo z L 2, npříkld 4 c 4, použijeme jko prefixy postupně slov ε,, 2, 3, 4 z jzyk L 3 všechn do délky počtu symolů ve slově z jzyk L 2, pk dlší slovo, td.) L 4 \L 2 = L2 { m c i ; 0 m i} {c i ; i 0} (první část: z L 4 zvolíme ε; druhá část: z L 4 zvolíme slov ; třetí část: z L 4 zvolíme ) protože L 2 { m c i ; 0 m i}, výsledek můžeme zjednodušit; jk? L 5 \L 2 = L2 {c} (pokud x = ε, pk získáme L 2 ; pokud x = {}, získáme {c}; dlší slov z L 4 nelze použít) L 6 \L 2 = {c} L 7 \L 2 = L2 {ε, c} L L \ L 5 = L {ε, } (pozor, ted už počítáme prvý kvocient) \ L 6 = {ε, }

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 4.5 K vlstnostem jzyků Příkld.6 Ještě si trochu procvičíme operce nd jzyky. L = { i j ; i, j 0} L 2 = {w {, } ; w = w } L L 2 = { n n ; n 0} L R = {j i ; i, j 0} L R 2 = L 2 (kždé slovo po reverzi opět ptří do původního jzyk nopk) L = () L 2 = () L L 2 = {ε} L L 2 = () + () L R = L 2, L R 2 = L L = L 2 = L L 2 = {ε} L L 2 = + (pozor, ne ( + ), ve slovech udou vždy ud jen symoly neo jen symoly ) {, } L = {w {, } ; w } (proč?) L R = L, L R 2 = L 2 L = { n c n n ; n 0} L 2 = {wcw R ; w {, } } L L 2 = {c} L L 2 = { n c n n ; n 2} {ε} = L {c} (všimněte si minim pro hodnotu n) L R = {n c n n ; n 0} L R 2 = L 2 L = L 2 = { 2n ; n 0} L L 2 = L (protože L 2 L ) L L 2 = L 2 (z téhož důvodu) L 2 L = (le nopk y to nepltilo, operce není komuttivní) Z příkldu.6 je zřejmé, že + ( + ) L Tké ychom si měli dávt pozor n to, že operce zřetězení není komuttivní (nicméně socitivní je). Nproti tomu operce + má stejné vlstnosti jko operce sjednocení množin, včetně vlstnosti komuttivity socitivity.

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 5 Příkld.7 Njdeme jzyk L, který splňuje dnou vlstnost: L = L L npříkld: L = {, }, protože pltí {, } {, } = {, } jiné možnosti: L =, L = (), L = {ε}, L = {w {, } ; w = w }, td. šptně y ylo npříkld L = {}, L = {, c}, L = { 2n }, L = {w {, } ; w = w +} L = L npříkld: L =, protože jk L, tk i L oshují právě všechny řetězce nd ecedou {} jiné možnosti: L = {, }, L = {w {, } ; w = w }, L = {ε}, td. šptně y ylo npříkld L = {, }, L = { n n ; n 0}, L = + L = L + npříkld: L = { n n ; n 0}, protože L i L + oshují ttáž slov včetně ε jiné možnosti: L =, L = {, }, L = {w {, } ; w = w }, td. (je tře, y ε L) šptně y ylo npříkld L = { n n ; n }, L = {w {, } ; w < w } L L R = npříkld: L = { n n ; n } (v reverzi je opčné pořdí, v jzycích není slovo ε) jiné možnosti: L = (), L = {c} šptně y ylo npříkld L = (), L = {, }, L = {w {, } ; w = w } L = L {ε} npříkld: L = {w {, } ; w < w }, zde nevdí, že v L není ε jiné možnosti: L =, L = {, }, L = { n n ; n }, td. šptně y ylo npříkld L = {c}, L = { n n ; n } Příkld.8 Njdeme jzyk L, který nesplňuje dnou vlstnost: L = L npříkld: L = {c, }, protože L = {ε, c,, cc, c,, c,...} šptně: L =, protože L = ( ) = (pozor, v zdání je nesplňuje ) L L R = npříkld: L = { n n ; n 0}, protože L i L oshují slovo ε šptně: L = { n n ; n }, zde oprvdu L R nemjí žádné společné slovo, jsou disjunktní

KAPITOLA JAZYKY A REGULÁRNÍ VÝRAZY 6 Úkoly. Ke kždému vzthu npište jzyk L, který dnou vlstnost splňuje, jzyk L n, který dnou vlstnost nesplňuje: L = L R L L = {ε} L = {, } L 2. Ke všem vlstnostem z příkldů.6.8 určete, zd je následující jzyky splňují: L = {,, c} L 2 = {wcw R ; w {, } } L 3 = {ww R ; w {, } } L 4 = { 2n ; n 0 } 3. Je dán jzyk L = () () následující homomorfismy: h () = 0 h () = 0 Zjistěte jzyky h (L) h 2 (L). h 2 () = 0 h 2 () = 00 4. Připomeňte si, jk je u lgerických struktur definován vlstnost komuttivity, socitivity distriutivity. Zjistěte, zd je operce zřetězení distriutivní vzhledem k operci + nopk. 5. Je dán jzyk L = {vypst, vylít, vymzt}. Vytvořte: {vy}\l = δvy l = ( {pře} {vy}\l ) = R

Kpitol 2 Konečné utomty Konečný utomt je jednoduchý mtemtický model, který se skládá z řídicí jednotky (včetně stvu), vstupní pásky (vstupní souor či jiná dtová struktur) čtecí hlvy. V kždém kroku tento utomt nčte jeden symol ze vstupu činnost v tomto kroku je určen podle tohoto nčteného symolu momentálního stvu, spočívá ve změně stvu. 2. Vytváříme konečný utomt Konečný utomt lze zpst celkem třemi způsoy:. použitím plné specifikce s δ-funkcí 2. stvovým digrmem 3. tulkou přechodů Ukážeme si všechny tři způsoy. Exktní postup vytvoření konečného utomtu si ukážeme později (kpitol 2.8 n strně 44), le ychom mohli sestrojovt už ted lespoň menší konečné utomty, podíváme se n zjednodušený postup. Příkld 2. Vytvoříme konečný utomt pro jzyk L = ( ( + ) ) = ( ( + ) ) ve všech třech reprezentcích. U menších utomtů je nejjednodušší vytvořit stvový digrm: q 0 q q 3 q 4, q 2 P δ-funkce včetně plné specifikce: A = ({q 0, q, q 2, q 3, q 4 }, {, }, δ, q 0, {q 3 }) 7 δ(q 0, ) = q δ(q, ) = q 2 δ(q, ) = q 3 δ(q 2, ) = q 4 δ(q 2, ) = q 4 δ(q 4, ) = q δ(q 3, ) = q 3

KAPITOLA 2 KONEČNÉ AUTOATY 8 Tulk přechodů: q 0 q q q 2 q 3 q 2 q 4 q 4 q 3 q 3 q 4 q Ztímco u stvového digrmu tulky přechodů nemusíme uvádět plnou specifikci řetězec A = ({q 0, q, q 2, q 3 }, {, }, δ, q 0, {q 3 }), při použití δ-funkce je plná specifikce nutná. Bez ní ychom nepoznli, který stv je počáteční které stvy jsou koncové. Příkld 2.2 Sestrojíme konečný utomt rozpoznávjící celá čísl. Používáme číslice 0... 9, číslo se musí skládt z lespoň jedné číslice. Víceciferná čísl nesmí zčínt nulou. Vytvoříme utomt se třemi stvy. Oddělíme zprcování jednociferného čísl 0 od osttních, která nulou nesmí zčínt. q,..., 9 0 0 q 2 q 0,..., 9 Úkoly. Pro následujích šest jzyků sestrojte konečný utomt ve všech třech reprezentcích: () () {0, } (c) {0, } (d) () (e) { i ; i } { i ; i 0} (f) {, c} 2. Podle zdání vytvořte zylé dvě reprezentce dného konečného utomtu. () Podle δ-funkce vytvořte stvový digrm tulku přechodů: A = ({q 0, q, q 2 }, {,, c}, δ, q 0, {q, q 2 }) δ(q 0, ) = q δ(q 0, ) = q 2 δ(q, c) = q δ(q 2, c) = q () Podle kždé tulky přechodů vytvořte stvový digrm δ-funkci s plnou reprezentcí utomtu: 0 A B B B D D D q 0 q q 0 q q q 2 q 2 q 3 q 3

KAPITOLA 2 KONEČNÉ AUTOATY 9 Všimněte si, že podle druhé tulky je počáteční stv zároveň koncový (šipk vede oěm směry). (c) Podle kždého stvového digrmu vytvořte tulku přechodů δ-funkci s plnou reprezentcí utomtu: q c 0, q 0 0 q 0 q 2 q 0 c q 2 q 3 3. Sestrojte konečný utomt (stvový digrm) rozpoznávjící reálná čísl. elá část je podle zdání v předchozím příkldu, následuje desetinná čárk pk opět sekvence číslic (lespoň jedn, může to ýt i číslice 0). 4. Podle stvového digrmu pro reálná čísl vytvořte tulku přechodů. 2.2 Nedeterministický konečný utomt Nedeterministický konečný utomt je tkový utomt, kde v lespoň jednom stvu lze n některý signál regovt více různými způsoy. Protože se tento typ utomtu šptně progrmuje (je těžké vložit do instrukcí náhodnost zvolit jednu z nízených cest, to pokud možno tk, y vedl správným směrem, do koncového stvu), může se hodit postup, jk nedeterministický utomt převést n deterministický se zchováním rozpoznávného jzyk. Příkld 2.3 Zdný nedeterministický utomt převedeme n deterministický (je dán stvový digrm tulk přechodů). P 0 q 0 0, 0 q 0 q 2 q 0 q q q 0, q 2 q 0 q 2 Tento převod je nejjednodušší n tulce přechodů. V některých uňkách je více než jedn položk, proto osh uněk udeme chápt jko množiny. Vytváříme tedy nový konečný (deterministický) utomt tkový, že jeho stvy jsou množinmi stvů původního utomtu. Novou tulku přechodů tedy vytvoříme z původní tulky tk, že nejdřív jk osh uněk, tk i stvy v oznčení řádků uzvřeme do množinových závorek. Tím le v některých uňkách (zde v jedné) dostneme stv, který není v oznčení žádného řádku. To nprvíme jednoduše tk, že přidáme nový řádek tulky s tímto oznčením osh uněk zjistíme sjednocením řádků původní tulky oznčených prvky množiny, se kterou právě prcujeme:

KAPITOLA 2 KONEČNÉ AUTOATY 20... {A}... {B, }...... {B} {D, E}... {G} {} {F }... {H, I}...... {A}...... {B} {D, E}...... {B, } {D, E, F }... {B, }... {} {F }... {H, I} {G, H} {G, H, I} ůže se stát, že sjednocením množin v uňkách opět vznikne množin, která se nenchází v oznčení žádného řádku. Pk opět vytvoříme nový řádek pro uňky použijeme operci sjednocení množin. Postup je tedy rekurzivní. Tkže k příkldu: 0 {q 0 } {q } {q } {q 0, q 2 } {q 0 } {q 2 } 0 {q 0 } {q } {q } {q 0, q 2 } {q 0 } {q 2 } {q 0, q 2 } {q } = {q } = Vlstnost ýt koncovým stvem se tké dědí v rámci sjednocení pokud lespoň jeden z prvků množiny stvů je v původním utomtu koncovým stvem, stává se koncovým stvem i celá tto množin. Uvedený postup je vlstně zkrácený. Ve skutečnosti ychom měli postupovt tk, že ychom jko stvy použili všechny možné komince stvů opět operci sjednocení množin: 0 {q 0 } {q } {q } {q 0, q 2 } {q 0 } {q 2 } {q 0, q } {q 0, q, q 2 } {q 0 } {q 0, q 2 } {q } {q, q 2 } {q 0, q 2 } {q 0 } {q 0, q, q 2 } {q 0, q, q 2 } {q 0 } 0 q 0 0 q 0, q 0 q, q 2 q 2 0 0 q 0 q 0, q, q 2 0 q 0, q 2 Ve stvovém digrmu můžeme vidět, že stvy, které jsou oproti předchozímu postupu nvíc, jsou nedosžitelné z počátečního stvu tedy se nencházejí n žádné cestě při zprcování slov jzyk. Proto je vlstně můžeme ez újmy n oecnosti z utomtu odstrnit.

KAPITOLA 2 KONEČNÉ AUTOATY 2 Úkoly Uvedené nedeterministické konečné utomty reprezentovné tulkmi převed te n ekvivlentní deterministické. Ke kždému vytvořte stvový digrm původního nedeterministického utomtu i vytvořeného deterministického porovnejte. X Y Y Z Z X X, Z 0 q 0 q 0, q q 0, q q q, q 2 q 2 c q 0 q, q 2 q q q 2 q, q 2 q 2 q 0 q 2 2.3 Totální utomt V totálním (úplném) utomtu lze v kždém stvu regovt n jkýkoliv symol. Při převodu (netotálního) utomtu n totální vytvoříme nový stv ( odpdkový koš, chyový stv), do kterého přesměrujeme všechny chyějící přechody. Nesmíme zpomenout, že poždvek možnosti rekce n kterýkoliv symol se vzthuje tké n tento nově přidný stv. Postup převodu n totální utomt lze použít pouze n deterministický konečný utomt, proto u nedeterministického utomtu je prvním krokem vždy převod n deterministický. Příkld 2.4 K zdnému deterministickému konečnému utomtu vytvoříme ekvivlentní totální utomt: c q 0 q q 0 q q 2 q q 2 q 2 q c q 2 P Tento utomt určitě není totální npříkld ve stvu q 0 nelze regovt hned n dv signály. Vytvoříme nový stv, oznčíme jej symolem přesměrujeme do tohoto stvu všechny chyějící přechody: c q 0 q q q 2 q q 2 q 2 q 0 q c, c,, c c q 2,

KAPITOLA 2 KONEČNÉ AUTOATY 22 Příkld 2.5 V příkldu 2.3 jsme k nedeterministickému utomtu vytvořili ekvivlentní deterministický. Tento deterministický utomt nyní zúplníme (převedeme n totální). Stv {q 2 } není dosžitelný z počátečního stvu, proto jej tké vypustíme. Aychom trochu zjednodušili znčení, udeme místo množin {...} používt velká písmen, provedeme přeznčení: Původní: Přeznčený: Totální: 0 0 0 {q 0 } {q } {q } {q 0, q 2 } {q 0 } {q 0, q 2 } {q } A B B A B Stvové digrmy přeznčeného zúplněného utomtu: 0 A 0 B 0 0 A 0 B 0 0, A B B A B Úkoly. Všechny konečné utomty, které jste v úkolu č. 2.2.2 n strně 2 převedli n deterministické, zúplňte (převed te n totální). 2. Následující konečný utomt převed te n totální nkreslete jeho stvový digrm (signál v záhlví posledního sloupce je desetinná čárk): 0,..., 9, 0,..., 9 A B B B B D D D E E E E E A,..., 9 0, B, 0,..., 9 E 3. Následující (nedeterministický!) konečný utomt zúplňte. 0 A B B B, A A, 0 A 0 0 B

KAPITOLA 2 KONEČNÉ AUTOATY 23 2.4 Konečné jzyky Všechny konečné jzyky jsou regulární, proto pro ně dokážeme sestrojit konečný utomt. U konečného utomtu pro konečný jzyk ývá ovyklý poždvek n rozlišitelnost nčítných slov podle koncového stvu, tedy pro kždé slovo jzyk y měl existovt smosttný koncový stv. Pk ez nutnosti porovnávání vstupu s jednotlivými slovy jzyk sndno zjistíme, které slovo ylo nčteno podle koncového stvu, ve kterém skončil výpočet. Postup je jednoduchý pro kždé slovo jzyk vytvoříme větev ve stvovém digrmu. Jestliže chceme utomt deterministický (opět jde o ovyklý poždvek, pokud tento postup používáme při progrmování), stčí sloučit počátky těch větví, které stejně zčínjí (konce větví nesmíme sloučit, neylo y možné rozpoznt slov jzyk podle koncových stvů!). Příkld 2.6 Podle zdného konečného jzyk vytvoříme konečný utomt. L = {hrd, hrom, polom, ohrd} q r q 2 q d 3 q 4 h h q r 5 q o 6 q m 7 q 8 q 0 p q o o 9 q l 0 q o q m 2 q 3 q h 4 q r 5 q 6 q d 7 q 8 q 9 Dále chceme, y utomt yl deterministický se zchováním možnosti rozlišit rozpoznávná slov podle koncového stvu. První dvě slov jzyk zčínjí stejným podřetězcem, tedy zčátky prvních dvou větví sloučíme: q r q 2 h o q d 3 q 4 q m 7 q 8 q 0 p q o o 9 q l 0 q o q m 2 q 3 q h 4 q r 5 q 6 q d 7 q 8 q 9 Kdyychom netrvli n podmínce odlišení slov koncovými stvy, ylo y možné sloučit všechny koncové stvy v jeden, tké stvy q 7 q 2. V konečném utomtu pro konečný jzyk nesmí ( ni nemůže) ýt žádná smyčk (cyklus) kdyy yl, pk y ylo možné tuto smyčku jkýkolivpočetkrát zopkovt rozpoznávný jzyk y yl nekonečný.

KAPITOLA 2 KONEČNÉ AUTOATY 24 Úkoly. Vytvořte konečný utomt pro následující jzyky (deterministický, to tk, y pro kždé slovo jzyk existovl jeden konečný stv): () L = {strom, stroj, výstroj} () L = {if, else, elif} (c) L c = {red, write, writell, mtrix} (d) L d = {delfín, ry, velry} Poznámk: V přípdě (c) ude koncový stv větve pro druhé slovo součástí větve pro třetí slovo (pokud vytvoříme deterministický utomt). To je v pořádku, vlstnost rozpoznávání podle koncového stvu zůstává zchován. 2. Vytvořte konečný utomt (stvový digrm), který ude rozpoznávt všechn slov nd ecedou Σ = {,, c}, jejichž délk je () právě 3 znky, () nejvýše 3 znky (tj. 0,, 2 neo 3 znky). Nápověd: Jde o konečné jzyky. Víme, že v utomtu pro konečný jzyk nesmí ýt cyklus, tké víme, že přechody ve stvovém digrmu mohou ýt oznčeny více než jedním znkem. 2.5 Odstrnění nepotřených stvů (redukce) Nepotřené stvy jsou stvy, které nejsou použity při žádném úspěšném výpočtu (tj. končícím v koncovém stvu). Jedná se o stvy nedosžitelné neexistuje k nim cest z počátečního stvu, ndytečné neexistuje cest z tohoto stvu do jkéhokoliv koncového stvu. S odstrňováním (lépe řečeno ignorováním, neuvedením či vypuštěním) prvního typu nepotřených stvů nedosžitelných jsme se setkli už u zkráceného postupu pro převod nedeterministického utomtu n deterministický. Pokud nové řádky tulky přechodů tvoříme jen pro tkové množiny původních stvů, které se již vyskytly v některé uňce, většinu nedosžitelných stvů (le ne vždy všechny) utomticky odstrňujeme. Když chceme odstrnit nepotřené stvy, vždy zčínáme nedosžitelnými stvy ž potom odstrníme ndytečné. V oou přípdech postupujeme rekurzívně, to ud podle stvového digrmu neo podle tulky přechodů. nedosžitelné stvy: jko ázi (zákldní množinu) zvolíme S 0 = {q 0 } (oshuje pouze počáteční stv), dlší prvky přidáváme ve směru šipek v stvovém digrmu, resp. v tulce přechodů ve směru oznčení řádku osh uněk n řádku, postupně vytváříme množinu všech stvů, do kterých vede cest z počátečního stvu o délce mx. 0,,..., n kroků (toto číslo je dolní index u oznčení vytvářené množiny S i );

KAPITOLA 2 KONEČNÉ AUTOATY 25 ndytečné stvy: jko ázi nopk zvolíme množinu koncových stvů E 0 = F, dlší prvky přidáváme proti směru šipek v stvovém digrmu, resp. ve směru osh některé uňky tulky přechodů oznčení řádku, vytváříme množinu všech stvů, ze kterých vede cest do některého koncového stvu o délce mx. 0,,..., n kroků. Příkld 2.7 V zdném konečném utomtu odstrníme nedosžitelné ndytečné stvy. c q 0 q q 3 q q q 2 q 5 q 2 q 3 q 0 q 3 q 3 q 4 q 5 q 2 q 3 q 5 q 5 q 0 c q 3 q c q 2 c q 5 q 4 Odstrníme nedosžitelné stvy (do kterých neexistuje cest z počátečního stvu): S 0 = {q 0 } S = {q 0 } {q, q 3 } = {q 0, q, q 3 } (ze stvu q 0 vede přechod do q q 3 ) S 2 = {q 0, q, q 3 } {q 5, q 2 } = {q 0, q, q 3, q 5, q 2 } S 3 = {q 0, q, q 3, q 5, q 2 } = S 2 (konec, v posledním kroku žádný stv do množiny nepřiyl) V množině S 3 není stv q 4, je tedy nedosžitelný z počátečního stvu můžeme ho z utomtu odstrnit. V kždé z množin S i, které jsme postupně vytvořili, njdeme všechny stvy, které jsou z počátečního stvu dosžitelné po nejvýše i krocích. Dále zjistíme, ze kterých stvů nevede cest do koncových stvů. Budeme prcovt již s utomtem po odstrnění stvu q 4. E 0 = F = {q, q 5 } E = {q, q 5 } {q 0 } = {q, q 5, q 0 } (do stvů z E 0 vede přechod pouze ze stvu q 0 ) E 2 = {q, q 5, q 0, q 2 } E 3 = {q, q 5, q 0, q 2 } = E 2 V množině E 3 není stv q 3, to znmená, že z tohoto stvu neexistuje žádná cest do koncového tedy když tento stv odstrníme, neovlivníme výpočet žádného slov, které utomt rozpoznává. Odstrníme tento stv tké všechny přechody s ním přímo související. Po odstrnění stvů neptřících do množin S i E i dostáváme tento konečný utomt: c q 0 q q q q 2 q 5 q 2 q 0 q 5 q 5 q 0 c q c q 2 q 5

KAPITOLA 2 KONEČNÉ AUTOATY 26 Úkoly. Podle zdání následujícího utomtu vytvořte tulku přechodů stvový digrm. Potom odstrňte nepotřené stvy. Tkto uprvený utomt pk zúplňte (převed te n totální utomt). A = ({A, B,, D, E, F }, {0,, 2}, δ, A, {A, }) s funkcí δ: δ(a, 0) = E δ(a, ) = B δ(a, 2) = E δ(b, 0) = δ(b, ) = D δ(b, 2) = E δ(, 0) = δ(, ) = δ(d, 2) = δ(e, ) = E δ(e, 2) = E δ(f, 0) = δ(f, ) = E δ(f, 2) = F 2. K následujícímu konečnému utomtu vytvořte zývjící dvě reprezentce δ-funkci tulku přechodů. Potom odstrňte všechny nepotřené stvy. A c D B F E G 3. Podle následujících konečných utomtů určených tulkmi přechodů sestrojte stvové digrmy pk odstrňte všechny nepotřené stvy. c A A A B B B D A E B E B c q 0 q 4 q q q 4 q 0 q 2 q 3 q q 2 q 3 q 4 q 3 q 4 q 3 4. Zmyslete se nd těmito přípdy: jk y vypdl jzyk uprveného utomtu (ez nepotřených stvů), kdyy do množin S i neyly zřzeny žádné koncové stvy? Jk y vypdl tento jzyk, kdyy do množin E i neyl zřzen počáteční stv? 2.6 Uzávěrové vlstnosti regulární operce Tříd jzyků je množin všech jzyků s dnou společnou vlstností. Tké regulární jzyky tvoří třídu tříd regulárních jzyků je množin všech jzyků, pro které lze sestrojit konečný utomt. P

KAPITOLA 2 KONEČNÉ AUTOATY 27 Víme, že n řetězce lze použít operci zřetězení. Jzyk je množin řetězců, tedy n jzyk můžeme použít různé množinové operce (sjednocení, průnik, doplněk zrcdlení, sustituci), tké operce odvozené z práce s řetězci znky (signály) zřetězení, dále iterci (operce hvězdičk ) dlší. Tříd jzyků je uzvřen vzhledem k nějké operci, pokud po upltnění operce n jzyky z této třídy vždy vznikne jzyk ptřící do stejné třídy. Postupně si ukážeme všechny zákldní operce, to n konečných utomtech. Pokud jde o inární operci (upltňuje se n dv jzyky), je ovykou podmínkou disjunktnost průniku množin stvů utomtů (žádný stv existuje v oou utomtech zároveň). 2.6. Sjednocení V přípdě sjednocení využijeme celou definici původních utomtů. Přidáme nový stv z tohoto stvu povedeme přechody do všech stvů, do kterých vede přechod z počátečního stvu. Nový stv nám tedy simuluje použití počátečních stvů v původních utomtech. Postup si můžeme předstvit tře tk, že vezmeme všechny přechody, které vedou z původních počátečních stvů, zkopírujeme (ne přeneseme, ty původní musejí zůstt) jejich zčátky (tj. u stvů, ze kterých vycházejí) k novému stvu. Pokud některý z původních počátečních stvů ptří i do množiny koncových stvů, pk tké tuto vlstnost přidáme novému počátečnímu stvu. Oznčme A = (Q, Σ, δ, q, F ) je první utomt, A 2 = (Q 2, Σ 2, δ 2, q 2, F 2 ) je druhý utomt, pk utomt rozpoznávjící jzyk, který je sjednocením jzyků oou utomtů, je A = (Q Q 2 {s 0 }, Σ Σ 2, δ, s 0, F F 2 ), pltí, že s 0 / Q Q 2, přechodová funkce: δ(s 0, x) = { δ (q, x) δ 2 (q 2, x), x Σ Σ 2 δ (r, x) ; r Q, x Σ, δ(r, x) = δ 2 (r, x) ; r Q 2, x Σ 2 To znmená, že přechodovou funkci prkticky přejmeme z původních utomtů, změn ude jen n zčátku. Příkld 2.8 Ukážeme si operci sjednocení n následujících jzycích utomtech: L = {() i ( ) : i 0} L 2 = { i j ; i, j 0} Konečné utomty pro tyto jzyky jsou následující: P P q 0 q q 0 q q 2 q q q 2 q 0 q 2 A B A A B B

KAPITOLA 2 KONEČNÉ AUTOATY 28 A = ({q 0, q, q 2 }, {, }, δ, q 0, {q 0, q }) δ (q 0, ) = q δ (q 0, ) = q 2 δ (q 2, ) = q 0 δ (q 2, ) = q A 2 = ({A, B, }, {, }, δ 2, A, {}) δ 2 (A, ) = A δ 2 (A, ) = B δ 2 (B, ) = δ 2 (, ) = Přidáme nový stv s 0 všechny přechody z tohoto stvu nsměrujeme oznčíme stejně jko přechody z počátečních stvů původních utomtů. Postup je nejnázornější n stvovém digrmu, le je jednoduchý tké v tulce přechodů stčí oě tulky shrnout do jedné přidt nový řádek, jehož uňky udou sjednocením uněk n řádcích původních počátečních stvů n příslušných sloupcích. Protože jeden z původních počátečních stvů (q 0 ) ptří do množiny koncových stvů, tké nový počáteční stv s 0 ude zároveň koncovým. q 0 q s 0 A q 2 B s 0 q, A q 2, B q 0 q q 2 q q 2 q 0 q A A B B A = ({s 0, q 0, q, q 2, A, B, }, {, }, δ, s 0, {q 0, q, }) δ(s 0, ) = δ (q 0, ) δ 2 (A, ) = {q, A} δ(s 0, ) = δ (q 0, ) δ 2 (A, ) = {q 2, B} δ(q 0, ) = {q } δ(q 0, ) = {q 2 } δ(q 2, ) = {q 0 } Je zřejmé, že L(A) = L(A ) L(A 2 ). δ(q 2, ) = {q } δ(a, ) = {A} δ(a, ) = {B} δ(b, ) = {} δ(, ) = {} Pokud y žádný z původních počátečních stvů neptřil do množiny koncových stvů, pk ni stv s 0 nesmíme zřdit do množiny koncových stvů! Znmenlo y to, že do výsledného jzyk nemá ptřit prázdné slovo. L Úkoly. Použijte operci sjednocení n následující konečné utomty: 0 0 0 A B D E

KAPITOLA 2 KONEČNÉ AUTOATY 29 2. Použijte operci sjednocení n následující konečné utomty (q 3 zároveň koncový!): c q 0 q 0, q 2 q q q 2 q 2 q 2 q 3 q 4 q 6 q 4 q 5 q 5 q 3 q 6 3. Pro o konečné utomty ze zdání předchozího příkldu tké pro výsledný utomt vytvořte zylé dv typy reprezentcí stvový digrm δ-funkci včetně plné specifikce utomtu. 4. Zmyslete se nd tím, jk y vypdlo sjednocení více než dvou konečných utomtů. 2.6.2 Zřetězení Zřetězení dvou jzyků vytvoříme tk, že ve výsledném jzyce jsou všechny možné řetězce, jejichž první část je kterékoliv slovo z prvního jzyk druhá část zse kterékoliv slovo z druhého jzyk. Záleží n pořdí, části slov nemůžeme přehodit, řídí se pořdím zřetězovných jzyků. Příkld 2.9 Princip zřetězení jzyků si ukážeme n těchto konečných jzycích: L = {ε, c, } L 2 = {dd, dc} Zřetězením těchto dvou jzyků získáme jzyk L = L L 2 : L = {ε dd, ε dc, c dd, c dc, dd, dc} = {dd, dc, ccc, cdc, dd, dc} P Při zřetězení není tře ve výsledném utomtu vytvářet nový stv. Opět využijeme všechny stvy přechody z původních utomtů udeme přidávt nové přechody, které je propojí. Při ukončení výpočtu první části slov (tj. v prvním původním utomtu) je tře plynule nvázt n výpočet druhého původního utomtu. Proto nově přidávné přechody udou vést z koncových stvů prvního utomtu, jejich cílový stv (stv, do kterého ude směřovt šipk přechodu) oznčení přejmeme (zkopírujeme) od přechodů z počátečního stvu druhého původního utomtu. Počátečním stvem výsledného utomtu ude smozřejmě počáteční stv prvního původního utomtu. Do množiny koncových stvů zřdíme koncové stvy druhého původního utomtu, pokud počáteční stv druhého utomtu yl zároveň koncovým (to znmená, že do druhého jzyk ptřilo slovo ε), pk do množiny koncových stvů výsledného utomtu zřdíme tké koncové stvy prvního původního utomtu.

KAPITOLA 2 KONEČNÉ AUTOATY 30 Oznčme A = (Q, Σ, δ, q, F ) je první utomt, A 2 = (Q 2, Σ 2, δ 2, q 2, F 2 ) je druhý utomt, zde je již důležité jejich pořdí, pk utomt rozpoznávjící jzyk, který je zřetězením jzyků oou utomtů, je A = (Q Q 2, Σ Σ 2, δ, q, F ), koncové stvy: F = F 2, pokud ε / L(A 2 ) F = F F 2, pokud ε L(A 2 ) (tj. jestliže v jzyce druhého utomtu ylo prázdné slovo, tedy počáteční stv ptřil do množiny koncových stvů, znmená to, že do výsledného jzyk udou ptřit i všechn slov rozpoznávná prvním utomtem zřetězená s ε, lze skončit tké ve stvech z F ) Přechodová funkce: δ(r, x) = δ (r, x) ; r Q F, x Σ, δ (r, x) δ 2 (q 2, x) ; r F, x Σ Σ 2, δ 2 (r, x) ; r Q 2, x Σ 2 Znmená to, že v koncových stvech prvního původního utomtu udeme (kromě existujících původních rekcí) regovt stejně, jko v počátečním stvu druhého původního utomtu (což je podle nšeho znčení q 2 ). P Příkld 2.0 Zřetězíme jzyky těchto konečných utomtů: q 0 q A q 0 q q 2 q q q 2 q 0 q 2 A B A 2 A A B B A = ({q 0, q, q 2 }, {, }, δ, q 0, {q 0, q }) δ (q 0, ) = q δ (q 0, ) = q 2 δ (q 2, ) = q 0 δ (q 2, ) = q A 2 = ({A, B, }, {, }, δ 2, A, {}) δ 2 (A, ) = A δ 2 (A, ) = B δ 2 (B, ) = δ 2 (, ) = V utomtu A (prvním) jsou dv koncové stvy. Z nich udou vést nové přechody ke stvům utomtu A 2 ke všem stvům, do kterých vede přechod z počátečního stvu A. q 0 q q 2 A B q 0 q, A q 2, B q A B q 2 q 0 q A A B B

KAPITOLA 2 KONEČNÉ AUTOATY 3 A = ({q 0, q, q 2, A, B, }, {, }, δ, {}) δ(q 0, ) = {q, A} δ(q 0, ) = {q 2, B} δ(q, ) = {A} δ(q, ) = {B} δ(q 2, ) = {q 0 } δ(q 2, ) = {q } δ(a, ) = {A} δ(a, ) = {B} δ(b, ) = {} δ(, ) = {} Pltí L(A) = L(A ) L(A 2 ). Příkld 2. Nyní použijeme stejné zdání jko v předchozím příkldu, jen orátíme pořdí zřetězovných utomtů. usíme rát v úvhu to, že počáteční stv utomtu, který je ted druhý v pořdí, je zároveň koncovým stvem, což ude mít vliv tké n množinu koncových stvů: A B q 0 q q 2 A A B B, q q 2 q 0 q q 2 q q 2 q 0 q A = ({q 0, q, q 2, A, B, }, {, }, δ, {, q 0, q }) δ(a, ) = {A} δ(a, ) = {B} δ(b, ) = {} Pltí L(A ) = L(A 2 ) L(A ). δ(, ) = {, q } δ(, ) = {q 2 } δ(q 0, ) = {q } δ(q 0, ) = {q 2 } δ(q 2, ) = {q 0 } δ(q 2, ) = {q } Úkoly. Proved te operci zřetězení jzyků následujících konečných utomtů: 0 0 A B 0 D E 2. Proved te operci zřetězení jzyků následujících konečných utomtů nejdřív v pořdí podle zdání (L(A ) L(A 2 )) potom v opčném pořdí (L(A 2 ) L(A )). Sestrojte tké stvové digrmy.

KAPITOLA 2 KONEČNÉ AUTOATY 32 A q 0 q 0, q 2 q q q 2 q 2 q 2 A 2 c q 3 q 4 q 6 q 4 q 5 q 5 q 3 q 6 2.6.3 Iterce (Kleeneho uzávěr) Při iterci zřetězujeme jzyk sám se seou, to 0,, 2,..., pk všechny výsledné jzyky po zřetězení sjednotíme. Formálně to můžeme zpst následovně: L = L i i=0 P kde L i je i-násoné zřetězení jzyk L sm se seou (npříkld pro i = 3 ylo L 3 = L L L). Zřetězení jsme již proírli. Příkld 2.2 Princip iterce jzyk si ukážeme n tomto konečném jzyce: L = {c,, cd} Itercí získáme jzyk L = L : L = { ε,....................................................................... 0 c,, cd,............................................................... cc, c, ccd, c,, cd, cdc, cd, cdcd,................... 2 ccc, cc, cccd, cc, c, ccd,...}............. 3,... Výsledkem iterce je vždy nekonečný jzyk oshující prázdné slovo ε, i kdyy původní jzyk L yl konečný i kdyy prázdné slovo neoshovl. Úprv konečného utomtu při iterci spočívá v těchto dvou krocích:. vytvoříme nový počáteční stv, přechody z něj vedoucí určíme stejné jko ty, které vedou z původního počátečního stvu, 2. vytvoříme nové přechody umožňující návrt z koncových stvů n počátek výpočtu (dlší slovo z jzyk), 3. nový počáteční stv zřdíme do množiny koncových stvů (tím zřdíme do jzyk slovo ε). První od je nevyhnutelný především tehdy, pokud v původním utomtu vede některý přechod do počátečního stvu zároveň tento stv neyl v množině koncových stvů; je tře zránit tomu, y zřzení počátečního stvu do množiny koncových stvů mělo z následek rozpoznávání tkových slov, která do jzyk správně ptřit nemjí. L P

KAPITOLA 2 KONEČNÉ AUTOATY 33 Oznčme A = (Q, Σ, δ, q 0, F ) původní utomt, pk utomt rozpoznávjící jzyk, který je itercí původního jzyk, je A = (Q {s 0 }, Σ, δ, s 0, F {s 0 }), přechodová funkce: δ (r, x) ; r Q F, x Σ, δ(r, x) = δ (r, x) δ (q 0, x) ; r F, x Σ, δ (q 0, x) ; r = s 0, x Σ Nové přechody povedou z původních koncových stvů, to do všech stvů, do kterých vede přechod z počátečního stvu. Princip je prkticky stejný jko u dříve proírných opercí, kopírujeme počátky přechodů od počátečního stvu se zchováním jejich cíle i oznčení (signálu). Příkld 2.3 Vytvoříme iterci jzyk následujícího utomtu: A = ({A, B,, D}, {0,, 2}, δ, A, {B, D}) P 0 A 2 0 2 B D 0 2 A A B B D B D D δ (A, 0) = A δ (A, ) = B δ (A, 2) = δ (B, ) = D δ (B, 2) = B δ (, 0) = D Postup: Koncové stvy jsou dv. Z kždého přidáme přechody do všech stvů, do kterých směřují přechody z počátečního stvu. Vytvoříme nový počáteční stv přechody z něj vedoucí zkopírujeme z původního počátečního stvu (tj. v novém počátečním stvu se utomt ude chovt stejně jko v původním). Tento krok je sice u většiny utomtů zytečný, le u některých nutný zmezíme vzniku smyček přes počáteční stv generujících slov neptřící do jzyk (tkové smyčky jsme mohli vytvořit předchozím krokem). Potom (nový) počáteční stv oznčíme jko koncový, y utomt přijíml prázdné slovo ε. s 0 0 2 0 0 A 2 2 0 2, 2 B D 0 2 s 0 A B A A B B A D, B B, D D A B 0

KAPITOLA 2 KONEČNÉ AUTOATY 34 A = ({s 0, A, B,, D}, {0,, 2}, δ, s 0, {s 0, B, D}) δ(s 0, 0) = A δ(s 0, ) = B δ(s 0, 2) = δ(a, 0) = A δ(a, ) = B δ(a, 2) = δ(b, ) = D δ(b, 2) = B δ(, 0) = D δ(b, 0) = A δ(b, ) = B δ(b, 2) = δ(d, 0) = A δ(d, ) = B δ(d, 2) = Kdyy stv A v původním utomtu ptřil do množiny koncových stvů, tk y smozřejmě koncovým stvem zůstl. Úkoly. Zkonstruujte konečný utomt jzyk, který je itercí jzyk následujícího utomtu: q 0 q q 2 A q 0 q q 2 q q 2 q 0 q 2. Zkonstruujte konečný utomt jzyk, který je itercí jzyk následujícího utomtu: 0 D 0 D D E E E E Pro výsledný utomt tké vytvořte třetí typ reprezentce δ-funkci s plnou specifikcí. 2.7 Uzávěrové vlstnosti dlší operce 2.7. Pozitivní iterce Pozitivní iterce je podoná operce jko předchozí, le ztímco iterce znmená řetězení 0,, 2,..., při pozitivní iterci zčínáme při řetězení ž, 2,.... temtický zápis oojího: L = L i L + = L i i=0 i= Postup je stejný jko u iterce, le pokud počáteční stv původního utomtu neptřil do množiny koncových stvů (tj. slovo ε neptřilo do jzyk), neude koncovým stvem ni po úprvě utomtu. Oznčme A = (Q, Σ, δ, q 0, F ) původní utomt, pk utomt rozpoznávjící jzyk, který je P P