Referát z předmětu Teoretická informatika



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

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

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

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Vztah jazyků Chomskeho hierarchie a jazyků TS

Jednoznačné a nejednoznačné gramatiky

2 Formální jazyky a gramatiky

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

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

Syntaxí řízený překlad

Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy

Automaty a gramatiky

AUTOMATY A GRAMATIKY

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

Vlastnosti regulárních jazyků

Dynamické programování

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

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

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

Elegantní algoritmus pro konstrukci sufixových polí

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

Složitost Filip Hlásek

Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem

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

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Implementace LL(1) překladů

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.

Teoretická informatika - Úkol č.1

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

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

0.1 Úvod do lineární algebry

Aplikovaná numerická matematika - ANM

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

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

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava luk76/la1

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

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.

NP-úplnost problému SAT

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

Že tuto definici znáte, ale stále přesně nevíte, jak funkci chápat? Ukážeme si konkrétní příklad Definiční obor (množina A)

0.1 Úvod do lineární algebry

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 Σ

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

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

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

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

1 Řešení soustav lineárních rovnic

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:

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

VLASTNOSTI GRAFŮ. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze. BI-GRA, LS 2010/2011, Lekce 5

9.3. Úplná lineární rovnice s konstantními koeficienty

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

Minimalizace KA - Úvod

Popište a na příkladu ilustrujte(rychlý) algoritmus testující, zda dané dva automaty jsou izomorfní.

Lexikální analýza Teorie programovacích jazyků

Křivky a plochy technické praxe

INFORMATIKA. Jindřich Kaluža. Ludmila Kalužová

Definice 7.2. Nejmenší přirozené číslo k, pro které je graf G k-obarvitelný, se nazývá chromatické číslo (barevnost) grafu G a značí se χ(g).

Dynamic programming. Historie. Dynamické programování je obsaženo v těchto programech: Příklad: chceme optimálně přiložit dvě sekvence

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

PŘÍJMENÍ a JMÉNO: Login studenta: DATUM:

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

4 Pojem grafu, ve zkratce

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

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

Pravděpodobnost a statistika

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

FUNKCE POJEM, VLASTNOSTI, GRAF

Diskrétní matematika. DiM /01, zimní semestr 2017/2018

Algoritmizace prostorových úloh

Magické čtverce. Bára Kociánová

ZÁKLADY TEORETICKÉ INFORMATIKY

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

Prohledávání do šířky = algoritmus vlny

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

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Zadání semestrálního projektu Algoritmy II. letní semestr 2017/2018

Maturitní otázky z předmětu PROGRAMOVÁNÍ

KOMBINATORIKA. 1. cvičení

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Matematika B101MA1, B101MA2

Markov Chain Monte Carlo. Jan Kracík.

[1] samoopravné kódy: terminologie, princip

Dynamické programování

ANALÝZA A KLASIFIKACE DAT

Syntaktická analýza. Implementace LL(1) překladů. Šárka Vavrečková. Ústav informatiky, FPF SU Opava

Úvod do řešení lineárních rovnic a jejich soustav

ALGEBRA. Téma 5: Vektorové prostory

Úvod do informatiky. Miroslav Kolařík

Báze konečněrozměrných vektorových prostorů, lineární zobrazení vektorových prostorů

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

Substituce a morfismy jednoduše

Transkript:

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

1 Obsah 1 Obsah... 2 2 Zadání... 2 3 Základní pojmy... 2 3.1 Jazyk... 2 3.2 Gramatika... 3 3.3 Jazyk generovaný gramatikou... 3 3.4 Bezkontextová gramatika... 3 3.5 Bezkontextový jazyk... 4 3.6 Zásobníkový automat... 4 3.7 Algoritmus... 4 3.8 Dynamické programování... 4 3.9 Chomského normální forma... 4 3.10 Časová složitost... 5 4 Autoři algoritmu CYK... 5 4.1 John Coke... 5 4.2 Tadao Kasami... 5 5 Algoritmus CYK... 6 5.1 Princip... 6 5.2 Postup... 6 5.2.1 Formální (pseudokód)... 6 5.2.2 Neformální... 6 5.3 Příklad... 7 5.4 Složitost... 9 6 Literatura... 10 2 Zadání Algoritmus (Cocke-Younger-Kasami) pro rozpoznávaní bezkontextových jazyků (aplikace metody dynamického programováni): Mějme dánu bezkontextovou gramatiku G v tzv. Chomskeho normální formě, tedy s pravidly pouze typu a. Algoritmus pro zadané (terminální) slovo w zjistí, zda. Nástin: Označme. Systematicky vyplňujeme (dvourozměrné) pole D tak, že na závěr bude obsahovat množinu pravě těch neterminálů X, z nichž lze odvodit. Vysvětlete tento algoritmus ilustraci na vhodném přikladu a objasněte jeho časovou složitost. 3 Základní pojmy 3.1 Jazyk Obecně máme v této práci na mysli tzv. formální jazyk, naproti tomu speciálními jazyky jsou přirozené (mluvené) či jazyky programovací. Na naše modely se v prvé řadě budeme dívat jako na rozpoznávače jazyků, tj. zařízení, která zpracují vstupní posloupnost písmen (symbolů) a rozhodnou, zda tato posloupnost je (správně utvořenou) větou příslušného jazyka [1]. Jazyk L můžeme formálně zapsat v oboru teoretické informatiky ve tvaru Stránka 2 z 10

kde je nějaké slovo w složené z abecední množiny K je množina integritních omezeních platných nad každým slovem w patřící do jazyka L Příklad zápisu jazyka generující jazyk palindromů: 3.2 Gramatika S výše zmíněným pojmem jazyk bývá v asociaci další, kterým je gramatika G, jež obecně generuje právě jazyk L, který pak označujeme, do nějž pak patří pouze terminální slova odvozená z S, tedy z počátečního (inicializačního) neterminálu, který také bývá nazýván počátečním. Gramatiku G opět můžeme obecně a formálně zapisovat ve tvaru odvozeném z definice bezkontextové gramatiky [1 str. 127] : kde П je konečná množina neterminálních symbolů (neterminálů) je konečná množina terminálních symbolů (terminálů), přičemž platí = {} je počáteční (startovací) neterminál P je konečná množina pravidel typu β β, kde β je řetězec složený z terminálů a neterminálů, tedy β (Π Σ). Příklad zápisu gramatiky: V tomto případě by podle námi zvoleného zápisu mohla taková gramatika vypadat ve formálním tvaru takto: 3.3 Jazyk generovaný gramatikou V předchozí definici u pojmu gramatiky jsme se setkali s výrazem "jazyk generovaný gramatikou G", pro který jsme si zavedlo formální značení a platí [1 str. 128]: kde w je slovo vygenerované nad abecedou terminálů z množiny w je slovo odvozené z počátečního neterminálu S v konečně mnoha krocích ( ) 3.4 Bezkontextová gramatika V tomto referátu se věnujeme jejich podmnožině zvané bezkontextová gramatika, která generuje jazyky, jež jsou rozpoznávány zásobníkovými automaty, případně jsme se s nimi mohli setkat u definic syntaxí programovacích jazyků [1]. Podle definice [1 str. 127] je bezkontextová gramatika definována jako uspořádaná čtveřice Stránka 3 z 10

kde П je konečná množina neterminálních symbolů (neterminálů) je konečná množina terminálních symbolů (terminálů), přičemž platí = {} je počáteční (startovací) neterminál P je konečná množina pravidel typu A β, kde A je neterminál, tedy A Π β je řetězec složený z terminálů a neterminálů, tedy β (Π Σ). Neformálně řečeno slovo "bezkontextová" v názvu gramatiky znamená, že na levé straně každého pravidla stojí jeden neterminál bez sousedních symbolů, který můžeme při jakémkoliv odvození přepsat podle uvedených pravidel nezávisle na jeho okolí (kontext). Podle zvyklostí a konvencí používáme pro neterminály velká písmena (A, B, C,...), naopak pro neterminály malá písmena (a, b, c,...) či další symboly (+,(, apod.). 3.5 Bezkontextový jazyk Podle definice [1 str. 128] je jazyk L generovaný gramatikou G, pak označovaný jako bezkontexotvý, jestliže existuje bezkontextová gramatika G taková, že. 3.6 Zásobníkový automat Zásobníkový automat představuje rozšíření konečného automatu obohaceného o datovou strukturu zásobník. Tyto zásobníkové automaty rozpoznávají třídu tzv. bezkontextových jazyků, což je nadtřída třídy regulárních jazyků [1]. 3.7 Algoritmus Matematickým pojmem algoritmus nazýváme posloupnost konečného počtu elementárních kroků vedoucí k vyřešení úlohy. 3.8 Dynamické programování Odvětvím optimalizace je právě dynamické programování, jehož stěžejní myšlenkou je rozklad problému na podproblémy, které jsou řešeny a jejich řešení je ukládáno pro další potenciálně možné použití. Zejména se užívá u takových úloh, jenž se dají dělit na podúlohy, které jsou si vzájemně podobné a mohou se opakovat, přičemž obvykle existuje více způsobů takového rozkladu na podproblémy, což může mít vliv na efektivitu celého výpočtu. [2] 3.9 Chomského normální forma Z důvodů další analýzy gramatik bývá v některých případech vhodné pokusit se ji transformovat do některé z definovaných norem. Podle definice platí [1 str. 160]: Bezkontextová gramatika je v Chomského normální formě, zkráceně v CNF, jestliže každé její pravidlo je tvaru nebo a kde X,Y,Z jsou neterminální symboly a a terminální symbol. Podle věty uvedené v [1 str. 161] pak platí následující tvrzení: Ke každé bezkontextové gramatice G lze sestrojit gramatiku G v CNF tak, že platí: Stránka 4 z 10

3.10 Časová složitost Časovou složitostí algoritmu v závislosti na velikosti testovaného vstupu o délce n vyjadřujeme funkcí s nekonečným definičním oborem, tzn. že tvar této funkce nelze zapsat zápisem jako výčtem hodnot, ale hledáme pro ni konečný popis, resp. odhad. Příklad zápisu časové složitosti pro (zde mj. pro algoritmus třídění buble sort) : Protože vstupů se stejnou velikostí n ovšem může být různé množství s různou časovou složitostí pro jednotlivé vstupy. Výslednou funkcí pro časovou složitost algoritmu je přiřazení velikosti n funkci s nejvyšší časovou složitostí (tzv. worst-case případ [1 str. 232]), přičemž zanedbáváme konstanty. Tedy např. časové složitosti ve tvaru a pak považujeme za shodné. Naopak v případě komparace s výše zmíněnou časovou složitostí pro buble sort bychom upřednostňovali právě buble sort, neboť má vyšší časovou složitost a považovali bychom jej za výslednou časovou složitost celého algoritmu. 4 Autoři algoritmu CYK Autory algoritmu, jenž je hlavním předmětem tohoto referátu, jsou John Coke (30.5. 1925-16.7.2002) a Tadao Kasami (12.4.1930-18.3. 2007). [3] 4.1 John Coke Americký věděc v oboru informačních technologiích. Zaměřoval se na architekturu počítačů a návrhy optimalizačních kompilátorů. Mnohými je označován jako otec architektury RISC. Promoval ve svých 21 letech na univerzitě Duke University roku 1946 v oboru strojního inženýrství. Na téže univerzitě o 7 let později získal také doktorát z matematiky. Obrázek 1: John Coke Po studiích ztrávil celou svou pracovní kariéru ve výzkumném středisku IBM, kde působil nepřetržitě 36 let až do roku 1992, kdy odešel do penze. Za svůj život získal řadu ocenění (Eckert-Mauchly Award 1985, ACM Turing Award 1987, National Medal of Technology 1991, National Medal of Science 1994, a mnoho dalších, poslední pak The Benjamin Franklin Medal v roce 2000). [4] 4.2 Tadao Kasami Japonský vědec teoretické informatiky, převážně se zabýval korekci chybových kódů (Kasami code). Stránka 5 z 10

Obrázek 2: Tadao Kasami Studoval elektrotechniku na univerzitě Osaka University, kde promoval ve 30 letech a o tři roky později, v roce 1963, zde také získal doktorát. Svou profesionální kariéru pak zasvětil předáváním svých poznatků fakultním studentům jako profesor až do roku 2004. Oceněn řadou vyznamenání z oboru informatiky, mezi jeho nejznámější patří Claude E. Shannon Award (1999). [5] 5 Algoritmus CYK 5.1 Princip Algoritmus CYK určuje, zda slovo náleží do bezkontextového jazyka, který musí být zapsán gramatikou v Chomského normální formě. Algoritmus končí a ověří, jestliže ve výsledné množině neterminálů, kterou během svého chodu postupně vygeneruje, se nachází vstupní (startovní, inicializační) neterminál. 5.2 Postup Na vstupu máme terminální slovo w a gramatiku v CNF (3.9 Chomského normální forma). 5.2.1 Formální (pseudokód) Vytvoříme pole, pro, kde jsou postupně všechny neterminály (nebo jejich odkazy v podobě např. celých čísel), a hodnoty všech jeho prvků nastavíme na 0. Pro každý znak a na pozici i, a pro každé X takové, že v gramatice existuje pravidlo, nastavíme v poli Pro každou délku podslova od 2 do n: Pro každý začátek podslova j od 1 do : Pro každou délku první poloviny podslova k od 1 do : Jestliže v poli mají jedničkovou hodnotu i a v gramatice existuje pravidlo, nastavíme v poli jedničku. Slovo náleží do jazyka, jestliže, kde S je vstupní neterminál gramatiky. [6] 5.2.2 Neformální Inicializujeme dvourozměrné pole vstupního slova w., kde počet sloupců i řádků odpovídá velikosti délky Stránka 6 z 10

Buňky prvního řádku odpovídají vždy množině takových neterminálů z gramatiky CNF, ze kterých lze odvodit příslušný neterminál na j-té pozici ve slově w. Pak pro každý následující řádek provádíme následující postup: Množina neterminálů v buňce je rovna takové množině neterminálů z CNF, ze kterých lze odvodit vždy dvojice neterminálů vzniklých z dvojic buněk "nejspodnější" aktuální buňky a na "úhlopříčce" vpravo "nejvýše" od aktuální buňky. Ve výsledku nám na "vrcholu schodišťové tabulky" vznikne jediná množina neterminálů T. Pokud se v ní nachází startovní neterminál, je slovo w přijato. Postup pro vyplňování všech políček v tabulce množinou neterminálů nejlépe ilustruje následující obrázek (Obrázek 3), kde demonstrujeme vyplnění políčka na souřadnici 4. sloupce a 4. řádku, zvýrazněného žlutým kolečkem. Sestrojíme dvojice neterminálu vždy z takových buněk (množin) neterminálů, které mají stejnou barvu (na obrázku modrá, fialová a zelená). Z těchto tří dvojic nám vznikají variace množit napsaných v elipsách příslušné barvy. Takto vzniklé dvojice otestujeme, zda jsou generovány nějakým neterminálem (v zadání) a pokud ano, zapíšeme jej jako výsledek do množiny neterminálů v tomto případě do buňky označené žlutým kroužkem. V tomto případě se jedná o neterminály B a A, neboť dvojice CA (z modré elipsy) je generována právě neterminálem B, dvojice BA (zelená elipsa) je pak generována neterminálem A. Zbývající dvojice neterminálů nejsou generovány žádným neterminálem a výpočet pro tuto aktuální buňku končí. Dvojice druhé (fialové) elipsy nemusíme ani testovat, zda jsou generovány nějakým neterminálem, neboť žádnou dvojici neobsahuje, pouze jeden neterminál, což odporuje CNF. Takto pokračujeme pro všechny buňky pod "hlavní diagonálou" (v ilustraci buňky s bílým pozadím) tabulky dokud nenarazíme na řádek, který už nelze dále takto redukovat (v našem případě buňka sedmého řádku a prvního sloupce. 5.3 Příklad Mějme následující gramatiku v CNF a na vstupu slovo acddbba Otestujme pomocí algoritmu CYK, zda je slovo přijato výše zmíněnou gramatikou. Stránka 7 z 10

1 2 3 4 5 6 7 7 6 5 4 3 2 1 a c d d b b a Tabulka 1: Tabulka před chodem algoritmu Obrázek 3 : Ilustrace konkrétního odvození zvýrazněné buňky Stránka 8 z 10

7 B,S,A 1 2 3 4 5 6 7 6 B B,S,A 5 ϕ B B,A 4 C ϕ B B,A 3 C ϕ ϕ B A,S 2 S ϕ C ϕ A A 1 S,A A C C S,B S,B S,A a c d d b b a Tabulka 2 : Vyplněná tabulka po skončení algoritmu Z konečné výsledné tabulky (Tabulka 2) vidíme, že poslední buňka, tedy v tomto případě na pozici prvního sloupce a sedmého řádku, obsahuje množinu neterminálů B,S,A. Protože obsahuje počáteční neterminál S, tedy podle této syntaktické analýzy lze vygenerovat předloženým jazykem slovo w. Formálně zapsáno:, tedy 5.4 Složitost Zejména z formálního zápisu je zřejmé, že algoritmus obsahuje, vzhledem k délce slova na vstupu, celkem třikrát cyklus procházení každého prvku, celý proces má tedy kubickou časovou složitost, vyjádřeno zápisem: Stránka 9 z 10

6 Literatura [1]Prof. RNDr. Jančar, Jan CSc.. Ostrava : VŠB Technická univerzita Ostrava, 2007. ISBN 978-80-248-1487-2. [2] Dynamické programování. Wikipedia, the free encyklopedia. [Online] [Citace: 15. Duben 2011.] http://cs.wikipedia.org/wiki/dynamick%c3%a9_programov%c3%a1n%c3%ad. [3]CYK algorithm. Wikipedia, the free encyklopedia. [Online] [Citace: 15. Duben 2011.] http://en.wikipedia.org/wiki/cyk_algorithm. [4]John Cocke - Wikipedia, the free encyclopedia. Wikipedia. [Online] [Citace: 15. Duben 2011.] http://en.wikipedia.org/wiki/john_cocke. [5]Tadao Kasami - Wikipedia, the free encyclopedia. Wikipedia, the free encyclopedia. [Online] [Citace: 15. Duben 2011.] http://en.wikipedia.org/wiki/tadao_kasami. [6]Algoritmus Cocke-Younger-Kasami. Wikipedia, free encyklopedia. [Online] [Citace: 15. Duben 2011.] http://cs.wikipedia.org/wiki/algoritmus_cocke-younger-kasami. [7]Barták, Roman. Předmět Automaty a gramatiky. [Online] MFF Praha, 2011. [Citace: 15. Duben 2011.] http://ktiml.mff.cuni.cz/~bartak. [8] SMR - Syntaktická analýza Cocke-Younger-Kasami. Katedra kybernetiky ZČU - Umělá inteligence. [Online] ZČU. [Citace: 15. Duben 2011.] http://www.kky.zcu.cz/cs/courses/smr/sem-cyk. Stránka 10 z 10