Teorie jazyků a automatů

Podobné dokumenty
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.

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

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

Spojitost funkce v bodě, spojitost funkce v intervalu

Automaty a gramatiky

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

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

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

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

Definice limit I

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

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

Logaritmus. Předpoklady: 2909

Teorie jazyků a automatů I

Řešené příklady k MAI III.

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:

Zkoušku snadno provedeme tak, že do soustavy (1), která je ekvivalentní dané soustavě rovnic, dosadíme příslušné hodnoty s a p.

Formální jazyky. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 6. března / 48

Větu o spojitosti a jejich užití

Základy teorie matic

LINEÁRNÍ DIFERENCIÁLNÍ ROVNICE 2.ŘÁDU

Obecně: K dané funkci f hledáme funkci ϕ z dané množiny funkcí M, pro kterou v daných bodech x 0 < x 1 <... < x n. (δ ij... Kroneckerovo delta) (4)

Matice. a B =...,...,...,...,..., prvků z tělesa T (tímto. Definice: Soubor A = ( a. ...,..., ra

Automaty a gramatiky

OBECNÝ URČITÝ INTEGRÁL

( a) Okolí bodu

Jak již bylo uvedeno v předcházející kapitole, můžeme při výpočtu určitých integrálů ze složitějších funkcí postupovat v zásadě dvěma způsoby:

V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

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

2.1 - ( ) ( ) (020201) [ ] [ ]

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

Až dosud jsme se zabývali většinou reálnými posloupnostmi, tedy zobrazeními s definičním

x + F F x F (x, f(x)).

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

Teorie jazyků a automatů

NEWTONŮV INTEGRÁL. V předchozích kapitolách byla popsána inverzní operace k derivování. Zatím nebylo jasné, k čemu tento nástroj slouží.

INTEGRACE KOMPLEXNÍ FUNKCE KŘIVKOVÝ INTEGRÁL

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ů.

Úlohy krajského kola kategorie A

VIII. Primitivní funkce a Riemannův integrál

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

Logaritmické rovnice I

Přednáška 9: Limita a spojitost

Podobnosti trojúhelníků, goniometrické funkce

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.

VIII. Primitivní funkce a Riemannův integrál

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

5.1.5 Základní vztahy mezi body, přímkami a rovinami

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

Souhrn základních výpočetních postupů v Excelu probíraných v AVT listopad r r. . b = A

ZÁKLADY. y 1 + y 2 dx a. kde y je hledanou funkcí proměnné x.

m n. Matice typu m n má

a i,n+1 Maticový počet základní pojmy Matice je obdélníkové schéma tvaru a 11

integrovat. Obecně lze ale říct, že pokud existuje určitý integrál funkce podle různých definic, má pro všechny takové definice stejnou hodnotu.

( ) ( ) ( ) Exponenciální rovnice Řeš v R rovnici: = ŘEŠENÍ: Postup z předešlého výpočtu doplníme využitím dalšího vztahu: ( ) t s t

Vlastnosti regulárních jazyků

množina, na které je zavedena určitá struktura. Zejména, součet každých dvou prvků X = [x 1,..., x n ] R n,

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

2.5.9 Vztahy mezi kořeny a koeficienty kvadratické rovnice

3.2. LOGARITMICKÁ FUNKCE

1. LINEÁRNÍ ALGEBRA 1.1. Matice

DERIVACE A INTEGRÁLY VE FYZICE

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

2. Funkční řady Studijní text. V předcházející kapitole jsme uvažovali řady, jejichž členy byla reálná čísla. Nyní se budeme zabývat studiem

5.2.4 Kolmost přímek a rovin II

+ c. n x ( ) ( ) f x dx ln f x c ) a. x x. dx = cotgx + c. A x. A x A arctgx + A x A c

ANALYTICKÁ GEOMETRIE V PROSTORU

Lineární nerovnice a jejich soustavy

(1) přičemž všechny veličiny uvažujeme absolutně. Její úpravou získáme vztah + =, (2) Přímé zvětšení Z je dáno vztahem Z = =, a a

4.4.3 Kosinová věta. Předpoklady:

Křivkový integrál funkce

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

5.1.5 Základní vztahy mezi body přímkami a rovinami

Kapitola 1. Formální jazyky. 1.1 Formální abeceda a jazyk. Cíle kapitoly: Cíle této části: Klíčová slova: abeceda, slovo, jazyk, operace na jazycích

8. cvičení z Matematiky 2

Příklad 22 : Kapacita a rozložení intenzity elektrického pole v deskovém kondenzátoru s jednoduchým dielektrikem

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

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

3.2.1 Shodnost trojúhelníků I

2.8.5 Lineární nerovnice s parametrem

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

13. Exponenciální a logaritmická funkce

Diferenciální počet. Spojitost funkce

Úlohy školní klauzurní části I. kola kategorie C

2.2.9 Grafické řešení rovnic a nerovnic

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

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

KVADRATICKÁ FUNKCE (vlastnosti, grafy)

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

3. Kvadratické rovnice

Technická univerzita v Liberci. Pedagogická fakulta. Katedra matematiky a didaktiky matematiky. Matematika I. (Obor: Informatika a logistika)

Definice. Nechť k 0 celé, a < b R. Definujeme. x < 1. ϕ(x) 0 v R. Lemma [Slabá formulace diferenciální rovnice.] x 2 1

KŘIVKOVÉ INTEGRÁLY. Křivka v prostoru je popsána spojitými funkcemi ϕ, ψ, τ : [a, b] R jako množina bodů {(ϕ(t), ψ(t), τ(t)); t

Integrální počet - III. část (určitý vlastní integrál)

9 Axonometrie ÚM FSI VUT v Brně Studijní text. 9 Axonometrie

Integrální počet - II. část (určitý integrál a jeho aplikace)

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

Transkript:

Slezská univerzit v Opvě Filozoficko-přírodovědecká fkult v Opvě Šárk Vvrečková Teorie jzyků utomtů Skript do předmětů II Zákldy teoretické informtiky Ústv informtiky Filozoficko-přírodovědecká fkult v Opvě Slezská univerzit v Opvě Opv 9. prosince 2015

Anotce: Tto skript jsou určen pro studenty předmětů Teorie jzyků utomtů II obory Informtik výpočetní technik, Informtik dvouoborové Zákldy teoretické informtiky II obor Aplikovná informtik. Nvzujeme n látku probírnou v předchozím semestru přecházíme k pokročilejším témtům. Teorie jzyků utomtů II, Zákldy teoretické informtiky II 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. 13, Opv Sázeno v systému LATEX

Obsh 1 Konečné utomty regulární jzyky 1 1.1 Definice konečného utomtu.............................. 1 1.2 K uzávěrovým vlstnostem............................... 3 1.2.1 Pozitivní iterce................................. 3 1.2.2 Zrcdlový obrz................................. 5 1.2.3 Průnik....................................... 7 1.2.4 Doplněk...................................... 10 1.2.5 Rozdíl....................................... 11 1.3 Kritéri regulárnosti jzyk............................... 13 1.3.1 Pumping lemm pro regulární jzyky..................... 13 1.3.2 Využití uzávěrových vlstností......................... 19 1.3.3 Nerodov vět.................................. 19 1.4 Minimlizce konečného utomtu........................... 24 1.5 Vzth mezi konečnými utomty regulárními výrzy................ 30 2 Bezkontextové grmtiky jzyky 34 2.1 Definice bezkontextové grmtiky............................ 34 2.2 Trnsformce bezkontextových grmtik........................ 35 2.2.1 Nezkrcující bezkontextová grmtik..................... 35 2.2.2 Redukovná grmtik.............................. 39 2.2.3 Grmtik bez jednoduchých prvidel..................... 44 2.2.4 Necyklické vlstní grmtiky, substituce................... 48 2.2.5 Rekurze neterminálu v grmtice........................ 49 2.3 Normální formy pro bezkontextové grmtiky..................... 53 2.3.1 Chomského normální form........................... 53 2.3.2 Greibchové normální form........................... 58 2.4 závěrové vlstnosti bezkontextových jzyků..................... 62 2.4.1 Sjednocení.................................... 62 2.4.2 Zřetězení..................................... 63 iii

iv 2.4.3 Iterce....................................... 65 2.4.4 Reverze...................................... 66 2.4.5 Průnik doplněk................................. 68 2.4.6 Homomorfismus substituce.......................... 69 2.5 Kritéri bezkontextovosti................................ 71 2.5.1 Využití uzávěrových vlstností bezkontextových jzyků........... 71 2.5.2 Pumping lemm pro bezkontextové jzyky................... 72 3 Zásobníkový utomt 79 3.1 Definice zásobníkového utomtu............................ 79 3.2 Vzth mezi typy zásobníkových utomtů....................... 84 3.3 Vzth zásobníkových utomtů bezkontextových grmtik............. 89 3.3.1 Vytvoření utomtu podle bezkontextové grmtiky............. 89 3.3.2 Vytvoření grmtiky podle zásobníkového utomtu............. 91 3.4 Zásobníkové utomty uzávěrové vlstnosti bezkontextových jzyků....... 95 3.5 Deterministické bezkontextové jzyky......................... 97 3.5.1 Deterministický zásobníkový utomt..................... 97 3.5.2 závěrové vlstnosti deterministických bezkontextových jzyků....... 98 4 Jzyky typu 0 100 4.1 Grmtiky typu 0.................................... 100 4.2 Stroje rozpoznávjící jzyky typu 0........................... 100 4.2.1 Zásobníkový utomt se dvěm zásobníky................... 100 4.2.2 Turingův stroj.................................. 102 4.2.3 Vrinty Turingov stroje............................ 105 4.3 Vzth Turingových strojů k jzykům typu 0...................... 106 4.3.1 Vytvoření Turingov stroje podle grmtiky.................. 106 4.3.2 Vytvoření grmtiky podle Turingov stroje.................. 110 5 Jzyky typu 1 113 5.1 Grmtiky typu 1.................................... 113 5.2 Kurodov normální form pro grmtiky typu 1................... 115 5.3 Lineárně ohrničený utomt.............................. 117 5.4 závěrové vlstnosti jzyků typu 1........................... 120 Litertur 122

Kpitol 1 Konečné utomty regulární jzyky V této kpitole si zopkujeme učivo o konečných utomtech probereme věty důkzy, které jsme v minulém semestru brli jen okrjově. 1.1 Definice konečného utomtu Nejdřív si zopkujeme všechny definice týkjící se konečného utomtu. Definice 1.1 Konečný utomt Konečný utomt je uspořádná pětice A = Q, Σ, δ, q 0, F, kde je Q... neprázdná konečná množin stvů Σ... neprázdná konečná beced množin signálů δ... přechodová funkce, definovná níže q 0... počáteční stv, q 0 Q F... množin koncových stvů, F Q, F Přechodová funkce δ konečného utomtu dále KA A = Q, Σ, δ, q 0, F je definován tkto: δ: Q Σ Q zápis pomocí množin δq, = r, kde q, r Q, Σ symbolický zápis Definice 1.2 Konfigurce, počáteční koncová konfigurce Oznčme Σ množinu všech slov, která lze utvořit ze symbolů becedy Σ. Konfigurce KA je uspořádná dvojice q, w, kde q Q, w Σ nepřečtená část vstupní pásky. Dále definujeme tyto pojmy: Počáteční konfigurce je konfigurce q 0, w 0, kde q 0 je počáteční stv utomtu w 0 je strtovcí počáteční slovo Koncová konfigurce je konfigurce q f, ε, kde q f F 1

Kpitol 1 Konečné utomty regulární jzyky 2 Definice 1.3 Přechod mezi konfigurcemi Relci přechodu mezi konfigurcemi znčíme symbolem definujeme ji tkto: q i, w q j, w def δq i, = q j, kde q i, q j Q, Σ, w Σ 1.1 Definice 1.4 Výpočet slov v konečném utomtu Výpočet slov v konečném utomtu je posloupnost konfigurcí zčínjící počáteční konfigurcí s dným slovem končící některou koncovou konfigurcí, vzth mezi sousedními konfigurcemi je dán relcí přechodu. Reflexivní trnzitivní uzávěr relce přechodu mezi konfigurcemi oznčíme, trnzitivní uzávěr +. Definice 1.5 Rozpoznání přijímání slov konečným utomtem Konečný utomt A = Q, Σ, δ, q 0, F rozpoznává přijímá slovo w, pokud existuje posloupnost výpočtu tohoto slov v utomtu, tedy pokud se lze z počáteční konfigurce q 0, w 0 postupným upltňováním relcí přechodu dostt do některé koncové konfigurce: q 0, w q f, ε, kde q f F 1.2 Definice 1.6 Jzyk konečného utomtu Jzyk konečného utomtu A je množin všech slov w, která utomt přijímá: LA = {w Σ ; q 0, w q f, ε, kde q f F } 1.3 Automt A rozpoznává jzyk L j, pokud přijímá právě slov jzyk L j tj. přijímá všechn slov jzyk, le nepřijímá žádné slovo do jzyk neptřící. Znčíme L j = LA jzyk L j je rozpoznáván utomtem A, je jeho jzykem. M Příkld 1.1 Zopkujeme si všechny možné zápisy konečného utomtu. Zákldní specifikce je následující: A = {q 0, q 1 }, {, b}, δ, q 0, {q 1 } Digrm: δ-funkce: Tbulk přechodů: q 0 b b q 1 δq 0, = q 0 stv\vstup b δq 0, b = q 1 q 0 q 0 q 1 δq 1, b = q 0 q 1 - q 0 Jeden z možných výpočtů v utomtu: q 0, b q 0, b q 0, b q 1, ε proto b LA

Kpitol 1 Konečné utomty regulární jzyky 3 Předchozí výpočet byl úspěšný, jednlo se o slovo ptřící do jzyk rozpoznávného utomtem. Nicméně utomt může mít n vstupu i slov neptřící do jeho jzyk, npříkld: q 0, bb q 1, b q 0, q 0, ε tto konfigurce není koncová: q 0 / F, proto bb / LA q 0, b q 1,??? dál nelze pokrčovt, le konfigurce není koncová, proto b / LA Jzyk utomtu: LA = { n b ; n 0} {b b i ; i 0 } = bb b M Dále jsme si definovli nedeterministický konečný utomt ukázli, že třídy jzyků rozpoznávných deterministickými nedeterministickými utomty jsou nvzájem ekvivlentní. Následovl totální úplný utomt dále postup redukce stvů utomtu. 1.2 K uzávěrovým vlstnostem V minulém semestru jsme se důkldně zbývli zejmén uzávěrovými vlstnostmi třídy jzyků generovných konečnými utomty vzhledem k regulárním opercím sjednocení, zřetězení iterci. Nyní se změříme i n dlší operce, včetně příslušných důkzů. 1.2.1 Pozitivní iterce Operce pozitivní iterce je podobná operci iterce Kleeneho uzávěru, hvězdičce s tím rozdílem, že pokud do původního jzyk neptřilo prázdné slovo, nebude ptřit ni do výsledného jzyk. Srovnejme definici operce iterce pozitivní iterce původní jzyk oznčme L: Vět 1.1 iterce: L = L i pozitivní iterce: L + = i=0 Tříd jzyků rozpoznávných konečnými utomty je uzvřen vzhledem k operci pozitivní iterce. Postup Vezměme jkýkoliv konečný utomt A 1 = Q, Σ, δ 1, q 0, F rozpoznávjící jzyk L 1. Sestrojíme utomt A = Q, Σ, δ, q 0, F tkový, že LA = L + 1 = i=1 Li 1. Tentokrát si nemusíme hrát s počátečním stvem, protože do jzyk explicitně nepřidáváme prázdné slovo. Postupujeme následovně: použijeme původní počáteční stv, množinu stvů, množinu koncových stvů, zjistíme iterci v koncových stvech přidáme rekce stejné, jké jsou v počátečním stvu. Zápis přechodové funkce: δp, = { δ 1 p, ; p Q F, Σ δ 1 p, δ 1 q 0, ; p F, Σ i=1 L i

Kpitol 1 Konečné utomty regulární jzyky 4 První řádek předpisu použijeme pro všechny stvy kromě koncových jen přejmeme chování z původního utomtu, druhý řádek pltí pro koncové stvy. V nich necháme původní přechody přidáme ty přechody, které vedou z počátečního stvu. M Příkld 1.2 Postup si ukážeme n utomtu rozpoznávjícím jzyk L 1 = { i bb ; i 0 } = bb stejném jko u iterce. Tento jzyk je rozpoznáván utomtem A 1 = {p 0, p 1, p 2 }, {, b}, δ 1, p 0, {p 2 } určeným tkto: A 1 b δ 1 p 0, = p 0 p 0 p 0 p 1 δ 1 p 0, b = p 1 b b p 1 p 2 p 0 p 1 δ 1 p 1, b = p 2 p 2 p 2 Sestrojíme utomt A rozpoznávjící jzyk LA = L + 1 : A = {p 0, p 1, p 2 }, {, b}, δ, p 0, {p 2 }. Přidáme nové přechody vedoucí z koncových stvů v tomto přípdě ze stvu p 2 zkopírujeme přechody z počátečního stvu. A b δp 0, = p 0 δp 2, = p 0 p 0 p 0 p b b 1 p δp 0, b = p 0 p 1 p 2 1 δp 2, b = p 1 p 1 p 2 δp 1, b = p b 2 p 2 p 0 p 1 M Důkz Vět 1.1: Tento důkz bude velmi podobný důkzu pro iterci. Dokážeme, že výše popsný lgoritmus vytvoří utomt rozpoznávjící jzyk, který je pozitivní itercí jzyk původního utomtu, tedy že LA = LA 1 +. Použijeme důkz mtemtickou indukcí. Protože pltí L + = i=1 Li, mtemtická indukce se bude týkt různého počtu zřetězení jzyk, tedy postupně probereme L 1, L 2, td. Ke konečnému utomtu A 1 = Q 1, Σ, δ 1, q 0, F 1 rozpoznávjícímu jzyk L 1 sestrojíme utomt A = Q, Σ, δ, q 0, F tk, jk bylo popsáno v konstrukci před příkldem. Báze: Dokzujeme L 1 1 LA: rozlišíme dv přípdy w = 0 w 1. První přípd je triviální. ε L 1 právě tehdy jen tehdy, když ε LA, protože s počátečním stvem q 0 se v lgoritmu nijk nemnipuluje, včetně toho, zd ptří do množiny koncových stvů. Jestliže w 1: v utomtu A 1 existuje výpočet q 0, w... q f, ε, q x Q 1, q f F 1 protože veškeré přechody z δ 1 existují i v δ, pk v utomtu A existuje výpočet q 0, w... q f, ε, q x Q, q f F w LA L 1 1 LA Předpokld: Dále budeme předpokládt, že L k 1 LA pro nějké k 1.

Kpitol 1 Konečné utomty regulární jzyky 5 Krok indukce: Dokzujeme, že L k+1 1 LA. Vezměme slovo w = w 1 w 2... w k+1, kde w i 1, w i = i w i, w i L 1 pro 1 i k + 1. pro kždé i {1,..., k + 1} existuje výpočet v A 1 : q 1 0, w i q xi, w i... q f i, ε, q xi Q 1, q fi F 1 v A 1 existují předpisy δ 1 q 1 0, i q xi v A existují předpisy δq 0, i q xi, δq f, i q xi pro některé q f F pro kždé i {1,..., k + 1} v utomtu A existují podvýpočty q 0, w i q xi, w i... q f i, ε, q xi Q, q fi F q f, w i q xi, w i... q f i, ε, q xi Q, q fi F první použijeme pro slovo w 1, druhý pro slov w i, i {2,..., k + 1}: s 0, w 1 w 2... w k+1 q x1, w 1 w 2... w k+1... q f1, w 2... w k+1 q x2, w 2... w k+1... q fk, w k+1 q xk+1, w k+1... q f k+1, ε w LA L k+1 1 LA Zbývá dokázt opčný směr pokud slovo w / L 1, pk tké w / LA. Do funkce δ jsme přidávli pouze tkové přechody, které zjistily návrt n zčátek po ukončení zprcování jednoho slov z jzyk L 1, proto můžeme říct, že pokud w / L 1, pk w / LA. Z toho vyplývá, že jzyk utomtu A je pozitivní itercí jzyk utomtu A 1. 1.2.2 Zrcdlový obrz Vět 1.2 Tříd jzyků rozpoznávných konečnými utomty je uzvřen vzhledem k operci zrcdlového obrzu reverze. Postup Je dán regulární jzyk L 1 rozpoznávný konečným utomtem A 1, kde A 1 = Q 1, Σ, δ 1, q0 1, F 1, L 1 = LA 1. Vytváříme jzyk L = L R 1 konečný utomt A = Q, Σ, δ, q 0, F, L = LA. Postupujeme tkto: převrátíme všechny přechody, vytvoříme nový počáteční stv q 0, pltí q 0 / Q 1, ze stvu q 0 budou vést přechody, které po převrácení přechodů vedou z bývlých koncových stvů tj. z momentálních virtuálních počátečních stvů, množin koncových stvů bude obshovt pouze původní počáteční stv, le pokud do jzyk L 1 ptřilo i slovo ε, pk tm zřdíme i stv q 0. Tkže pltí: Q = Q 1 {q 0 },

Kpitol 1 Konečné utomty regulární jzyky 6 F = { {q1 0 } ; ε / L 1 {q 1 0, q 0} ; ε L 1 přechodová funkce: δp, = { {r ; δ 1r, p, Σ} ; p Q 1 {r ; δ 1 r, q f, q f F 1, Σ} ; p = q 0 M Příkld 1.3 Je dán tento jzyk konečný utomt, který ho rozpoznává: L 1 = { b i {1,2} ; i 0 } { b i c ; i 0 } = { b i ; i 0 } {,, c} A 1 = {q 0, q 1, q 2, q 3 }, {, b, c}, δ 1, q 0, {q 2, q 3 } A 1 b c q 0 q 1 q 1 q 2 q 1 q 3 q 2 q 3 q 3 δ 1 q 0, = q 1 δ 1 q 1, = q 2 δ 1 q 1, b = q 1 δ 1 q 1, c = q 3 δ 1 q 2, = q 3 q 0 b q 1 q 2 c q 3 Sestrojíme utomt A rozpoznávjící jzyk LA = L R 1. V digrmu změníme orientci hrn, v předpisu přechodové funkce změníme stv v závorce se stvem z rovnítkem, v tbulce změníme umístění stvu v oznčení řádku stvu v buňce n tomto řádku. Protože utomt A 1 má dv koncové stvy, je třeb vytvořit nový stv s 0, který přejme roli těchto stvů n zčátku výpočtu kždého slov v utomtu A. A = {q 0, q 1, q 2, q 3, s 0 }, {, b, c}, δ, s 0, {q 0 } δs A b c 0, = {q 1, q 2 } δs 0, c = {q 1 } b s 0 q 1, q 2 q,c 1 δq 1, = {q 0 } q 0 q 0 q 1 q 2 s δq 1, b = {q 1 } 0 q 1 q 0 q 1 δq 2, = {q 1 } c q 2 q 1 q 3 δq 3, = {q 2 } q 3 q 2 q 1 δq 3, c = {q 1 } Je zřejmé, že stv q 3 je nedosžitelný, tedy dlším krokem by mohlo být jeho odstrnění. M Důkz Vět 1.2: Ke konečnému utomtu A 1 = Q 1, Σ, δ 1, q0 1, F 1 rozpoznávjícímu jzyk L 1 sestrojíme utomt A = Q, Σ, δ, q 0, F tk, jk bylo popsáno v konstrukci před příkldem. Dokážeme, že tento lgoritmus vytvoří utomt rozpoznávjící jzyk, který je zrcdlovým obrzem jzyk původního utomtu, tedy že LA = LA 1 R. V důkzu budeme počítt s tím, že operce zrcdlového obrzu řetězců je sm k sobě inverzní, tj. w R R = w. Dokzujeme LA 1 R LA: Nechť w LA 1, w R LA 1 R, w = 1 n, n 1.

Kpitol 1 Konečné utomty regulární jzyky 7 v A 1 existuje posloupnost konfigurcí q 1 0, 1 n 1 n... r, n q f, ε, kde r Q 1, q f F 1 podle lgoritmu pro všechny přechody podle δ 1 r, p v utomtu A 1 je vytvořeno δp, r v utomtu A otočení všech přechodů, pro δ 1 r, q f, r Q 1, Σ jsme v A vytvořili δq 0, r v A existuje posloupnost konfigurcí q 0, n n 1 1 r, n 1 1... q 1 0, ε, kde r Q 1, q f F 1 w R LA Dokzujeme LA 1 R LA: Nechť w LA, w = 1 n, n 1. v A existuje posloupnost konfigurcí q 0, 1 2 n s, 1 2 n... s f, ε, kde s Q, s f F podle lgoritmu pro všechny přechody podle δ 1 r, p v utomtu A 1 je vytvořeno δp, r v utomtu A, pro δ 1 s, s f, s Q 1, Σ jsme v A vytvořili δq 0, r v A 1 existuje posloupnost konfigurcí q 1 0, n 2 1... s, 1 s f, ε, kde s Q 1, s f F 1 w R LA 1 Pro prázdné slovo w = ε tvrzení o obou inkluzích pltí tké: právě tehdy, když ε LA 1, pltí podle lgoritmu q 0 F, tedy ε LA ε LA 1 R. 1.2.3 Průnik Vět 1.3 Tříd jzyků rozpoznávných konečnými utomty je uzvřen vzhledem k operci průniku. Následující postup se nám bude hodit i později, podobný lgoritmus totiž budeme potřebovt i u operce rozdílu jzyků. Postup Budeme předpokládt, že některé dv regulární jzyky L 1 L 2 jsou rozpoznávány deterministickými konečnými utomty A 1 = Q 1, Σ 1, δ 1, q0 1, F 1, L 1 = LA 1 A 2 = Q 2, Σ 2, δ 2, q0 2, F 2, L 2 = LA 2, Q 1 Q 2 =. Vytváříme jzyk L = L 1 L 2 utomt A = Q, Σ 1 Σ 2, δ, q 0, F, L = LA.

Kpitol 1 Konečné utomty regulární jzyky 8 Potřebujeme, by utomt A rozpoznávl právě t slov, která rozpoznávjí utomty A 1 A 2. Toho docílíme jednoduše tk, že totéž slovo necháme prlelně zprcovávt ob původní utomty, resp. v utomtu A spustíme prlelní simulci výpočtu původních utomtů. Vyhledáme dvojice přechodů, jeden z utomtu A 1, druhý z utomtu A 2, tkové, že ob tyto přechody lze použít ve stejné situci v nšem přípdě při stejném vstupním signálu. Tkže pokud v prvním utomtu máme přechod δ 1 r, = s v druhém δ 2 u, = v, pk v utomtu A bude přechod δ[r, u], = [s, v]. Množinu stvů výsledného utomtu bude tvořit množin uspořádných dvojic tkových, že první prvek dvojice je stv z Q 1, druhý prvek je stv z Q 2. Tedy se vlstně jedná o vytvoření krtézkého součinu množin Q 1 Q 2, le ve skutečnosti některé jeho prvky nové stvy budou v utomtu A nedosžitelné či ndbytečné, tedy v reálu půjde prvděpodobně o podmnožinu krtézského součinu. Shrňme, jk bude výsledný utomt vypdt: množin stvů je množinou uspořádných dvojic: Q = Q 1 Q 2 = {[x, y] ; x Q 1, y Q 2 } počáteční stv je uspořádná dvojice q 0 = [q 1 0, q2 0 ] množin koncových stvů bude podmnožinou množiny Q obshující jen ty dvojice původních stvů, které jsou v utomtech A 1 A 2 koncové: F = F 1 F 2 = {[x, y] ; x F 1, y F 2 } přechodová funkce δ vychází z přechodových funkcí δ 1 δ 2 : δ[x, y], = [u, v], kde δ 1 x, = u, δ 2 y, = v, Σ 1 Σ 2 M Příkld 1.4 Sestrojíme utomt rozpoznávjící průnik dvou jzyků, potřebujeme k nim ekvivlentní deterministické utomty: L 1 = { i b j ; i, j 0 } = b A 1 = {0, 1}, {, b}, δ 1, 0, {1} L 2 = { b i j ; i, j 0 } = b A 2 = {2, 3, 4}, {, b}, δ 2, 2, {3, 4} Automty pro jzyky L 1 L 2 : A 1 b 0 0 1 1 1 δ 1 0, = 0 δ 1 0, b = 1 δ 1 1, = 1 b 0 1 A 2 b 2 3 3 4 2 4 4 δ 2 2, = 3 δ 2 3, = 4 δ 2 3, b = 2 δ 2 4, = 4 2 b 3 4 Množin stvů bude množinou uspořádných dvojic původních stvů, le z důvodu zkrácení zjednodušení zápisu nebudeme psát čárku oddělující prvky uspořádné dvojice. Sestrojíme utomt A = Q, Σ, δ, [02], F, kde Q = Q 1 Q 2 = {[02], [03], [04], [12], [13], [14]} F = F 1 F 2 = {[13], [14]}

Kpitol 1 Konečné utomty regulární jzyky 9 přechodová funkce δ: A b [02] [03] [03] [04] [12] [04] [04] [12] [13] [13] [14] [14] [14] δ[02], = [03] δ[03], = [04] δ[03], b = [12] δ[04], = [04] δ[12], = [13] δ[13], = [14] δ[14], = [14] [02] [03] b [12] [04] [13] [14] Stv [04] je, jk vidíme, ndbytečný, proto by nebyl problém ho odstrnit. M Důkz Vět 1.3: Je třeb dokázt, že pro jkékoliv slovo w Σ 1 Σ 2 pltí: w LA 1 LA 2 w LA. Budeme používt stejné znčení jko ve výše uvedeném popisu konstrukce. Předpokládáme, že utomty A 1 A 2 jsou deterministické. Dokzujeme LA 1 LA 2 LA: Nechť w LA 1 LA 2, w = n, n 1. v A 1 existuje výpočet q 1 0, w q 1 f, ε, q1 f F 1 o délce n přes posloupnost stvů q 1 0 = r 0,..., r n = q 1 f v A 2 existuje výpočet q 2 0, w q 2 f, ε, q2 f F 2 o délce n přes posloupnost stvů q 2 0 = s 0,..., s n = q 2 f v množině stvů Q budou dle lgoritmu obsženy obsženy stvy [r i, s i ], 0 i n pro přechodovou funkci δ pltí δ[x, y], = [u, v], kde δ 1 x, = u, δ 2 y, = v, Σ 1 Σ 2 v A existuje výpočet [q0 1, q2 0 ], w [qf 1, q2 f ], ε o délce n přes posloupnost stvů [q0 1, q2 0 ] = [r 0, s 0 ],..., [r n, s n ] = [qf 1, q2 f ] w LA Dokzujeme LA 1 LA 2 LA: Nechť w LA, w = n, n 1. v A existuje výpočet [q 1 0, q2 0 ], w [q 1 f, q2 f ], ε, q1 f F 1, q 2 f F 2 o délce n přes posloupnost stvů [q 1 0, q2 0 ] = [r 0, s 0 ],..., [r n, s n ] = [q 1 f, q2 f ] vzhledem k lgoritmu existuje v utomtu A 1 výpočet q 1 0, w q 1 f, ε, q1 f F 1 o délce n přes posloupnost stvů q 1 0 = r 0,..., r n = q 1 f v utomtu A 2 výpočet q 2 0, w q 2 f, ε, q2 f F 2 o délce n přes posloupnost stvů q 2 0 = s 0,..., s n = q 2 f w LA 1 w LA 2 w LA 1 LA 2 Zbývá prověřit lgoritmus pro w = 0. Zde si stčí uvědomit, že [q0 1, q2 0 ] F právě tehdy jen tehdy, pokud q0 1 F 1 zároveň q0 2 F 2. Proto ε LA ε LA 1 LA 2.

Kpitol 1 Konečné utomty regulární jzyky 10 1.2.4 Doplněk Vět 1.4 Tříd jzyků rozpoznávných konečnými utomty je uzvřen vzhledem k operci doplňku jzyk v dné becedě. Postup Sestrojení konečného utomtu rozpoznávjícího doplněk jzyk jiného konečného utomtu nebudeme podrobně probírt, jen si tento lgoritmus stručně nstíníme: vezmeme původní utomt, budeme chtít, by byl deterministický totální, pokud F 1 je původní množin koncových stvů, nová množin koncových stvů bude F = Q F 1. Poznámk: Důkz této věty bude poněkud jiného druhu než jiné, které v těchto skriptech njdeme. Bylo by možné sice vytvořit podobný důkz jko u předchozích vět, le zde si ukážeme, že v některých přípdech to jde i mnohem jednodušeji. Jk víme z předchozího semestru, jzyk je ve skutečnosti množin, se kterou můžeme provádět různé množinové operce včetně sjednocení, průniku doplňku, čehož zde využijeme. Důkz: Pro jkékoliv dv jzyky L 1, L 2 pltí De Morgnovy zákony: L 1 L 2 = L 1 L 2 A zároveň budeme předpokládt, že jzyky L 1, L 2 jsou regulární, tedy ptří do třídy jzyků rozpoznávných konečnými utomty. Důkz povedeme sporem. Předpokládejme tedy, že tříd jzyků rozpoznávných konečnými utomty není uzvřen vzhledem k operci doplňku. Zároveň víme z předchozích vět důkzů, že tto tříd je uzvřen vzhledem k osttním opercím, které se v uvedeném vzthu vyskytují sjednocení průniku. N levé strně uvedeného vzthu je rozhodně regulární jzyk, tedy L 1 L 2 ptří do třídy jzyků rozpoznávných konečnými utomty. Pokud by tto tříd nebyl uzvřen vzhledem k doplňku, pk by nebylo možno tvrdit, že L 1 L 2 jsou regulární, tedy by některý z těchto jzyků nemusel být regulární. Totéž pltí i o celé prvé strně L 1 L 2. N levé strně máme vždy tkový jzyk, který ptří do třídy jzyků rozpoznávných konečnými utomty, le n prvé strně nikoliv spor. Tříd jzyků rozpoznávných konečnými utomty je uzvřen vzhledem k operci doplňku.

Kpitol 1 Konečné utomty regulární jzyky 11 1.2.5 Rozdíl Vět 1.5 Tříd jzyků rozpoznávných konečnými utomty je uzvřen vzhledem k operci rozdílu. Výsledkem rozdílu dvou jzyků je jzyk obshující právě t slov prvního jzyk, která se nencházejí v druhém jzyce. Jk bylo výše nznčeno, postup bude velmi podobný tomu, který jsme probírli u operce průniku, le nvíc budeme poždovt, by ob původní utomty byly totální. Postup Budeme předpokládt, že dv regulární jzyky L 1 L 2 jsou rozpoznávány deterministickými úplnými konečnými utomty A 1 = Q 1, Σ 1, δ 1, q0 1, F 1, L 1 = LA 1 A 2 = Q 2, Σ 2, δ 2, q0 2, F 2, L 2 = LA 2, Q 1 Q 2 =. Vytváříme jzyk L = L 1 L 2 utomt A = Q, Σ 1 Σ 2, δ, q 0, F, L = LA. Totéž slovo necháme prlelně zprcovávt ob původní utomty, resp. v utomtu A spustíme prlelní simulci výpočtu původních utomtů. Tkže pokud v prvním utomtu máme přechod δ 1 r, = s v druhém δ 2 u, = v, pk v utomtu A bude přechod δ[r, u], = [s, v]. Množinu stvů výsledného utomtu bude tvořit množin uspořádných dvojic tkových, že první prvek dvojice je stv z Q 1, druhý prvek je stv z Q 2. Odlišnost postupu oproti operci průniku bude v množině koncových stvů. Ztímco u průniku byly v množině koncových stvů všechny tkové dvojice, kde ob prvky byly v původních množinách koncových stvů výsledný utomt rozpoznávl právě t slov, která rozpoznávly ob původní utomty, v přípdě rozdílu zřdíme do množiny koncových stvů tkové dvojice, kde první prvek je koncový v prvním utomtu zároveň druhý prvek není koncový v druhém utomtu. Shrňme, jk bude výsledný utomt vypdt: množin stvů: Q = Q 1 Q 2 = {[x, y] ; x Q 1, y Q 2 } počáteční stv je uspořádná dvojice q 0 = [q0 1, q2 0 ] množin koncových stvů bude podmnožinou množiny Q: F = F 1 Q 2 F 2 = {[x, y] ; x F 1, y Q 2 F 2 } přechodová funkce δ vychází z přechodových funkcí δ 1 δ 2 : δ[x, y], = [u, v], kde δ 1 x, = u, δ 2 y, = v, Σ 1 Σ 2 M Příkld 1.5 Sestrojíme utomt rozpoznávjící rozdíl jzyků, k nimž máme deterministické totální utomty: L 1 = { i b j ; i, j 0 } = b A 1 = {0, 1, X}, {, b}, δ 1, 0, {1} L 2 = { b i j ; i, j 0 } = b A 2 = {2, 3, 4, Y }, {, b}, δ 2, 2, {3, 4}

Kpitol 1 Konečné utomty regulární jzyky 12 Úplné deterministické utomty pro jzyky L 1 L 2 : A 1 b 0 0 1 1 1 X X X X δ 1 0, = 0 δ 1 0, b = 1 δ 1 1, = 1 δ 1 1, b = X δ 1 X, = X δ 1 X, B = X b 0,b b 1 X A 2 b 2 3 Y 3 4 2 4 4 Y Y Y Y δ 2 2, = 3 δ 2 2, b = Y δ 2 3, = 4 δ 2 3, b = 2 δ 2 4, = 4 δ 2 4, b = Y δ 2 Y, = Y δ 2 Y, b = Y 2 b b 3,b b 4 Y Sestrojíme utomt A = Q, Σ, δ, [02], F, kde Q = Q 1 Q 2 = {[02], [03], [04], [0Y ], [12], [13], [14], [1Y ], [X1], [X2], [X3], [X4], [XY ]} F = F 1 Q 2 F 2 = {[12], [1Y ]} přechodová funkce δ: A b δ[02], = [03] δ[14], = [14] [02] [03] [1Y ] δ[02], b = [1Y ] δ[14], b = [XY ] [03] [04] [12] δ[03], = [04] δ[1y ], = [1Y ] [04] [04] [1Y ] δ[03], b = [12] δ[1y ], b = [XY ] [0Y ] [0Y ] [1Y ] δ[04], = [04] δ[x2], = [X3] [12] [13] [XY ] δ[04], b = [1Y ] δ[x2], b = [XY ] [13] [14] [X2] δ[0y ], = [0Y ] δ[x3], = [X4] [14] [14] [XY ] δ[0y ], b = [1Y ] δ[x3], b = [X2] [1Y ] [1Y ] [XY ] δ[12], = [13] δ[x4], = [X4] [X2] [X3] [XY ] δ[12], b = [XY ] δ[x4], b = [XY ] [X3] [X4] [X2] δ[13], = [14] δ[xy ], = [XY ] [X4] [X4] [XY ] δ[13], b = [X2] δ[xy ], b = [XY ] [XY ] [XY ] [XY ] Digrm celého výsledného utomtu nemá smysl kreslit, b [02] [03] [12] byl by velmi nepřehledný. Proto je lepší nejdřív provést b redukci postup necháme n čtenáři, po které nám z 12 stvů zbývá pouze 5: b [1Y] [04] M Důkz Vět 1.5: Je třeb dokázt, že pro jkékoliv slovo w Σ 1 Σ 2 pltí: w LA 1 LA 2 w LA. Budeme používt stejné znčení jko ve výše uvedeném popisu konstrukce. Předpokládáme, že utomty A 1 A 2 jsou deterministické totální. Dokzujeme LA 1 LA 2 LA: Nechť w LA 1 LA 2, w = n, n 1.

Kpitol 1 Konečné utomty regulární jzyky 13 v A 1 existuje výpočet q 1 0, w q 1 f, ε, q1 f F 1 o délce n přes posloupnost stvů q 1 0 = r 0,..., r n = q 1 f v A 2 existuje výpočet q 2 0, w q 2 g, ε, q 2 g Q 2 F 2 o délce n přes posloupnost stvů q 2 0 = s 0,..., s n = q 2 x v množině stvů Q budou dle lgoritmu obsženy obsženy stvy [r i, s i ], 0 i n pro přechodovou funkci δ pltí δ[x, y], = [u, v], kde δ 1 x, = u, δ 2 y, = v, Σ 1 Σ 2 v A existuje výpočet [q 1 0, q2 0 ], w [q 1 f, q2 g], ε o délce n přes posloupnost stvů [q 1 0, q2 0 ] = [r 0, s 0 ],..., [r n, s n ] = [q 1 f, q2 g] w LA Dokzujeme LA 1 LA 2 LA: Nechť w LA, w = n, n 1. v A existuje výpočet [q 1 0, q2 0 ], w [q 1 f, q2 g], ε, q 1 f F 1, q 2 g Q 2 F 2 o délce n přes posloupnost stvů [q 1 0, q2 0 ] = [r 0, s 0 ],..., [r n, s n ] = [q 1 f, q2 g] vzhledem k lgoritmu existuje v utomtu A 1 výpočet q 1 0, w q 1 f, ε, q1 f F 1 o délce n přes posloupnost stvů q 1 0 = r 0,..., r n = q 1 f v utomtu A 2 výpočet q 2 0, w q 2 g, ε, q 2 g Q 2 F 2 o délce n přes posloupnost stvů q 2 0 = s 0,..., s n = q 2 g w LA 1 w / LA 2 w LA 1 LA 2 Pro w = 0: pltí [q0 1, q2 0 ] F právě tehdy jen tehdy, pokud q1 0 F 1 ε LA ε LA 1 LA 2. q 2 0 Q 2 F 2. Tedy 1.3 Kritéri regulárnosti jzyk Jk poznt, zd je dný jzyk regulární? Ztím víme, že jzyk je regulární, jestliže ho lze reprezentovt pomocí regulárního výrzu, k němu lze sestrojit ekvivlentní konečný utomt, k němu lze sestrojit ekvivlentní regulární grmtiku. Existují všk i jiné možnosti, které obvykle slouží k popření regulárnosti dokázání, že dný jzyk není regulární. To je užitečné zvláště tehdy, když se nám nedří vytvořit ekvivlentní regulární výrz, konečný utomt ni grmtiku, le zároveň si nejsme jisti, proč buď jzyk sice je regulární, le uvedené postupy jsou příliš složité, nebo jzyk dooprvdy regulární není. 1.3.1 Pumping lemm pro regulární jzyky Jednou z možností, jk dokázt, že dný jzyk není regulární, je Pumping lemm pro regulární jzyky. Tky se nzývá lemm o vkládání nebo pumpovcí vět pro regulární jzyky. Jedná se o jednu z tzv. strukturálních vlstností regulárních jzyků, tedy její tvrzení se vzthuje ke struktuře slov jzyk. Nejdřív si vysvětlíme princip, ze kterého Pumping lemm vychází, potom teprve přejdeme k smotnému lemmtu.

Kpitol 1 Konečné utomty regulární jzyky 14 Předpokládejme, že L je regulární jzyk. Víme, že v tom přípdě je možné k němu sestrojit ekvivlentní konečný utomt. b b p 0 p 1 p 2 Jestliže je tento jzyk nekonečný, bude v digrmu tohoto utomtu nejméně jedn smyčk. N obrázku vprvo vidíme digrm, b ve kterém je smyčk přes jeden stv ve stvu p 0 smotná smyčk generuje množinu slov, dále smyčk přes dv stvy p 1, p 2 nvíc smyčk přes všechny tři stvy. I tk jednoduchý jzyk jko npříkld b by měl v digrmu svého utomtu smyčku, protože je nekonečný. Vezměme z tkového jzyk dosttečně dlouhé slovo. Co je to dosttečně dlouhé slovo? Jednoduše tkové, o kterém se dá říct, že není krátké. Nejlepší je zvolit nikoliv konkrétní slovo, le reprezentci množiny slov s podobnou strukturou tkovou, kde máme v zápisu index ten nám zjistí dosttečnou délku slov. Npříkld b i rozhodně předstvuje množinu, ve které máme i dosttečně dlouhá slov, stčí si pod indexem i předstvit nějké hodně velké číslo. Proč potřebujeme dosttečně dlouhé slovo? tkového slov máme jistotu, že při jeho vyhodnocování konečným utomtem bude nutné přejít minimálně jednou přes některou smyčku. Když víme, že přes některou smyčku určitě půjdeme, můžeme si s ní trochu pohrát přes tu smyčku půjdeme opkovně vícekrát, obecně jiný počet krát než v původním slově. Jestliže jsme pořád v tomtéž konečném utomtu, pk musí pltit, že slovo, které tkto zprcujeme jiný počet průchodů přes smyčku, tky bude ptřit do jzyk utomtu. Npříkld z jzyk utomtu n obrázku vprvo si můžeme vybrt slovo k b 2. Pro různé indexy k získáme tyto posloupnosti výpočtu: k = 0: p 0, bb p 1, b p 2, ε k = 1: p 0, bb p 0, bb p 1, b p 2, ε k = 2: p 0, bb p 0, bb p 0, bb p 1, b p 2, ε k = 3: p 0, bb p 0, bb p 0, bb p 0, bb p 1, b p 2, ε td. Od indexu 1 vede cest v grfu vždy minimálně jednou přes smyčku ve stvu p 0, přičemž vždy dné slovo ptří do jzyk rozpoznávného utomtem. Opkovným procházením smyčky pumpujeme dnou část slov pořád dokol, proto se probírné větě říká Pumping lemm. Vyzkoušíme jiné slovo pro tentýž jzyk utomt, npříkld bbbb k. Je zřejmé, že teď cílíme n smyčku přes stvy p 1, p 2. Pro různé indexy k získáme tyto posloupnosti výpočtu: k = 0: p 0, bb p 0, bb p 1, b p 2, ε k = 1: p 0, bbbb p 0, bbbb p 1, bbb p 2, bb p 1, b p 2, ε k = 2: p 0, bbbbbb p 0, bbbbbb p 1, bbbbb p 2, bbbb p 1, bbb p 2, bb p 1, b p 2, ε td. Opět všechn tkto npumpovná slov ptří do jzyk generovného utomtem. Z toho vyplývá, že typickou vlstností všech regulárních jzyků je: pokud njdeme dosttečně dlouhé slovo, můžeme jeho část tu, která jde přes jkoukoliv smyčku pumpovt opkovt v jkémkoliv počtu kroků ovšem vždy celou smyčku, nestčí jen její část, výsledné slovo bude tké ptřit do dného jzyk. Zbývá poslední otázk: jk zvolit dosttečnou délku slov? Podívejme se n náš utomt n předchozí strně. Stčí, když zvolíme slovo o délce přeshující počet stvů utomtu, už máme

Kpitol 1 Konečné utomty regulární jzyky 15 dosttečnou délku, protože v tom přípdě je jisté, že výpočet půjde přes nejméně jeden stv lespoň dvkrát. V nšem přípdě potřebujeme slovo o délce větší než 3. Lemm 1.6 Pumping lemm pro regulární jzyky Jestliže L je regulární jzyk, pk existuje přirozené číslo p > 0 tkové, že pro kždé slovo w L tkové, že w > p, existuje lespoň jedno rozdělení slov w ve formě w = x y z, kde y ε x y p k 0 je x y k z L 1.4 V těchto větách si můžeme všimnout, že se ve skutečnosti střídjí existenční obecný kvntifikátor. vedeme si totéž lemm v jiné formulci, přičemž podmínku y 0 zpíšeme jko y > 0: Lemm 1.7 Pumping lemm pro regulární jzyky jiné znění L je regulární jzyk p N, p > 0 tkové, že w L, w > p rozdělení w = x y z y > 0 x y p k 0 je x y k z L 1.5 Poznámk: Všimněme si ještě jedné důležité věci ve větě se nic neříká ni o utomtu, ni o stvech. Je tm prostě podmínk n nějké číslo p, le nic víc. Ve větě totiž vůbec žádný utomt nepotřebujeme, stčí, když zvolíme dosttečně velké číslo p ideálně s využitím vhodného indexu. Zmínk o utomtu stvech by dokonce byl škodlivá, protože jk si později ukážeme tuto větu používáme v důkzech, že určitý jzyk není regulární tedy pro něj vlstně ni žádný konečný utomt nelze sestrojit. Jinými slovy pokud ve větě někdo zčne u zkoušky mluvit o utomtu či stvech, letí... Pumping lemm pro regulární jzyky se dá používt dvěm způsoby: 1. O jzyce L víme, že je regulární, chceme vystihnout strukturu dlouhých slov. 2. Chceme zjistit, zd je jzyk L regulární. Nejdřív se podíváme n první možnost. M Příkld 1.6 Vezměme jzyk L = { bc n ; n 0}. Tento jzyk je regulární, q 0 q 1 q 2 protože lze sestrojit ekvivlentní regulární výrz R = bc, b regulární grmtiku konečný utomt, jehož digrm vidíme c vprvo. Jzyk L je nekonečný v digrmu jeho konečného utomtu je smyčk přes stvy q 1, q 2, q 3. q 3 Podle Pumping lemm pro regulární jzyky pro tento jzyk existuje p > 0 tkové, že všechn slov jzyk delší než p dokážeme rozdělit n tři části splňující stnovené podmínky. Můžeme zvolit npříkld p = 10, le lepší je jednoduše se spolehnout n vhodný index jko zákldní

Kpitol 1 Konečné utomty regulární jzyky 16 slovo zvolit w = bc i pro dosttečně velký index i tento předpis mimochodem předstvuje všechn dlouhá slov jzyk. Ve větě se píše, že pro kždé tkové slovo existuje lespoň jedno rozdělení, tedy stčí njít jedno. Můžeme zvolit třeb w = x y z = bc bc i 1, tedy prostřední část y = bc. Ověříme, zd pumpování pro toto rozdělení funguje oznčme w k = x y k z: w 0 = bc 0 bc i 1 = bc i 1 L w 1 = bc 1 bc i 1 = bc i L w 2 = bc 2 bc i 1 = bc i+1 L w 3 = bc 3 bc i 1 = bc i+2 L td. Rozdělení jsme zvolili dobře, pumpovné slovo vždy ptří do jzyk L. Pokud bychom zvolili šptné rozdělení zde npříkld w = bc bc i 1, po pumpování bychom získli slov neptřící do dného jzyk. Ve větě se totiž nepíše, že důsledek pltí pro všechn možná rozdělení, le pro nejméně jedno možné rozdělení. Možných správných rozdělení ovšem může být víc než jedno, zde bychom npříkld jko prostřední část mohli zvolit třeb bc 2. Tktéž pokud njdeme víc různých smyček, přidávjí se dlší možnosti rozdělení. M Poznámk: vědomme si, že Pumping lemm má formu implikce, nikoliv ekvivlence. Říká: jzyk je regulární jzyk splňuje dnou vlstnost Proč je to tk důležité? Existují totiž jzyky, které sice nejsou regulární, le dnou vlstnost mjí tké, v jejich přípdě tedy obrácené tvrzení nepltí. Npříkld jzyk L = {b m n c n ; m, n 1} není regulární vyžduje synchronizci dvou částí slov, což konečný utomt nedokáže, le přesto existuje p > 0 tkové, že pro kždé dosttečně dlouhé slovo jzyk dokážeme njít rozdělení pro pumpování, npříkld w = ε b b i 1 j c j. žitečnějším využitím Pumping lemm je druhý uvedený způsob důkz, že dný jzyk není regulární. Zde využíváme nepřímý důkz. Původní implikci jzyk je regulární jzyk splňuje dnou vlstnost ekvivlentně uprvíme, čímž vznikne tvrzení jzyk splňuje dnou vlstnost jzyk je regulární jzyk nesplňuje dnou vlstnost jzyk není regulární Poznámk: Proč to můžeme provést? Vzpomeňte si n ekvivlentní úprvy logických výrzů: A B B A

Kpitol 1 Konečné utomty regulární jzyky 17 Je třeb si uvědomit, jký vliv má negce n kvntifikátory. Srovnejte původní tvr podmínky ve větě tvr po převrácení: L L REG p > 0 w: w > p rozdělení... k 0: x y k z L p > 0 w: w > p rozdělení... k 0: x y k z / L L / L REG Postup Pokud tedy pomocí této věty chceme dokázt, že jzyk L není regulární, postupujeme tkto: vybereme dosttečně dlouhé slovo w L, stnovíme strukturu tohoto slov určíme možná rozdělení vyhovující podmínkám w = x y z y ε x y p, ukážeme, že žádné z těchto rozdělení neodpovídá podmínce k 0 je x y k z L, tedy pro kždé rozdělení njdeme číslo k tkové, že x y k z / L obvykle stčí vyzkoušet k = 0 nebo k = 2, pokud se to nepodří, vrcíme se k prvnímu bodu hledáme dlší dosttečně dlouhé slovo. Role čísl p je ve větě dvojí předně nám říká, že slovo má být oprvdu dosttečně dlouhé, dále ve vzthu x y p stnovuje horní omezení délky prvních dvou částí slov po rozdělení. Omezení je zde proto, bychom v dném slově zvolili vždy první smyčku zlev, má to být první možnost opkování, n kterou ve slově nrzíme. Z nšeho pohledu je důsledek tkový, že pokud při specifikci dosttečně dlouhého slov použijeme písmenný index, pk by se tento index neměl v prvních dvou částech vůbec vyskytovt. M Příkld 1.7 kážeme pomocí Pumping lemm, že jzyk L = { n b n ; n 0} není regulární. Jko dosttečně dlouhé slovo jzyk si zvolíme w = i b i pro nekonkrétní velké číslo i. Dále stnovíme různá možná rozdělení tohoto slov ke kždému zjistíme, jestli se dá pumpovt. Rozdělení w = x y z má být tkové, že prostřední část musí obshovt lespoň jeden symbol y ε první dvě části mjí shor omezenou délku tj. nemůžeme v nich použít index i. Postupujeme tk, že určujeme místo ve slově, ve kterém by mohl být prostřední tedy hrniční část slov. Jsou tyto možnosti: prostřední část y bude n zčátku první části slov, prostřední část y bude v první části slov, le ne zcel n zčátku. Dlší možnosti odpdjí, protože musí pltit x y < p. Nejdřív tedy prověříme možnost x = ε, y = m, z = i m b i, kde m > 0 je číslo m < p nebudeme zvlášť prověřovt m = 1, m = 2,..., důkz by se poněkud protáhl. Pk je tedy w = ε m i m b i, po pumpování w k = ε m k i m b i = m k+i m b i = mk 1+i b i. Npříkld pro k = 0 dostáváme w 0 = i m b i, přičemž m > 0. Je zřejmé, že w 0 / L. K témuž závěru bychom došli, kdybychom zvolili jkékoliv číslo k 1, dobře se prcuje npříkld s k = 2.

Kpitol 1 Konečné utomty regulární jzyky 18 Druhá možnost nám dává x = r, y = s, z = i r s b i, kde r, s > 0, r + s < p. Pk pltí w = r s i r s b i, po pumpování w k = r s k i r s b i = r+s k+i r s b i = s k+i s b i = sk 1+i b i Opět můžeme zvolit k = 0, dostáváme w 0 = i s b i / L, protože s > 0. Všimněte si, že první možnost rozdělení slov w je vlstně speciálním přípdem druhé možnosti pro r = 0. Tento důkz by tedy bylo možné ještě zkrátit. M Poznámk: Pumping lemm by mělo pltit pro všechny regulární jzyky. Pltí i pro konečné jzyky? Víme, že kždý konečný jzyk ptří do třídy regulárních jzyků lze pro něj vytvořit ekvivlentní konečný utomt, tkže by vět měl pltit i pro konečné jzyky. Podívejme se n znění věty pro kždé slovo w L tkové, že w > p... Pokud číslo p položíme rovno počtu stvů utomtu, pk v konečném jzyce L neexistuje žádné slovo delší než p smozřejmě jink by v digrmu utomtu musel být smyčk jzyk by nebyl konečný, proto množin slov delších než p je prázdná. Jenže v tom přípdě můžeme tvrzení pro kždé... existuje... povžovt z pltné, protože pro prvky prázdné množiny vlstně pltí jkákoliv podmínk klidně můžeme kždé slovo množiny rozkládt n tři části td., protože v reálu to provedeme 0 není co testovt. Důkz Pumping lemm pro regulární jzyky: Tto vět je implikce, tedy důkz povedeme pouze jedním směrem. Předpokládejme, že jzyk L je rozpoznáván konečným utomtem A = Q, Σ, δ, q 0, F. Máme dokázt, že pro tkový jzyk existuje číslo p tkové, že kždé slovo delší než p lze rozdělit n tři části tk, jk je ve větě popsáno. Máme dokázt, že tkové číslo existuje, proto si můžeme zvolit volíme p = crdq, tedy počet prvků množiny stvů. Nechť M = {w L ; w > p} je množin všech slov jzyk L delších než p. Pokud je tto množin prázdná, tvrzení věty pltí, jk jsme si přečetli v poznámce před tímto důkzem. Dále tedy předpokládejme, že tto množin není prázdná. Tvrzení věty má pltit pro všechny prvky množiny M, tedy dále budeme prcovt s jkýmkoliv slovem w M, oznčme w = n. Protože w L, musí v utomtu A existovt kceptující výpočet tohoto slov, to postupně přes n+1 stvů. Poněvdž n > p p je počet stvů utomtu, musí existovt minimálně jeden stv ve skutečnosti minimálně dv stvy tkový, který se v této posloupnosti stvů vyskytuje více než jednou.... Oznčme q Q první tkový stv posloupnosti výpočtu, který se v posloupnosti y vyskytuje více než jednou. Pk můžeme nši q 0... q... q f posloupnost stvů rozdělit n tři části, jk je x z nznčeno n obrázku vprvo první úsek oznčený x povede od počátečního stvu q 0 k prv-

Kpitol 1 Konečné utomty regulární jzyky 19 nímu výskytu stvu q v posloupnosti výpočtu, pk pokrčujeme smyčkou k druhému výskytu q v posloupnosti výpočtu to je druhý úsek oznčený y zbytek slov je zprcován v třetím úseku oznčeném z n nějž nekldeme žádné poždvky. Výpočet tedy můžeme zpst tkto: q 0, x y z q, y z + q, z q f, ε Výpočet slov w k = x y k z pro všechn k 0 bude pk následující: q 0, x y k z q, y k z } +.{{.. + } q, z q f, ε k-krát zprcujeme y Tím jsme dokázli, že pro jkékoliv slovo w L delší než p lze njít rozdělení toho slov w = x y z tkové, že w k = x y k z L protože pokud pro slovo w k dokážeme sestrojit posloupnost výpočtu, pk toto slovo ptří do jzyk L. 1.3.2 Využití uzávěrových vlstností Tříd regulárních jzyků resp. jzyků rozpoznávných konečnými utomty je uzvřen vzhledem mnoh různým opercím, čehož lze využít i v důkzech neregulárnosti. Nejužitečnější opercí je v tomto smyslu průnik. M Příkld 1.8 Dokážeme, že jzyk L = {w {, b} ; w = w b } není regulární. Tento jzyk obshuje všechn slov nd becedou {, b} tková, která obshují stejný počet symbolů jko b. Důkz povedeme nepřímo budeme předpokládt, že L je regulární, postupně dojdeme ke sporu. Jestliže tedy je jzyk L regulární, pk by jeho průnik s jkýmkoliv jiným regulárním jzykem byl tky regulární jzyk protože tříd regulárních jzyků je uzvřen vzhledem k operci průniku. Víme, že jzyk R = { i b j ; i, j 0} = b je regulární. Jzyk L R vypdá tkto: L R = {w {, b} ; w = w b } { i b j ; i, j 0} = { i b i ; i 0} Jenže jzyk L R není regulární to jsme n předchozích stránkách dokázli pomocí Pumping lemm. Došli jsme ke sporu tedy jzyk L není regulární. M 1.3.3 Nerodov vět V této sekci budeme potřebovt, by konečné utomty, se kterými budeme prcovt, byly deterministické měly redukovnou množinu stvů především odstrněné nedosžitelné stvy ideálně i ndbytečné. Pro připomenutí: nedosžitelné stvy se odstrňují tk, že rekurzivním lgoritmem zjistíme, které stvy jsou dosžitelné: S 0 = {q 0 } S i+1 = S i {q Q ; p S i, Σ: δp, = q}, i 0 A teď trochu lgebry budeme se zbývt ekvivlencemi kongruencemi. Víme, že ekvivlence je tková relce, která splňuje tyto tři vlstnosti: je reflexivní, symetrická trnzitivní.

Kpitol 1 Konečné utomty regulární jzyky 20 Definice 1.7 Rozkld n třídy ekvivlence Relce ekvivlence je binární relce n dné množině M, která množinu M dělí n vzájemně disjunktní podmnožiny. Tyto podmnožiny nzýváme třídy ekvivlence proces jejich vytvoření je rozkld množiny n třídy ekvivlence. Třídu ekvivlence n množině M znčíme podle kteréhokoliv prvku této třídy: [], kde M. Pltí [] = {b M ; b }. Fktorovou množinu, tedy rozkld množiny M podle ekvivlence, znčíme M/ pltí M/ = M []. M Příkld 1.9 Aby bylo jsné, jk se používá rozkld n třídy ekvivlence, ukážeme jej n této ekvivlenci: Nechť je relce n množině přirozených čísel s nulou N 0 tková, že, b N: b mod 5 = b mod 5 Provádíme tedy rozkld množiny n třídy ekvivlence podle zbytku po dělení číslem 5. Jednotlivé třídy vypdjí tkto: [0] = {0, 5, 10, 15,...} [1] = {1, 6, 11, 16,...} [2] = {2, 7, 12, 17,...} [3] = {3, 8, 13, 18,...} [4] = {4, 9, 14, 19,...} Jedná se o ekvivlenci je reflexivní kždý prvek je ekvivlentní sám se sebou, symetrická pro kždé dv prvky pltí b b trnzitivní pro jkékoliv tři prvky pltí b c c. Fktorizcí jsme vytvořili celkem pět tříd rozkldu. Tyto třídy jsou nvzájem disjunktní nenjdeme žádný prvek, který by ptřil do více než jedné třídy zároveň jejich sjednocením je celá původní množin: N 0 = [0] [1] [2] [3] [4] M Definice 1.8 Index ekvivlence Index ekvivlence definovné n množině M je počet tříd rozkldu M/. Pokud je počet tříd rozkldu nekonečný, je indexem ekvivlence. Index ekvivlence z předchozího příkldu je 5, protože rozkldem jsme získli pět tříd rozkldu. V příkldu jsme si ukázli relci ekvivlence definovnou n množině přirozených čísel s nulou, dále se změříme n ekvivlenci definovnou n množině Σ řetězců nd dnou becedou. Definice 1.9 Prvá kongruence Nechť Σ je beced nechť je relce ekvivlence n množině Σ. Říkáme, že relce je prvou kongruencí zprv invrintní, pokud pro kždé u, v, w Σ pltí u v u w v w.

Kpitol 1 Konečné utomty regulární jzyky 21 Poznámk: Všimněte si, že vlstně vůbec neodbočujeme od konečných utomtů v definici prvé kongruence vidíme, že k prvkům řetězcům přidáváme zprv dlší prvky, co si provádí konečný utomt během výpočtu slov? Postupně zprv přidává dlší dlší rozpoznné symboly. Lemm 1.8 Nechť je relce ekvivlence n množině Σ. Relce je prvou kongruencí právě tehdy, když u, v Σ, Σ pltí u v u v. Důkz: Jedná se vlstně o vrici předchozí definice, kdy zprv přidáváme místo řetězce právě jeden symbol. Důkz jedním směrem definice vět je triviální, protože tvrzení lemmtu je vlstně okleštěním tvrzení z definice. Důkz druhým směrem vět definice lze provést mtemtickou indukcí dle délky slov w: Báze: w = 0: triviální u v u ε v ε Předpokld: Předpokládejme, že vzth pltí pro w Σ tkové, že 0 w n. Zjistíme, zd vzth pltí i pro w = w, Σ, tedy w = n + 1. Krok indukce: Jestliže podle předpokldu u v u w v w, kde w = n, pk můžeme využít trnzitivitu tvrzení z lemmtu: u w v w u w v w = u w v w. Vět 1.9 Nerodov vět Nechť L je jzyk nd becedou L. Pk tto tvrzení jsou ekvivlentní: 1. L je rozpozntelný konečným utomtem tj. je to regulární jzyk. 2. L je sjednocením některých tříd rozkldu určeného prvou kongruencí L n Σ s konečným indexem. Autorem Nerodovy věty je Anil Nerode. kážeme si, jkým způsobem je možné větu pro testování regulárnosti použít. M Příkld 1.10 Vezměme jzyk L = { n b n ; n 0}. Pomocí Pumping lemm jsme dokázli, že tento jzyk není regulární, teď provedeme důkz téhož tvrzení pomocí Nerodovy věty. Předně určíme rozkld tříd ekvivlence vzhledem k becedě jzyk, která je Σ = {, b}. Dotyčný rozkld je {, b} / L, kdyby jzyk L byl regulární, pk by podle Nerodovy věty byl sjednocením některých tříd rozkldu určeného prvou kongruencí s konečným indexem. Tento index prcovně oznčíme k tj. existuje právě k tříd rozkldu pro ekvivlenci L, tuto konstntu budeme používt i v dlší části důkzu. Relci L nemusíme pro účely důkzu přímo určovt, stčí vědět, že se jedná o prvou kongruenci.

Kpitol 1 Konečné utomty regulární jzyky 22 To, že jzyk L není regulární, tedy dokážeme jednoduše tk, že njdeme dvě slov u, v Σ tková, že sice ptří do stejné třídy rozkldu, le jedno z nich ptří do L druhé ne. Vezmeme slov b, 2 b,..., k b, k+1 b Σ. Protože rozkld Σ / L má k tříd, budou minimálně dvě z těchto k + 1 slov v téže třídě oznčme je i b, j b pro nějké 1 i < j k + 1, tedy i b L j b. Protože L je zprv invrintní, mělo by pltit i b b i 1 L j b b i 1, po zřetězení i b i L j b i, le zároveň pltí i < j, tedy i j. Proto i b i L, kdežto j b i / L. Z toho vyplývá, že jzyk L není regulární nšli jsme dvě slov, která ptří do stejné třídy ekvivlence, le jedno z nich ptří do jzyk L druhé ne. M Nerodov vět určuje tvrzení, které je ekvivlencí, stnovuje tedy nutnou postčující podmínku pro regulárnost jzyk. Jinými slovy podle toho, zd je či není splněn podmínk 2 věty, můžeme přímo určit, zd dný jzyk je či není regulární. Oproti tomu Pumping lemm neurčuje ekvivlenci je pouze implikcí, tedy jde o nutnou podmínku, nikoliv postčující. M Příkld 1.11 Použijeme opět becedu Σ = {, b}. Definujeme ekvivlenci L n množině Σ přímo určením množin rozkldu: [ε] = {ε} [] do této třídy zřdíme slov odpovídjící výrzu b [b] do této třídy zřdíme slov odpovídjící výrzu b X všechn osttní slov nd dnou becedou. Vzhledem k poslední uvedené třídě můžeme tvrdit, že sjednocením všech tříd získáme původní množinu Σ, zároveň jsou všechny vytvořené třídy po dvou nvzájem disjunktní kždé slovo nd becedou Σ ptří právě do jedné třídy. Ověříme, zd se jedná o prvou kongruenci. Nejjednodušší to bude tím, že sestrojíme konečný utomt, jehož jednotlivé koncové stvy budou odpovídt prvním třem třídám rozkldu dále jeden nekoncový bude předstvovt poslední třídu. N obrázku vprvo vidíme digrm tkto sestrojeného utomtu. Tento utomt je deterministický totální díky [ε] [] q b b b [b] X,b stvu X, který plní roli odpdkového koše, rozpoznávný jzyk je L = ε + b + b. Díky determinismu je zprcování jkéhokoliv slov nd becedou Σ ukončeno právě v jednom stvu koncovém, pokud slovo ptří do jzyk L. Jk vidíme, Nerodov vět vlstně vystihuje zákldní strukturální chrkteristiku regulárních jzyků, vychází z toho, že regulární jzyk lze reprezentovt sjednocením konečného počtu jednodušších regulárních výrzů. Kždá tříd rozkldu pk odpovídá regulárnímu výrzu, jehož vyhodnocení v konečném utomtu je ukončeno v jednom konkrétním koncovém stvu. Tkovou třídu rozkldu můžeme reprezentovt buď některým ze slov ptřících do dné třídy, nebo oznčením příslušného koncového stvu. M

Kpitol 1 Konečné utomty regulární jzyky 23 Účelem vytvoření následující definice je možnost vytvoření přehlednějšího zápisu výpočtu slov v konečném utomtu, zápis využijeme tké v důkzu Nerodovy věty. Definice 1.10 Rozšířená přechodová funkce Nechť A = Q, Σ, δ, q 0, F je konečný utomt. Rozšířená přechodová funkce v tomto utomtu je prciální funkce δ : Q Σ Q, kde δ q, ε = q 1.6 δ q, w = δδ q, w, 1.7 pokud přechody n prvé strně předpisu jsou definovány pokud je A totální utomt, pk jsou vždy definovány. Tkto definovná funkce nám zkrátí zápis, npříkld δ q, w = r v deterministickém utomtu znmená, že výpočet slov w zčínjící ve stvu q skončí ve stvu r po tolik krocích, jká je délk slov w. Tkže jzyk rozpoznávný utomtem A můžeme zpst tkto: LA = {w Σ ; δ q 0, w F } 1.8 Důkz Nerodov vět: Jedná se o ekvivlenci dvou tvrzení, tedy musíme dokázt dvě k sobě opčné implikce. Tvrzení 1 říká, že jzyk L je regulární, tvrzení 2 určuje, že L je sjednocením některých tříd rozkldu určeného prvou kongruencí L n Σ s konečným indexem. 1 2: Nechť je jzyk L je regulární, tedy lze sestrojit ekvivlentní deterministický totální konečný utomt A = Q, Σ, δ, q 0, F bez nedostupných stvů. Definujeme relci L n množině Σ předpisem x, y Σ : x L y def δ q 0, x = δ q 0, y tj. dvě slov nd dnou becedou jsou ekvivlentní právě tehdy, když jejich výpočet v utomtu A končí ve stejném stvu pozor, není řečeno, že končí úspěšně, dotyčný stv nemusí být koncový. Je zřejmé, že relce ekvivlence L má konečný index, protože tříd rozkldu je mximálně tolik, kolik je stvů v utomtu crdq, přičemž množin Q je konečná. Je to prvá kongruence, což plyne z definice rozšířené přechodové funkce δ. Jzyk L je sjednocením některých tříd rozkldu určeného prvou kongruencí L n Σ, protože může být zpsán následovně: L = q F {w Σ ; δ q 0, w = q} 1.9 2 1: Nechť jzyk L je sjednocením některých tříd rozkldu určeného prvou kongruencí L n Σ s konečným indexem. Jednotlivé třídy oznčíme [u], kde u [u] je některým prvkem třídy [u]. Sestrojíme konečný utomt A = Q, Σ, δ, q 0, F tkto: Q = Σ / L stvy utomtu budou jednotlivé třídy rozkldu; protože ekvivlence L má konečný index, tké množin Q bude konečná,

Kpitol 1 Konečné utomty regulární jzyky 24 funkci δ určíme jko funkci přechodu mezi třídmi: δ[u], = [u]; motivce byl ukázán v příkldu výše, protože je L prvou kongruencí, nezávisí náš zápis n volbě reprezentntů třídy, q 0 = [ε], F obshuje právě stvy vzniklé ze tříd rozkldu, jejichž sjednocení dá jzyk L. Pro jkékoliv slovo w Σ lze indukcí podle délky slov ukázt, že δ [ε], w = [w], pltí w Σ w L [w] F δ [ε], w F 1.10 Proto můžeme tvrdit, že LA = L. 1.4 Minimlizce konečného utomtu Z minulého semestru víme, jk vytvořit redukovný utomt, tedy redukovt množinu stvů utomtu. Ovšem nedá se tvrdit, že tkto vytvořený utomt je pro dný jzyk nejmenší možný co se týče množství stvů. Může totiž existovt ekvivlentní utomt s ještě menším množstvím stvů npříkld může být možné ještě dál prcovt s některými cykly či sdružovt konce cest v utomtu, čehož redukcí nedosáhneme. Ztímco při redukci prcujeme pouze se syntxí grfem, kdy nebereme v úvhu ohodnocení hrn, nyní se soustředíme i n sémntiku grf včetně ohodnocení. Účelem minimlizce nemusí být nutně minimlizce smotná, může být pro nás pouze prostředkem k jinému účelu npříkld pokud chceme zjistit, zd dv n pohled různé konečné utomty rozpoznávjí tentýž jzyk, pk ob utomty minimlizujeme pk jednoduše porovnáme podle stvů. Následující definice by pro nás měl být triviální, protože pod pojmem ekvivlence utomtů jsme i dřív rozuměli jejich jzykovou ekvivlenci: Definice 1.11 Jzykově ekvivlentní konečné utomty Dv utomty A 1 A 2 jsou jzykově ekvivlentní, jestliže LA 1 = LA 2. Nyní můžeme definovt minimální utomt: Definice 1.12 Minimální utomt Konečný utomt A je minimální minimlizovný, jestliže neexistuje žádný jiný konečný utomt A s menším množstvím stvů, pro který by pltilo LA = LA. Jk lze provést minimlizci? Algoritmus je zložen n myšlence, že pokud cesty vedoucí ze dvou různých stvů do koncových stvů určují ekvivlentní množiny rozpoznávných slov, pk jsou tyto dv stvy změnitelné jeden z nich můžeme odstrnit tedy tkové dv stvy ztotožníme/shrneme do jediného. Je zřejmé, že nemůžeme npříkld ztotožnit dv stvy tkové, že jeden z nich je koncový druhý ne. A pokud dv stvy ztotožníme shrneme, musíme ztotožnit i jejich následníky n cestě grfem digrmu utomtu.