Naproti tomu gramatika je vlastně soupis pravidel, jak



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

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

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

AUTOMATY A GRAMATIKY

Vlastnosti regulárních jazyků

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

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

Kapitola Základní množinové pojmy Princip rovnosti. Dvě množiny S a T jsou si rovny (píšeme S = T ) prvek T je také prvkem S.

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

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

PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy

Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice

Minimalizace KA - Úvod

Vrcholová barevnost grafu

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

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

Kapitola 1. Úvod. 1.1 Značení. 1.2 Výroky - opakování. N... přirozená čísla (1, 2, 3,...). Q... racionální čísla ( p, kde p Z a q N) R...

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

Množiny, relace, zobrazení

4.2 Syntaxe predikátové logiky

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 3. PREDNÁŠKA - KOMPAKTNÍ PROSTORY.

PŘEDNÁŠKA 2 POSLOUPNOSTI

Vztah jazyků Chomskeho hierarchie a jazyků TS

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Úvod do informatiky. Miroslav Kolařík

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

Substituce. Petr Štěpánek. S využitím materialu Krysztofa R. Apta. Logické programování 2 1

Vysoké učení technické v Brně Fakulta informačních technologií. Regulární pologrupy. Semestrální práce do předmětu Algebra, Kombinatorika, Grafy

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

Stromové rozklady. Definice 1. Stromový rozklad grafu G je dvojice (T, β) taková, že T je strom,

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

Matematická analýza 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.

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

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

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

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

IV. Základní pojmy matematické analýzy IV.1. Rozšíření množiny reálných čísel

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

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

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

1. Pologrupy, monoidy a grupy

DEFINICE Z LINEÁRNÍ ALGEBRY

H {{u, v} : u,v U u v }

Hypergrafové removal lemma a Szemérediho

TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.

Úvod do informatiky. Miroslav Kolařík

Modely Herbrandovské interpretace

Algebraické struktury s jednou binární operací

Syntaxí řízený překlad

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 α

Grafy. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta.

Důkaz Heineho Borelovy věty. Bez újmy na obecnosti vezmeme celý prostor A = M (proč? úloha 1). Implikace. Nechť je (M, d) kompaktní a nechť.

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

2 Formální jazyky a gramatiky

NAIVNÍ TEORIE MNOŽIN, okruh č. 5

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

Dijkstrův algoritmus

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

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

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Bezkontextové gramatiky nad volnými grupami

10 Přednáška ze

Matematická analýza pro informatiky I.

Věta o dělení polynomů se zbytkem

Čí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:

Texty k přednáškám z MMAN3: 4. Funkce a zobrazení v euklidovských prostorech

1 Linearní prostory nad komplexními čísly

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Funkce. Definiční obor a obor hodnot

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad

Základy logiky a teorie množin

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

4 Pojem grafu, ve zkratce

Definice 9.4. Nedeterministický algoritmus se v některých krocích může libovolně rozhodnout pro některé z několika možných různých pokračování.

Úvod do informatiky. Miroslav Kolařík

10. DETERMINANTY " # $!

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

Základy teorie množin

Teoretická informatika Tomáš Foltýnek Teorie čísel Nekonečno

NP-úplnost problému SAT

Lineární algebra : Lineární prostor

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Konečný automat. Jan Kybic.

Aritmetika s didaktikou I.

Teorie množin. pro fajnšmekry - TeMno. Lenka Macálková BR Solutions Orličky. Lenka (Brkos 2010) TeMno

Analýza Petriho sítí. Analýza Petriho sítí p.1/28

Lineární prostory. - vektorové veličiny(síla, rychlost, zrychlení,...), skládání, násobení reálným číslem

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

1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),

ZÁKLADY TEORETICKÉ INFORMATIKY

5 Orientované grafy, Toky v sítích

Úlohy k procvičování textu o univerzální algebře

Matematický ústav Slezské univerzity v Opavě Učební texty k přednášce ALGEBRA I, zimní semestr 2000/2001 Michal Marvan. 2.

Doporučené příklady k Teorii množin, LS 2018/2019

Co je to univerzální algebra?

Transkript:

1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen budeme říkat slova, množinám slov pak jazyky. Zaměříme se na dva základní typy popisu: rozpoznávání a generování. Pro rozpoznávání využijeme pojem automatu, pro generování pak pojem gramatiky. Zhruba řečeno, automat postupně zpracovává vstupní slovo a na základě stavu, do kterého se dostane po přečtení celého slova, rozhodne, zda slovo do jazyka patři nebo nepatří. S formální definicí automatu se setkáme hned v této přednášce. Naproti tomu gramatika je vlastně soupis pravidel, jak vygenerovat všechna slova jazyka. Jako příklad jazyka, pro který máme gramatiku, která jej generuje, uved me např. správně utvořené algebraické výrazy, nebo správně napsané programy v daném programovacím jazyce. Gramatikám (jako silnějšímu nástroji než je jen konečný automat) se věnujeme v druhé polovině přednášky. Dříve než přistoupíme ke studiu konečných automatů, připomeneme základní pojmy týkající se jazyků. 1.1 Jazyky 1.1.1 Abeceda. Konečnou neprázdnou množinu Σ budeme nazývat abecedou. Prvky množiny Σ nazýváme symboly, písmeny apod. 1.1.2 Slovo nad abecedou. Pro danou abecedu Σ slovo nad Σ je libovolná konečná posloupnost prvků abecedy Σ. Tedy např. pro Σ = {a, b} jsou aab, b, bbaba slova nad Σ. Prázdné slovo, značíme je ε, je posloupnost, která neobsahuje ani jeden symbol. 1.1.3 Délka slova. Je dáno slovo nad abecedou Σ. Délka slova je rovna délce posloupnosti, tj. počtu symbolů, které se ve slově nacházejí. Délku slova u značíme u. Tedy, délka slova aab je rovna 3, délka b je 1, délka prázdného slova ε je 0. V dalším textu budeme používat ještě následující značení: pro slovo u nad abecedou Σ a c Σ symbol u c je počet výskytů symbolu c ve slově u. Tedy např. pro u = aab je u a = 2, u b = 1. 1.1.4 Zřetězení slov. Je dána abeceda Σ. Pro dvě slova u, v nad abecedou Σ definujeme operaci zřetězení takto: Je-li u = a 1 a 2... a n a v = b 1 b 2... b k, pak u v = a 1 a 2... a n b 1 b 2... b k. Často znak pro operaci zřetězení vynecháváme; píšeme tedy uv místo přesnějšího u v. 1.1.5 Tvrzení. Zřetězení slov je asociativní operace na množině všech slov nad danou abecedou. 5. října 2015, 21:28

2 [151005-2128 ] Kapitola 1. Úvod 1.1.6 Poznámka. Platí, že každé slovo u = a 1 a 2... a n nad abecedou Σ, vzniklo (postupným) zřetězením slov délky 1, tj. u = a 1 a 2... a n. Proto se někdy místo slovo nad abecedou používá termín řetězec. 1.1.7 Σ, Σ +. Označíme Σ množinu všech slov nad abecedou Σ. (Speciálně prázdné slovo patří do Σ.) Množina Σ spolu s operací zřetězení tvoří monoid, jehož neutrálním prvkem je prázdné slovo ε. Označíme Σ + množinu všech neprázdných slov nad abecedou Σ. (Tj. Σ + = Σ \ {ε}.) Množina Σ + spolu s operací zřetězení tvoří pologrupu. 1.1.8 Zřetězení slov není komutativní. Např. pro u = aab a v = b je uv = aabb, ale vu = baab. 1.1.9 Pro libovolná slova u a v nad stejnou abecedou platí: uv = u + v. 1.1.10 Je-li u slovo nad abecedou Σ, pak definujeme mocniny slova u takto: u 0 = ε, u i+1 = u u i pro každé i. 1.1.11 Podslovo, prefix, suffix. Je dáno slovo u. Řekneme, že slovo w je podslovem slova u, jestliže existují slova x, y taková, že u = xwy. Slova x, y mohou být i prázdná. Speciálně, slovo u je podslovem sebe sama; ano u = εuε. Jestliže x = ε, řekneme, že slovo w je prefix slova u, tj. jestliže u = w y. Jestliže y = ε, řekneme, že slovo w je suffix slova u, tj. jestliže u = x w. 1.1.12 Vlastní podslovo, prefix, suffix. Je dáno slovo u. Jestliže neprázdné slovo w, w u, je podslovo (resp. prefix, resp. suffix) slova u, pak w se nazývá vlastní podslovo, (resp. vlastní prefix, resp. vlastní suffix slova u. 1.1.13 Jazyk nad abecedou. Je dána abeceda Σ. Jazyk L nad abecedou Σ je libovolná množina slov, tj. L Σ. 1.1.14 Poznámka. Je-li Σ abeceda, pak množina všech slov Σ je spočetná. Jazyků, jako podmnožin spočetné množiny, je víc nespočetně mnoho.

3 Kapitola 2 Konečné automaty 2.1 Deterministické konečné automaty 2.1.1 Použití. Konečné automaty se používají v různých oborech. Jako příklady můžeme uvést překladače, dále se používají při zpracování přirozeného jazyka, při návrzích hardwaru, i dalších. 2.1.2 Zhruba řečeno konečný automat obsahuje konečnou množinu stavů Q, konečnou množinu vstupů Σ, přechodovou funkci δ a počáteční stav q 0. V některých případech ještě i množinu výstupních symbolů Y a výstupní funkci. Uvedeme několik příkladů. 2.1.3 Příklad 1 automat na kávu. Uvažujme zjednodušený příklad automatu na kávu. Automat přijímá mince 1 Kč, 2 Kč a 5 Kč. Automat vydává jediný druh kávy, káva stojí 7 Kč. Automat na tlačítko s vrátí nevyužité peníze. Tento příkad uvedeme podrobněji. Položíme Q = {0, 1, 2, 3, 4, 5, 6}, Σ = {1, 2, 5, s}, Y výstupní funkce jsou dány následující tabulkou: 1 2 5 s 0 1/0 2/0 5/0 0/0 1 2/0 3/0 6/0 0/1 2 3/0 4/0 0/K 0/2 3 4/0 5/0 1/K 0/3 4 5/0 6/0 2/K 0/4 5 6/0 0/K 3/K 0/5 6 0/K 1/K 4/K 0/6 = {K, 0, 1, 2, 3, 4, 5, 6}, přechodová a V prvním sloupci jsou stavy, ve kterých se automat může nacházet, v prvním řádku jsou vstupní symboly. V řádku odpovídajícím stavu q a sloupci se vstupem a je dvojice (nový stav, výstup). (K znamená kávu, číslo udává vrácené peníze). 2.1.4 Příklad 2 posuvný registr. Stavem je uspořádaná k-tice naposled přečtených symbolů. Přečtením dalšího symbolu přejdeme do nové k-tice, tj. do nového stavu. 2.1.5 Příklad 3. Zjistit, zda se v daném slovu u (textu) vyskytuje podslovo aab (šablona), lze konečným automatem. V tomto příkladě máme 4 stavy q 0 bud jsme ještě nečetli žádný symbol nebo poslední čtený symbol nebyl a a přečtená část neobsahovala slovo aab jako podslovo; q 1 přečtená část končí jedním a, ale ne dvěma a a přečtená část neobsahuje slovo aab jako podslovo; 5. října 2015, 21:28

4 [151005-2128 ] Kapitola 2. Konečné automaty q 2 přečtená část končí aa a neobsahuje slovo aab jako podslovo; q 3 přečtená část slova obsahuje podslovo aab. Stav q 3 je koncovým (přijímajícím) stavem. 2.1.6 Obecně rozlišujeme čtyři typy automatů: Mealyho automat, Mooreův automat, akceptor a automat bez výstupu. (Dále se budeme zabývat hlavně tzv. akceptory.) 2.1.7 Mealyho automat je šestice (Q, Σ, Y, δ, q 0, λ). kde Q, Σ, Y a q 0 mají stejný význam jako v 2.1.2, přechodová funkce je zobrazení δ: Q Σ Q a výstupní funkce je zobrazení λ: Q Σ Y. 2.1.8 Mooreův automat je šestice (Q, Σ, Y, δ, q 0, β). kde Q, Σ, Y, δ a q 0 mají stejný význam jako v 2.1.7, β je zobrazení β: Q Y (říká se mu značkovací funkce). 2.1.9 Akceptor, též DFA, je pětice (Q, Σ, δ, q 0, F ), kde Q, Σ, δ a q 0 mají stejný význam jako v 2.1.8 a F Q je množina koncových (též přijímajících) stavů. Jedná se vlastně o Mooreův automat, kde množina výstupních symbolů má dva prvky, totiž Y = {0, 1}, a proto značkovací funkci β nahrazujeme množinou těch stavů, kterým značkovací funkce přiřazuje 1. 2.1.10 Automat bez výstupu je společnou částí všech výše uvedených automatů; tj. jedná se o (Q, Σ, δ, q 0 ). 2.1.11 Stavový diagram. Kromě tabulky můžeme konečný automat zadat též stavovým diagramem. Je dán konečný automat s množinou stavů Q, množinou vstupních symbolů Σ a přechodovou funkcí δ. Stavovým diagramem nazýváme orientovaný ohodnocený graf, jehož vrcholy jsou stavy automatu (tj. V = Q) a orientovaná hrana vede z vrcholu q do vrcholu p právě tehdy, když δ(q, a) = p. Je-li automat DFA nebo Mooreův, je orientovaná hrana (q, p), která vznikla na základě přechodu δ(q, a) = p, ohodnocena vstupním symbolem a. V případě Mealyho automatu je ohodnocena dvojicí a/λ(q, a). Jestliže se jedná o Mooreův automat, vrcholy stavového diagramu jsou navíc ohodnoceny značkovací funkcí β. Pro akceptor, tj DFA, označujeme pouze množinu koncových stavů, a to bud šipkou mířící ze stavu ven nebo jiným označením stavů, které patří do množiny F. Počáteční stav q 0 je označován šipkou mířící do něj. 2.1.12 Rozšířená přechodová funkce. Je dán automat (Q, Σ, δ). Rozšířená přechodová funkce δ : Q Σ Q je definovaná induktivně takto: 1. δ (q, ɛ) = q, pro všechna q Q, 2. δ (q, ua) = δ(δ (q, u), a), pro všechna q Q, a Σ, u Σ. 2.1.13 Tvrzení. Je dán automat (Q, Σ, δ). Potom pro každý stav q Q a každá slova u, v Σ platí δ (q, uv) = δ (δ (q, u), v). Toto tvrzení se dokáže např. indukcí podle n = v. 2.1.14 Jazyk přijímaný konečným automatem. Je dán DFA M = (Q, Σ, δ, q 0, F ). Řekneme, že slovo u Σ je přijímáno automatem M právě tehdy, když δ (q 0, u) F. Množina všech slov, které automat přijímá, se nazývá jazyk přijímaný M, značíme ji L(M). Tedy, L(M) = {w δ (q 0, w) F }.

2.1. Deterministické konečné automaty [151005-2128 ] 5 2.1.15 Regulární jazyky. Každý jazyk, který je přijímán některým DFA, nazveme regulární jazyk. Třídu všech regulárních jazyků označujeme Reg. 2.1.16 Ukážeme si ještě jednu vlastnost regulárních jazyků. Následující tvrzení dává nutnou podmínku pro to, aby daný jazyk byl regulární. Tvrzení se také nazývá lemma o vkládání. 2.1.17 Pumping lemma pro regulární jazyky. Pro každý regulární jazyk L nad abecedou Σ (tj. jazyk, který je přijímán nějakým DFA) existuje přirozené číslo n s touto vlastností: Každé slovo u L, které je delší než n (tj. u > n) lze rozdělit na tři slova u = xwy tak, že 1. xw n, 2. w ε 3. a pro každé přirozené číslo i = 0, 1,... platí xw i y L. Pumping lemma dokážeme v příští přednášce. Ted si ukážeme jedno z možných použití tohoto tvrzení. 2.1.18 Pumping lemma je možno využít k tomu, abychom ukázali, že nějaký jazyk není regulární. Ukážeme si to na příkladu. Jazyk L = {0 m 1 m m 0} není regulární jazyk. Zdůvodnění. Kdyby L byl regulární jazyk, muselo by existovat přirozené číslo n s vlastnostmi 1 až 3 z pumping lemmatu 2.1.17. Ukážeme, že to vede ke sporu. Předpokládejme, že takové číslo n existuje. Vezmeme slovo u = 0 n 1 n, které je délky 2n, což je víc než n. Podle pumping lemmatu u lze rozložit na tři slova u = xwy zmiňovaná v pumping lemmatu??. Ukážeme, že to není možné. Protože každý prefix slova u délky nejvýše n se skládá ze samých 0 a protože platí xw n a w ε, je w = 0 k po nějaké k 1. Pak ale slovo xw 2 y = 0 n+k 1 n nemá stejný počet 0 i 1, tj. neleží v jazyce L, ale podle pumping lemmatu by v L ležet mělo. Odvodili jsme spor; chyba byla v tom, že jsme předpokládali, že L je regulární. jazyk.