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

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

Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20

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

Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ

doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je

Naproti tomu gramatika je vlastně soupis pravidel, jak

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43

Predikátová logika 1. řádu shrnutí

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

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

Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b

Turingovy stroje. Teoretická informatika Tomáš Foltýnek

AUTOMATY A GRAMATIKY

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

/1: Teoretická informatika(ti) přednáška 4

Minimalizace KA - Úvod

Teoretická informatika průběh výuky v semestru 1

Naproti tomu gramatika je vlastně soupis pravidel, jak

Formální jazyky a automaty Petr Šimeček

Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory

Formální jazyky a gramatiky Teorie programovacích jazyků

Základy teoretické informatiky Formální jazyky a automaty

Pro každé formule α, β, γ, δ platí: Pro každé formule α, β, γ platí: Poznámka: Platí právě tehdy, když je tautologie.

2 Formální jazyky a gramatiky

Množiny. množinové operace jsou mírně odlišné od

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

/01: Teoretická informatika(ti) přednáška 5

Úvod do informatiky. Miroslav Kolařík

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

Syntaxí řízený překlad

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39

Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49

Vlastnosti regulárních jazyků

: Teoretická informatika(ti)

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

0. ÚVOD - matematické symboly, značení,

Teoretická informatika - Úkol č.1

Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

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

Rovnost lze vyjádřit jako predikát, např. můžeme zvolit, že P(x, y) reprezentujetvrzení xjerovnoy.

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

LIMITA A SPOJITOST FUNKCE

Vztah jazyků Chomskeho hierarchie a jazyků TS

Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27

Úvod do programovacích jazyků (Java)

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Deterministický konečný automat

Cvičení 1. Úvod do teoretické informatiky(2014/2015) cvičení 1 1

Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Algoritmizace a programování

Jednoznačné a nejednoznačné gramatiky

Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.

Matice. Předpokládejme, že A = (a ij ) je matice typu m n: diagonálou jsou rovny nule.

Úvod do teoretické informatiky

Teoretická informatika TIN 2013/2014

Teoretická informatika

Automaty a gramatiky

Konečný automat Teorie programovacích jazyků

p 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Konečný automat. Jan Kybic.

Fakulta informačních technologií. Teoretická informatika

Algoritmizace prostorových úloh

Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

Množiny, základní číselné množiny, množinové operace

Lineární algebra : Násobení matic a inverzní matice

V: Pro nulový prvek o lineárního prostoru L platí vlastnosti:

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

Výroková a predikátová logika - II

4.2 Syntaxe predikátové logiky

Výroková logika. Teoretická informatika Tomáš Foltýnek

Lineární algebra : Násobení matic a inverzní matice

Základy maticového počtu Matice, determinant, definitnost

UČEBNÍ TEXTY VYSOKÝCH ŠKOL. Prof. RNDr. Milan Češka, CSc. Gramatiky a jazyky

Lineární algebra : Lineární prostor

Výroková a predikátová logika - VII

Cílem kapitoly je opakování a rozšíření středoškolských znalostí v oblasti teorie množin.

Úvod do informatiky. Miroslav Kolařík

Operační výzkum. Síťová analýza. Metoda CPM.

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

Matematická analýza 1

Matematická logika. Miroslav Kolařík

Základy logiky a teorie množin

Složitost Filip Hlásek

Pravděpodobnost a její vlastnosti

Algoritmizace prostorových úloh

2. Definice pravděpodobnosti

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Katedra počítačů FEL

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Lexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2

Programovací jazyk Pascal

Matematická analýza pro informatiky I.

Lexikální analýza. Miroslav Beneš Dušan Kolář

Transkript:

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

Abeceda a slovo Definice Abeceda je libovolná neprázdná konečná množina symbolů(znaků). Poznámka: Abeceda se často označuje řeckým písmenem Σ(velké sigma). Definice Slovo v dané abecedě je libovolná konečná posloupnost symbolů z této abecedy. Příklad 1: Σ = {A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z} Slova v abecedě Σ: AHOJ ABRACADABRA ERROR Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 2/ 50

Abeceda a slovo Příklad 2: Σ 2 = {A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z, } Slovovabecedě Σ 2 : HELLO WORLD Příklad 3: Σ 3 = {0,1,2,3,4,5,6,7,8,9} Slovavabecedě Σ 3 : 0,31415926536,65536 Příklad 4: Slovavabecedě Σ 4 = {0,1}:011010001,111,1010101010101010 Příklad 5: Slovavabecedě Σ 5 = {a,b}:aababb,abbabbba,aaab Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 3/ 50

Abeceda a slovo Příklad 6: Abeceda Σ 6 jemnožinavšechasciiznaků. Příklad slova: class HelloWorld { public static void main(string[] args) { System.out.println("Hello, world!"); } } class HelloWorld { public static void main(str Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 4/ 50

Teorie formálních jazyků motivace Jazyk množina(některých) slov tvořených symboly z dané abecedy Příklady typů problémů, při jejichž řešení se využívá poznatků z teorie formálních jazyků: Tvorba překladačů: lexikální analýza syntaktická analýza Vyhledávání v textu: hledání zadaného vzorku hledání textu zadaného regulárním výrazem Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 5/ 50

Práce s formálními jazyky Když chceme nějaký jazyk popsat, máme několik možností: Můžeme vyjmenovat všechna jeho slova(což je ale použitelné jen pro malé konečné jazyky). Příklad: L = {aab, babba, aaaaaa} Můžeme specifikovat nějakou vlastnost, kterou mají právě ta slova, která do tohoto jazyka patří: Příklad: Jazyk nad abecedou {0, 1}, obsahující všechna slova, ve kterých je počet výskytů symbolu 1 sudý. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 6/ 50

Práce s formálními jazyky V teorii formálních jazyků se používají především následující dva přístupy: Popsat(idealizovaný) stroj, zařízení, algoritmus, který rozpozná slova patřící do daného jazyka vede k použití tzv. automatů. Popsat nějaký mechanismus umožňující generovat všechna možná slovapatřícídodanéhojazyka vedektzv.gramatikáma regulárním výrazům. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 7/ 50

Některé základní pojmy Délkaslovajepočetznakůveslově. Například délka slova abaab je 5. Délkuslovawoznačujeme w. Pokudtedynapř.w =abaab,pak w =5. Početvýskytůznakuaveslověwoznačujeme w a. Proslovow =ababbtedyplatí w a =2a w b =3. Prázdné slovo je slovo délky 0, tj. neobsahující žádné znaky. Prázdné slovo se označuje řeckým písmenem ε(epsilon). (Pozn.: V literatuře se pro označení prázdného slova někdy používá místo symbolu ε řecké písmeno λ(lambda).) ε =0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 8/ 50

Zřetězení slov Se slovy je možné provádět operaci zřetězení: Například zřetězením slov OST a RAVA vznikne slovo OSTRAVA. Operace zřetězení se označuje symbolem (podobně jako násobení). Tento symbol je možné vypouštět. OST RAVA =OSTRAVA Zřetězeníjeasociativní,tj.prolibovolnátřislovau,vawplatí (u v) w =u (v w) což znamená, že při zápisu více zřetězení můžeme vypouštět závorky a psátnapříkladw 1 w 2 w 3 w 4 w 5 místo (w 1 (w 2 w 3 )) (w 4 w 5 ). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 9/ 50

Zřetězení slov Zřetězení není komutativní, tj. obecně pro dvojici slov u a v neplatí rovnost u v =v u Příklad: OST RAVA RAVA OST Zjevněprolibovolnáslovavawplatí: v w = v + w Pro libovolné slovo w také platí: ε w =w ε =w Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 10/ 50

Prefixy, sufixy a podslova Definice Slovoxjeprefixemslovay,jestližeexistujeslovovtakové,žey =xv. Slovoxjesufixemslovay,jestližeexistujeslovoutakové,žey =ux. Slovoxjepodslovemslovay,jestližeexistujíslovauavtaková,že y =uxv. Příklad: Prefixyslovaabaabjsou ε,a,ab,aba,abaa,abaab. Sufixyslovaabaabjsou ε,b,ab,aab,baab,abaab. Podslovaslovaabaabjsou ε,a,b,ab,ba,aba,baa,aab,abaa, baab, abaab. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 11/ 50

Jazyk Množinuvšechslovtvořenýchsymbolyzabecedy Σoznačujeme Σ. Definice (Formální) jazyk L v abecedě Σ je nějaká libovolná podmnožina množiny Σ,tj.L Σ. Příklad1:Množina {00,01001,1101}jejazykvabecedě {0,1}. Příklad 2: Množina všech syntakticky správných programů v jazyce C je jazyk v abecedě tvořené množinou všech ASCII znaků. Příklad 3: Množina všech textů obsahujících sekvenci znaků ahoj je jazyk v abecedě tvořené množinou všech ASCII znaků. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 12/ 50

Množinové operace na jazycích Vzhledem k tomu, že jazyky jsou množiny, můžeme s nimi provádět množinové operace: Sjednocení L 1 L 2 jejazyktvořenýslovy,kterápatříbuďdojazykal 1 nebodojazykal 2 (nebodoobou). Průnik L 1 L 2 jejazyktvořenýslovy,kterápatřísoučasnědojazyka L 1 idojazykal 2. Doplněk L 1 jejazyktvořenýtěmislovyze Σ,kteránepatřídoL 1. Rozdíl L 1 L 2 jejazyktvořenýslovy,kterápatřídol 1,alenepatří dol 2. Poznámka: Při operacích nad jazyky předpokládáme, že jazyky, se kterými operaci provádíme, používají tutéž abecedu Σ. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 13/ 50

Množinové operace na jazycích Formálně: Sjednocení:L 1 L 2 = {w Σ w L 1 w L 2 } Průnik:L 1 L 2 = {w Σ w L 1 w L 2 } Doplněk:L 1 = {w Σ w L 1 } Rozdíl:L 1 L 2 = {w Σ w L 1 w L 2 } Poznámka:Předpokládáme,žeL 1,L 2 Σ pronějakoudanouabecedu Σ. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 14/ 50

Množinové operace na jazycích Příklad: Uvažujme jazyky nad abecedou {a, b}. Pak L 1 množinavšechslovobsahujícíchpodslovobaa L 2 množinavšechslovsesudýmpočtemvýskytůsymbolub L 1 L 2 množinavšechslovobsahujícíchpodslovobaanebosudý počet symbolů b L 1 L 2 množinavšechslovobsahujícíchpodslovobaaasudý počet symbolů b L 1 množinavšechslov,kteráneobsahujípodslovobaa L 1 L 2 množinavšechslov,vekterýchsevyskytujepodslovobaa, alekdepočetsymbolůbnenísudý Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 15/ 50

Zřetězení jazyků Definice ZřetězeníjazykůL 1 al 2,kdeL 1,L 2 Σ,jejazykL Σ takový,že prokaždéw Σ platí w L ( u L 1 )( v L 2 )(w =u v) ZřetězeníjazykůL 1 al 2 označujemel 1 L 2. Příklad: L 1 = {abb,ba} L 2 = {a,ab,bbb} JazykL 1 L 2 obsahujeslova: abba abbab abbbbb baa baab babbb Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 16/ 50

Iterace jazyka Definice IteracejazykaL,označovanázápisemL,jejazyktvořenýslovyvzniklými zřetězením libovolného počtu slov z jazyka L. Tj.w L právětehdy,když n N : w 1,w 2,...,w n L:w =w 1 w 2 w n Příklad:L = {aa,b} L = {ε,aa,b,aaaa,aab,baa,bb,aaaaaa,aaaab,aabaa,aabb,...} Poznámka: Počet slov, která zřetězujeme, může být i 0, což znamená, že vždyplatí ε L (bezohledunato,zda ε Lnebone). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 17/ 50

Iterace jazyka alternativní definice NejprvedefinujemeprojazykLačíslok NjazykL k : L 0 = {ε}, L k =L k 1 L prok 1 To znamená L 0 = {ε} L 1 = L L 2 = L L L 3 = L L L L 4 = L L L L L 5 = L L L L L... Příklad:ProL = {aa,b}jazykl 3 obsahujenásledujícíslova: aaaaaa aaaab aabaa aabb baaaa baab bbaa bbb Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 18/ 50

Iterace jazyka alternativní definice Alternativní definice Iterace jazyka L je jazyk L = k 0 L k Poznámka: L k =L 0 L 1 L 2 L 3 k 0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 19/ 50

Iterace jazyka Poznámka:PoužívásetakézápisL + jakozkratkaza L L,tj. L + = k 1 L k Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 20/ 50

Zrcadlový obraz Zrcadlovýobrazslovawjeslovowzapsané pozpátku. Zrcadlovýobrazslovawznačímew R. Příklad: w =AHOJ w R =JOHA Formálněmůžemedefinovat,žeprow =a 1 a 2 a n (kdea i Σ)je w R =a n a n 1 a 1. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 21/ 50

Zrcadlový obraz Zrcadlový obraz jazyka L je jazyk tvořený zrcadlovými obrazy všech slov zjazykal. ZrcadlovýobrazjazykaLznačímeL R. L R = {w R w L} Příklad: L = {ab,baaba,aaab} L R = {ba,abaab,baaa} Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 22/ 50

Uspořádání na slovech Předpokládejme určité(lineární) uspořádání < symbolů abecedy Σ, tj.pokud Σ = {a 1,a 2,...,a n },takplatí a 1 <a 2 <... <a n. Příklad: Σ = {a,b,c},přičemža <b <c. Namnožině Σ můžemedefinovatnásledující(lineární)uspořádání < L : x < L yprávětehdy,když: x < y,nebo x = y aexistujíslovau,v,w Σ asymbolya,b Σtakové,že platí x =uav y =ubw a <b Neformálněmůžemeříctvuspořádání < L řadímeslovapodledélkya v rámci stejné délky lexikograficky(podle abecedy). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 23/ 50

Uspořádání na slovech Všechnaslovanadabecedou Σmůžemepomocíuspořádání < L seřaditdo posloupnosti w 0,w 1,w 2,... vekterésekaždéslovow Σ vyskytujeprávějednouakdeprolibovolná i,j Nplatí,žew i < L w j právětehdy,kdyži <j. Příklad:Proabecedu Σ = {a,b,c}(kdea <b <c)budezačátek posloupnosti vypadat následovně: ε,a,b,c,aa,ab,ac,ba,bb,bc,ca,cb,cc,aaa,aab,aac,aba,abb,abc,... PokudbudememluvitnapříkladoprvníchdesetislovechjazykaL Σ, mámetímnamyslidesetslov,kterápatřídojazykalajsoumezivšemi slovyzjazykalnejmenšívzhledemkuspořádání < L. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 24/ 50

Regulární výrazy Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 25/ 50

Regulární výrazy Regulární výrazy popisující jazyky nad abecedou Σ:, ε,a(kdea Σ)jsouregulárnívýrazy:... označujeprázdnýjazyk ε... označujejazyk {ε} a... označujejazyk {a} Jestliže α, βjsouregulárnívýrazy,paki(α+β), (α β), (α )jsou regulární výrazy: (α+β)... označujesjednoceníjazykůoznačených αaβ (α β)... označujezřetězeníjazykůoznačených αaβ (α )... označujeiteracijazykaoznačeného α Neexistují žádné další regulární výrazy než ty definované podle předchozích dvou bodů. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 26/ 50

Regulární výrazy Příklad: abeceda Σ = {0,1} Podledefinicejsou0i1regulárnívýrazy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 27/ 50

Regulární výrazy Příklad: abeceda Σ = {0,1} Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 27/ 50

Regulární výrazy Příklad: abeceda Σ = {0,1} Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Protože0jeregulárnívýraz,jei(0 )regulárnívýraz. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 27/ 50

Regulární výrazy Příklad: abeceda Σ = {0,1} Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Protože0jeregulárnívýraz,jei(0 )regulárnívýraz. Protože (0+1)i(0 )jsouregulárnívýrazy,jei((0+1) (0 )) regulární výraz. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 27/ 50

Regulární výrazy Příklad: abeceda Σ = {0,1} Podledefinicejsou0i1regulárnívýrazy. Protože0i1jsouregulárnívýrazy,jei(0+1)regulárnívýraz. Protože0jeregulárnívýraz,jei(0 )regulárnívýraz. Protože (0+1)i(0 )jsouregulárnívýrazy,jei((0+1) (0 )) regulární výraz. Poznámka: Jestliže α je regulární výraz, zápisem [α] označujeme jazyk definovaný regulárním výrazem α. [((0+1) (0 ))] = {0,1,00,10,000,100,0000,1000,00000,...} Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 27/ 50

Regulární výrazy Strukturu regulárního výrazu si můžeme znázornit abstraktním syntaktickým stromem: + + 1 1 1 1 0 0 0 1 (((((0 1) ) 1) (1 1))+(((0 0)+1) )) Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 28/ 50

Regulární výrazy Popis(abstraktní) syntaxe regulárních výrazů pomocí Backus-Naurovy formy: α ::= ε a α α α α+α Formální definice sémantiky regulárních výrazů: [ ] = [ε] = {ε} [a] = {a} [α ] = [α] [α β] = [α] [β] [α+β] = [α] [β] Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 29/ 50

Regulární výrazy Aby byl zápis regulárních výrazů přehlednější a stručnější, používáme následují pravidla: Vynecháváme vnější pár závorek. Vynecháváme závorky, které jsou zbytečné vzhledem k asociativitě operací sjednocení(+) a zřetězení( ). Vynecháváme závorky, které jsou zbytečné vzhledem k prioritě operací (nejvyššíprioritumáiterace( ),menšízřetězení( )anejmenší sjednocení(+)). Nepíšeme tečku pro zřetězení. Příklad: Místo obvykle píšeme (((((0 1) ) 1) (1 1))+(((0 0)+1) )) (01) 111+(00+1) Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 30/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy ε,0,00,000,... Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy ε,0,00,000,... (01)... jazyktvořenýslovy ε,01,0101,010101,... Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy ε,0,00,000,... (01)... jazyktvořenýslovy ε,01,0101,010101,... (0+1)... jazyktvořenývšemislovynadabecedou {0,1} Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy ε,0,00,000,... (01)... jazyktvořenýslovy ε,01,0101,010101,... (0+1)... jazyktvořenývšemislovynadabecedou {0,1} (0+1) 00... jazyktvořenývšemislovykončícími00 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy Příklady:Vevšechpřípadech Σ = {0,1}. 0... jazyktvořenýjedinýmslovem0 01... jazyktvořenýjedinýmslovem01 0+1... jazyktvořenýdvěmaslovy0a1 0... jazyktvořenýslovy ε,0,00,000,... (01)... jazyktvořenýslovy ε,01,0101,010101,... (0+1)... jazyktvořenývšemislovynadabecedou {0,1} (0+1) 00... jazyktvořenývšemislovykončícími00 (01) 111(01)... jazyktvořenývšemislovyobsahujícímipodslovo111 předcházené i následované libovolným počtem slov 01 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 31/ 50

Regulární výrazy (0+1) 00+(01) 111(01)... jazyktvořenývšemislovy,kterábuď končí 00 nebo obsahují podslovo 111 předcházené i následované libovolným počtem slov 01 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 32/ 50

Regulární výrazy (0+1) 00+(01) 111(01)... jazyktvořenývšemislovy,kterábuď končí 00 nebo obsahují podslovo 111 předcházené i následované libovolným počtem slov 01 (0+1) 1(0+1)...jazyktvořenývšemislovyobsahujícímialespoň jeden symbol 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 32/ 50

Regulární výrazy (0+1) 00+(01) 111(01)... jazyktvořenývšemislovy,kterábuď končí 00 nebo obsahují podslovo 111 předcházené i následované libovolným počtem slov 01 (0+1) 1(0+1)...jazyktvořenývšemislovyobsahujícímialespoň jeden symbol 1 0 (10 10 )... jazyktvořenývšemislovyobsahujícímisudýpočet symbolů 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 32/ 50

Konečné automaty Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 33/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka Příklad: Uvažujme slova nad abecedou {0, 1}. Chtěli bychom rozpoznávat jazyk L, který je tvořen slovy, ve kterých se vyskytuje sudý počet symbolů 1. Chceme navrhnout zařízení, které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. 0 1 0 1 1 1 0 1 0 0 1 ANO Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 34/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 0 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 2 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 3 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 4 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 4 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 5 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 5 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 5 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka První nápad: Počítat počet výskytů symbolů 1. 0 1 0 1 1 1 0 1 0 0 1 6 ANO 6jesudéčíslo Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 35/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Druhý nápad: Ve skutečnosti nás zajímá pouze, zda počet dosud přečtených symbolů 1 je sudý nebo lichý(tj. místo čísla si stačí pamatovat jen jeho poslední bit). 0 1 0 1 1 1 0 1 0 0 1 S ANO Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 36/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: S L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 0 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 L Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Rozpoznávání jazyka Chovaní tohoto zařízení můžeme popsat grafem: 0 S 1 1 0 L 0 1 0 1 1 1 0 1 0 0 1 S Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 37/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b Deterministický konečný automat se skládá ze stavů a přechodů. Jedenzestavůjeoznačenjakopočátečnístavaněkterézestavůjsou označeny jako přijímající. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 38/ 50

Deterministický konečný automat Formálně je deterministický konečný automat(dka) definován jako pětice (Q,Σ,δ,q 0,F) kde: Q je neprázdná konečná množina stavů Σ je abeceda(neprázdná konečná množina symbolů) δ :Q Σ Qjepřechodováfunkce q 0 Qjepočátečnístav F Qjemnožinapřijímajícíchstavů Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 39/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b Q = {1,2,3,4,5} Σ = {a,b} q 0 =1 F = {1,4,5} δ(1,a) =2 δ(1,b) =1 δ(2,a) =4 δ(2,b) =5 δ(3,a) =1 δ(3,b) =4 δ(4,a) =1 δ(4,b) =3 δ(5,a) =4 δ(5,b) =5 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 40/ 50

Deterministický konečný automat Místo zápisu δ(1,a) =2 δ(1,b) =1 δ(2,a) =4 δ(2,b) =5 δ(3,a) =1 δ(3,b) =4 δ(4,a) =1 δ(4,b) =3 δ(5,a) =4 δ(5,b) =5 budeme raději používat stručnější tabulku nebo grafické znázornění: δ a b 1 2 1 2 4 5 3 1 4 4 1 3 5 4 5 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 41/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b a b a b b 1 1 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 42/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b a b a b b 1 a 2 2 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 42/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b a b a b b 1 a 2 b 5 5 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 42/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b a b a b b 1 a 2 b 5 a 4 4 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 42/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b a b a b b 1 a 2 b 5 a 4 b 3 3 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 42/ 50

Deterministický konečný automat b a 1 2 b a a a b 3 4 b a 5 b a b a b b 1 a 2 b 5 a 4 b 3 b 4 4 Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 42/ 50

Deterministický konečný automat Definice MějmeDKAA = (Q,Σ,δ,q 0,F). Zápisemq w q,kdeq,q Qaw Σ,budemeoznačovatto,že pokudjeautomatvestavuq,takpřečtenímslovawpřejdedostavuq. Poznámka: Q Σ Qjeternárnírelace. Místo (q,w,q ) píšemeq w q. ProDKAplatí,žeprolibovolnýstavqalibovolnéslovowexistujeprávě jedenstavq takový,žeq q w. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 43/ 50

Deterministický konečný automat Relaci můžeme formálně definovat následující induktivní definicí: q ε qprolibovolnéq Q Proa Σaw Σ : q aw q w q právětehdy,kdyžexistujeq Qtakové,že δ(q,a) =q a q. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 44/ 50

Deterministický konečný automat Slovow Σ jepřijímánodeterministickýmkonečnýmautomatem A = (Q,Σ,δ,q 0,F)právětehdy,kdyžexistujestavq Ftakový,že w q 0 q. Definice Jazyk rozpoznávaný(přijímaný) daným deterministickým konečným automatema = (Q,Σ,δ,q 0,F),označovanýL(A),jemnožinavšechslov přijímaných tímto automatem, tj. L(A) = {w Σ q F :q 0 w q} Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 45/ 50

Regulární jazyky Definice Jazyk L je regulární právě tehdy, když existuje nějaký deterministicý konečnýautomata,kterýjejpřijímá,tj.dkaa,takový,žel(a) =L. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 46/ 50

Ekvivalence automatů b b b a a 1 2 3 a b b b a 1 2 a 3 a b b a 1 2 a Všechny 3 automaty přijímají jazyk všech slov se sudým počtem a. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 47/ 50

Ekvivalence automatů Definice OkonečnýchautomatechA 1,A 2 řekneme,žejsouekvivalentní,jestliže L(A 1 ) =L(A 2 ). Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 48/ 50

Nedosažitelné stavy automatu b a a a 1 2 3 a b b b a 4 5 6 b a,b AutomatpřijímájazykL = {w {a,b} wobsahujepodslovoab} Pro žádnou posloupnost vstupních symbolů se automat nedostane do stavů3,4nebo5.. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 49/ 50

Nedosažitelné stavy automatu b a a 1 2 b 6 a,b AutomatpřijímájazykL = {w {a,b} wobsahujepodslovoab} Pro žádnou posloupnost vstupních symbolů se automat nedostane do stavů3,4nebo5. Pokud tyto stavy odstraníme, pořád automat přijímá stejný jazyk L. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 49/ 50

Nedosažitelné stavy automatu Definice StavqkonečnéhoautomatuA = (Q,Σ,δ,q 0,F)jedosažitelnýpokud existujenějakéslovowtakové,žeq 0 w q. V opačném případě stav nazýváme nedosažitelný. Do nedosažitelných stavů nevede v grafu automatu žádná orientovaná cesta z počátečního stavu. Nedosažitelné stavy můžeme z automatu odstranit(spolu se všemi přechody vedoucími do nich a z nich). Jazyk přijímaný automatem se nezmění. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března 2013 50/ 50