Automaty a jazyky Úvod algoritmus
|
|
- Vladimíra Moravcová
- před 8 lety
- Počet zobrazení:
Transkript
1 Automaty a jazyky Úvod V historii i v současnosti matematiky a informatiky hrály a hrají důležitou roli předpisy k řešení konkrétních úloh, např. předpisy pro čtyři základní aritmetické operace s přirozenými čísly zapsanými v desítkové soustavě. Předpisy tohoto charakteru se zabýval počátkem devátého století arabský matematik Abdalláh Muhammad ibn Músa, al-chwárizmí (nebo al- Chorezmí) al-madžúsí, latinské zkomolení části jeho jména uvedlo do evropských jazyků slovo algoritmus. Známe-li etymologii slova, neznamená to, že bychom znali jeho význam. Uveďme filosofické vymezení tohoto pojmu. Algoritmem rozumíme přesný předpis, podle kterého máme vykonat v určitém pořadí konečný počet operací, které vedou k řešení každé úlohy či každého problému daného typu. Uveďme několik příkladů známých algoritmů. (1) Výše zmíněné čtyři základní aritmetické operace s přirozenými čísly zapsané v desítkové číselné soustavě (nebo v soustavě o jiném základu, např. 2). (2) Stará čínská matematika měla pro řešení nejrůznějších typů úloh zásobu algoritmů, které byly pečlivě předávány z generace na generaci. Ke zjištění, zda přirozené číslo n je prvočíslo, měli čínští matematici jednoduchý algoritmus stačilo zjistit, zda číslo n dělí beze zbytku číslo 2 n 2. Pokud ano, jde o prvočíslo, pokud je zbytek nenulový, jde o číslo složené. Tento algoritmus má jeden kaz, na který staří Číňané nepřišli jde o nesprávný algoritmus. Nejmenší číslo, které dává chybnou odpověď, je 341, protože číslo je dělitelné číslem 341, ale 341 = , tzn. 341 není prvočíslo, ale číslo složené. Existuje obrana proti takovým nepříjemným překvapením? Odpověď nalezneme, srovnáme-li matematické tradice staré Číny se starou řeckou matematikou. V Číně se uvedl předpis a dále se nezkoumal, tj. zasvěcenec předal algoritmus zasvěcenci ( program přehrál z paměti do paměti ) a ten jej začal používat. V antickém Řecku následovala ještě fáze proč algoritmus skutečně dělá to, co se tvrdí? Tj. algoritmus doprovázel důkaz 1. (3) Již ve starověku známý Euklidův algoritmus popsat takto: Jsou-li m a n kladná přirozená čísla, potom největšího společného dělitele čísel m a n určíme v následujících postupných krocích. 1. krok dělme číslo m číslem n. Zbytek dělení označme r (0 r < n). 2. krok je-li r = 0, potom n je největší společný dělitel; je-li r > 0, potom pokračujme třetím krokem. 3. krok dosaďme za m číslo n a za n číslo r a opakujme postup od prvního kroku. Vymezení pojmu algoritmus, které jsme uvedli, slouží jako vodítko pro vyšetření, zda konkrétní předpis je algoritmus. Možnosti takové definice jsou z hlediska matematiky a informatiky nedostatečné. Problematika automatů a formálních jazyků, jimž je věnována tato kapitola, patří mezi nejdéle studované a nejpodrobněji zpracované disciplíny tvořící matematickou informatiku. Dosažené výsledky se uplatňují nejen při návrhu počítačů, ale i např. při studiu živých organismů. Uveďme některé základní pojmy. X je abeceda, jestliže X je konečná neprázdná množina symbolů, tj. X = {a 1, a 2, a 3, a 4,, a n }. Symbolem ε označíme prázdný symbol. Některé abecedy mohou obsahovat i tento symbol. Slovem v abecedě X rozumíme libovolný konečný řetězec sestavený ze symbolů abecedy X, počet členů tohoto řetězce nazýváme délkou slova. Uvažujeme i prázdné slovo (tj. slovo délky 1 Tento algoritmus sebou nese poučení, jehož důležitost snad ani nelze dostatečně zdůraznit i algoritmus, který byl dlouhou dobu používán a testován, může být špatný. A to natolik špatný, že nejrozumnější náprava je jej zahodit a hledat jiný algoritmus.
2 0), které označujeme Λ. Slovo A je podslovem slova B v abecedě X, jestliže slovo A tvoří souvislý řetězec ve slově B. Jsou-li A a B slova v abecedě X, potom zřetězením slov A a B rozumíme slovo AB. Jsou-li a a b symboly abecedy X, potom symbolem a 2 b 3 označuje slovo aabbb. Symbolem X * označíme množinu všech slov v abecedě X a symbolem X + označíme množinu všech neprázdných slov v abecedě X, tj. X * = X + U {Λ} a X * {Λ} = X +. Je-li X abeceda, potom L nazveme jazykem nad abecedou X, jestliže L je podmnožinou množiny X *. Ve smyslu tohoto označení je každý přirozený jazyk, např. i čeština, jazykem nad abecedou. Řetězce tohoto jazyka jsou všechny správně utvořené české věty. Do příslušné abecedy patří kromě všech symbolů české abecedy ještě všechna interpunkční znaménka a mezera (tj. prázdný symbol ε). Jiným typem objektů, které je užitečné zkoumat aparátem formálních jazyků, jsou programovací jazyky řetězcem v příslušném jazyku je zpravidla každý syntakticky správný program v příslušném jazyku. Automaty Teorie automatů vznikla primárně z impulsů nematematických. Samotný název automat nebo adjektivum automatický označuje objekt nebo činnost, která probíhá v jednoduchých krocích, které se opakují při řešení téže úlohy. Teorie automatů vznikla v rámci kybernetiky a přinesla do matematiky nový pohled na různé problémy. Vývoj vedl k tomu, že se do středu zájmu dostaly partie, které dříve stály na okraji. Již ve starověku Herón Alexandrijský (žil nejspíše v 1. stol. n. l.), zvaný Méchanikos, zkonstruoval automat na prodej svěcené vody a automat na otvírání chrámových dveří. Tyto mechanismy měly stejný funkční princip jako moderní prodejní automaty, tj. bezprostředně po vhození vhodné mince vydaly příslušné množství vody nebo otevřely dveře. Simulovaly nejjednodušší reakce organismů nepodmíněné reflexy. Teorie automatů vznikla ve třicátých letech dvacátého století. V r definoval Turing stroj, který se dnes nazývá Turingův stroj. Z dnešního hlediska jde o automat s nekonečnou pamětí. My se budeme věnovat automatům s pamětí konečnou. V r americký fyziolog McCulloch a americký matematik Pitts vytvořili idealizovaný model neuronové sítě, který je v jistém smyslu předobrazem automatu. Po r vyšly první práce, ve kterých byl definován konečný automat, touto problematikou se zabývali mj. Mealy a Moore. Od té doby se teorie automatů rozvíjela někdy i velmi bouřlivým tempem. Automaty můžeme zkoumat ze dvou hledisek strukturálního a behavioristického. Zkoumáme-li automat ze strukturálního hlediska, pak nás zajímá, z čeho je sestrojen, tj. jaké součástky jsme při jeho výstavbě použili. Zajímalo by nás také jak minimalizovat množství součástek, aby zařízení vykonávalo právě činnost, kterou si představujeme. Vyšetřujeme-li automat z hlediska behavioristického 2, zajímá nás jiná situace prostředí obklopující automat působí na něj prostřednictvím několika vstupních kanálů, automat na vstupní signály reaguje a vydává výstupními kanály výstupní signály, jimiž zpětně působí na okolní prostředí. Jde o to věnovat se závislosti mezi vstupními a výstupními signály (zkráceně vstupy a výstupy). Při našem zkoumání vyjdeme z behavioristického hlediska (viz obr. 1). vstupní kanály automat Obr. 1. výstupní kanály 2 Ze slova behaviour v britské angličtině nebo behavior v americké angličtině, které znamená chování.
3 Otázky tohoto typu se někomu mohou zdát na první pohled umělé. To je způsobeno jistou dosti vžitou, ale mylnou představou o automatech. Podle této povrchní představy je automat charakterizován právě tím, že vztah mezi vstupem a výstupem je velmi jednoduchý, např. - vhodíme minci, vypadne krabička s filmem; - vhodíme minci a restauraci zaplaví ryčná hudba; - rozbijeme výlohu, začne houkat siréna atd. Podobně se tvrdívá, že jeden z rozdílů mezi automatem a živým organismem lze charakterizovat tím, že automat reaguje na stejné podněty stále stejně, zatímco reakce živého organismu se na tytéž podněty měnívá. V učebnicích psychologie najdeme schéma uvedené na obr. 2. Reakce organismu je spoluurčena ještě dalším faktorem, jímž je intervenující proměnná. O vztahu mezi podnětem a reakcí např. u prodejních automatů není potřeba dlouze uvažovat. Vztahy určené druhým z uvedených schémat jsou alespoň v nějaké formě předmětem každodenních úvah každého z nás. Již v útlém věku pozorujeme, že druzí lidé reagují na stejné podněty za různých okolností různě a to za okolností, které se navzájem liší různým stavem (náladou, novými zkušenostmi, únavou apod.) reagujícího člověka. Jinak reaguje otec na první synovu pětku, jinak na pátou pětku. Jinak reaguje člověk (ve většině případů) na první sklenku vína než na šestou. Jinak reaguje člověk v tramvaji na větu z tlampače: Vystupte si, zatahujeme!, slyší-li ji poprvé v daném dnu, než když ji slyší tentýž den počtvrté. Mnohdy je pro nás důležité uhodnout, jak druhý reaguje na opakovaný podnět (Řekni to ještě jednou!). Bylo to právě chování člověka a chování živých organismů, které daly impuls k rozvoji teorie automatů. I Turing navrhl své stroje tak, že je definoval na základě analýzy činnosti živého výpočtáře, který pracuje algoritmicky. podnět reakce organismu reakce intervenující proměnná Obr. 2. Růst významu samočinných počítačů jako impulsu k rozvoji teorie automatů je daleko pozdějšího data. V dnešní době otázky, které souvisejí s počítači, zaujímají v teorii automatů centrální postavení. Svůj význam si ovšem podržely i otázky biologicky motivované (celulární automaty, otázky samoreprodukce automatů, modely zkoumání růstu jednoduchých organismů atp.). Na konci 20. stol. nabyly na důležitosti i aplikace teorie automatů ve společenskovědních oborech (stabilita systémů). O automatech, kterými se budeme zabývat, lze obecně říci: (a) Vstupní signály takového automatu budou prvky nějaké abecedy X (tzv. vstupní abecedy). Budeme hovořit o vstupních symbolech. (b) Výstupní signály (výstupní symboly) budou prvky abecedy Y (tzv. výstupní abecedy). (c) Automat bude pracovat v diskrétní časové škále t 0, t 1, t 2, V každém časovém okamžiku bude na vstupu jeden symbol ze vstupní abecedy X a automat vydá jeden symbol z výstupní abecedy Y. V dalším budeme časové okamžiky značit přirozenými čísly 0, 1, 2, Okamžik t+1 označuje časový okamžik následující bezprostředně po časovém okamžiku t. (d) Reakce automatu bude určena obdrženým vstupním signálem a vnitřním stavem, ve kterém se automat nachází. (e) Předpokládáme, že se automat může nacházet v konečně mnoha vnitřních stavech.
4 Konečné automaty Mealyho automatem 3 (nebo automatem) rozumíme uspořádanou šestici A = [Q, X, Y, q 0, δ, λ], kde Q je neprázdná konečná množina vnitřních stavů, X je vstupní abeceda, Y je výstupní abeceda, q 0 je počáteční vnitřní stav (q 0 є Q), δ je zobrazení nazývané přechodová funkce, která všem vnitřním stavům a všem prvkům vstupní abecedy přiřazuje vnitřní stavy, λ je zobrazení nazývané výstupní funkce, která všem vnitřním stavům a všem prvkům vstupní abecedy přiřazuje prvky výstupní abecedy. 1. příklad Uvažujme automat A takový, že Q = {q 0, q 1, q 2 }, kde q 0 je počáteční vnitřní stav, vstupní abeceda X = {0, 1}, výstupní abeceda Y = {a, b}, přechodová funkce δ je definována δ(q 0,0) = q 1, δ(q 1,0) = q 2, δ(q 2,0) = q 2, δ(q 0,1) = q 0, δ(q 1,1) = q 0, δ(q 2,1) = q 2, výstupní funkce λ je definována λ(q 0,0) = b, λ(q 1,0) = b, λ(q 2,0) = a, λ(q 0,1) = b, λ(q 1,1) = b, λ(q 2,1) = a. Tento automat lze reprezentovat několika způsoby. (1) Tabulkami přechodové a výstupní funkce, tj. δ 0 1 λ 0 1 q 0 q 1 q 0 q 0 b b q 1 q 2 q 0 q 1 b b q 2 q 2 q 2 q 2 a a (2) Smíšenou tabulkou pro přechodovou a výstupní funkci δ, λ 0 1 q 0 q 1, b q 0, b q 1 q 2, b q 0, b q 2 q 2, a q 2, a (2) Stavovým diagramem, což je orientovaný pojmenovaný multigraf, jehož vrcholy tvoří vnitřní stavy, orientovaná hrana z vrcholu q do vrcholu q označená c/d vyjadřuje hodnotu přechodové funkce δ(q, c) = q a λ(q, c) = d, kde c je prvek vstupní abecedy a d je prvek výstupní abecedy (viz obr. 3). Předpokládáme, že automat přijímá vstupní slovo od konce. Mějme např. vstupní slovo , které lze také zapsat Automat A začíná svou činnost v počátečním vnitřním stavu q 0. Označme symbolem t časový okamžik, x(t) vstupní symbol v okamžiku t, δ(t) vnitřní stav automatu v okamžiku t a λ(t) výstupní symbol v okamžiku t. V čase t = 0 je automat A v počátečním vnitřním stavu q 0 a na vstupu je poslední znak vstupního slova 1. V čase t = 1 automat zpracuje vstupní symbol 1 a vydá výstupní symbol λ(1) = λ(q 0, 1) = b (což je poslední znak výstupního slova), přejde do vnitřního stavu δ(1) = δ(q 0, 1) = q 0. a na vstupu se objeví předposlední znak vstupního slova 0. 3 Také se používá termín konečný automat nebo konečný sekvenční stroj nebo krátce stroj.
5 V čase t = 2 automat zpracuje vstupní symbol 0 a vydá výstupní symbol λ(2) = λ(q 0, 0) = b (což je předposlední znak výstupního slova), přejde do vnitřního stavu δ(2) = δ(q 0, 0) = q 1. a na vstupu se objeví další znak vstupního slova 1. V tabulce můžeme zapsat t x(t) δ(t) q 0 q 0 q 1 λ(t) b b V dalších časových okamžicích budeme postupovat analogicky až v čase t = 9 bude na vstupu první znak vstupního slova 0, automat bude ve vnitřním stavu q 2 a dostaneme se do časového okamžiku t = 10, vydá výstupní symbol λ(10) = λ(q 2, 0) = a (což je první znak výstupního slova), přejde do vnitřního stavu δ(10) = δ(q 2, 0) = q 2. Zpracování celého vstupního slova můžeme zapsat v tabulce t x(t) δ(t) q 0 q 0 q 1 q 0 q 0 q 1 q 0 q 1 q 2 q 2 q 2 λ(t) b b b b b b b b a a Výstupní slovo je aabbbbbbbb (i výstupní slovo je vydáváno od konce), které lze také zapsat a 2 b 8. Všimněme si, že pro automat A platí dostane-li se do vnitřního stavu q 2, potom jej už neopustí a ve vnitřním stavu q 2 začne vydávat samá a. Slovy lze popsat chování automatu A takto automat vydává symbol b tak dlouho, dokud není ve vstupním slovu dvakrát za sebou symbol 0, od takového okamžiku vydává pouze symbol a. 1/b q 0 0/b 1/b q 1 0/b q 2 1/a 0/a Obr. 3. Poznamenejme, že platí je-li úloha řešitelná automatem, je také algoritmicky řešitelná (tj. existuje algoritmus, který ji řeší). Opačné tvrzení obecně neplatí existují algoritmicky řešitelné úlohy, které nejsou řešitelné automaty. Mějme automat A = [Q, X, Y, q 0, δ, λ]. Indukcí definujeme zobecněnou přechodovou funkci δ + a zobecněnou výstupní funkci λ + : (a) Pro libovolný vnitřní stav q z Q a pro libovolný vstupní symbol x z X je δ + (q, x) = δ(q, x) a λ + (q, x) = λ(q, x). (b) Pro libovolný vnitřní stav q z Q, pro libovolný vstupní symbol x z X a pro libovolné slovo P z X + je δ + (q, xp) = δ(δ + (q, P), x) a λ + (q, xp) = λ(δ + (q, P), x). 2. příklad Uvažujme automat A z 1. příkladu. Určíme postupně δ + (q 0, ) i λ + (q 0, ). δ + (q 0, 1) = δ(q 0, 1) = q 0, λ + (q 0, 1) = λ(q 0, 1) = b; δ + (q 0, 01) = δ(δ + (q 0, 1), 0) = δ(δ(q 0, 1), 0) = δ(q 0, 0) = q 1,
6 λ + (q 0, 01) = λ(δ + (q 0, 1), 0) = λ(δ(q 0, 1), 0) = λ(q 0, 0) = b; δ + (q 0, 101) = δ(δ + (q 0, 01), 1) = δ(q 1, 1) = q 0, λ + (q 0, 101) = λ(δ + (q 0, 01), 1) = λ(q 1, 1) = b; δ + (q 0, 1101) = δ(δ + (q 0, 101), 1) = δ(q 0, 1) = q 0, λ + (q 0, 1101) = λ(δ + (q 0, 101), 1) = λ(q 0, 1) = b; δ + (q 0, 01101) = δ(δ + (q 0, 1101), 0) = δ(q 0, 0) = q 1, λ + (q 0, 01101) = λ(δ + (q 0, 1101), 0) = λ(q 0, 0) = b; δ + (q 0, ) = δ(δ + (q 0, 01101), 1) = δ(q 1, 1) = q 0, λ + (q 0, ) = λ(δ + (q 0, 01101), 1) = λ(q 1, 1) = b; δ + (q 0, ) = δ(δ + (q 0, ), 0) = δ(q 0, 0) = q 1, λ + (q 0, ) = λ(δ + (q 0, ), 0) = λ(q 0, 0) = b; δ + (q 0, ) = δ(δ + (q 0, ), 0) = δ(q 1, 0) = q 2, λ + (q 0, ) = λ(δ + (q 0, ), 0) = λ(q 1, 0) = b; δ + (q 0, ) = δ(δ + (q 0, ), 1) = δ(q 2, 1) = q 2, λ + (q 0, ) = λ(δ + (q 0, ), 1) = λ(q 2, 1) = a; δ + (q 0, ) = δ(δ + (q 0, ), 0) = δ(q 2, 1) = q 2, λ + (q 0, ) = λ(δ + (q 0, ), 0) = λ(q 2, 1) = a. Je zřejmé, že hodnotou zobecněné výstupní funkce λ + (q, P) je první znak výstupního slova, který vydá automat začínající činnost ve vnitřním stavu q a zpracovávající neprázdné slovo P. x(t) q(t+1) y(t+1) y(t) δ Z λ Z q (t) Obr. 4 Na obr. 4. je uvedena interpretace Mealyho automatu z hlediska časové závislosti. Symbolem δ je označeno zařízení realizující přechodovou funkci δ, symbolem λ zařízení realizující výstupní funkci λ a symbolem Z zpožďovací člen, který vydává příslušný symbol o jeden časový okamžik později. Půjde nám o to zkonstruovat nejúspornější automaty, tzn. automaty, které mají nejméně vnitřních stavů a řeší stejnou úlohu nebo stejný problém. Mějme automat A = [Q, X, Y, q 0, δ, λ]. Vnitřní stav q nazveme dosažitelný, jestliže q = q 0 nebo existuje neprázdné slovo P ze vstupní abecedy X takové, že δ + ( q 0, P) = q. Jestliže není vnitřní stav dosažitelný, nazývá se nedosažitelný. 3. příklad Uvažujme automat A takový, že Q = {q 0, q 1, q 2, q 3 }, kde q 0 je počáteční vnitřní stav, vstupní abeceda X = {a, b} a výstupní abeceda Y ={0, 1}, který je definován smíšenou tabulkou δ, λ a b q 0 q 1, 0 q 0, 0 q 1 q 1, 0 q 3, 0
7 q 2 q 1, 0 q 3, 0 q 3 q 1, 0 q 0, 0 Vnitřní stavy q 0, q 1 a q 3 jsou dosažitelné a vnitřní stav je q 2 nedosažitelný, protože (a) počáteční vnitřní stav q 0 je vždy dosažitelný, (b) δ(q 0, a) = δ + (q 0, a) = q 1, (c) δ + (q 0, ba) = δ(δ + ( q 0, a), b) = δ(δ(q 0, a), b) = δ(q 1, b) = q 3 a (d) do vnitřního stavu q 2 se ze počátečního vnitřního stavu q 0 nedostaneme žádným neprázdným slovem ze vstupní abecedy, neboť nefiguruje v žádné buňce smíšené tabulky. Mějme automaty A = [Q, X, Y, q 0, δ, λ] a A 1 = [ 1 Q, X, Y, 1 q 0, 1 δ, 1 λ]. (1) Je- li q vnitřní stav automatu A a 1 q vnitřní stav automatu A 1, potom vnitřní stavy q a 1 q jsou behavioristicky ekvivalentní nebo b-ekvivalentní (což označíme q 1 q), jestliže pro všechna slova P z X + platí λ + (q, P) = 1 λ + ( 1 q, P). (2) Automaty A a A 1 jsou behavioristicky ekvivalentní nebo zkráceně b-ekvivalentní (což označíme A A 1 ), jestliže (a) q 0 1 q 0, (b) ke každému vnitřnímu stavu q automatu A a existuje vnitřní stav 1 q automatu A 1 takový, že q 1 q a (c) ke každému vnitřnímu stavu 1 q automatu A 1 a existuje vnitřní stav q automatu A takový, že 1 q q. Je-li A = [Q, X, Y, q 0, δ, λ] automat a je-li S množina všech dosažitelných vnitřních stavů automatu A (tj. S je podmnožina množiny Q), potom automat B = [S, X, Y, q 0, δ, λ], kde δ (resp. λ) je přechodová (resp. výstupní) funkce vytvořená z funkce δ (resp. λ) tak, že vynecháme nedosažitelné vnitřní stavy v definičním oboru, B A, přičemž automat B neobsahuje nedosažitelné vnitřní stavy. Jak zkonstruovat b-ekvivalentní automat, který neobsahuje žádný nedosažitelný vnitřní stav? Jestliže množina vnitřních stavů automatu A obsahuje právě vnitřní stavy q 0, q 1,, q n, stačí vzít všechna neprázdná slova P ve vstupní abecedě, jejichž délka je maximálně n a množinu všech vnitřních stavů automatu B tvoří (a) počáteční vnitřní stav q 0, (b) všechny vnitřní stavy q automatu A, pro které platí δ + ( q 0, P) = q. 4. příklad Uvažujme automat A z 3. příkladu. Automat A má čtyři vnitřní stavy, vypišme všechna neprázdná slova ve vstupní abecedě, jejichž délka je 3: a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba a bbb. Potom δ + (q 0, a) = q 1, δ + (q 0, b) = q 0, δ + (q 0, aa) = q 1, δ + (q 0, ab) = q 1, δ + (q 0, ba) = q 3, δ + (q 0, bb) = q 0, δ + (q 0, aaa) = q 1, δ + (q 0, aab) = q 1, δ + (q 0, aba) = q 0, δ + (q 0, abb) = q 1, δ + (q 0, baa) = q 3, δ + (q 0, bab) = q 3, δ + (q 0, bba) = q 3, δ + (q 0, bbb) = q 0. Tudíž množina všech vnitřních stavů automatu B je S = {q 0, q 1, q 3 } a smíšená tabulka má tvar δ, λ a b q 0 q 1, 0 q 0, 0 q 1 q 1, 0 q 3, 0 q 3 q 1, 0 q 0, 0 Realizace Mealyho automatů Booleovskou funkcí n proměnných (kde n je kladné přirozené číslo) rozumíme funkci f, která všem slovům v abecedě {0, 1} délky n přiřazuje buď 0, nebo příklad Definujme funkci f předpisem
8 f(000) = 0, f(001) = 0, f(010) = 0, f(011) = 1, f(100) = 0, f(101) = 1, f(110) = 0, f(111) = 0. Jde o booleovskou funkci tří proměnných. Booleovská funkce n proměnných představuje pravdivostní ohodnocení výrokové formule v disjunktivní normální formě s výrokovými proměnnými x 1, x 2,, x n. 6. příklad Vraťme se k 5. příkladu. Funkční hodnotě f(011) = 1 odpovídá formule x 1 Λ x 2 Λ x 3 a funkční hodnotě f(101) = 1 odpovídá formule x 1 Λ x 2 Λ x 3, tudíž celé funkci f odpovídá formule ( x 1 Λ x 2 Λ x 3 ) v (x 1 Λ x 2 Λ x 3 ). kde x 1, x 2 a x 3 jsou výrokové proměnné. Jestliže vstupní i výstupní abeceda obsahují jiné prvky než 0 a 1, je možné symboly těchto abeced zakódovat pomocí slov v abecedě {0, 1}. Podobně můžeme zakódovat i vnitřní stavy automatu. 7. příklad Uvažujme automat A takový, že Q = {q 0, q 1, q 2 }, kde q 0 je počáteční vnitřní stav, vstupní abeceda X = {a, b, c} a výstupní abeceda Y = {0, 1}, který je definován smíšenou tabulkou δ, λ a b c q 0 q 0, 0 q 1, 0 q 1, 0 q 1 q 0, 0 q 1, 1 q 2, 1 q 2 q 1, 0 q 1, 1 q 2, 1 Prvním krokem je zakódování vstupních symbolů a vnitřních stavů, výstupním symbolům ponecháme v tomto případě jejich binární hodnoty. Vstupní symbol a zakódujeme slovem 00, b slovem 01 a c slovem 11, podobně počáteční vnitřní stav q 0 zakódujeme slovem 00, vnitřní stav q 1 slovem 10 a stav q 2 slovem 11. Obecně může být volba kódování určena dodatečnými vnějšími požadavky na navrhovaný systém, nebo může být ponechána na libovůli návrháře. Ke kódování n-prvkové množiny je třeba volit slova délky k, kde k je nejmenší přirozené číslo takové, že n 2 k. Jestliže n není mocninou dvojky, budou některá slova délky k nevyužita. V našem případě bude smíšená tabulka δ, λ , 0 10, 0-10, , 0 10, 1-11, , 0 10, 1-11, 1 Prázdná políčka v tabulce vyznačují hodnoty přechodové a výstupní funkce nejsou výchozím zadáním určeny, proto je možné je vyplnit libovolně. Jedno z možných doplnění je toto: δ, λ , 0 10, 0 00, 0 10, , 0 10, 0 10, 0 10, , 0 10, 1 01, 0 11, , 0 10, 1 11, 0 11, 1 Výstupní funkce je booleovská funkce čtyř proměnných, kterou lze zapsat λ (q 1, q 2, x 1, x 2 ). Metody umožňující co možná nejmenší kombinační sítě pro realizaci dané booleovské funkce podrobně rozpracovány, ale přesahují trámec našeho kursu. Spokojme se schématem výsledného sekvenčního obvodu na obrázku 5., kde symbolem Λ je označeno zařízení
9 realizující konjunkci, symbolem v zařízení realizující disjunkci a symbolem Z je označen zpožďovací člen. Samozřejmě změnou kódování i změnou v doplňování neurčených hodnot dostáváme odlišnou realizaci, která se může podstatně lišit složitostí kombinačních sítí pro přechodovou i výstupní funkci. x 1 Λ x 2 v Z Z Λ y Obr. 5 Mooreovy automaty Uvedeme dva speciální typy automatů, které jsou vhodné pro řešení některých typů problémů. Mějme automat A = [Q, X, Y, q 0, δ, λ]. A je Mooreův automat 1. typu, jestliže existuje zobrazení ν takové, že pro všechna q z množiny vnitřních stavů Q a pro všechny vstupní symboly x z X je λ(q, x) = ν(q). Mooreův automat 1. typu A zapisujeme A = [Q, X, Y, q 0, δ, ν] a zobrazení ν nazýváme značkovací funkce. Na stavovém diagramu snadno rozeznáme Mooreův automat 1. typu tak, že všechny hrany vystupující z jednoho uzlu mají stejný výstupní symbol. 5. příklad Automat A z 1. příkladu je Mooreův automat 1. typu. Stačí definovat značkovací funkci ν takto: ν(q 0 ) = λ(q 0,0) = λ(q 0,1) = b, ν(q 1 ) = λ(q 1,0) = λ(q 1,1) = b, ν(q 2 ) = λ(q 2,0) = λ(q 2,1) = a. x(t) q (t+1) δ Z ν y(t) q(t) Obr. 6
10 Na obr. 6. je uvedena interpretace Mooreova automatu 1. typu z hlediska časové závislosti. Symbolem δ je označeno zařízení realizující přechodovou funkci δ, symbolem ν zařízení realizující značkovací funkci ν a symbolem Z zpožďovací člen, který vydává příslušný symbol o jeden časový okamžik později. Pro Mooreovy automaty 1. typu lze rozšířit zobecněnou přechodovou i zobecněnou výstupní funkci i na prázdné slovo, nebudeme je uvádět, vzhledem k tomu, že pro naše účely jsou nepotřebné. Mějme automat A = [Q, X, Y, q 0, δ, λ]. A je Mooreův automat 2. typu, jestliže existuje zobrazení μ takové, že pro všechna q z množiny vnitřních stavů Q a pro všechny vstupní symboly x z X je λ(q, x) = μ(δ(q, x)). Mooreův automat 2. typu A zapisujeme A = [Q, X, Y, q 0, δ, μ] a zobrazení ν nazýváme značkovací funkce. Na stavovém diagramu snadno rozeznáme Mooreův automat 2. typu tak, že všechny hrany vstupující do jednoho uzlu mají stejný výstupní symbol. 8. příklad Uvažujme automat A takový, že Q = {q 0, q 1, q 2 }, kde q 0 je počáteční vnitřní stav, vstupní abeceda X = {0, 1}, výstupní abeceda Y = {a, b}, který je reprezentován smíšenou tabulkou pro přechodovou a výstupní funkci δ, λ 0 1 q 0 q 2, b q 1, b q 1 q 2, a q 0, a q 2 q 1, b q 2, a Tento automat je Mooreovým automatem 2. typu se značkovací funkcí μ definovanou předpisem μ(q 0 ) = a, μ(q 1 ) = b, μ(q 2 ) = b. Každý snadno ověří, že takto definovaná značkovací funkce vyhovuje požadavkům na Mooreovy automaty 2. typu. Automat je možné jednodušeji reprezentovat tabulkou δ 0 1 μ q 0 q 2 q 1 a q 1 q 2 q 0 b q 2 q 1 q 2 b kterou budeme nazývat mooreovská tabulka tohoto automatu. x(t) δ q(t+1) μ y(t) q(t) Z Obr. 7 Na obr. 7. je uvedena interpretace Mooreova automatu 2. typu z hlediska časové závislosti. Symbolem δ je označeno zařízení realizující přechodovou funkci δ, symbolem μ zařízení
11 realizující značkovací funkci μ a symbolem Z zpožďovací člen, který vydává příslušný symbol o jeden časový okamžik později. I pro Mooreovy automaty 2. typu lze rozšířit zobecněnou přechodovou i zobecněnou výstupní funkci i na prázdné slovo. Uveďme, jak jsou tyto funkce definovány. Mějme Mooreův automat 2. typu A = [Q, X, Y, q 0, δ, λ] se značkovací funkcí μ. Indukcí definujeme zobecněnou přechodovou funkci δ * a zobecněnou výstupní funkci λ * (a) Pro libovolný vnitřní stav q z Q a pro libovolný vstupní symbol x z X je δ * (q, Λ) = q a λ * (q, Λ) = μ(q). (b) Pro libovolný vnitřní stav q z Q a pro libovolné slovo P z X + je δ * (q, P) = δ + (q, P) a λ * (q, P) = λ + (q, P). Z hlediska technické realizace jsou Mooreovy automaty 2. typu důležitější než Mealyho automaty i Mooreovy automaty 1. typu. Mealyho automaty jsou výhodnější pro řešení většiny úloh. Zdá se, že Mooreovy automaty 1. i 2. typu řeší méně úloh než Mealyho automaty. Položme si otázku, zda umí Mealyho automaty a Mooreovy automaty 2. typu řešit stejné úlohy. Protože Mooreovy automaty 1. a 2. typu jsou Mealyho automaty, potom každá úloha řešená Mooreovými automaty je řešitelná Mealyho automaty. Ukáže se, že ke každému Mealyho automatu lze zkonstruovat Mooreův automat 2.typu, který řeší stejnou úlohu. Platí: Ke každému Mealyho automatu A existuje Mooreův automat 2. typu M takový, že A M. Jak zkonstruovat k Mealyho automatu b-ekvivalentní Mooreův automat 2. typu? Vezme-li smíšenou tabulku Mealyho automatu, ve kterém je vnitřní stav q i v různých buňkách spojen např. s právě třemi výstupními symboly a, b a c, rozdělíme vnitřní stav q i na tři různé vnitřní stavy q i,a, q i,b a q i,c. Je-li vnitřní stav q i spojen s jediným nebo žádným výstupním symbolem, potom vnitřní stav q i ponecháme. Hodnoty značkovací funkce μ pro jednotlivé vnitřní stavy budou výstupní symboly, pokud je vnitřní stav ve smíšené tabulce spojen s výstupním symbolem, a náhodně vybraný výstupní symbol, pokud vnitřní stav není spojen s žádným výstupním symbolem. Zbývá ještě jeden problém. Který vnitřní stav zvolit jako počáteční? Počátečním stavem Mooreova automatu 2. typu můžeme zvolit (v případě, že se počáteční vnitřní stav q 0 rozdělí na více vnitřních stavů) kterýkoli vnitřní stav, který vznikl ze stavu q příklad Uvažujme automat A takový, že Q = {q 0, q 1, q 2 }, kde q 0 je počáteční vnitřní stav, vstupní abeceda X = {0, 1} a výstupní abeceda Y = {a, b}, který je definován smíšenou tabulkou δ, λ 0 1 q 0 q 1, b q 0, b q 1 q 2, b q 0, b q 2 q 2, a q 2, a K tomuto automatu sestrojíme b-ekvivalentní Mooreův automat 2. typu M. Jediný vnitřní stav, který nevyhovuje definici Mooreova automatu 2. typu, je vnitřní stav q 2 (viz buňky smíšené tabulky se žlutým pozadím). Z vnitřního stavu q 2 vzniknou dva vnitřní stavy q 2,a a q 2,b. Smíšená tabulka automatu M je δ, λ 0 1 q 0 q 1, b q 0, b q 1 q 2,b, b q 0, b q 2,a q 2,a, a q 2,a, a q 2,b q 2,a, a q 2,a, a
12 Uděláme-li mooreovskou tabulku se značkovací funkcí μ, má tabulka tvar δ 0 1 μ q 0 q 1 q 0 b q 1 q 2,b q 0 b q 2,a q 2,a q 2,a a q 2,b q 2,a q 2,a b 10. příklad Uvažujme automat A takový, že Q = {q 0, q 1, q 2, q 3, q 4, q 5 }, kde q 0 je počáteční vnitřní stav, vstupní abeceda X = {a, b, c} a výstupní abeceda Y = {0, 1}, který je definován smíšenou tabulkou δ, λ a b c q 0 q 2, 1 q 1, 0 q 1, 1 q 1 q 2, 0 q 0, 0 q 3, 0 q 2 q 1, 1 q 3, 1 q 4, 0 q 3 q 2, 0 q 4, 1 q 0, 1 q 4 q 5, 1 q 2, 1 q 4, 1 q 5 q 5, 1 q 5, 1 q 4, 1 Sestrojíme b-ekvivalentní Mooreův automat 2. typu. Ze smíšené tabulky je zřejmé, že definici Mooreova automatu 2. typu neodpovídají všechny vnitřní stavy kromě q 5, které se všechny rozpadnou na dva vnitřní stavy q i,0 a q i,1 pro i = 0, 1, 2, 3 a 4. Jako počáteční vnitřní stav zvolíme q 0,0. Mooreovská tabulka b-ekvivalentního Mooreova automatu 2. typu je δ a b c μ q 0,0 q 2,1 q 1,0 q 1,1 0 q 0,1 q 2,1 q 1,0 q 1,1 1 q 1,0 q 2,0 q 0,0 q 3,0 0 q 1,1 q 2,0 q 0,0 q 3,0 1 q 2,0 q 1,1 q 3,1 q 4,0 0 q 2,1 q 1,1 q 3,1 q 4,0 1 q 3,0 q 2,0 q 4,1 q 0,1 0 q 3,1 q 2,0 q 4,1 q 0,1 1 q 4,0 q 5 q 2,1 q 4,1 0 q 4,1 q 5 q 2,1 q 4,1 1 q 5 q 5 q 5 q 4,1 1 Již jsme uvedli, že budeme automaty minimalizovat tak, aby neobsahovaly zbytečné vnitřní stavy. První stavy, které jsme označili za zbytečné, byly nedosažitelné vnitřní stavy. Dalšími typy stavů, které jsou z hlediska výpočtu zbytečné, jsou vnitřní stavy, které stejným výstupem reagují na stejná slova vstupní abecedy. Mějme Moreovy automaty 2. typu A = [Q, X, Y, q 0, δ, λ] a A 1 = [ 1 Q, X, Y, 1 q 0, 1 δ, 1 λ]. (1) Je- li q vnitřní stav automatu A a 1 q vnitřní stav automatu A 1, potom vnitřní stavy q a 1 q jsou mooreovsky ekvivalentní nebo m-ekvivalentní (což označíme q 1 q), jestliže pro všechna slova P ze vstupní abecedy 4 X platí λ * (q, P) = 1 λ * ( 1 q, P). (2) Automaty A a A 1 jsou mooreovsky ekvivalentní nebo zkráceně m-ekvivalentní (což označíme A A 1 ), jestliže (a) q 0 1 q 0, 4 Tj. včetně prázdného slova Λ.
13 (b) ke každému vnitřnímu stavu q automatu A a existuje vnitřní stav 1 q automatu A 1 takový, že q 1 q a (c) ke každému vnitřnímu stavu 1 q automatu A 1 a existuje vnitřní stav q automatu A takový, že 1 q q. Poznamenejme, že předcházející definici lze použít i v případě A = A 1, tj. lze hovořit i o m- ekvivalenci vnitřních stavů jednoho Mooreova automatu 2. typu. Mějme Moreovy automaty 2. typu A = [Q, X, Y, q 0, δ, λ] a A 1 = [ 1 Q, X, Y, 1 q 0, 1 δ, 1 λ]. Řekneme, že A 1 je redukt automatu A, jestliže (a) A 1 neobsahuje nedosažitelné vnitřní stavy, (b) Pro libovolné vnitřní stavy q a q automatu A 1 platí: jestliže q q, potom q = q a (c) A 1 A. Jak sestrojit redukt Mooreova automatu 2. typu A = [Q, X, Y, q 0, δ, λ] se značkovací funkcí μ? (1) Odstraníme nedosažitelné vnitřní stavy. (2) Použijeme algoritmus redukce 5, tj. (a) pro každý vnitřní stav q automatu A vytvoříme množinu r 0 (q) takovou, že obsahuje všechny vnitřní stavy q takové, že μ(q) = μ(q ), vznikne množina R 0 = { r 0 (q); q є Q}, která obsahuje množiny vnitřních stavů se stejnou hodnotou značkovací funkce, tzn. počet prvků množiny R 0 je maximálně roven počtu prvků výstupní abecedy; (b) předpokládáme, že jsme pro libovolné přirozené číslo 6 k sestrojili množiny r k (q) pro libovolný vnitřní stav q automatu A a množinu R k = { r k (q); q є Q}. Sestrojíme množiny r k+1 (q) pro libovolný vnitřní stav q automatu A a množinu R k+1 = { r k+1 (q); q є Q}. Pro vnitřní stav q automatu A platí: q є r k+1 (q) právě tehdy, jestliže q є r k (q) a současně pro libovolný symbol x vstupní abecedy X je δ(q, x) є r k (δ(q, x)). (c) Po konečně mnoha krocích (maximální počet kroků je dán počtem prvků množiny vnitřních stavů automatu A) musí nastat R l = R l+1. Množinu R l v reduktu zvolíme jako množinu vnitřních stavů, jako počáteční vnitřní stav zvolíme množinu r l (q 0 ). Algoritmus redukce lze popsat takto: (a) Sestrojíme množinu R 0 a položíme k := 0. (b) Sestrojíme množinu R k a provedeme přiřazení k := k + 1. (c) Jestliže R k R k+1, opakuje se operace (b), jinak se pokračuje operací (d). (d) Jako výsledná množina se označí R k. 11. příklad Uvažujme Mooreův automat 2. typu A takový, že Q = {q 0, q 1, q 2, q 3, q 4, q 5 }, kde q 0 je počáteční vnitřní stav, vstupní abeceda X = {0, 1} a výstupní abeceda Y = {0, 1}, který je definován mooreovskou tabulkou δ 0 1 μ q 0 q 1 q 1 0 q 1 q 2 q 1 1 q 2 q 3 q 3 1 q 3 q 4 q 1 0 q 4 q 5 q 1 1 q 5 q 3 q 3 1 Automat A neobsahuje nedostižné vnitřní stavy. Přistoupíme k použití algoritmu redukce. 5 Jde vlastně o rozklad množiny vnitřních stavů na třídy m-ekvivalence. 6 Uvažujeme přirozená čísla včetně 0.
14 1. krok R 0 = {{q 0, q 3 }, {q 1, q 2, q 4, q 5 }}, protože μ(q 0 ) = μ(q 3 ) = 0 a μ(q 1 ) = μ(q 2 ) = μ(q 4 ) = μ(q 5 ) = krok R 1 = {{q 0, q 3 }, {q 1, q 4 }, {q 2, q 5 }}, protože (a) δ(q 0, 0) = q 1, δ(q 3, 0) = q 4, tj. δ(q 0, 0) є {q 1, q 2, q 4, q 5 }, δ(q 3, 0) є {q 1, q 2, q 4, q 5 } a δ(q 0, 1) = δ(q 3, 1) = q 1, tj. δ(q 0, 1) є {q 1, q 2, q 4, q 5 }, δ(q 3, 1) є {q 1, q 2, q 4, q 5 }; (b) δ(q 1, 0) = q 2, δ(q 4, 0) = q 5, tj. δ(q 1, 0) є {q 1, q 2, q 4, q 5 }, δ(q 4, 0) є {q 1, q 2, q 4, q 5 } a δ(q 1, 1) = δ(q 4, 1) = q 1, tj. δ(q 1, 1) є {q 1, q 2, q 4, q 5 }, δ(q 4, 1) є {q 1, q 2, q 4, q 5 }; (c) δ(q 2, 0) = δ(q 5, 0) = q 3, tj. δ(q 2, 0) є {q 0, q 3 }, δ(q 5, 0) є {q 0, q 3 } a δ(q 2, 1) = δ(q 5, 1) = q 3, tj. δ(q 2, 1) є {q 0, q 3 }, δ(q 5, 1) є {q 0, q 3 }. Neboť R 0 R 1, musíme pokračovat dále. 3. krok R 2 = {{q 0, q 3 }, {q 1, q 4 }, {q 2, q 5 }}, protože (a) δ(q 0, 0) є {q 1, q 4 }, δ(q 3, 0) є {q 1, q 4 } a δ(q 0, 1) є {q 1, q 4 }, δ(q 3, 1) є {q 1, q 4 }; (b) δ(q 1, 0) є {q 2, q 5 }, δ(q 4, 0) є {q 2, q 5 } a δ(q 1, 1) є {q 1, q 4 }, δ(q 4, 1) є {q 1, q 4 }; (c) δ(q 2, 0) є {q 0, q 3 }, δ(q 5, 0) є {q 0, q 3 } a δ(q 2, 1) є {q 0, q 3 }, δ(q 5, 1) є {q 0, q 3 }. Neboť R 1 = R 2, algoritmus redukce ukončí činnost. Pro redukt A 1 automatu A množina vnitřních stavů Q obsahuje vnitřní stavy: q 0 = {q 0, q 3 }, q 1 = {q 1, q 4 }, q 2 = {q 2, q 5 }. Mooreovská tabulka reduktu A 1 má tvar (δ je přechodová funkce reduktu a μ značkovací funkce reduktu) δ 0 1 μ q 0 q 1 q 1 0 q 1 q 2 q 1 1 q 2 q 0 q 0 1 Poznámka. Algoritmus redukce lze použít i na zjištění m-ekvivalence dvou Mooreových automatů 2. typu. Pro jeden z automatů přejmenujeme vnitřní stavy tak, aby tyto automaty neměly žádný společný vnitřní stav, mooreovské tabulky napíšeme pod sebe. Potom v jednotlivých množinách po použití algoritmu redukce musí být alespoň jeden vnitřní stav každého z automatů, přičemž počáteční vnitřní stavy musí být ve stejné množině. Jazyky rozpoznávané automaty Jestliže L je jazyk nad abecedou X, potom L je rozpoznatelný konečným automatem, jestliže existuje Mooreův automat 2. typu A = [Q, X, {0, 1}, q 0, δ, λ] takový, že pro libovolné slovo P abecedy X platí: P patří do jazyka L právě tehdy, jestliže λ * ( q 0, P) = 1. Uvedeme příklady jazyků a pro zjednodušení budeme předpokládat, že jde o jazyky nad abecedou X = {a, b}. 12. příklad Uvažujme jazyk L = Ø, tzn. tento jazyk neobsahuje žádné slovo. Potom např. Mooreův automat 2. typu A = [{q 0 }, {a, b}, {0, 1}, q 0, δ, λ], který rozpoznává tento jazyk, je definován mooreovskou tabulkou δ a b μ
15 q 0 q 0 q příklad Mějme jazyk L = {Λ}, tzn. tento jazyk obsahuje pouze prázdné slovo. Potom např. Mooreův automat 2. typu A = [{q 0, q 1 }, {a, b}, {0, 1}, q 0, δ, λ], který rozpoznává tento jazyk, je definován mooreovskou tabulkou δ a b μ q 0 q 1 q 1 1 q 1 q 1 q příklad Mějme jazyk L = {a}, tzn. tento jazyk obsahuje pouze slovo a délky 1. Potom např. Mooreův automat 2. typu A = [{q 0, q 1, q 2 }, {a, b}, {0, 1}, q 0, δ, λ], který rozpoznává tento jazyk, je definován mooreovskou tabulkou δ a b μ q 0 q 1 q 2 0 q 1 q 2 q 2 1 q 2 q 2 q 2 0 Analogicky lze řešit úlohu pro jazyk L = {b}, jen znaky a a b si vymění roli v Mooreově automatu 2. typu. 15. příklad Uvažujme jazyk L obsahující právě všechna slova v abecedě X, která jsou délky alespoň 2, která začínají a končí stejným symbolem. Potom např. Mooreův automat 2. typu A = [{q 0, q 1, q 2, q 3, q 4, q 5, q 6 }, {a, b}, {0, 1}, q 0, δ, λ], který rozpoznává tento jazyk, je definován mooreovskou tabulkou δ a b μ q 0 q 1 q 2 0 q 1 q 3 q 4 0 q 2 q 6 q 5 0 q 3 q 3 q 4 1 q 4 q 3 q 4 0 q 5 q 6 q 5 1 q 6 q 6 q příklad Uvažujme jazyk L obsahující právě všechna slova v abecedě X, která končí podslovem abba. Potom např. Mooreův automat 2. typu A = [{q 0, q 1, q 2, q 3, q 4, q 5 }, {a, b}, {0, 1}, q 0, δ, λ], který rozpoznává tento jazyk, je definován mooreovskou tabulkou δ a b μ q 0 q 1 q 2 0 q 1 q 2 q 3 0 q 2 q 2 q 2 0 q 3 q 2 q 4 0 q 4 q 5 q 2 0 q 5 q 5 q příklad
16 Uvažujme jazyk L obsahující právě všechna slova v abecedě X tvaru a n b n, kde n je přirozené číslo 7 (tj. L obsahuje slova sudé délky 8, jejichž první polovina jsou samá a a druhá polovina samá b). Tento jazyk není rozpoznatelný konečným automatem. Proč? Kdyby automat měl např. 7 vnitřních stavů, potom vezmeme slovo a 8 b 8. V tomto případě si automat musí nejprve zapamatovat, že slovo končí osmi znaky b, k tomu je potřeba 8 vnitřních stavů. Obecněji obsahuje-li automat n vnitřních stavů, potom stačí vzít slovo a n+1 b n+1. Kdybychom místo abecedy X = {a, b} zvolili jinou abecedu, je zřejmé, že úvahy by byly analogické jako v předcházejících příkladech. Jazyky a gramatiky Přepisovací systém 9 nad abecedou X je konečná množina P přepisovacích pravidel, kde každé přepisovací pravidlo má tvar A B, kde A a B jsou slova v abecedě X. Jsou-li T a U slova v abecedě X, (a) řekneme, že přepisovací systém P přímo přepíše T na U (a zapíšeme T => U), jestliže existují slova C a D z abecedy X a přepisovací pravidlo A B z P tak, že T = CAD a U = CBD, (b) řekneme, že přepisovací systém P přepíše T na U (a zapíšeme T => U), jestliže buď T = U, nebo existují slova T 1, T 2,, T n (kde n 1) taková, že T => T 1 => T 2 => => T n = U. 18. příklad Mějme oblíbenou abecedu X = {a, b}. Přepisovací systém P tvoří dvě přepisovací pravidla (1) ab ba, (2) ba ab. Potom např. aabba => aaabb, protože aabba => (2) aabab => (2) aabab (pro větší přehlednost skupina symbolů, kterou přepisujeme, je vyznačena tučně a znak pro bezprostřední přepsání je opatřen číslem použitého pravidla). Také je aabba => abbaa, protože aabba => (1) ababa => (1) abbaa. Na první pohled je vidět, že tento přepisovací systém může přepsat každé slovo T v abecedě X na libovolné slovo U v této abecedě se stejným počtem výskytů symbolů a a b jako má U. Gramatika typu 0 nebo zkráceně gramatika je uspořádaná čtveřice G = [Y, X, s, P], kde Y a X jsou disjunktní 10 abecedy, s je symbol abecedy Y a P je přepisovací systém nad abecedou XUY takových, že na levé straně každého přepisovacího pravidla je alespoň jeden symbol z abecedy Y. Y se nazývá abeceda neterminálů 11, X je abeceda terminálů 12 a s z Y je počáteční symbol. Řekneme, že jazyk L(G) je generován gramatikou G nebo L(G) je jazyk typu 0, jestliže obsahuje právě všechna slova W v abecedě X taková, že s => W. Tedy jazyk generovaný gramatikou je tvořen všemi slovy v terminální abecedě, která lze odvodit z počátečního symbolu. 19. příklad 7 Znovu upozorňujeme, že 0 považujeme za přirozené číslo, proto jazyk L obsahuje i slovo a 0 b 0 = Λ. 8 0 považujeme za sudé číslo. 9 Někdy se také nazývá produkční systém. 10 Tzn. X Y = Ø. 11 Jinak lze říci i množina proměnných. 12 Jinak lze říci, že jde o množinu konstant.
17 Mějme gramatiku G = [{s}, {a, b}, s, P], kde přepisovací systém P tvoří tři přepisovací pravidla (1) s asb, (2) s ε. Je zřejmé, že jazyk L(G) generovaný gramatikou G obsahuje právě všechna slova tvaru a n b n, kde n je přirozené číslo. V předcházejícím příkladu byla dvě přepisovací pravidla se stejnou levou stranou, pro jednoduchost je budeme zapisovat dohromady s asb ε. Poznámka. Gramatika, kterou jsme definovali, se také nazývá generativní gramatika. Existuje i duální pojem analytická gramatika. Ta je tvořena stejnou uspořádanou čtveřicí se změnou u přepisovacího systému P je přepisovací systém nad abecedou XUY takových, že na pravé straně každého přepisovacího pravidla je alespoň jeden symbol z abecedy Y. Jazyk L(G) je rozpoznáván gramatikou G, jestliže obsahuje právě všechna slova W v abecedě X taková, že W => s. Je zřejmé, že ke každé generativní gramatice existuje analytická gramatika rozpoznávající tentýž jazyk a naopak ke každé analytické gramatice existuje generativní gramatika generující tentýž jazyk. Analytickou gramatikou nezískáváme nic nového. Mějme gramatiku G = [Y, X, s, P]. (1) G je gramatika typu 1 nebo kontextová gramatika, jestliže každé přepisovací pravidlo z P je tvaru AyB ACB, kde A a B jsou slova z abecedy XUY, y je symbol z neterminální abecedy Y a C je neprázdné slovo z abecedy XUY, přičemž jedinou výjimkou může být pravidlo s ε, jehož výskyt znamená, že se symbol s nemůže vyskytovat na pravé straně žádného přepisovacího pravidla z P. (2) G je gramatika typu 2 nebo bezkontextová gramatika, jestliže P obsahuje pouze pravidla tvaru y C, kde C je slovo z abecedy XUY, y je symbol z neterminální abecedy Y. (3) G je gramatika typu 3 nebo regulární gramatika, jestliže každé pravidlo z P je buď tvaru y Wx, nebo y W, kde W je slovo z abecedy X, y a x jsou symboly z neterminální abecedy Y. (4) Jazyk typu 1 (resp. 2, resp. 3) nebo kontextový (resp. bezkontextový, resp. regulární), jestliže je generován nějakou kontextovou (resp. bezkontextovou, resp. regulární) gramatikou. Poznámka. Použití kontextového pravidla AyB ACB a bezkontextového pravidla y C má stejný efekt neterminál y se přepíše na C, ostatní části slova zůstanou zachovány. V prvním případě dojde k tomu jen tehdy, jestliže y je obklopeno slovy A a B, tj. možnost přepsat y na C je závisí na kontextu, ve kterém se y vyskytuje. Ve druhém případě přepsání y na kontextu nezávisí. Toto pozorování vysvětluje, proč se gramatiky typu 1 nazývají kontextové a gramatiky typu 2 bezkontextové. Každý regulární jazyk je bezkontextový, každý bezkontextový jazyk je kontextový, každý kontextový jazyk je typu 0. Uvedli jsme jazyky rozpoznatelné automaty. Lze je nějakým způsobem zařadit do výše uvedené hierarchie 13 jazyků? Ano, platí: jazyk je rozpoznatelný automatem právě tehdy, jestliže jde o regulární jazyk. Jak sestrojit gramatiku G k Mooreovu automatu 2. typu A = [Q, X, {0, 1}, q 0, δ, λ] se značkovací funkcí μ? Gramatika G = [Q, X, q 0, P], tzn. množina vnitřních stavů Q je abeceda neterminálů, vstupní abeceda X je abeceda terminálů, počáteční vnitřní stav q 0, je počáteční symbol. Přepisovací systém P bude obsahovat pravidla q aq, jestliže δ(q, a) = q a q ε, jestliže μ(q) = příklad Uvažujme Mooreův automat 2. typu A = [{q 0, q 1, q 2, q 3, q 4, q 5 }, {a, b}, {0, 1}, q 0, δ, λ], který definován mooreovskou tabulkou δ a b μ 13 Námi uvedená hierarchie jazyků se nazývá Chomského hierarchie.
18 q 0 q 1 q 2 0 q 1 q 2 q 3 0 q 2 q 2 q 2 0 q 3 q 2 q 4 0 q 4 q 5 q 2 0 q 5 q 5 q 5 1 Ze 16. příkladu víme, že rozpoznává jazyk L obsahující právě všechna slova v abecedě {a, b}, která končí podslovem abba. Gramatika G bude mít neterminální abecedu {q 0, q 1, q 2, q 3, q 4, q 5 }, terminální abecedu {a, b}, počáteční symbol je q 0 a přepisovací systém P obsahuje pravidla (1) q 0 aq 1 bq 2, (2) q 1 aq 2 bq 3, (3) q 2 aq 2 bq 2, (4) q 3 aq 2 bq 4, (5) q 4 aq 5 bq 2, (6) q 5 aq 5 bq 5 ε. Bezkontextové gramatiky jsou vhodné i ke konstrukci programovacích jazyků. Uvedeme dva příklady některých konstrukcí. 21. příklad Uvedeme definici čísel v nějakém programovacím jazyku. Počáteční symbol bude neterminál [číslo], neterminály budou všechna slova či sousloví uvedená v hranatých závorkách a terminální abeceda bude {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +,,., 10 }. Přepisovací systém gramatiky obsahuje pravidla (1) [číslo] [číslo bez znaménka], (2) [číslo] + [číslo bez znaménka], (3) [číslo] [číslo bez znaménka], (4) [číslo bez znaménka] [desetinné číslo], (5) [číslo bez znaménka] [exponentová část], (6) [číslo bez znaménka] [desetinné číslo] [exponentová část], (7) [desetinné číslo] [celé číslo bez znaménka], (8) [desetinné číslo] [desetinná část], (9) [desetinné číslo] [celé číslo bez znaménka] [desetinná část], (10)[exponentová část] 10 [celé číslo], (11)[desetinná část].[celé číslo], (12)[celé číslo] [celé číslo bez znaménka], (13)[celé číslo] + [celé číslo bez znaménka], (14)[celé číslo] [celé číslo bez znaménka], (15)[celé číslo bez znaménka] [číslice], (16)[celé číslo bez znaménka] [celé číslo bez znaménka] [číslice], (17)[číslice] Je zřejmé, že lze tím způsobem vygenerovat slova představující čísla. Cvičení (1) Sestrojte automat A se vstupní abecedou X = {a, b, c}, výstupní abecedou Y = {0, 1} a počátečním vnitřním stavem q 0 takový, že
19 (a) vydá 1 při prvním výskytu podslova abbab ve vstupním slovu, jinak vydává 0; (b) vydá 1 při každém výskytu podslova abbab ve vstupním slovu, jinak vydává 0; (c) vydává 1 po prvním výskytu podslova abbab ve vstupním slovu, jinak vydává 0. (2) Sestrojte automat A se vstupní abecedou X = {a, b}, výstupní abecedou Y = {0, 1} a počátečním vnitřním stavem q 0 takový, že (a) první symbol výstupního slova je 1, jestliže vstupní slovo končí podslovem ababba, a první symbol výstupního slova je 0, jestliže vstupní slovo končí podslovem ababba, jinak vydává jakýkoli výstupní symbol; (b) první symbol výstupního slova je 1, jestliže vstupní slovo začíná podslovem ababba, a první symbol výstupního slova je 0, jestliže vstupní slovo začíná podslovem ababba, jinak vydává jakýkoli výstupní symbol. (3) Podle výsledků cvičení (1) a (2) rozhodněte, které automaty jsou Mooreovy automaty 1. typu a které Mooreovy automaty 2. typu. Výsledky cvičení (1) (a) (b) δ, λ a b c q 0 q 0, 0 q 1, 0 q 0, 0 q 1 q 2, 0 q 1, 0 q 0, 0 q 2 q 0, 0 q 3, 0 q 0, 0 q 3 q 2, 0 q 4, 0 q 0, 0 q 4 q 5, 1 q 1, 0 q 0, 0 q 5 q 5, 0 q 5, 0 q 5, 0 δ, λ a b c q 0 q 0, 0 q 1, 0 q 0, 0 q 1 q 2, 0 q 1, 0 q 0, 0 q 2 q 0, 0 q 3, 0 q 0, 0 q 3 q 2, 0 q 4, 0 q 0, 0 q 4 q 2, 1 q 1, 0 q 0, 0 (c) (2) (a) δ, λ a b c q 0 q 0, 0 q 1, 0 q 0, 0 q 1 q 2, 0 q 1, 0 q 0, 0 q 2 q 0, 0 q 3, 0 q 0, 0 q 3 q 2, 0 q 4, 0 q 0, 0 q 4 q 5, 1 q 1, 0 q 0, 0 q 5 q 5, 1 q 5, 1 q 5, 1 δ, λ a b q 0 q 2, 0 q 1, 0
20 q 1 q 1, 0 q 1, 0 q 2 q 1, 0 q 3, 0 q 3 q 1, 0 q 4, 0 q 4 q 5, 0 q 1, 0 q 5 q 6, 0 q 1, 0 q 6 q 7, 1 q 1, 0 q 7 q 7, 1 q 7, 1 (b) δ, λ a b q 0 q 1, 0 q 0, 0 q 1 q 1, 0 q 2, 0 q 2 q 1, 0 q 3, 0 q 3 q 4, 0 q 0, 0 q 4 q 1, 0 q 5, 0 q 5 q 6, 1 q 3, 0 q 6 q 1, 0 q 2, 0 (3) Automaty z výsledků cvičení (1) (c), (2) (a) a (b) jsou Mooreovy 2. typu, žádný není Mooreův 1. typu.
Naproti tomu gramatika je vlastně soupis pravidel, jak
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
Vícedoplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
VíceFormální jazyky a gramatiky Teorie programovacích jazyků
Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina
VíceKonstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
VíceAutomaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
VíceMnož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 Σ
Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá
VíceZákladní pojmy matematické logiky
KAPITOLA 1 Základní pojmy matematické logiky Matematická logika se zabývá studiem výroků, jejich vytváření a jejich pravdivostí. Základním kamenem výrokové logiky jsou výroky. 1. Výroková logika Co je
VíceTuringovy stroje. Teoretická informatika Tomáš Foltýnek
Turingovy stroje Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Jaké znáte algebraické struktury s jednou operací? Co je to okruh,
VíceMísto pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu
VÝROKOVÁ LOGIKA Matematická logika se zabývá studiem výroků, jejich vytváření a jejich pravdivostí. Základním kamenem výrokové logiky jsou výroky. Co je výrok nedefinujejme, pouze si řekneme, co si pod
VíceMinimalizace KA - Úvod
Minimalizace KA - Úvod Tyto dva KA A,A2 jsou jazykově ekvivalentní, tzn. že rozpoznávají tentýž jazyk. L(A) = L(A2) Názorně lze vidět, že automat A2 má menší počet stavů než A, tudíž našim cílem bude ukázat
Více2 Formální jazyky a gramatiky
2 Formální jazyky a gramatiky 2.1 Úvod Teorie formálních gramatik a jazyků je důležitou součástí informatiky. Její využití je hlavně v oblasti tvorby překladačů, kompilátorů. Vznik teorie se datuje přibližně
VíceBezkontextové jazyky. Bezkontextové jazyky 1 p.1/39
Bezkontextové jazyky Bezkontextové jazyky 1 p.1/39 Jazyky typu 2 Definice 4.1 Gramatika G = (N, Σ, P, S) si nazývá bezkontextovou gramatikou, jestliže všechna pravidla z P mají tvar A α, A N, α (N Σ) Lemma
VícePojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace
RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,
VíceVlastnosti regulárních jazyků
Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro
VíceMatematická logika. Miroslav Kolařík
Matematická logika přednáška třetí Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
VíceFormální systém výrokové logiky
Formální systém výrokové logiky 1.Jazyk výrokové logiky Nechť P = {p,q,r, } je neprázdná množina symbolů, které nazýváme prvotní formule. Symboly jazyka L P výrokové logiky jsou : a) prvky množiny P, b)
VíceMaticí 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:
3 Maticový počet 3.1 Zavedení pojmu matice 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: a 11 a 12... a 1k... a 1n a 21 a 22...
VíceAUTOMATY A GRAMATIKY
AUTOMATY A 1 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Stručný přehled přednášky Automaty Formální jazyky, operace
VíceKaž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 α
1. JAZYK ATEATIKY 1.1 nožiny nožina je souhrn objektů určitých vlastností, které chápeme jako celek. ZNAČENÍ. x A x A θ A = { { a, b a A = B A B 0, 1 2 a, a,..., a n x patří do množiny A x nepatří do množiny
VíceRegulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:
IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a
VíceZáklady teoretické informatiky Formální jazyky a automaty
Základy teoretické informatiky Formální jazyky a automaty Petr Osička KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Outline Literatura Obsah J.E. Hopcroft, R. Motwani, J.D. Ullman Introduction to
VíceVztah jazyků Chomskeho hierarchie a jazyků TS
Vztah jazyků Chomskeho hierarchie a jazyků TS Jan Konečný; (přednáší Lukáš Havrlant) 15. října 2013 Jan Konečný; (přednáší Lukáš Havrlant) Chomskeho hierarchie a jazyky TS 15. října 2013 1 / 23 Rychlé
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce
VíceMatematická logika. Miroslav Kolařík
Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
Více3.10 Rezoluční metoda ve výrokové logice
3.10. Rezoluční metoda ve výrokové logice [070405-1102 ] 27 3.10 Rezoluční metoda ve výrokové logice Rezoluční metoda rozhoduje, zda daná množina klausulí je splnitelná nebo je nesplnitelná. Tím je také
VíceVýroková logika. Teoretická informatika Tomáš Foltýnek
Výroková logika Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Co je to formalismus a co je jeho cílem? Formulujte Russelův paradox
VíceAUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace
AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně
Více5 Orientované grafy, Toky v sítích
Petr Hliněný, FI MU Brno, 205 / 9 FI: IB000: Toky v sítích 5 Orientované grafy, Toky v sítích Nyní se budeme zabývat typem sít ových úloh, ve kterých není podstatná délka hran a spojení, nýbž jejich propustnost
VíceVýpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory
Plán přednášky Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Obecný algoritmus pro parsování bezkontextových jazyků dynamické programování 1 Zásobníkový
Více5. Sekvenční logické obvody
5. Sekvenční logické obvody 3. Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou 3. Sekvenční logické obvody - příklad asynchronního sekvenčního obvodu 3.
VíceBezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27
Bezkontextové jazyky 2/3 Bezkontextové jazyky 2 p.1/27 Transformace bezkontextových gramatik Bezkontextové jazyky 2 p.2/27 Ekvivalentní gramatiky Definice 6.1 Necht G 1 a G 2 jsou gramatiky libovolného
VíceJednoznačné a nejednoznačné gramatiky
BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 2/36 Jednoznačné a nejednoznačné gramatiky BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 4/36 Automaty a gramatiky(bi-aag) 11.
VícePravděpodobnost a statistika
Pravděpodobnost a statistika 1 Náhodné pokusy a náhodné jevy Činnostem, jejichž výsledek není jednoznačně určen podmínkami, za kterých probíhají, a které jsou (alespoň teoreticky) neomezeně opakovatelné,
VíceZ. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu / 43
Zásobníkové automaty Z. Sawa (VŠB-TUO) Teoretická informatika 5. listopadu 2018 1/ 43 Zásobníkový automat Chtěli bychom rozpoznávat jazyk L = {a i b i i 1} Snažíme se navrhnout zařízení (podobné konečným
Více3. Sekvenční logické obvody
3. Sekvenční logické obvody 3. Sekvenční logické obvody - úvod Sledujme chování jednoduchého logického obvodu se zpětnou vazbou 3. Sekvenční logické obvody příklad sekv.o. Příklad sledování polohy vozíku
VíceV 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
Kapitola 5 Vektorové prostory 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 operací sčítání a násobení
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou
VícePoznámka. Je-li f zobrazení, ve kterém potřebujeme zdůraznit proměnnou, píšeme f(x) (resp. f(y), resp. f(t)) je zobrazení místo f je zobrazení.
2. ZOBRAZENÍ A FUNKCE 2.1 Zobrazení 2. 1. 1 Definice: Nechť A a B jsou množiny. Řekneme že f je zobrazení množiny A do množiny B jestliže (i) f A B (ii) ke každému z množiny A eistuje právě jedno y z množiny
VíceTeoretická informatika - Úkol č.1
Teoretická informatika - Úkol č.1 Lukáš Sztefek, xsztef01 18. října 2012 Příklad 1 (a) Gramatika G 1 je čtveřice G 1 = (N, Σ, P, S) kde, N je konečná množina nonterminálních symbolů N = {A, B, C} Σ je
VíceSvobodná chebská škola, základní škola a gymnázium s.r.o. Dělitelnost Rozklad na součin prvočísel. Dušan Astaloš
METODICKÝ LIST DA10 Název tématu: Autor: Předmět: Dělitelnost Rozklad na součin prvočísel Dušan Astaloš Matematika Ročník: 6. Učebnice: Kapitola, oddíl: Metody výuky: Formy výuky: Cíl výuky: Získané dovednosti:
VíceNP-úplnost problému SAT
Problém SAT je definován následovně: SAT(splnitelnost booleovských formulí) Vstup: Booleovská formule ϕ. Otázka: Je ϕ splnitelná? Příklad: Formule ϕ 1 =x 1 ( x 2 x 3 )jesplnitelná: např.přiohodnocení ν,kde[x
VíceMnožiny, relace, zobrazení
Množiny, relace, zobrazení Množiny Množinou rozumíme každý soubor určitých objektů shrnutých v jeden celek. Zmíněné objekty pak nazýváme prvky dané množiny. Pojem množina je tedy synonymem pojmů typu soubor,
VíceFormální jazyky a automaty Petr Šimeček
Formální jazyky a automaty Petr Šimeček Úvod Formální jazyky a automaty jsou základním kamenem teoretické informatiky. Na počátku se zmíníme o Chomského klasifikaci gramatik, nástroje, který lze aplikovat
VíceUnární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek
Otázka 06 - Y01MLO Zadání Predikátová logika, formule predikátové logiky, sentence, interpretace jazyka predikátové logiky, splnitelné sentence, tautologie, kontradikce, tautologicky ekvivalentní formule.
Víceteorie logických spojek chápaných jako pravdivostní funkce
Výroková logika teorie logických spojek chápaných jako pravdivostní funkce zabývá se způsoby tvoření výroků pomocí spojek a vztahy mezi pravdivostí různých výroků používá specifický jazyk složený z výrokových
VíceÚvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška pátá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní
VíceReferát z předmětu Teoretická informatika
Referát z předmětu Téma: Algoritmus Coke-Younger-Kasami pro rozpoznávání bezkontextových jazyků VŠB-TU Ostrava:Fakulta Elektrotechniky a informatiky jaro 2011 Martin Dočkal doc068 dockal.martin@gmail.com
VíceVektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice
Vektorové podprostory, lineární nezávislost, báze, dimenze a souřadnice Vektorové podprostory K množina reálných nebo komplexních čísel, U vektorový prostor nad K. Lineární kombinace vektorů u 1, u 2,...,u
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2013/2014 1 / 20 Základní syntax Jazyk Výroková logika je logikou
VíceZáklady logiky a teorie množin
Pracovní text k přednášce Logika a teorie množin (I/2007) 1 1 Struktura přednášky Matematická logika 2 Výroková logika Základy logiky a teorie množin Petr Pajas pajas@matfyz.cz Predikátová logika 1. řádu
VíceVztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31
Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu
VíceSyntaxí řízený překlad
Syntaxí řízený překlad Překladový automat Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 27. listopadu 2008 Zobecněný překladový automat Překladový automat
Více= 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
Síť Síť je čtveřice N = ( G, s, t, c) kde G ( V, A) = je prostý orientovaný graf a každé orientované hraně ( u, v) je přiřazeno nezáporné číslo, které se nazývá kapacita hrany ( u, v), formálně c ( u,
VíceVysoké učení technické v Brně Fakulta informačních technologií. Regulární pologrupy. Semestrální práce do předmětu Algebra, Kombinatorika, Grafy
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 Tomáš Masopust Brno, 2006 Obsah Úvod 1 1 Základní definice
VíceAutomaty 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.
BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné
VícePQ-stromy a rozpoznávání intervalových grafů v lineárním čase
-stromy a rozpoznávání intervalových grafů v lineárním čase ermutace s předepsanými intervaly Označme [n] množinu {1, 2,..., n}. Mějme permutaci π = π 1, π 2,..., π n množiny [n]. Řekneme, že množina S
Více1 Řešení soustav lineárních rovnic
1 Řešení soustav lineárních rovnic 1.1 Lineární rovnice Lineární rovnicí o n neznámých x 1,x 2,..., x n s reálnými koeficienty rozumíme rovnici ve tvaru a 1 x 1 + a 2 x 2 +... + a n x n = b, (1) kde koeficienty
Více4.2 Syntaxe predikátové logiky
36 [070507-1501 ] 4.2 Syntaxe predikátové logiky V tomto oddíle zavedeme syntaxi predikátové logiky, tj. uvedeme pravidla, podle nichž se tvoří syntakticky správné formule predikátové logiky. Význam a
VíceCílem kapitoly je opakování a rozšíření středoškolských znalostí v oblasti teorie množin.
1.2. Cíle Cílem kapitoly je opakování a rozšíření středoškolských znalostí v oblasti teorie množin. Průvodce studiem Množina je jedním ze základních pojmů moderní matematiky. Teorii množin je možno budovat
VíceB i n á r n í r e l a c e. Patrik Kavecký, Radomír Hamřík
B i n á r n í r e l a c e Patrik Kavecký, Radomír Hamřík Obsah 1 Kartézský součin dvou množin... 3 2 Binární relace... 6 3 Inverzní relace... 8 4 Klasifikace binární relací... 9 5 Ekvivalence... 12 2 1
Více1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:
Opakování středoškolské matematiky Slovo úvodem: Tato pomůcka je určena zejména těm studentům presenčního i kombinovaného studia na VŠFS, kteří na středních školách neprošli dostatečnou průpravou z matematiky
VíceTeorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.
Teorie množin V matematice je všechno množina I čísla jsou definována pomocí množin Informatika stojí na matematice Znalosti Teorie množin využijeme v databázových systémech v informačních systémech při
VíceLineární algebra Kapitola 1 - Základní matematické pojmy
Lineární algebra Kapitola 1 - Základní matematické pojmy 1.1 Relace a funkce V celém textu budeme používat následující označení pro číselné množiny: N množina všech přirozených čísel bez nuly, N={1, 2,
VíceMatice. a m1 a m2... a mn
Matice Nechť (R, +, ) je okruh a nechť m, n jsou přirozená čísla Matice typu m/n nad okruhem (R, +, ) vznikne, když libovolných m n prvků z R naskládáme do obdélníkového schematu o m řádcích a n sloupcích
VíceSložitost Filip Hlásek
Složitost Filip Hlásek Abstrakt. Příspěvek popisuje dva základní koncepty teoretické informatiky, Turingovy stroje a složitost. Kromě definic důležitých pojmů uvádí také několik souvisejících tvrzení,
VíceGRAFY A GRAFOVÉ ALGORITMY
KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO GRAFY A GRAFOVÉ ALGORITMY ARNOŠT VEČERKA VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČESKÉ
VíceTeorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
VíceÚvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška první Miroslav Kolařík Zpracováno dle učebního textu prof. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Co a k čemu je logika? 2 Výroky a logické spojky
VíceZÁKLADY TEORETICKÉ INFORMATIKY
KATEDRA INFORMATIKY PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITA PALACKÉHO ZÁKLADY TEORETICKÉ INFORMATIKY PAVEL MARTINEK VÝVOJ TOHOTO UČEBNÍHO TEXTU JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM
VíceModely Herbrandovské interpretace
Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší
VícePŘEDNÁŠKA 2 POSLOUPNOSTI
PŘEDNÁŠKA 2 POSLOUPNOSTI 2.1 Zobrazení 2 Definice 1. Uvažujme libovolné neprázdné množiny A, B. Zobrazení množiny A do množiny B je definováno jako množina F uspořádaných dvojic (x, y A B, kde ke každému
Vícepříkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.
Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl
VíceVrcholová barevnost grafu
Vrcholová barevnost grafu Definice: Necht G = (V, E) je obyčejný graf a k N. Zobrazení φ : V {1, 2,..., k} nazýváme k-vrcholovým obarvením grafu G. Pokud φ(u) φ(v) pro každou hranu {u, v} E, nazveme k-vrcholové
Více1 Vektorové prostory.
1 Vektorové prostory DefiniceMnožinu V, jejíž prvky budeme označovat a, b, c, z, budeme nazývat vektorovým prostorem právě tehdy, když budou splněny následující podmínky: 1 Je dáno zobrazení V V V, které
VíceVektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
VíceAlgoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
VícePŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy
PŘEDNÁŠKA 5 Konjuktivně disjunktivní termy, konečné distributivní svazy PAVEL RŮŽIČKA Abstrakt. Ukážeme, že každý prvek distributivního svazu odpovídá termu v konjuktivně-disjunktivním (resp. disjunktivně-konjunktivním)
Více1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7
1 Výroková logika 1 Výroková logika 1 2 Predikátová logika 3 3 Důkazy matematických vět 4 4 Doporučená literatura 7 Definice 1.1 Výrokem rozumíme každé sdělení, o kterém má smysl uvažovat, zda je, či není
VíceLogika. 6. Axiomatický systém výrokové logiky
Logika 6. Axiomatický systém výrokové logiky RNDr. Luděk Cienciala, Ph. D. Tato inovace předmětu Úvod do logiky je spolufinancována Evropským sociálním fondem a Státním rozpočtem ČR, projekt č. CZ. 1.07/2.2.00/28.0216,
Více3. Reálná čísla. většinou racionálních čísel. V analytických úvahách, které praktickým výpočtům
RACIONÁLNÍ A IRACIONÁLNÍ ČÍSLA Význačnými množinami jsou číselné množiny K nejvýznamnějším patří množina reálných čísel, obsahující jako podmnožiny množiny přirozených, celých, racionálních a iracionálních
VíceBáze a dimenze vektorových prostorů
Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň
Více1 Báze a dimenze vektorového prostoru 1
1 Báze a dimenze vektorového prostoru 1 Báze a dimenze vektorového prostoru 1 2 Aritmetické vektorové prostory 7 3 Eukleidovské vektorové prostory 9 Levá vnější operace Definice 5.1 Necht A B. Levou vnější
VíceMatematická analýza pro informatiky I. Limita funkce
Matematická analýza pro informatiky I. 5. přednáška Limita funkce Jan Tomeček tomecek@inf.upol.cz http://aix-slx.upol.cz/ tomecek/index Univerzita Palackého v Olomouci 18. března 2011 Jan Tomeček, tomecek@inf.upol.cz
Vícep 2 q , tj. 2q 2 = p 2. Tedy p 2 je sudé číslo, což ale znamená, že
KAPITOLA 1: Reálná čísla [MA1-18:P1.1] 1.1. Číselné množiny Přirozená čísla... N = {1,, 3,...} nula... 0, N 0 = {0, 1,, 3,...} = N {0} Celá čísla... Z = {0, 1, 1,,, 3,...} Racionální čísla... { p } Q =
VíceH {{u, v} : u,v U u v }
Obyčejný graf Obyčejný graf je dvojice G= U, H, kde U je konečná množina uzlů (vrcholů) a H {{u, v} : u,v U u v } je (konečná) množina hran. O hraně h={u, v} říkáme, že je incidentní s uzly u a v nebo
VíceVýroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
VíceMatematika B101MA1, B101MA2
Matematika B101MA1, B101MA2 Zařazení předmětu: povinný předmět 1.ročníku bc studia 2 semestry Rozsah předmětu: prezenční studium 2 + 2 kombinované studium 16 + 0 / semestr Zakončení předmětu: ZS zápočet
VíceKapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.
Kapitola 6 LL gramatiky 6.1 Definice LL(k) gramatik Definice 6.1. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo. Definujme funkci FIRST G k : (N Σ) + P({w Σ w k}) předpisem FIRST G k (α) = {w Σ (α w
VíceRegulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20
Regulární výrazy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 1/ 20 Regulární výrazy Jako například v aritmetice můžeme pomocí operátorů + a vytvářet výrazy jako (5+3)
VíceTOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA.
TOPOLOGIE A TEORIE KATEGORIÍ (2017/2018) 4. PREDNÁŠKA - SOUČIN PROSTORŮ A TICHONOVOVA VĚTA. PAVEL RŮŽIČKA 4.1. (Kvazi)kompaktnost a sub-báze. Buď (Q, ) uspořádaná množina. Řetězcem v Q budeme rozumět lineárně
Více8 Kořeny cyklických kódů, BCH-kódy
24 8 Kořeny cyklických kódů, BCH-kódy Generující kořeny cyklických kódů Nechť K je cyklický kód délky n nad Z p s generujícím polynomem g(z). Chceme najít rozšíření T tělesa Z p, tedy nějaké těleso GF
VíceAlgoritmizace diskrétních. Ing. Michal Dorda, Ph.D.
Algoritmizace diskrétních simulačních modelů Ing. Michal Dorda, Ph.D. 1 Úvodní poznámky Při programování simulačních modelů lze hlavní dílčí problémy shrnout do následujících bodů: 1) Zachycení statických
VíceMatematická logika. Rostislav Horčík. horcik
Matematická logika Rostislav Horčík horcik@math.feld.cvut.cz horcik@cs.cas.cz www.cs.cas.cz/ horcik Rostislav Horčík (ČVUT FEL) Y01MLO Letní semestr 2007/2008 1 / 15 Splnitelnost množin Definice Množina
VíceAlgoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19
Algoritmy I Číselné soustavy přečíst!!! Číselné soustavy Každé číslo lze zapsat v poziční číselné soustavě ve tvaru: a n *z n +a n-1 *z n-1 +. +a 1 *z 1 +a 0 *z 0 +a -1 *z n-1 +a -2 *z -2 +.. V dekadické
VíceZpůsoby realizace této funkce:
KOMBINAČNÍ LOGICKÉ OBVODY U těchto obvodů je výstup určen jen výhradně kombinací vstupních veličin. Hodnoty výstupních veličin nezávisejí na předcházejícím stavu logického obvodu, což znamená, že kombinační
VíceÚvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška šestá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008 a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní
VícePredikátová logika. prvního řádu
Predikátová logika prvního řádu 2 Predikát Predikát je n-ární relace - vyjadřuje vlastnosti objektů a vztahy mezi objekty - z jednoduchého výroku vznikne vypuštěním alespoň jednoho jména objektu (individua)
VíceFakulta informačních technologií. Teoretická informatika
Vysoké učení technické v Brně Fakulta informačních technologií Teoretická informatika Třetí úkol 2 Jan Trávníček . Tato úloha je řešena Turingovým strojem, který je zobrazen na obrázku, který si můžeme
VíceMatematická analýza 1
Matematická analýza 1 ZS 2019-20 Miroslav Zelený 1. Logika, množiny a základní číselné obory 2. Limita posloupnosti 3. Limita a spojitost funkce 4. Elementární funkce 5. Derivace 6. Taylorův polynom Návod
VíceNaproti tomu gramatika je vlastně soupis pravidel, jak
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
Více