Úvod do Teoretické Informatiky (456-511 UTI)



Podobné dokumenty
Teorie jazyků a automatů I

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

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.

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

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

AUTOMATY VE VYHLEDÁVÁNI cvičeni

13. Soustava lineárních rovnic a matice

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

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

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

2.3. DETERMINANTY MATIC

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

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

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

Automaty a gramatiky

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

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

Automaty a gramatiky

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

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

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

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

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

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

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

Deterministický konečný automat

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

PRAVIDELNÉ MNOHOSTĚNY

Větu o spojitosti a jejich užití

Riemannův určitý integrál.

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

Elektromagnetick indukce

3.2.1 Shodnost trojúhelníků I

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

R n výběr reprezentantů. Řekneme, že funkce f je Riemannovsky integrovatelná na

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

Technická dokumentace Ing. Lukáš Procházka

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

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

Teorie jazyků a automatů

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

63. ročník matematické olympiády III. kolo kategorie A. Ostrava, března 2014

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

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

Rozdělení spojitých veličin

Digitální učební materiál

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

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

7.5.8 Středová rovnice elipsy

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

Lineární nerovnice a jejich soustavy

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

ANALYTICKÁ GEOMETRIE V PROSTORU

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

Vzdělávací materiál. vytvořený v projektu OP VK. Název školy: Gymnázium, Zábřeh, náměstí Osvobození 20. Číslo projektu: CZ.1.07/1.5.00/34.

Spojitost funkce v bodě, spojitost funkce v intervalu

2.7.7 Obsah rovnoběžníku

Úvod do numerické matematiky. Přednáška pro posluchače informatiky. Zimní resp. Letní semestr 2/2

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

2.8.5 Lineární nerovnice s parametrem

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

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

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:

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

13. Exponenciální a logaritmická funkce

3. APLIKACE URČITÉHO INTEGRÁLU

Podobnosti trojúhelníků, goniometrické funkce

Obsah rovinného obrazce

10. Suffixové stromy

Seriál XXVII.III Aplikační

matematika vás má it naupravidl

Studium termoelektronové emise:

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

( t) ( t) ( ( )) ( ) ( ) ( ) Vzdálenost bodu od přímky I. Předpoklady: 7308

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

METODICKÝ NÁVOD MODULU

Reprezentovatelnost částek ve dvoumincových systémech

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

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

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

Větvené mazací systémy a jejich proudové poměry tribologicko-hydraulické aspekty

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

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

Základy teorie matic

Úřední věstník Evropské unie ÚŘEDNÍ VĚSTNÍK EVROPSKÉ UNIE

zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.

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

4.4.3 Kosinová věta. Předpoklady:

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

Goniometrické funkce obecného úhlu

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

KVADRATICKÁ FUNKCE (vlastnosti, grafy)

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

4.2.1 Goniometrické funkce ostrého úhlu

1 i= VLIV ZMĚN FYZIKÁLNÍCH PARAMETRŮ FLUIDNÍCH VRSTEV NA CHARAKTERISTIKY TLAKOVÝCH FLUKTUACÍ. OTAKAR TRNKA a MILOSLAV HARTMAN. i M

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

2. INTEGRÁLNÍ POČET FUNKCE JEDNÉ PROMĚNNÉ

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

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

Transkript:

Úvod do Teoretické Informtiky (456-511 UTI) Doc. RNDr. Petr Hliněný, Ph.D. petr.hlineny@vs.cz 25. ledn 2006 Verze 1.02. Copyright c 2004 2006 Petr Hliněný. (S využitím části mteriálů c Petr Jnčr.)

Osh 0.1 Předmluv.................................... iv I Jzyky Automty 1 1 Úvodní pojmy, jzyky 1 1.1 Množiny operce s nimi........................... 1 1.2 Orientovné grfy................................ 2 1.3 Formální eced jzyk........................... 3 1.4 Cvičení: Práce s formálními jzyky...................... 5 2 Konečné utomty 8 2.1 Definice konečného utomtu......................... 9 2.2 Jzyk rozpoznávný utomtem........................ 13 2.3 Nedeterministické utomty.......................... 15 2.4 Cvičení: Konstrukce převody utomtů.................. 18 3 Vyhledávání regulární výrzy 21 3.1 Automty vyhledávání v textu....................... 22 3.2 Vyhledávání z pohledu progrmátor..................... 23 3.3 Regulární operce výrzy.......................... 25 3.4 Ekvivlence regulárních výrzů jzyků................... 26 3.5 Cvičení: Vyhledávání regulární výrzy................... 29 4 Minimlizce omezení utomtů 33 4.1 Minimlizce konečného utomtu...................... 33 4.2 Neregulární jzyky............................... 37 4.3 Vět Myhill Nerod.............................. 38 4.4 Cvičení: Minimlizce neregulárnost.................... 39 5 Bezkontextové jzyky ZA 41 5.1 Odvození ritmetických výrzů........................ 41 5.2 Bezkontextové grmtiky jzyky...................... 43 5.3 Zásoníkové utomty............................. 45 5.4 Cvičení: Konstrukce ezkontextových grmtik............... 47 II Složitost Algoritmů 50 6 Mtemtické zákldy složitosti 50 6.1 Asymptotické znčení funkcí.......................... 50 6.2 Rekurentní vzthy............................... 52 6.3 Kódování slov prolémů........................... 53 6.4 Cvičení: Odhdy funkcí rekurentních vzthů................ 55 7 Co je to lgoritmus 56 7.1 Turingův stroj................................. 56 7.2 RAM model počítče.............................. 59 7.3 Univerzální lgoritmus neřešitelnost.................... 60 7.4 Cvičení: Výpočty n TS RAM modelech.................. 62 ii

8 Výpočetní složitost lgoritmů prolémů 65 8.1 Délk výpočtu................................. 66 8.2 Čsová složitost prolému........................... 67 8.3 Některé rychlé lgoritmy.......................... 68 8.4 Tříd P polynomiální redukce........................ 70 8.5 Cvičení: Určení čsové složitosti lgoritmu.................. 71 9 Zákldy N P-úplnosti 75 9.1 Tříd N P.................................... 75 9.2 Nedeterministický Turingův stroj....................... 77 9.3 N P-úplný prolém............................... 78 9.4 Cvičení: Polynomiální převody příslušnost do N P............ 79 10 N P-úplné prolémy 83 10.1 Splnitelnost formulí............................... 83 10.2 Grfové prolémy................................ 85 10.3 Aritmetické prolémy............................. 88 10.4 Cvičení: Dlší N P-úplné prolémy převody................ 89 III 92 Klíč k řešení úloh 92 Litertur....................................... 99 iii

0.1 Předmluv Vážení čtenáři, dostává se vám do rukou výukový text pro Úvod do Teoretické Informtiky, který je primárně určený pro studenty informtických oorů (od klářského stupně) n technických vysokých školách. Teoretická informtik nám dává formální teoretické zákldy nezytné pro přesné formulce správná řešení prolémů spojených s informtikou. Teoretická stránk informtiky se počl rozvíjet již s prvními (mechnickými) výpočetními stroji v první polovině 20. století, jk můžeme zmínit npříkld n prcech Turing či jiných. Skutečného rozmchu dosáhl pk v druhé polovině století s prudkým nástupem počítčů do všech olstí život, což vyvollo i nléhvou potřeu teoreticky definovt řešit mnohé zcel nové vědecké otázky spojené s lgoritmizcí prktických prolémů. Náš text vás seznámí s úvodními prtiemi dvou si nejvýznmnějších olstí teoretické informtiky s teorií jzyků konečných utomtů s teorií výpočetní složitosti lgoritmů. Jde o seznámení jen velmi zěžné, neoť podání pouhých úplných zákldů kždé jedné z těchto olstí y vydlo lespoň n jeden semestr výuky. Přesto jsme se pokusili do jednoho celku z kždé části shrnout několik zákldních pojmů pozntků, které y studentům umožnily nhlédnout pod pokličku teoretické informtiky poznt její užitečnost v různých informtických plikcích. Náš výukový text je koncipován jko soěstčný celek, který od čtenáře nevyžduje o mnoho více než ěžné středoškolské mtemtické znlosti, zkušenosti s počítčem chuť do studi. Svým rozshem text odpovídá jednomu semestru ěžné výuky včetně cvičení. Vhodným doplňkem při jeho studiu je odoný výukový text Diskrétní Mtemtik [4] stejného utor. Při příprvě látky vycházíme zčásti ze stávjících výukových mteriálů pro teoretickou informtiku n FEI VŠB TUO od Doc. RNDr. Petr Jnčr, Ph.D., z druhé části z utorových vlstních studijních zkušeností n MFF UK. Proti zěhlým zvyklostem výuky teoretické informtiky uvádíme několik méně ěžných motivů, z nichž z zmínku stojí npříkld nápovědný pohled n nedeterminismus n třídu N P ve výpočetní složitosti. Ve stručnosti se zde zmíníme o struktuře nšeho textu. Přednesený mteriál je dělený do jednotlivých lekcí (kpitol), které zhru odpovídjí oshu týdenních přednášek v semestru. Lekce jsou dále děleny temticky n oddíly. Výkld je strukturován ovyklým mtemtickým stylem n definice, tvrzení, lgoritmy, přípdné důkzy, poznámky neformální komentáře. Nvíc je proložen řdou vzorově řešených příkldů nvzujících n vykládnou látku doplněn dlšími otázkmi úlohmi. Kždá lekce je zkončen zvláštním oddílem určeným k dodtečnému procvičení látky. Správné odpovědi k otázkám úlohám jsou shrnuty n konci textu. Přejeme vám mnoho úspěchů při studiu udeme potěšeni, pokud se vám náš výukový text ude líit. Jelikož nikdo nejsme neomylní, i v této pulikci zjisté jsou nejsnosti či chyy, proto se z ně předem omlouváme. Pokud chyy ojevíte, dejte nám prosím vědět e-milem milto:petr.hlineny@vs.cz. Autor iv

Pár slov o vzniku Tento učení text vznikl v průěhu let 2004 ž 2005 podle utorových přednášek cvičení předmětu Úvod do teoretické informtiky n FEI VŠB TUO. Jeho zákldní verzi utvořil souor utorových slidů pro přednášky předmětu. Většin přidných řešených příkldů úloh k procvičení pk vychází z náplně skutečných cvičení písemných zápočtů zkoušek v předmětu. Význmné poděkování z vznik tohoto textu ptří doc. Petru Jnčrovi, který nezištně poskytl části svých výukových mteriálů týkjících se teoretické informtiky i pro náš text. Z příprvu některých příkldů zvláště z kontrolu celého textu ptří díky tké cvičícím ývlým i součsným doktorndským studentům Mrtinu Kotovi, Přemyslu Teperovi, Ondřeji Kohutovi, Dušnu Fedorčákovi. v

Část I Jzyky Automty 1 Úvodní pojmy, jzyky Úvod Předmět Teoretická informtik poskytuje formální zákldy nástroje pro prktické informtické plikce (jko progrmování či softwrové inženýrství). Jeho si nejdůležitějším úkolem je mtemticky popst různé typy lgoritmických výpočtů, jejich proveditelnost složitost. Přitom pro mtemtický popis zdání (vstupů výstupů) výpočtu je potřené nejprve zvést pojmy ecedy symolů formálních slov nd touto ecedou. Použití symolické ecedy pro vstupy výstupy výpočtů závisí n dohodnuté formě zápisu, v prxi u počítčů se nejčstěji používjí inární zápisy s ecedou {0, 1}, očs hexdecimální s ecedou {0, 1,..., 9,,..., f}, neo nejčstěji lidsky čitelný zápis s ecedou ASCII či nověji UTF-8. Mtemticky můžeme z ecedu povžovt liovolnou (dohodnutou) konečnou množinu symolů, přitom převody zápisů mezi různými ecedmi jsou velmi jednoduché. (Volíme si proto ovykle ecedu, která se nejlépe hodí pro vyřešení dného prolému.) Důležitým teoretickým pojmem je slovo, které znmená liovolný konečný řetězec symolů nd ecedou, přitom mezer zde nemá žádný zvláštní význm. Určená množin slov se nzývá jzykem. Tyto pojmy v úvodní lekci přesně definujeme zároveň zvedeme důležité operce s formálními jzyky. Cíle Z hlvní cíl úvodní části povžujeme jednk správné (víceméně filozofické) pochopení pojmů konečnosti nekonečnosti množin; z druhé nstudování pojmů ecedy, formálního jzyk opercí s nimi. 1.1 Množiny operce s nimi Úvodem si připomeneme známé mtemtické pojmy týkjící se převážně množin jejich konečnosti či nekonečnosti. Zároveň si tkto zvedeme (pro ujednocení) některé zákldní konvence znčení používné dále v textu. Symolik množin Množiny ovykle znčíme velkými písmeny A, B, X, Y,... jejich prvky mlými písmeny,, x, y,..., symol znčí prázdnou množinu. M = {,, c, x} je množin se čtyřmi prvky,, c, x píšeme M, M, le d M. Počet prvků znčíme M = 4. N = {,, x} je podmnožinou M, což píšeme jko N M. Sjednocení množin znčíme A B, jejich průnik A B. Rozdíl množin je definován A \ B = { A : B} symetrický rozdíl je A B = (A \ B) (B \ A) (jko XOR ). Rozšířené znčení sjednocení n i=1 X i průniku n i=1 X i používáme jko u sumy. 1

Komentář: Pro názornou ukázku si zvolme npříkld množiny A = {,, c, d}, B = {, c, e, f}. Pk sjednocením těchto dvou množin je A B = {,, c, d, e, f} průnikem je A B = {, c}. Výsledkem rozdílu je A \ B = {, d} symetrického rozdílu A B = {, d, e, f}. Konečné nekonečné množiny Množin je konečná pokud počet jejich prvků je přirozené číslo. Množin je spočetná pokud všechny její prvky lze seřdit do jedné posloupnosti, neoli očíslovt přirozenými čísly. (Může ýt konečná i nekonečná.) Množin je nespočetná pokud není spočetná. (Npříkld množin všech reálných čísel je nespočetná.) Potenciální ktuální nekonečno Pro lepší pochopení pojmu nekonečnosti množiny si připomeňme jeden ze zákldních ntických prdoxů závod Achill se želvou: Achilles ěží 10 rychleji než želv, le želv má 100m náskok. Než Achilles těchto 100m proěhne, želv je dlších 10m před ním, po uěhnutí dlších 10m má želv stále 1m náskok, td... Vždy, když Achilles náskok želvy doěhne, želv se posune ještě o kousek dále. Předěhne Achilles vůec někdy želvu? Tento filozofický prdox vzniká z rozdílných pohledů n pojmy konečné nekonečné velikosti, které stručně shrneme tkto: Omezeně velké uvžujeme množiny/ojekty, jejichž velikost je omezená (jkoukoliv) předem dnou konstntou. Potenciální nekonečno uvžujeme stále ještě konečné množiny/ojekty, le jejich velikost nelze shor omezit univerzální konstntou. Jinými slovy, ke kždému ojektu nlezneme mezi uvžovnými ještě větší ojekt. Tké se říká, že velikost roste nde všechny meze. Aktuální nekonečno uvžujeme skutečně nekonečné množiny v celé jejich šíři. Mtemtická odpověď n Achillův prdox je dán rozdílem mezi chápáním potenciálního ktuálního nekonečn. Při uvedené prdoxní úvze stále přidáváme dlší dlší (zkrcující se) úseky ěhu, le nikdy nevidíme dráhu ěhu v celku (rozdělenou n nekonečně mnoho čím dál menších úseků, tj. jko ktuální nekonečno). Smozřejmě Achilles želvu předěhne ve vzdálenosti 111. 1 m. 1.2 Orientovné grfy S pojmem grfu jsme se doře seznámili v diskrétní mtemtice grf se skládá z množiny vrcholů množiny hrn spojujících dvojice vrcholů. V některých přípdech (jko tře u utomtů) potřeujeme u kždé hrny grfu vyjádřit její směr. To vede n definici orientovného grfu, ve kterém hrny jsou formálně uspořádné dvojice vrcholů. Orientovné grfy odpovídjí relcím, které nemusí ýt symetrické. Znčení: Hrn (u, v) v orientovném grfu D zčíná ve vrcholu u končí ve (míří do) vrcholu v. Tké připouštíme tzv. smyčku (u, u) mířící z u zpět do u. Opčná hrn (v, u) je různá od (u, v)! Příkld kreslení orientovného grfu následuje. 2

1.3 Formální eced jzyk Pro zápis zdání výsledků výpočtů je nezytné se domluvit n použití jednotných znků symolů ecedy. Sdělovné informce pk mjí formu řetězců nd těmito znky, které nzýváme prostě slovy. Definice: Aecedou myslíme liovolnou konečnou množinu Σ. Prvky Σ nzýváme symoly (písmen) této ecedy. (Tře Σ = {,}.) Slovem nd ecedou Σ rozumíme liovolnou konečnou posloupnost prvků Σ, npříkld (jko počítčový řetězec). Prázdné slovo je tké slovem znčí se ε. Znčení: Výrzem Σ znčíme množinu všech slov n ecedou Σ. Poznámk: Množin všech slov nd konečnou ecedou je vždy spočetná stčí všechn slov uspořádt nejprve podle délky pk podle ecedy mezi slovy stejné délky. Tím udou všechn slov npsán do jedné posloupnosti, ve které je lze po řdě očíslovt přirozenými čísly. Znčení: Délku slov w, tj. počet písmen ve w, znčíme w. Znčení: Pro zjednodušení zápisu slov někdy používáme exponenty u znků, kde x k znmená k opkování znku x z seou. Npříkld zápis 3 c 4 je zkrtkou pro slovo cccc. Přirozenou opercí se slovy je jejich spojení z seou do jednoho výsledného slov. Definice: Říkáme, že slovo z je zřetězením slov x y, pokud z vzniká zpsáním x y z seou ez mezer. Znčíme z = x y, neo zkráceně z = xy. Nopk někdy potřeujeme slovo zpět rozdělit n jeho počáteční koncovou část. Úsek znků, kterým nějké slovo zčíná, se nzývá předponou, neoli odorně mtemticky prefixem. Odoně se úsek znků, kterým slovo končí, nzývá příponou, odorně sufixem. Definice: Slovo t je prefixem slov z, pokud lze psát z = tu pro nějké slovo u, přitom u je tké nzýváno sufixem. Komentář: Vezměme si npříkld slovo cdcdc. Pk slovo c je jeho prefixem, kdežto c prefixem není. Nopk cdc je sufixem. Prázdné slovo ε je prefixem i sufixem kždého slov. Nkonec přicházíme k důležité formální definici jzyk, který je tvořený jkoukoliv vyrnou množinou slov. Definice 1.1. Jzykem nd ecedou Σ rozumíme liovolnou podmnožinu L Σ množiny Σ všech slov. 3

Komentář: N rozdíl od přirozeného jzyk (češtiny) udou nše jzyky ovykle oshovt nekonečně mnoho slov, řečeno slovy nekonečný jzyk. V nlogii s přirozenou mluvou si formální jzyk můžeme předstvit tře jko množinu všech knih, které kdy yly n světe npsány, neo tře jko množinu všech možných knih, které lze grmticky správně v češtině npst. Příkldy formálních jzyků nd ecedou {0, 1} jsou L 1 = {ε, 01, 0011, 1111, 000111}, L 2 = { všechny posloupnosti z {0, 1} mjící stejně 0 jko 1 }, L 3 = { všechny posl. z {0, 1} zpisující inárně číslo dělitelné třemi }. Jzyk L 1 je zde konečný, kdežto zylé dv jsou nekonečné. Slovo 101100 ptří do jzyk L 2, le 10100 do L 2 neptří, neoť oshuje více nul než jedniček. Slovo 110 inárně vyjdřuje číslo 6, proto ptří do jzyk L 3, kdežto 1000 vyjdřující 8 do L 3 neptří. Některé operce s jzyky Při práci s formálními jzyky používáme nejčstěji následující mtemtické operce: Běžné množinové operce sjednocení K L, průniku K L, neo rozdílu K \ L. Zřetězení dvou jzyků K L = {uv : u K, v L}, tj. jzyk všech slov, které zčínjí slovem z K pokrčují slovem z L. Iterce jzyk L, znčená L, která je definovná rekurentně pomocí zřetězení L 0 = {ε}, L 1 = L, L n+1 = L n L, celkem L = L 0 L 1 L 2 L 3..., tj. jzyk všech slov vzniklých liovolným opkováním slov z jzyk L z seou. Komentář: Dejte si pozor, že operce zřetězení dvou jzyků není komuttivní, tj. oecně nelze změnit pořdí K L L K. Všimněte si, že znčení pro iterci L odpovídá znčení množiny všech slov Σ nd ecedou Σ eced smotná je množinou všech jednopísmenných slov, přitom jejich itercí vzniknou všechn konečná slov. Příkld 1.2. Uveďme si následující ukázky opercí s jzyky nd ecedu {0, 1}: ) Sjednocením jzyk L 0 všech slov oshujících více 0 než 1 jzyk L 1 všech slov oshujících více 1 než 0 je jzyk všech slov mjících počet 1 různý od počtu 0. ) Co vznikne zřetězením L 0 L 1 jzyků z předchozí ukázky ()? Ptří sem všechn možná slov? Všechn slov do tohoto jzyk neptří, npříkld sndno njdeme 10 L 0 L 1. Oecný popis celého zřetězení všk není úplně jednoduchý. Dle definice do tohoto zřetězení ptří všechn slov, která lze rozdělit n počáteční úsek mjící více 0 než 1 zytek mjící nopk více 1 než 0. c) Je prvd, že L 0 L 1 = L 1 L 0 v předchozí ukázce? Není, npříkld, jk už ylo uvedeno, 10 L 0 L 1, le sndno 10 L 1 L 0. d) Co vznikne itercí jzyk L 2 = {00, 01, 10, 11}? Tkto vznikne jzyk L 2 všech slov sudé délky, včetně prázdného slov. Zdůvodnění je sndné, slov v L 2 musí mít sudou délku, protože vznikjí postupným zřetězením úseků délky 2. Nopk kždé slovo sudé délky rozdělíme n úseky délky 2 kždý úsek ude mít zřejmě jeden z tvrů v L 2. Úlohy k řešení (1.3.1) Která slov jsou zároveň prefixem i sufixem slov 101110110? (Njdete všechn tři tková?) 4

(1.3.2) Vypište slov ve zřetězení jzyků {110, 0111} {01, 000}. (1.3.3) Njděte dv různé jzyky, které komutují v operci zřetězení, tj. L 1 L 2 = L 2 L 1. (1.3.4) Co vzniká itercí jzyk {00, 01, 1}? Ptří tm všechn slov nd {0, 1}? Rozšiřující studium Pro teoretickou informtiku existuje množství učeních textů knih. (Ovykle ývjí oddělené zvlášť pro utomty jzyky, zvlášť pro výpočetní složitost, tk jko je dělen i náš učení text.) Jk již ylo uvedeno, náš text vychází částečně z učeního textu P. Jnčr [8], le je zjednodušen lépe zpřístupněn studentům klářského studi ez předchozích znlostí informtické teorie. Mimo zmíněného textu [8] pro rozšiřující studium prolemtiky utomtů doporučujeme npříkld [7] [6], či nepřeerné množství nglických textů. Doře zprcovný úvod do prolemtiky složitosti N P-úplnosti především komintorických lgoritmů čtenář njde v knize [9]. 1.4 Cvičení: Práce s formálními jzyky Příkld 1.3. Uvžujme jzyky nd ecedou {0, 1}. Nechť L 1 je jzykem všech těch slov oshujících nejvýše pět znků 1 L 2 je jzykem všech těch slov, která oshují stejně 0 jko 1. Kolik je slov v průniku L 1 L 2? V prvé řdě si uvědomme, že o jzyky jsou nekonečné. Přesto je průnik konečný slovo ptří do oou jzyků jen pokud má nejvýše pět výskytů kždého ze znků 0,1, tj. celkem nejvýše délku 10. (Podle definice L 1 má slovo w L 1 L 2 nejvýše pět znků 1 podle L 2 má stejně znků 0.) Nvíc slovo v průniku L 1 L 2 má sudou délku 2l, kde l 5 je počet výskytů znku 0 i 1. Pro l = 0 máme jediné slovo ε, pro l = 1 jsou dvě slov 01 10 oecně je v průniku ( 2l) l slov pro kždé l = 0, 1, 2, 3, 4, 5. (Vyíráme pozice znků 1 z 2l písmen ve slově.) V součtu pk je L 1 L 2 = 1 + 2 + ( ) 4 + 2 ( ) 6 + 3 ( ) 8 + 4 ( ) 10 = 351. 5 Příkld 1.4. Uvžujme jzyky nd ecedou {, }. Vypište všechn slov ve zřetězení jzyků L 1 = {ε,, } L 2 = {,, }. Postupujeme jednoduše podle definice ereme jedno z druhým slov z L 1 zřetězujeme z ně jedno po druhém slov z L 2. Celkem vyjde L 1 L 2 = {,,,,,,, }. (Všimněte si doře, že výsledek oshuje jen 8 < 3 3 slov. Jk je to možné? To proto, že slovo se ve zřetězeních ojeví dvkrát, jko ε jko.) Příkld 1.5. Uvžujme jzyky nd ecedou {c, d}. Nechť L 0 je jzyk všech těch slov, která oshují různé počty výskytů symolu c výskytů symolu d. Popište slovně zřetězení L 0 L 0. Z prvé si všimněme, že prázdné slovo ε L 0 L 0, neoť ε L 0. Ze stejného důvodu ni jednopísmenná slov c d nejsou v L 0 L 0 pokud y yly složeny ze dvou slov, jedno z nich y ylo ε. Nopk kždé slovo liché délky musí mít různý počet c d, protože dv stejné počty y vynutily sudou délku slov, tudíž náleží do L 0. Kždé neprázdné slovo w sudé délky lze npst jko zřetězení jeho prvního písmene w 1 zylého sufixu 5

liché délky w 2... w k, proto je w L 0 L 0. Co všk se slovy w liché délky větší než 1? Pokud v nich njdeme sudý prefix neo sufix, který neoshuje stejně c jko d, máme opět w L 0 L 0. N zákldě výše uvedených úvh odhdneme, že slovo w neptří do L 0 L 0 pouze tehdy, když w = ε neo w je liché délky ve střídvém tvru cdcdc... dc neo dcd... cd. (Je poměrně zřejmé, že tková slov do L 0 L 0 ptřit nemohou.) Nyní zývá nše tvrzení korektně dokázt: Pokud slovo w není ve výše uvedeném vyjímečném tvru, má uď w sudou délku potom w L 0 L 0, jk jsme již uvedli výše, neo w má lichou délku oshuje dv výskyty c z seou neo dv výskyty d z seou. Potom uď z prvním neo z druhým z těchto opkovných znků w rozdělíme n prefix sufix z L 0. Příkld 1.6. Zjistěte, který z následujících dvou vzthů jsou pltné pro všechny jzyky L 1, L 2 : ) (L 1 L 2 ) L 3 = (L 1 L 3 ) (L 2 L 3 )? ) (L 1 L 2 ) = L 1 L 2? Univerzální pltnost () plyne přímo z definice zřetězení, jk si smi sndno ověříte. Nopk vzth () je oecně chyný, neoť sndno njdeme dvojici jzyků nemjící žádné slovo ve svém průniku, le zároveň mjící společné iterce slov. Npříkld pro disjunktní L 1 = {0} L 2 = {00} oě iterce L 1, L 2 oshují slovo 00 neo 0000, td. V dlší části si neformálně přilížíme prktické motivční příkldy vedoucí k (pozdější) definici konečného utomtu. Příkld 1.7. Předstvme si následující elektrický ovod s dvěm přepínči A B. (Přepínče jsou provedeny jko retční tlčítk, tkže jejich polohu zvnějšku nevidíme, le kždý stisk je přehodí do druhé polohy.) N počátku žárovk svítí. Pokusme se schemticky popst, jké posloupnosti stisků A, B vedou k opětovnému rozsvícení žárovky. A B Posloupnosti stisků přepínčů A, B vedoucí k rozsvícení žárovky si můžeme popst formálně jko množinu (tj. jzyk) R jistých slov nd ecedou {A, B}. (Kždý znk A neo B znmená přepnutí příslušného přepínče.) Z zdání je zřejmé, že ε R. Nopk tře A R. Když se n znázorněný ovod líže podíváme, zjistíme, že kždý stisk kteréhokoliv tlčítk změní součsný stv svícení. Schemticky tk pozorovtelné změny v ovodu můžeme znázornit následujícím digrmem, ve kterém levý stv s je počáteční znmená, že žárovk svítí, kdežto v prvém stvu n žárovk nesvítí. (Tento digrm model si v následující lekci mtemticky popíšeme jko tzv. konečný utomt.) 6

A B s n B A Všimněme si ještě jedné zjímvosti kždý přechod v nšem digrmu je symetrický, tj. dvojím stiskem téhož tlčítk se dostneme zse zpět. To je dáno fyzickou stvou nšeho ovodu, le vůec to nemusí ýt vlstností jiných systémů (předstvte si tře ovod s cyklickými třístvovými přepínči). Příkld 1.8. Odoně jko v předchozím příkldě si vezměme následující ovod s přepínči A, B, C jednou žárovkou. (Přepínč C má dv společně ovládné kontkty, z nichž je spojený vždy právě jeden.) N počátku žárovk nesvítí. Jké posloupnosti stisků A, B, C vedou k rozsvícení žárovky? A C B Oznčme nyní R množinu (jzyk) všech těch slov nd ecedou {A, B, C}, která rozsvítí žárovku. Nyní ε R, le tře C R AB R. Zmysleme se všk doře nd tím, zd dokážeme chování ovodu plně popst jen dvěm stvy svítí nesvítí. Npříkld z počátečního stvu lze rozsvítit žárovku jediným stiskem C, le ze stvu po přepnutí A již žárovku žádným stiskem C nelze zpnout. Anlýzou této komplikce přijdeme n to, že si ude tře popst více různých vnitřních stvů, které se nvenek projevují jko nesvítí. Máme tedy počáteční stv ovodu n 1, jiný nesvítící stv n 2, do kterého se dostneme přepnutím A, ještě jiný nesvítící stv n 3, do kterého se dostneme přepnutím B (n rozdíl od n 2 z n 3 nelze rozsvítit žárovku stiskem B), nkonec svítící stv s. (V oecnosti i svítících stvů může ýt více než jeden, le to nenstává v nšem ovodě.) Když pochopíme toto rozdělení vnitřních stvů, už nám neude činit potíže doplnit jednotlivé přechody: 7

A n 2 B B A C C n 1 s B C C B n 3 A A Úlohy k řešení (1.4.1) Uvžujme jzyky nd ecedou {0, 1}. Vypište všechn slov ve zřetězení {0, 001, 111} {ε, 01, 0101}. (1.4.2) Uvžujme jzyky nd ecedou {0, 1}. Popište (slovně) jzyk vzniklý itercí {00, 111}. (1.4.3) Uvžujme jzyky nd ecedou {0, 1}. Nechť L 1 je jzykem všech těch slov oshujících nejvýše jeden znk 1 L 2 je jzykem všech těch slov, která se čtou stejně zepředu jko zezdu (tj. plindromů). Která všechn slov jsou v průniku L 1 L 2? Návod: Pozor, průnik oou jzyků je nekonečný. (1.4.4) Proč oecně nepltí (L 1 L 2 ) L 3 = (L 1 L 3 ) (L 2 L 3 )? (1.4.5) Nvrhněte ovod s třemi přepínči žárovkou mjící více než jeden vnitřní svítící i nesvítící stv. (1.4.6) Uvžujme jzyky nd ecedou {, }. Nechť L je jzyk všech těch slov, která oshují více než, L je jzyk všech těch slov, která oshují více než. Jký jzyk vznikne zřetězením L L? (1.4.7) Jzyk L 1 oshuje 6 slov jzyk L 2 oshuje 7 slov. Kolik nejméně slov musí oshovt zřetězení L 1 L 2? (1.4.8) Proč ovod s třemi (dvoupolohovými) přepínči žárovkou nemůže mít více než 8 vnitřních stvů? 2 Konečné utomty Úvod První část nšeho kurzu se věnuje především nejjednoduššímu klsickému výpočetnímu modelu konečně-stvovému utomtu, který popisuje procesy s předem omezeným počtem možných stvů. Stručně řečeno, konečný utomt je model systému, který může nývt konečně mnoho vnitřních stvů. Tento stv se mění n zákldě jednoduchého vnějšího podnětu s tím, že pro dný stv dný vstupní podnět je jednoznčně určeno, jký (vnitřní) stv ude následující. 8

Přitom pro vnějšího pozorovtele je viditelné pouze, zd ktuální vnitřní stv utomtu je tzv. přijímcí neo není. Konkrétní konečný utomt se čsto zdává digrmem ohodnoceným orientovným grfem, který tké nzýváme stvovým digrmem či grfem utomtu (kde šipky přechodů jsou oznčeny vstupními podněty). Pro příkldy nemusíme chodit dleko, již jsme si je ukzovli v předechozím cvičení při popisu chování ovodů s přepínči žárovkou. Jinou ukázkou je toto: 2 1 3 Cíle Úkolem této lekce je přesně zvést pojem konečného utomtu, jeho deterministickou nedeterministickou vrintu. Jsou zde uvedeny zákldní pozntky o utomtech definován pojem regulárního jzyk. Ukázán je převod oecného utomtu n deterministický utomt. 2.1 Definice konečného utomtu Konečný utomt je model systému, který může nývt konečně mnoho (ovykle ne příliš mnoho ) vnitřních stvů. Tento stv se mění n zákldě jednoduchého vnějšího podnětu (možných podnětů tké není příliš mnoho ) s tím, že pro dný stv dný vstupní podnět je jednoznčně určeno, jký vnitřní stv utomtu ude následující (tj. do jkého stvu systém přejde). Vnější pozorovtel přitom vnitřní stvy utomtu nevidí, vnímá z utomtu pouze jednoduchou dvoustvovou informci zd se utomt právě nchází v tzv. přijímjícím stvu neo v nepřijímjícím. Přirozeným způsoem vizulizce konečného utomtu je použití orientovného (multi)grfu, kde vrcholy reprezentují jednotlivé vnitřní stvy ohodnocené orientovné hrny (šipky) ukzují přechody mezi stvy pro jednotlivé vstupní podněty. Stvy utomtu ovykle číslujeme zčínáme v předepsném počátečním stvu. Vstupní podněty ovykle reprezentujeme symoly zvolené ecedy celé posloupnosti podnětů pk zpisujeme jko slov nd touto ecedou. Mtemticky konečný utomt popíšeme následovně: Definice 2.1. Konečný utomt (zkráceně KA) je uspořádná pětice (tzn. je dán pěticí prmetrů) A = (Q, Σ, δ, q 0, F ), kde Q je konečná neprázdná množin stvů, Σ je konečná neprázdná množin zvná (vstupní) eced, δ : Q Σ Q je přechodová funkce, q 0 Q je počáteční (iniciální) stv F Q je neprázdná množin přijímjících (koncových) stvů. Komentář: Význm množin Q Σ v definici je jsný. Přechodová funkce δ má dv rgumenty δ(q, x), které mjí následující význm: Pokud se utomt právě nchází ve stvu q čte ze 9

vstupu znk x, musí přejít do stvu δ(q, x) (ten může ýt jiný i stejný jko q). Důležité je, že pro kždý stv kždý vstupní podnět musí ýt definováno, km utomt přejde. Počáteční stv q 0 musí ýt určen jednoznčně, le utomt může mít více přijímjících stvů, tře i všechny. Přijímjícím stvům se tké čsto říká koncové, le vůec to neznmená, že y v těchto stvech měl výpočet vždy končit. (N rozdíl od pozdější definice Turingov stroje.) Znčení: Grfem utomtu (neoli stvovým digrmem) rozumíme orientovný ohodnocený grf, ve kterém vrcholy jsou stvy utomtu, tj. množin Q, počáteční stv (q 0 ) je vyznčený příchozí šipečkou koncové stvy (F ) dvojitým kroužkem, hrn z u do v je oznčená výčtem všech písmen ecedy, které stv u převádějí n v, tj. {x Σ : δ(u, x) = v}. Hrny nekreslíme pro dvojice vrcholů mezi kterými není přechod žádným písmenem ecedy. Pokud se z vrcholu u přechází zpět do u, kreslí se smyčk. Komentář: Zde vidíme ukázku grfu jednoduchého třístvového utomtu:, c 2 c 1, c 3 V ukázce je Q = {1, 2, 3} Σ = {,, c}. Přechodová funkce npříkld říká, že δ(1, ) = δ(1, c) = 2 neo δ(2, c) = 2, δ(2, ) = 1, td. Počáteční stv je 1 přijímjící stv je tké jediný 3. Pokud n vstupu ude slovo cc, stne se následující: Automt zčne v 1, přejde čtením do 2, pk čtením c dvkrát zůstává v 2, čtením se vrátí do stvu 1 dlším přejde do stvu 3, kterým celé slovo přijme. Poznámk: Mnozí utoři dávjí přednost zápisu konečného utomtu pomocí tulky přechodové funkce δ. (Jedním z důvodů zjisté je i to, že tulku zpíšeme n počítči sndněji než nkreslíme orázek grfu utomtu.) Grf utomtu je všk mnohem názornější sndněji uchopitelný. Proto v nšem textu udeme důsledně dávt přednost zkreslení utomtu jeho grfem. Znčení: Přechodovou tulkou utomtu rozumíme tulku s řádky oznčenými stvy utomtu sloupci oznčenými symoly ecedy, ve které políčko n řádku q sloupci udává stv δ(q, ). Počáteční stv je znčený přijímjící. Komentář: Npříkld výše zkreslený utomt má přechodovou tulku: c 1 2 3 2 2 3 1 2 3 1 2 1 Formálně si postup výpočtu utomtu definujeme tkto: 10

Definice: Výpočet konečného utomtu n vstupním slově s proíh následovně. Zčne v počátečním stvu q 0 n zčátku slov s. Přečte ktuální písmeno x slov s přejde do stvu určeného δ(q, x), kde q je součsný stv utomtu. Zároveň se jeho vstup přesune n následující písmeno slov s. Předchozí od se opkuje, dokud nejsou přečten všechn písmen v s. Pokud je poslední stv utomtu přijímjící (q F ), pk je slovo s přijto, v opčném přípdě je s odmítnuto. Říkáme tké, že jsme dosáhli / nedosáhli přijímjící stv. Komentář: Výpočet utomtu A n slově w si tké můžeme předstvit jko sled v grfu A, který zčíná v počátečním stvu q 0 znky jeho hrn tvoří posloupnost písmen slov w. Tento sled se může liovolně cyklit opkovt hrny i stvy, jen musí ýt konečný. Slovo w je přijto, pokud jeho sled výpočtu končí v množině F. Příkld 2.2. Nvrhněme utomt nd jednoznkovou ecedou {} přijímjící právě t slov mjící sudou délku. To je velmi jednoduché utomt ude oshovt jeden cyklus délky 2, který ude počítt pritu délky vstupního slov: q s Neoli, vždy, když je utomt ve stvu q l, poslední přečtená je lichá pozice slov, ve stvu q s je to sudá pozice. Komentář: Pro více (řešených) příkldů n jednoduché konečné utomty doporučujeme čtenáři se podívt do Cvičení 2.3. Definice: Říkáme, že stv q utomtu A je dosžitelný slovem w, pokud výpočet A se po přečtení (celého) slov w zství ve stvu q. Komentář: Uvědomme si, že v utomtu mohou ýt stvy, do kterých nevede žádný sled z počátku q 0. Tkové stvy jsou očividně zytečné nzývjí se nedosžitelné. Je nší přirozenou snhou se tkových stvů zvit. q l Normovný tvr utomtu Jeden utomt lze prezentovt mnoh různými způsoy, proto nás tké zjímá nějká jeho jednoznčná normovná prezentce. Definice: Automt A je v normovném tvru jestliže jeho stvy jsou očíslovné 1, 2,... v ecedním pořdí nejmenších slov, kterými tyto stvy lze dosáhnout. Poznámk: Touto definicí tké utomticky vyloučíme nedosžitelné stvy stvy, do kterých nevede žádná orientovná cest z počátečního stvu. Komentář: Uvedená definice je sice mtemticky přesná, neposkytuje všk žádný rozumný přímý postup pro nlezení normovného tvru. Když se všk nd tímto prolémem hlouěji zmyslíme, uvidíme, že je velmi podoný hledání nejkrtší cesty v grfu prosté prohledávání grfu do šířky jej dokáže vyřešit. (Viz. přednášky Diskrétní mtemtiky [4, Lekce 6,8].) Metod 2.3. Převod KA do normovného tvru (přečíslováním stvů) provede následující jednoduchý lgoritmus. Počáteční stv oznčíme 1. 11

Dále, npř. v přípdě ecedy {, }, zjistíme stv q, do něhož utomt přejde ze stvu 1 symolem ; když q není oznčen, oznčíme jej 2. Pk zjistíme stv q, do něhož utomt přejde ze stvu 1 symolem ; když q není dosud oznčen, oznčíme jej nejmenším dosud nepoužitým číslem. Tkto jsme vyřídili stv 1, pokrčujeme vyřízením 2 td..., dokud nezískáme všechny dosžitelné stvy. Jedná se vlstně o procházení grfu do šířky při seřzení hrn podle ecedy. Příkld 2.4. Stvy následujícího utomtu seřďte tk, jk mjí ýt číslovány v normovném tvru. q 1 q 2 q 3 q 4 q 5, Podle Metody 2.3 očíslujeme stv q 1 číslem 1. Znkem z q 1 se dostneme do nového stvu q 2, kterému přiřdíme číslo 2. Znkem z q 1 zůstneme v již očíslovném stvu q 1. Z druhého stvu q 2 přejdeme znkem do q 4, kterému dáme číslo 3, znkem do q 3, kterému dáme číslo 4. Ze třetího stvu q 4 se přes dostneme do již očíslovného q 3 přes do nového q 5, který dostne číslo 5. Výsledný normovný tvr tk vyjde,, 1 2 4 3 5., Úlohy k řešení (2.1.1) Nvrhněte konečný utomt přijímjící všechn t slov nd ecedou {, }, která oshují lichý počet výskytů. (2.1.2) Nvrhněte konečný utomt přijímjící všechn t slov nd ecedou {}, jejichž délk dává zytek 2 po dělení 3. (2.1.3) Jká všechn slov přijímá utomt z úvodu lekce n strně 9? (2.1.4) Jká všechn slov přijímá utomt z Příkldu 2.4? (2.1.5) Které z těchto dvou utomtů nd ecedou {, } přijímjí nějké slovo délky přesně 100? q 3 q,, 3 q 1 q 2, q 1 q 2 (2.1.6) Nkreslete konečný utomt přijímjící právě všechn slov nd {, }, ve kterých je třetí znk stejný jk první. (2.1.7) Nkreslete konečný utomt přijímjící právě všechn slov nd {,, c}, ve kterých se první znk ještě spoň jednou zopkuje. (2.1.8) Mějme konečný utomt A. Jk (jednoduše) sestrojíte utomt A přijímjící právě všechn slov, která A nepřijímá? (Tj. opk A.), 12

2.2 Jzyk rozpoznávný utomtem Jzyk rozpoznávný (neoli přijímný, kceptovný) konečným utomtem A je množinou všech těch slov, které utomt přijímá, tj. těch slov, kterými utomt A dosáhne některý z přijímjících stvů. Mnohem formálněji (le tké nepřehledněji) lze definovt tento pojem následovně: Definice: Přechodovou funkci utomtu A = (Q, Σ, δ, q 0, F ) zoecníme n funkci δ : Q Σ Q touto induktivní definicí: 1. δ (q, ε) = q, 2. δ (q, w) = δ(δ (q, w), ). Pk jzykem L(A) rozpoznávným (přijímným) utomtem A je množin slov L(A) = {w Σ : δ (q 0, w) F }. Komentář: Zoecněná přechodová funkce δ (q, w) nám vlstně udává, km konečný utomt přejde ze stvu q přečtením slov w. Definice: Jzyk L Σ je regulární právě když jej lze rozpoznt konečným utomtem nd ecedou Σ, tj. existuje konečný utomt A, že L = L(A). Poznámk: Nepleťme si ztím regulární jzyky s regulárními výrzy, které si znáte u počítčů, tře v příkzu grep. I když, rzy si už ukážeme, že regulární výrzy popisují právě regulární jzyky. Zákldní pozntky o jzycích rozpoznávných utomty jsou uvedeny zde. Lem 2.5. Pro konečný utomt A s n stvy je jzyk L(A) neprázdný právě tehdy, když existuje slovo w L(A) délky menší než n (tj. w < n). Důkz: Jzyk je neprázdný právě když existuje orientovný sled, tedy i cest, v grfu utomtu A z počátku do některého přijímjícího stvu. Nejkrtší tková cest má jistě méně než n hrn. Lem 2.6. Pro konečný utomt A s n stvy je existuje w L(A) splňující n w < 2n. L(A) nekonečný právě tehdy, když Důkz (náznk): Pokud existuje sled v grfu utomtu A z počátku do některého přijímjícího stvu o délce spoň n, pk je tento sled někde zcyklený (vrcí se do stejného vrcholu) tento cyklus můžeme liovolně krát zopkovt, tj. vygenerovt liovolné množství přijímných slov. Nopk v nekonečném jzyce existuje liovolně dlouhé přijímné slovo. Sled výpočtu tkového slov (myslíme tím sled v grfu utomtu A) může mít mnoho cyklů, le kždý z jeden těchto cyklů je délky menší než n, proto lze postupným vypouštěním cyklů nkonec získt přijímjící sled délky mezi n 2n. Definice: Dv konečné utomty A 1, A 2 přijímjící shodné jzyky, tj. L(A 1 ) = L(A 2 ), se tké nzývjí (jzykově) ekvivlentní. 13

Sjednocení průnik jzyků Pro ukázku, které jzyky lze rozpoznávt konečnými utomty, si ukážeme konstrukci utomtů pro sjednocení průnik regulárních jzyků. (Později si ukážeme i jiné zjímvé užitečné operce, které zchovávjí regulritu jzyk.) Vět 2.7. Jestliže jzyky L 1, L 2 Σ jsou regulární, pk tké jzyky L 1 L 2 L 1 L 2 jsou regulární. Důkz nejprve pro sjednocení: Nechť L 1 = L(A 1 ), L 2 = L(A 2 ) pro konečné utomty A 1 = (Q 1, Σ, δ 1, q 01, F 1 ), A 2 = (Q 2, Σ, δ 2, q 02, F 2 ). Definujme utomt A = (Q, Σ, δ, q 0, F ) tž. Q = Q 1 Q 2, δ( (q 1, q 2 ), ) = ( δ 1 (q 1, ), δ 2 (q 2, ) ) pro všechn q 1 Q 1, q 2 Q 2, Σ, q 0 = (q 01, q 02 ), F = (F 1 Q 2 ) (Q 1 F 2 ). Je očividné (exktně lze ukázt npř. indukcí podle délky w ), že pro liovolné q 1 Q 1, q 2 Q 2 w Σ, je δ ( (q 1, q 2 ), w ) = ( δ1 (q 1, w), δ2 (q 2, w) ). Jinými slovy, kždým vstupním slovem w utomt A přejde do stvu (q 1, q 2 ), kde q 1 je stv utomtu A 1 dosžený slovem w odoně q 2 je příslušný stv utomtu A 2. Z toho sndno plyne, že L(A) = L 1 L 2. Pro průnik je důkz téměř stejný, jen výsledná množin přijímjících stvů je F = F 1 F 2. Komentář: Konstrukci uvedenou ve Větě 2.7 si můžeme sndno vizuálně předstvit utomt A vypdá jko mřížk, jejíž sloupce předstvují utomt A 1 řádky předstvují utomt A 2. Přechody se přitom dějí jk po sloupcích, tk po řádcích zároveň. Přijímjící stvy jsou ty, které jsou přijímjící spoň v jednom z utomtů A 1 A 2. Podívejme se n orázek: PSfrg replcements 0 r 2 1 1 0 q 1 q 2 r 1 0 1 1 0 A 1 A 2 1 r 3 0 1 PSfrg replcements (q 1, r 1) (q 1, r 2) (q 1, r 3) 1 1 0 0 0 0 0 0 1 1 (q 2, r 1) (q 2, r 2) (q 2, r 3) A 1 A 2 1 Úlohy k řešení (2.2.1) Lze konečným utomtem rozpoznávt jzyk všech slov nd ecedou {, }, ve kterých je součin počtů výskytů znků sudý? 14

(2.2.2) Lze konečným utomtem rozpoznávt jzyk všech slov nd ecedou {, }, ve kterých je součet počtů výskytů znků sudý? (2.2.3) Lze konečným utomtem rozpoznávt jzyk všech slov nd ecedou {, }, ve kterých je součet počtů výskytů znků větší než 100? (2.2.4) Nvrhněte utomt rozpoznávjící všechn t slov nd {, }, která zčínjí znkem končí znkem. 2.3 Nedeterministické utomty Při konstrukci konečných utomtů je v mnoh přípdech velmi výhodné ponecht utomtu možnost se rozhodovt mezi více přechody, tj. povolit nedeterminismus. Co všk je tou utoritou, která mezi více přechody rozhodne? Jk pk jednoznčně poznáme, která slov jsou přijt? Příkld 2.8. Sestrojme utomt přijímjící všechn slov nd {0, 1}, ve kterých je třetí znk od konce 1. Sestrojit tkový utomt podle Definice 2.1 si neude lehké. Jk máme poznt dopředu, který znk ude třetí od konce? Asi nejjednodušším (třeže zvánějícím podvodem) řešením je ponecht rozhodnutí n vyšší moc, která vidí slovo dopředu. Proto nvrhneme následující utomt, který setrvává při čtení 0 i 1 ve stvu q 1, ž dosáhne třetí znk od konce slov. Pokud je ten 1, utomt může přejít do stvu q 2. Z něj již jenom přečte následující (dle předpokldu poslední) dv znky slovo přijme. 0, 1 1 0, 1 0, 1 q 1 q 2 q 3 q 4 Stvy q 3 q 4 jsou v utomtu proto, ychom si ověřili, že z vyrným znkem 1 skutečně následují dlší dv znky konec. Co se stne ve stvu q 4, pokud ještě konec slov není dosžen? Žádný dlší přechod z q 4 není definován, proto zde výpočet selže tkové slovo není přijto. Komentář: Nyní zývá njít mtemtickou definici, která y způso utomtového výpočtu nznčeného v Příkldě 2.8 přesně formlizovl. Pochopitelně zde nemůžeme mluvit o žádné vyšší moci, le to lze nhrdit poždvkem přijetí všech těch slov, pro která existuje lespoň jeden přijímjící výpočet. Jink řečeno, místo vyšší moci si lze velmi doře předstvit vševědoucí pomocnou nápovědu, která nám pomáhá vyrt přechody vedoucí k přijetí (pokud to vůec je možné). Definice 2.9. (Zoecněný) Nedeterministický konečný utomt je uspořádná pětice A = (Q, Σ, δ, I, F ), kde Q je konečná neprázdná množin stvů, Σ je konečná neprázdná množin zvná vstupní eced, δ : Q (Σ {ε}) 2 Q je (nedeterministická) přechodová funkce, I Q je neprázdná množin počátečních stvů F Q je množin přijímjících (koncových) stvů. (ZNKA) Komentář: Rozdíl proti ěžnému utomtu z Definice 2.1 je v této definici n dvou místech: V dném stvu máme při čtení vstupního znku možnost přechodu do více stvů, neo tké prázdnou možnost přechodu. Dokonce můžeme přecházet po hrnách znčených symolem ε ez čtení ze vstupního slov tzv. ε-přechody. 15

Je povolen více než jeden počáteční stv. Poznámk: Pro dné vstupní slovo tk díky nedeterminismu může existovt mnoho (i nekonečně) různých výpočtů toho smého ZNKA. Definice: Slovo s Σ je přijímáno nedeterministickým utomtem A, pokud lespoň některý z možných výpočtů A nd s vede do přijímjícího stvu, tj. při vhodné volě z nedeterminovných možností. (Možné výpočty nevedoucí do přijímjícího stvu nás přitom nezjímjí.) Převod n deterministické utomty Čtenář si nejspíše teď klde přirozenou otázku, o kolik silnější je nedeterministický utomt oproti deterministickému. Odpověď je docel překvpivá o nic! Jk nyní dokážeme, kždý ZNKA lze jednoduchým postupem převést n ekvivlentní deterministický utomt. Vět 2.10. Pro kždý zoecněný nedeterministický konečný utomt A existuje ekvivlentní (deterministický) konečný utomt A, tj. rozpoznávjící stejný jzyk L(A) = L(A ). Důkz: Nechť A = (Q, Σ, δ, I, F ). Sestrojíme KA A = (Q, Σ, δ, q 0, F ), kde Q = 2 Q je množin všech podmnožin stvů Q q 0 = I Q, F Q oshuje všechny podmnožiny původních stvů Q, které oshují některý stv z F neo se z nich dá jen po ε-hrnách přejít do F. Přechodová funkce δ : Q Σ Q kždé podmnožině původních stvů P Q písmenu x Σ přiřdí podmnožinu R Q těch stvů utomtu A, do kterých se lze v A dostt z některého stvu v P přechodem po jedné hrně oznčené x po liovolném počtu hrn (před i po) oznčených ε. Není těžké nyní zdůvodnit, že nový utomt A přijímá stejná slov w jko původní A po kždém kroku výpočtu deterministického A ktuální stv q předstvuje podmnožinu těch stvů A, které lze dosáhnout různými (nedeterministickými) větvemi výpočtu A n w. (I stv prázdná množin má svůj význm, neoť výpočet nedeterministického A nemusí mít definovný žádný přechod nd určitým znkem.) Metod 2.11. Konstrukce determin. utomtu z nedeterministického. Postup konstrukce přímo vyplývá z důkzu Věty 2.10. Uvědomme si, že sestrojovný utomt A má ž exponenciální velikost vzhledem k A, le v prxi nám stčí sestrojit pouze dosžitelné stvy A, kterých ovykle neývá tk mnoho. Neoli následovně: Zčneme se stvem reprezentujícím množinu I počátečních stvů nedeterministického utomtu A. Dokud máme v sestrojovném utomtu A stvy s nedefinovnými přechody, vyereme si jeden tkový q znk x. Pro všechny stvy reprezentovné q njdeme všechny možnosti přechodu znkem x v A shrneme je v nové množině stvů q (t již v nšem utomtu může ýt sestrojená). Když nový stv reprezentuje množinu, která protíná neo ze které se v A dá dostt ε-přechody do F, oznčíme jej jko přijímjící. Poznámk: Bohužel ne vždy deterministický utomt sestrojovný z nedeterministického n- stvového utomtu má rozumnou velikost, jsou přípdy, kdy musí mít nejméně 2 n/2 stvů, což už může ýt prkticky nezvládnutelné. 16

Příkld 2.12. Sestrojte k tomuto nedeterministickému utomtu ekvivlentní deterministický:, 3, 1 2, Postupujeme přesně podle Metody 2.11. Tento utomt má jediný nedeterministický přechod znkem ze stvu 3, le přesto udeme muset použít všech 7 stvů odpovídjících neprázdným podmnožinám. Pro jednoduchost množiny stvů z 1, 2, 3 vepisujeme do kroužků ez závorek čárek, jko 123. Zčneme v množině stvů {1} zlev doprv sestrojíme následující utomt:, 13, 1 2 3 12 23 123,,, Poznámk: Závěrem se krátce zmíníme o tzv. chyovém stvu utomtu. V prktických příkldech konstrukce utomtů se ovykle stává, že po přečtení některých nechtěných posloupností znků utomt přechází do stvu, který není přijímjící ve kterém už nvždy zůstává. Tkovému stvu se pk přirozeně říká chyový. Ve zjednodušených zorzeních utomtu se pk tkový chyový stv vynechává přechody do něj nejsou definovány. To je zcel v souldu s definicí nedeterministického utomtu, neoť nedefinovné přechody znmenjí nepřijetí slov. Tkový utomt všk rozhodně není deterministický ve smyslu nšich definic, přestože tře všechny osttní přechody deterministické jsou. Pokud máte z úkol sestrojit deterministický utomt, pk ten musí oshovt i přípdný chyový stv! (Pokud y zkreslení chyového stvu uděllo utomt příliš nepřehledný množstvím šipek, musíte spoň jsně slovně poznment, že všechny zylé šipky vedou do tohoto chyového stvu.) Úlohy k řešení (2.3.1) Kdy utomt z následující Úlohy 2.3.2 přijímá slovo složené ze smých písmen? (2.3.2) Sestrojte ekvivlentní deterministický utomt k tomuto:, 3 1 2 (2.3.3) Kdy utomt z Úlohy 2.3.2 přijímá slovo složené ze smých písmen?, (2.3.4) Uměli yste slovně ( názorně) popst jzyk přijímný utomtem z Úlohy 2.3.2? (2.3.5) Nvrhněte ZNKA přijímjící jzyk všech těch slov nd {, }, které končí sufixem neo sufixem., 17

Rozšiřující studium Čtenářům, kteří chtějí lépe vidět, jk vlstně konečný utomt prcuje, vřele doporučujeme shlédnutí počítčových nimcí, které jsou přílohmi skript [8]. Tyto nimce jsou pro vás extrhovné n we stránkách výuky [5]. 2.4 Cvičení: Konstrukce převody utomtů Příkld 2.13. Existuje konečný deterministický utomt se dvěm stvy rozpoznávjící jzyk všech těch neprázdných slov nd ecedou {,, c}, která oshují lespoň jeden znk? Pokud no, příslušný utomt zde nkreslete. Existuje, stčí se po prvním přečtení znku přesunout do přijímjícího stvu, ve kterém už zůstneme., c,, c 1 2 Příkld 2.14. Existuje konečný deterministický utomt se třemi stvy rozpoznávjící jzyk všech těch neprázdných slov nd ecedou {,, c}, která neoshují žádný znk? Pokud no, příslušný utomt zde nkreslete. (Nezpomeňte, že přijímná slov mjí ýt neprázdná.) N první pohled y se mohlo zdát, že stčí vzít utomt z předchozího příkldu přehodit přijímjící stv. To všk není tk jednoduché, neoť tkový utomt y přijíml i prázdné slovo. Náš utomt má vypdt tkto:, c,, c 1 2 3, c Příkld 2.15. Jk poznáme, že dv konečné utomty A 1 A 2 přijímjí shodné jzyky, tj. zd L(A 1 ) = L(A 2 )? Asi není schůdnou cestou kontrolovt všechn slov přijímná jedním z těchto utomtů, může jich ýt nekonečně mnoho. Přesto již znáte dost, ychom mohli popst jednoduchý konečný postup pro rozhodnutí dné otázky. Nejprve ověříme, zd L(A 1 ) L(A 2 ): Podle Úlohy 2.1.8 sestrojíme utomt A 2 přijímjící opk (doplněk) jzyk L(A 1 ). Poté sestrojíme podle Věty 2.7 utomt B přijímjící průnik jzyků L(A 1 ) L( A 2 ). Elementární pozntky teorie množin nám říkjí, že L(A 1 ) L(A 2 ) právě když L(A 1 ) L( A 2 ) =. Tkže nám stčí ověřit, že utomt B nepřijímá žádné slovo, neoli že v grfu B nevede žádná orientovná cest z počátečního do přijímcího stvu. (Pokud y nopk B přijíml nějké slovo w, pk y w rozlišovlo nše dv utomty.) Symetricky si pk ověříme, zd L(A 2 ) L(A 1 ). Pokud to opět vyjde, celkově dojdeme k závěru, že L(A 1 ) = L(A 2 ). 18

Příkld 2.16. Sestrojte ekvivlentní deterministický utomt k tomuto:, 3 1 2 Postupujeme přesně podle Metody 2.11 utomt tentokrát vyjde mlý: ε,, 1 3 12,, Všimněme si, že výsledný utomt vlstně jenom počítá pritu délky vstupního slov vůec nezáleží n tom, který ze znků, přijde n vstup. Příkld 2.17. Je deterministický utomt sestrojený v Příkldě 2.16 nejmenší možný pro svůj jzyk? Není, sndno je vidět, že počáteční stv 1 lze sloučit se stvem 12. (Později si uvedeme více o tzv. minimlizci utomtu.) Příkld 2.18. Následující zoecněný nedeterministický konečný utomt převeďte n deterministický ez nedosžitelných stvů., 3 ε 1 2, Pozor, všimněme si nejprve, že dný utomt má dv počáteční stvy, tkže počáteční stv deterministického utomtu ude tvořen množinou {1, 3}. Dlším odem k zmyšlení je hned přechod znkem z {1, 3} přímými přechody se lze dostt do stvů 2 1, le nvíc se můžeme dostt i do stvu 3 přechodem z 3 nejprve po ε následně po. Dlší přechody odvodíme odoně. 13 123 23 2 1,, 12 N závěr si všimněme, že ze stvu 2 není přechod definován, proto v deterministickém utomtu příslušný přechod povede do stvu, ve kterém již utomt zůstne nvždy (to je někdy nzýváno chyovým stvem). 19

Příkld 2.19. Sestrojme nedeterministický utomt (ZNKA) rozpoznávjící jzyk všech těch slov nd ecedou {,, c}, která neoshují žádný znk, neo počet výskytů znku je sudý neo počet výskytů znku c dává zytek 2 po dělení třemi. Poždovný utomt jednoduše poskládáme z opku utomtu v Příkldě 2.13 z utomtů v Příkldě 2.2 v Úloze 2.1.2. Budeme mít jeden nový počáteční stv (který ude přijímjící, neoť prázdné slovo je v nšem jzyce) z něj ε-přechody do počátků těchto tří vyjmenovných utomtů., c,, c ε ε ε, c, c,,, c c c Dokážete tento utomt převést n deterministický? Úlohy k řešení (2.4.1) Nvrhněte konečný deterministický utomt přijímjící právě t slov nd ecedou {,, c, d}, které nezčínjí, druhý znk nemjí, třetí znk nemjí c čtvrtý znk nemjí d. (Včetně těch s délkou < 4.) (2.4.2) Nvrhněte konečný deterministický utomt přijímjící právě t slov nd ecedou {,, c, d}, které nezčínjí neo druhý znk nemjí neo třetí znk nemjí c neo čtvrtý znk nemjí d. (2.4.3) Sestrojte deterministický konečný utomt přijímjící všechn t slov délky spoň 4 nd ecedou {, }, ) ve kterých jsou druhý, třetí čtvrtý znk stejné ) ve kterých jsou třetí poslední znk stejné. (2.4.4) Sestrojte deterministický konečný utomt přijímjící všechn t slov délky spoň 2 nd ecedou {, }, ve kterých nejsou poslední dv znky stejné. (2.4.5) Njděte liovolné slovo nd ecedou {, }, které neptří do jzyk přijímného tímto nedeterministickým utomtem se dvěm počátečními stvy: 3 4, 5 1 2 Návod: Pozor, přestože všechny stvy jsou přijímjící, odpověď není tk triviální. (2.4.6) Njděte liovolné slovo nd ecedou {, }, které neptří do jzyk přijímného tímto nedeterministickým utomtem se dvěm počátečními stvy: 20

3 4, 5 1 2 (2.4.7) Následující zoecněný nedeterministický konečný utomt převeďte n deterministický ez nedosžitelných stvů., 3 1 2, (2.4.8) Následující zoecněný nedeterministický konečný utomt převeďte n deterministický ez nedosžitelných stvů., 3 ε 1 2, (2.4.9) Slovně popište jzyk přijímný následujícím nedeterministickým utomtem. 3 1 2 3 Vyhledávání regulární výrzy Úvod Význmnou olstí plikcí konečných utomtů je vyhledávání vzorků (slov) v textu. Jistě ude čtenář souhlsit, že s tkovou úlohou se při počítči potkává téměř kždodenně. N vyhledávání existují stndrdní softwrové nástroje, které jsou ovykle přímo zudovány do systému neo do textových editorů. Předstvme si všk, že tkový nástroj nemáme chtěli ychom v rozsáhlém souoru nlézt slovo PES. Jk n to? Nivní progrmátorský přístup y ylo z kždé pozice v souoru zkontrolovt, zd se v následujících třech ytech ncházejí znky P, E S. Co je všk nevýhodou tkového přístupu? Ke znkům souoru zytečně přistupujeme třikrát. (A ylo y to ještě horší, pokud ychom hledli dlouhá slov.) Copk y to nešlo rychleji? Pokud se nd prolémem hlouěji zmyslíme, vidíme, že n kždém místě souoru nám mimo ktuálního znku stčí 21

si pmtovt dv předchozí. To y přece měl zvládnout i konečný utomt. * P P E S 1 2 3 4 * (Pro vysvětlení, náš utomt hledá po soě znky P,E,S, přitom při výskytu jiných znků se vrcí zse n zčátek.) Co je důležité, utomty umí v textu vyhledávt nejen fixní slov, le i proměnlivé vzorky textu podle popsné struktury. Přesněji řečeno, konečným utomtem lze vyhledávt v dném textu všechny výskyty slov z nějkého regulárního jzyk. A tto plikce nás pk přímo přivádí k otázce, jk ychom dokázli symolicky (textově) zpst nějký regulární jzyk. K tomu účelu si popíšeme tzv. regulární výrzy, se kterými jste se již mohli dříve setkt n všem počítči (tře u příkzu grep). Cíle Nšim cílem je ukázt teoretický zákld lgoritmů pro vyhledávání vzorků v textu tké formálně zvést tzv. regulární výrzy pro symolický zápis celým tříd slov (právě regulárních jzyků, jk uvidíme). Čtenář y měl pochopit sílu regulárních výrzů nučit se je používt v prxi. P 3.1 Automty vyhledávání v textu Nvrhnout utomt přijímjící právě jedno dné slovo s je sndné. Uvědomte si všk, že vyhledání slov v textu je úplně jiný úkol předstvme si jej jko utomt, který čte vstupní text projde n konci kždého výskytu hledného slov přijímjícím stvem. Formálně řečeno, tento utomt má přijímt právě všechn slov mjící hledné slovo s jko sufix (n konci). Příkld 3.1. Nvrhněte konečný utomt přijímjící právě t slov nd ASCII ecedou, která mjí z sufix PAPA. Je docel zřejmé, že zákldem nšeho utomtu ude posloupnost přechodů P, A, P, A vedoucí do přijímjícího stvu. Co všk uděláme, pokud vstupu nlezneme jiný znk? Většinou se vrátíme do počátečního stvu. Ne všk vždy! A A P P P P 1 2 3 4 5 A P A * *......... Npříkld znk P n chyném místě utomt pošle do stvu 2, což je nutné, y tento znk yl tké zpočítán jko první v možném sufixu PAPA. Dokonce ze stvu 5 musí při dlším znku P utomt přejít rovnou do stvu 4, neoť z prvním PAPA může hned následovt dlší (s překryvem výskytu) jko PAPAPA. Souhrnem těchto úvh získáme výše nkreslený výsledný utomt. 22