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

Podobné dokumenty
Naproti tomu gramatika je vlastně soupis pravidel, jak

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 Σ

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

Syntaxí řízený překlad

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

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

Úvod do informatiky. Miroslav Kolařík

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

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

AUTOMATY A GRAMATIKY

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

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

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

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

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

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

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

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.

Konečný automat. Jan Kybic.

45 Plánovací kalendář

Konečný automat Teorie programovacích jazyků

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií

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

Vztah jazyků Chomskeho hierarchie a jazyků TS

TECHNICKÉ PARAMETRY DIPLOMOVÉ PRÁCE

FORTANNS. 22. února 2010

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.

RELAČNÍ DATABÁZE ACCESS

2. LIMITA A SPOJITOST FUNKCE

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.

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.

Integrovaná střední škola Nová Paka. Pokyny pro zpracování ročníkové práce. pro 3. ročník oboru mechanik elektrotechnik¹

Microsoft Office Word 2003

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

Postupy práce se šablonami IS MPP

Stručný postup k použití programu PL7 Junior (programování TSX Micro)

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-210

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

P R OGR AM P R O NÁVRH VÝVAR U

NÁSTROJE A TECHNIKY PROJEKTOVÉHO MANAGEMENTU

Konfigurace PPPoE připojení v OS Microsoft Windows XP

MS OFFICE, POWERPOINT

Návod k ovládání aplikace

OFFICE MS EXCEL SEZNÁMENÍ S PROGRAMEM

Uživatelská příručka.!instalace!průvodce.!dialogová okna!program zevnitř

UniLog-D. v1.01 návod k obsluze software. Strana 1

Třídy složitosti P a NP, NP-úplnost

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

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

Formátování dat EU peníze středním školám Didaktický učební materiál

Dynamické programování UIN009 Efektivní algoritmy 1

1 Tabulky Příklad 3 Access 2010

Algoritmizace prostorových úloh

POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE

Základy algoritmizace

Simulátor programované gramatiky

Plc Calculator. Nástroj pro automatizovaný návrh aplikace s automaty MICROPEL

NOVINKY v PROGRAMU DOCHÁZKA ADS

NÁSTROJE A TECHNIKY PROJEKTOVÉHO MANAGEMENTU. Projektová dekompozice

MBus Explorer MULTI. Uživatelský manuál V. 1.1

Zpravodaj. Uživatelská příručka. Verze

VISUAL BASIC. Přehled témat

Práce s programem MPVaK

Špatné nastavení oddělovače pro datum

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

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Matematika B101MA1, B101MA2

1 Strukturované programování

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

Vývojové prostředí,průvodce novou aplikací

Rozdílová dokumentace k ovládání IS KARAT.net

KAPITOLY Z O ETØOVATELSKÉ PÉÈE I


ISBN (elektronická verze ve formátu PDF)


PRVNÍ POMOC V PSYCHIATRII



(tištěná verze) ISBN (elektronická verze ve formátu PDF)

Ing. Petr Dostál, CSc. prof. Ing. Karel Rais, CSc., MBA doc. Ing. Zdenìk Sojka, CSc. Pokroèilé metody mana erského rozhodování

ISBN (elektronická verze ve formátu PDF)

ISBN (elektronická verze ve formátu PDF)



(tištěná verze) ISBN (elektronická verze ve formátu PDF)


(tištěná verze) ISBN (elektronická verze ve formátu PDF)


TURINGOVY STROJE. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Návod k použití OOCorr (rošíření OpenOffice.org)

8 Makra Příklad 4 Excel 2007

FIREMNÍ CERTIFIKÁT V APLIKACI PŘÍMÝ KANÁL NÁVOD PRO KLIENTY

Teorie systémů TES 1. Úvod

Transkript:

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 -

OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného automatu BAKALÁŘSKÁ PRÁCE AUTOR: Marian SEDLÁK VEDOUCÍ PRÁCE: Mgr. Hashim HABIBALLA Ostrava 2002-2 -

Prohlašuji, že předložená práce je mým původním autorským dílem, které jsem vypracoval samostatně.literaturu a další zdroje, z nichž jsem zpracování čerpal, v práci řádně cituji. Chtěl bych zde uvést poděkování vedoucímu mé práce Mgr. Hashimu Habiballovi za poskytnuti odborných připomínek při řešení dané práce. Dále bych chtěl poděkovat Mgr. Rostislavu Fojtíkovi za odborné konzultace při ladění zdrojového kódu. V poslední řadě bych rád poděkoval Martinu Tomišovi za pomoc při stylizaci textu. - 3 -

Anotace Cílem této práce je vytvořit vhodnou aplikaci pro vizualizaci výpočtu konečného automatu. Bude vytvořen algoritmus znázorňující chování konečného automatu a aplikace pomocí níž bude prezentována funkce konečného automatu. K programu je připojeno několik ilustrativních příkladů. Klíčová slova: Konečný automat je matematický model pro modelování systému, který má konečný počet stavů a reaguje na konečný počet vnějších podnětů jež způsobují změnu stavu. Stavový prostor je konečná neprázdná množina stavů automatu Abeceda je konečná neprázdná množina vstupních symbolů Přechodová funkce vyjadřuje přechod z aktuálního stavu při daném vstupním symbolu do stavu nového. Slovo je libovolná kombinace vstupních symbolů, které automat zpracovává. - 4 -

Obsah 1 Úvod.. 6 2.1 Definice konečných automatů 7 2.2 Možnosti reprezentace konečných automatů. 8 3.1 Popis programu.. 9 3.2 Formát vstupního souboru 11 4 Závěr 12 5 Použité informační zdroje 13-5 -

1 Úvod Hlavní úkoly této práce jsou uvedeny v následujících třech bodech: Nastudování teorie z oblasti Formálních jazyků a automatů potřebné k praktickému zvládnutí tématu. Zvolení vhodného vývojového prostředí pro naprogramování aplikace pro vizualizaci výpočtu KA. Detailní návrh algoritmů pro vizualizaci výpočtu KA a návrh prostředí aplikace. Implementace ve formě počítačové aplikace. Zpracování jednoduchých příkladů a kompletace doprovodného textu bakalářské práce. Podmínkou pro naprogramování aplikace pro vizualizaci výpočtu konečného automatu bylo užití operačního systému Windows. Na základě toho jsem zvolil vývojové prostředí Borland C++ Builder 5.0. - 6 -

2.1 DEFINNICE KONEČNÝCH AUTOMATŮ Konečný automat je abstraktní model k modelování systémů, u nichž lze vymezit konečný počet stavů a konečně mnoho vnějších podnětů. Stav tohoto systému se změní pouze na základě vnějšího podnětu a to jednoznačně. Konečný automat je definován pěticí A = (Q, Ε, δ, q 0, F). Kde Q je neprázdná konečná množina stavů tzv. stavový prostor, Ε je neprázdná konečná množina vstupních symbolů tzv. vstupní abeceda. δ je zobrazení Q x Ε Q tzv. Přechodová funkce. q 0 je počáteční stav a F je podmnožinou Q tzv. množina koncových stavů. O tomto automatu budeme hovořit jako o deterministickém. Dále je vhodné si nadefinovat pojem slovo, které automat zpracovává. Je-li Ε konečná množina (abeceda), pak množinu Ε + označujeme jako množinu neprázdných a konečných posloupností prvků z množiny Ε. Symbolem e označujeme prázdnou posloupnost prvků z množiny Ε. Symbol e pak nazýváme prázdným slovem. Slovem pak nazveme posloupnost prvků z množiny Ε kde Ε * = Ε + {e}. Z definice slova vyplývá definice jazyka L. Jazyk L Ε *. Této jazyk pak nazýváme jazykem definovaným nad abecedou Ε. Poté můžeme říci že jestliže jazyk L je rozpoznatelný konečným automatem pak automat musí po průchodu slova skončit v koncovém stavu. Musím ještě podotknout, že existují také jiné typy konečných automatů a to nedeterministický a zobecněný nedeterministický. Nedeterministickým konečným automatem budeme nazývat pětici A = (Q, Ε, δ, I, F), kde Q je neprázdná konečná množina stavů, Ε je abeceda automatu, δ je zobrazení Q x Ε P(Q). P(Q) je množina všech podmnožin Q. I Q je množina všech počátečních stavů a F Q je množinou všech koncových stavů. Pozn. Nedeterministický konečný automat přijímá slovo tehdy existuje-li cesta z některého počátečního stavu do některého koncového stavu. - 7 -

Zobecněným nedeterministickým automatem budeme nazývat pětici A = (Q, Ε, δ, I, F), kde Q je neprázdná konečná množina stavů, Ε je abeceda automatu, δ je zobrazení Q x (Ε {e}) P(Q). Nedeterministický i zobecněný nedeterministický konečný automat lze převést na deterministický konečný automat. Proto se již dále nebudeme těmito automaty zabývat. 2.2 MOŽNOSTI REPREZENTACE KONEČNÝCH AUTOMATŮ Konečné automaty lze reprezentovat několika způsoby: Výčtem konečného automatu (obr. 1.1) Tabulkou (obr. 1.2) Stavovým stromem (obr. 1.3) Stavovým diagramem (obr. 1.4) Obr. 1.1 Výčet konečného automatu Obr. 1.2 Tabulka Obr. 1.3 Stavový strom Obr 1.4 Stavový diagram - 8 -

3.1 Popis programu Jak již vyplývá ze zadání bakalářské práce je hlavním požadavkem funkčnost programu v operačním systému Microsoft Windows. Z tohoto důvodu jsem zvolil vývojový nástroj C++ Builder 5.0. Tento nástroj lze použít jak pro vytváření aplikací pro DOS tak i Windows pomocí programovacího jazyka C++. Program je navržen pro zkoušeni různých slov z jazyka. Po nahrání vstupního souboru s parametry automatu (viz. další kapitola) je možné zadávat postupně jednotlivá slova a provádět jejich výpočet. Výpočet je možné provádět po krocích směrem vpřed i vzad. Popřípadě lze výpočet dokončit pomocí jediného tlačítka. V průběhu výpočtu je zobrazován průchod celým slovem až do jeho konce. Průběžně s tímto je také možné sledovat použité přechodové funkce nebo tabulku kde je vždy vysvícen použitý řádek a sloupec. Po spuštění programu se objeví pouze hlavní okno s menu (obr 2.1), které obsahuje základní příkazy. Obr 2.1 Hlavní menu aplikace Popis menu soubor (obr 2.2): Otevři - Otevře požadovaný soubor s příponou.aut Ulož jako - Uloží soubor s automatem pod zadaným jménem. Obr 2.2 Menu soubor Zavři Uzavře soubor a zpřístupní položku pro otevření. nového souboru. Konec Ukončení aplikace. Po vybrání souboru v dialogu Otevři se objeví okno s daným automatem (obr. 2.3). - 9 -

Obr. 2.3 Okno automatu. Popis tlačítek: Nové slovo po stisku tohoto tlačítka se objeví dialog pro zadání slova (obr. 2.4) Tlačítka Další a Zpět slouží k pohybu ve slově. Tlačítko Dokonči projde slovem až do konce a ukončí výpočet. Toto okno dále v horní části obsahuje modro červený panel, který znázorňuje pozici ve slově. Vlevo od červeného políčka jsou již přečtené znaky slova. V červeném políčku je znak, na který je právě nastavena čtecí hlava automatu a je připraven ke zpracování. V posledním poli jsou dosud nepřečtené znaky slova. Pod tímto panelem je zobrazována právě použitá přechodová funkce. V pravé části okna je tabulka v níž je vysvícen použitý řádek a sloupec k výpočtu.jejich průsečík je ještě zvýrazněn červenou barvou. Obr. 2.4 Okno pro zadání slova automatu - 10 -

3.2 Formát vstupního souboru Jako vstup byl zvolen textový soubor. Toto volbu jsem provedl proto, že data v textovém souboru jsou daleko lépe čitelná a snadná je i jeho editace. Obr 3.1 Struktura vstupního souboru Struktura vstupního souboru je vidět na obrázku (obr. 3.1). Tento soubor obsahuje povinně tři klíčová slova nazev, abeceda a stavy. Všechna tato slova musí být zakončena dvojtečkou. Za klíčovým slovem nazev: je možno uvést jméno automatu. Po slově abeceda: následuje výčet znaků abecedy. Jednotlivé znaky musejí být odděleny čárkou. Slovo stavy: uvozuje tabulku přechodových funkcí. Formát jednotlivých řádků je následující: T S P1 P2 T typ stavu vstupní = 2, koncový = 1, jiný = 0 (při kombinaci vstupního a koncového stavu je typ = 3, logická funkce OR). S název stavu. P1 název stavu kam automat přejde po přečtení prvního znaku v abecedě. P2 - název stavu kam automat přejde po přečtení druhého znaku v abecedě. - v případě použití více znaků v abecedě se vkládají další názvy stavů, na které automat přejde po dalších symbolech abecedy. vstupní stav může být pouze jeden. Jedná o deterministický konečný automat. - 11 -

4 Závěr Myslím si, že tato práce bude přínosem pro studium teoretické informatiky a pomůže tímto k lepšímu pochopení a porozumění principu práce konečných automatů. Toto zadání jsem si vybral zcela záměrně protože i já jsem měl problémy při studiu regulárních a bezkontextových jazyků a chyběl mi právě nějaký program pro vyzkoušení a porozumění práce konečných automatů. Doufám že se mi podařilo alespoň částečně tuto mezeru v takovémto softwaru zaplnit. Tato práce podstatě splnila požadavky zadání, ale na druhou stranu je možné jí dále rozvíjet např. nalezení algoritmu, který by automaticky generoval celý graf konečného automatu. Tímto příslibem do budoucna bych tuto práci zakončil. - 12 -

5 Použité informační zdroje 1. CHYTIL M.: Automaty a gramatiky, vydání 1., Praha, SNTL, 1984, ISBN 04-012-84 2. ČEŠKA M., RÁBOVÁ Z.: Gramatiky a jazyky, VUT Brno, 1985 3. MATOUŠEK D.: C++ Builder 4.0 a 5.0, vývojové prostředí, vydání 2., Praha, BEN, 2000, ISBN 80-86056-70-8 4. VIRIUS M.: C++ Builder 4.0 podrobný průvodce, vydání 1., Praha, Grada Publishing, 1999, ISBN 80-7169-796-6 - 13 -