VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
|
|
- Marek Bureš
- před 6 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SYSTÉMY PARALELNÍCH GRAMATIK BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR JIŘÍ SKÁCEL BRNO 2014
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SYSTÉMY PARALELNÍCH GRAMATIK SYSTEMS OF PARALLEL GRAMMARS BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR JIŘÍ SKÁCEL Prof. RNDr. ALEXANDER MEDUNA, CSc. BRNO 2014
3 Abstrakt Tato práce definuje kooperující distribuované gramatické systémy založené na E0L systémech namísto bezkontextových gramatik. Zkoumá jejich generativní sílu především vzhledem k ET0L systémům. Připomíná hlavní závěry o CD GS, následně definuje upravené systémy a poskytuje důkazy o síle jednotlivých jejich derivačních módů. Většina módů se silou rovná ET0L systémům, s výjimkou ukončovacího módu, pro který je poskytnut důkaz o větší síle. Prezentováno je několik vysvětlených příkladů nových systémů. Abstract This article defines cooperating distributed grammar systems with E0L components instead of context-free grammars and discusses its generative power mainly in respect to ET0L systems. It recapitulates results about CD GS, then defines modified systems and shows that this combination has in most derivative modes equal strength to ET0L, except for terminating mode, which is shown to be more powerful. There are also explained examples of this new kind of systems. Klíčová slova CD GS, ET0L, Lindenmayerovy systémy, gramatické systémy, paralelní gramatiky Keywords CD GS, ET0L, Lindenmayer systems, grammar systems, parallel grammars Citace Jiří Skácel: Systémy paralelních systémů, bakalářská práce, Brno, FIT VUT v Brně, 2014
4 Systémy paralelních gramatik Prohlášení Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením profesora Alexandera Meduny. Uvedl jsem všechny literární prameny a publikace, ze kterých jsem čerpal. Jiří Skácel 20.května 2014 Poděkování Zde bych rád poděkoval vedoucímu mé bakalářské práce, profesoru Alexanderu Medunovi, za jeho náměty k přemýšlení, čas a vedení. Jiří Skácel, 2014 Tato práce vznikla jako školní dílo na Vysokém učení technickém v Brně, Fakultě informačních technologií. Práce je chráněna autorským zákonem a její užití bez udělení oprávnění autorem je nezákonné, s výjimkou zákonem definovaných případů.
5 Obsah Obsah Úvod Základní pojmy a definice CD gramatický systém Definice CD GS Shrnutí generativní síly Příklady CDE0L gramatický systém Definice CDE0L GS Derivační módy Generovaný jazyk Jazykové rodiny Příklady Generativní síly jednotlivých módů Neomezený derivační mód ET0L systémy Nejvíce k-krokové derivační módy Nejméně a právě k-krokové derivační módy Ekvivalence s jednokrokovými módy Ukončovací derivační mód Generativní síla ukončovacího derivačního módu Shrnutí generativní síly Demonstrační skript Textový formát systému Použití skriptu Režim hledání příkladů Režim redukce Režim konverze Principy skriptu Načtení systému z řetězce
6 5.3.2 Hledání řetězce jazyka daného systému Aplikace algoritmů Závěr...24 Literatura...25 Obsah CD
7 1 Úvod Formální jazyky představují matematický základ informačních technologií. Přináší širokou hierarchii nástrojů jako jsou gramatiky, automaty nebo různé systémy. Tato hierarchie je postavena na porovnávání síly těchto nástrojů, tedy schopnosti generovat formální jazyky se specifickými podmínkami. S tímto jde ruku v ruce i složitost těchto nástrojů a snadnost jejich použití. Používaným kompromisem jsou bezkontextové gramatiky. Z nich se později začaly vytvářet systémy konkrétně důležité pro tuto práci jsou E0L systémy [7] a kooperující distribuované gramatické systémy (CD GS) [1]. Myšlenkou za prvním z nich je zavedení paralelismu, který je zejména v přírodě všudypřítomný. Jako první byly zavedeny 0L systémy teoretickým biologem Aristidem Lindenmayerem, po němž jsou také tyto systémy pojmenované, pro modelování růstu řas a jiných jednoduchých mnohobuněčných organismů. Tyto Lindenmayerovy systémy využívají pouze bezkontextová pravidla a nerozlišují terminály a neterminály. Existují i Lindenmayerovy systémy využívající kontext, ale ty nás v této práci nebudou zajímat. Rozšíření 0L systémů zahrnují deterministické D0L systémy, E0L systémy se zavedením neterminálů a tabulkové T0L systémy, které rozdělují pravidla do skupin, přičemž v jednom kroku se používají pravidla pouze v rámci jedné skupiny. Spolu se svými kombinacemi tvoří tyto tří rozšíření nelineární hierarchii [7, s. 20]. V této práci vycházím z neterminálových E0L systémů a nové systémy porovnávám s tabulkovými neterminálovými ET0L systémy, které jsou z nich nejsilnější. Druhé systémy CD GS vznikly snahou o zachycení distribuce práce mezi více agentů a jejich spolupráce na společném řešení. Z agentů je vždy aktivní jeden, jenž vede další postup a využívá své znalosti pro změnu stavu. Výměna tohoto vedoucího je předem dána protokolem pro spolupráci, jež v literatuře obyčejně nedeterministicky vybírá dalšího agenta a zastavuje ho po určitém počtu kroků nebo po splnění určitých podmínek. Tyto systémy jsou zpravidla založené na bezkontextových gramatikách, jelikož systémy ostatních gramatik Chomského hierarchie nepřekračují svou sílu [1, s. 162]. Lindenmayerovy systémy i kooperující distribuované gramatické systémy jsou do velké míry už prozkoumány i porovnány navzájem [5]. Dosud ale nebylo řádně definováno jejich spojení, konkrétně kooperující distribuované gramatické systémy založené na E0L gramatikách. Právě toto jsem si vzal za cíl v této práci. Hlavní otázkou je, jak se změní síla CD systémů, pokud v každém kroku místo aplikace jednoho pravidla na nedeterministicky vybraný symbol, aplikujeme nějaké pravidlo na každý symbol z aktuálního řetězce. Ve druhé kapitole krátce shrnu definici a poznatky o CD GS spolu s několika příklady, zejména jako krátký úvod do problematiky, ze které vycházím. Ve třetí kapitole pak definuji nové systémy a rozeberu příklady. Ve čtvrté kapitole se věnuji zkoumání generativní síly. Uvádím závěry a jejich důkazy pro ekvivalence různých derivačních módů a omezení počtu gramatik. V poslední části kapitole se věnuji ukončovacímu módu, který je nejzajímavější, 3
8 protože jeho síla je větší než síla ostatních módů. V páté kapitole se věnuji implementaci představených algoritmů v demonstračním skriptu, který vytváří ekvivalentní systémy se zadaným a také zkouší získat příklady řetězců, které zadaný systém generuje. 1.1 Základní pojmy a definice V této práci předpokládám základní znalosti z teorie formálních jazyků na úrovni bezkontextových gramatik. Velmi dobrým úvodem do této problematiky je [9], ze které také přebírám notace. Znalosti Lindenmayerových systémů a CD systémů nejsou nezbytné, ale velmi doporučené. Zde stručně shrnu pojmy, které v této práci budu používat. Abeceda Σ je konečná neprázdná množina symbolů. Sekvence symbolů tvoří řetězec. Prázdný řetězec ϵ je řetězec, který neobsahuje žádný symbol. Nad abecedou Σ je ϵ řetězcem. Dále je řetězcem xy, kde x je řetězcem a y je znak v abecedě Σ. Konkatenací řetězců x a y je řetězec xy. Mocnina řetězce x, značená x n jako x n = xx n 1. je definována pro n=0 jako x 0 =ϵ, pro kladná n Množinu všech řetězců nad abecedou Σ značíme Σ. Množinu všech neprázdných řetězců pak Σ +. Jazykem nad abecedou Σ chápeme libovolnou podmnožinu Σ. 4
9 2 CD gramatický systém Kooperující distribuované gramatické systémy je možno chápat jako spojení několika bezkontextových gramatik komponent systému. Původní motivací pro jejich zavedení byl model řešení problémů pomocí tabule [1, s. 158]. Principem je spolupráce několika agentů (v případě CD GS gramatik), kteří vždy po jednom přistupují k tabuli, na které je počáteční problém, a podle svých možností pokračují v řešení problému na tabuli aplikováním svých znalostí. Po určitém počtu kroků se agent od tabule vzdálí a nabídne možnost pokračovat ostatním agentům. Protokol spolupráce určuje, kdy je možné se vyměnit, a může i určit, kdo má dále pokračovat. V CD GS se nedeterministicky vybírají gramatiky systému, které poté aplikují svá pravidla. Odstoupení, neboli přepnutí komponenty, je určeno módem, který je použit při generování. V literatuře se obvykle zavádí několik stálých módů, čehož se budu držet i já. Neterminály značí otevřené problémy, které musí být ještě řešeny. Aplikací pravidel se může jeden problém převést na jiný, který aktuální agent není schopen řešit, ale některý z ostatních spolupracujících agentů může mít znalosti o tomto problému. Toto je jediná forma komunikace mezi komponentami systému, tedy pomocí prostředí tabule. Terminály jsou pak chápany jako části konečného řešení, o kterém už žádný agent nemá pochybnosti. Tato kapitola je pouze krátkým úvodem do CD GS. Mnohé definice jsou obdobné jako u později zavedených CDE0L systémů. Abych se neopakoval a aby nově zavedené systémy byly definované na jednom místě, jsou zde uvedeny jen ty nejdůležitější definice. 2.1 Definice CD GS Kooperující distribuovaný gramatický systém stupně n: n 1 definujeme jako ( n+ 3 )-tici: Γ=( N, T, S, P 1,, P n ), kde N je abeceda neterminálů, T je abeceda terminálů a tyto abecedy jsou disjunktní N T =, S :S N je axiom, P i :1 i n je množina pravidel ve tvaru a x :a N, x (N T ) a nazývá se komponenta systému Γ. Dále se v literatuře definují derivační módy. Tyto módy určují kolik derivačních kroků je třeba udělat před přepnutím komponenty. Zavadí se podmínka na alespoň k kroků ( k ), právě k kroků ( =k ), nejvíce k kroků ( k ) a ukončovací mód ( t ), který umožňuje přepnutí pouze pokud už nelze dále použít stávající komponentu. Také se využívá mód bez omezení ( ). Korektní definice jsou uvedeny v kapitole
10 Jazyk generovaný systémem rozlišujeme podle módu. Řetězce takového jazyka jsou řetězce terminálů, které získáme postupným uplatňováním právě jednoho derivačního módu. Podrobnější definice je uvedena v kapitole Shrnutí generativní síly Generativní síla CD GS založených na bezkontextových gramatikách tvoří komplexní hierarchii. V rámci porovnání s nově zavedenými systémy nás budou zajímat hlavně tyto tři věty: 1. L (CF)=CD ( f ), pro f {,=1, 1} { k : k 1}, 2. L (CF)=CD 1 ( f ) CD 2 ( f ) CD r ( f ) CD ( f ) L(M ), pro r 3, f {=k, k :k 2}, 3. L (CF)=CD 1 (t )=CD 2 (t) CD 3 (t)=cd (t)=l (ET0L). Podle první věty žádný z módů obsahující možnost přepnout komponentu po jednom kroku nezvyšuje sílu původních gramatik. Není důvod zavádět rozdělení pravidel do komponent, pokud můžeme kdykoli vybrat libovolné pravidlo z libovolné komponenty. Druhá věta stanovuje postupující hierarchii pro vícekrokové módy v alespoň dvoukomponentních systémech. Třetí věta rozděluje systémy do dvou komponent, které nemají zvýšenou sílu, a na ostatní, které jsou rovné s ET0L systémy. Tento mód tedy může jednoduše simulovat paralelismus. 2.3 Příklady Pro názornost a hlubší pochopení zde uveďme dva příklady těchto klasických systémů i s odvozením jazyků, jež generují Jazyk a i b i c i První systém definujme jako Γ 1 =(N,T,S,P 1, P 2 ), kde N S, A, A, B, B }, T a, b,c}, P 1 S S, S AB, A A, B B }, Generované jazyky jsou: P 2 A a A b, B B c, }, P 3 A ϵ, B ϵ }. 6
11 L f (Γ 1 ) f {,=1, 1} { k : k 1} {a i b i c j :i, j 1}, L =2 (Γ 1 )=L 2 (Γ 1 )=L t (Γ 1 )a i b i c i :i 1}, L = k (Γ 1 ) k 3 =L k (Γ 1 ) k 3 =. Jako první prozkoumáme jednokrokové módy. Silou se neliší od bezkontextových gramatik, protože rozdělení na komponenty nehraje roli, pokud nemáme omezení jejích přepínání. Z počátečního znaku S tedy získáme řetězec AB, který pomocí opakovaného užití druhé a první komponenty můžeme změnit na a i A b i B c j. Pak už jen pomocí třetí komponenty smažeme neterminály a dostaneme výsledný řetězec a i b i c j. Zajímavějším jazykem je ten generovaný dvoukrokovými módy =2 a 2. V každé komponentě musíme použít dvě pravidla, proto v tomto případě musíme při použití pravidla pro generovaní a a b použít i pravidlo pro c. Získáme tedy jazyk a i b i c i. Pro více než dvoukrokové módy dostaneme prázdné jazyky. Kvůli tomu, že v generovaném řetězci je nejvýše po jednom neterminálu A a B a ve druhé komponentně jsou jen pravidla pro přepis těchto znaků, můžeme tuto komponentu použít nejvíce dvakrát po sobě, což je v rozporu s principem vícekrokových módů. Ukončovací mód díky rozdělení systému na tři komponenty funguje obdobně jako dvoukrokové módy. V rámci jednoho použití komponenty aplikujeme analogická pravidla na A a B a poté se derivace zastaví a dovolí přepnutí. Nutně tedy dostaneme jazyk a i b i c i Jazyk a i b 2i Druhý systém definujeme jako Γ 2 =( N,T, S, P 1,P 2, P 3 ), kde N S, A, A, B, B }, T a,b}, P 1 S AB, A A, B B }, Generované jazyky jsou: P 2 A a A, B B B }, L f (Γ 2 ) f {, =1, 1 } { k : k 1 } a i b j :i 0, j 1 }, L t (Γ 2 )a i b 2i :i 0}, L =k (Γ 2 ) k 2 =L k (Γ 2 ) k 2 =. P 3 A ϵ, B b }. Jednokrokové módy k řetězci AB zleva připisují a a nakonec mažou znak A, zprava pak připisují B, které pak přepisují na b. Výsledný jazyk je jednoduchý a i b j, přičemž počet b je nenulový. 7
12 Vícekrokové módy nás v tomto případě nezajímají, protože neprojdou ani přes první komponentu. Po aplikaci pravidla S AB, nemáme v této komponentě další pravidla, která bychom mohli použít, takže nemůžeme vygenerovat žádný řetězec. Ukončovací mód postupuje přes první a druhou komponentu, v nichž se po jedné aplikaci přidá jeden znak a a každý neterminál B se zdvojí. Po přepsání všech symbolů B se přepne komponenta na první a všechny neterminály s pruhem se zpátky odblokují, aby bylo možné znovu použít druhou komponentu pro generování delších řetězců. Pokud se použije třetí komponenta místo druhé, smažeme tím neterminály a získáme řetězec terminálů a tedy i jazyk a i b 2i. 8
13 3 CDE0L gramatický systém Hlavním cílem této práce je definovat a prozkoumat CD gramatické systémy založené na paralelních gramatikách, konkrétně E0L gramatikách. Ty samy používají bezkontextová pravidla, a tak se z hlediska definic neuskuteční příliš změn. Využijeme však konvenci z Lindenmayerových systémů ohledně definice nad celkovou abecedou, namísto rozdělení na abecedu terminálů a neterminálů. Získáme systémy, které v každém jednom kroku aplikují svá pravidla na všechny symboly aktuálního řetězce. Rozdělení systému na komponenty zaručuje větší kontrolu nad výběrem použitelných pravidel. Pokud se zaměříme na jednokrokové módy, můžeme vidět značné podobnosti s ET0L systémy, na které se při zkoumání generativní síly také zaměříme. 3.1 Definice CDE0L GS Definujeme kooperující distribuovaný gramatický systém stupně n : n 1 založený na E0L gramatikách jako ( n+3 )-tici: Γ=(V,T,w, P 1,..., P n ), kde V je celková abeceda, T :T V je abeceda terminálů, w : w V + je axiom, P i :1 i n je množina pravidel ve tvaru a x :a V, x V a nazývá se komponenta systému Γ. Značíme G i =(V, T, P i,w) pro 1 i n jako i -tou E0L gramatiku systému. 3.2 Derivační módy Definujeme derivační krok pro i -tou komponentu CDE0L systému jako: a 1 a 2...a n i x 1 x 2... x n, pokud pro všechna 1 j n platí a j x j P i. Sekvence derivačních kroků definujeme obdobně jako u jiných gramatik ([2, s. 15]). Dále definujeme módy podle původních systémů vždy pro i -tou gramatiku G i = (V,T,P i,w) : 1. ukončující derivaci jako x t i y právě tehdy, když x * y v gramatice G i a z( y z) pro z V *, 2. k -krokovou derivaci jako 9
14 x = k i y právě tehdy, když x k y v gramatice G i, 3. nejvíce k -krokovou derivaci jako x k i y právě tehdy, když x j y v gramatice G i pro všechna j k, 4. nejméně k -krokovou derivaci jako x k i y právě tehdy, když x j y v gramatice G i pro všechna j k. 3.3 Generovaný jazyk Množinou derivačních módů D = {, t } { k,=k, k :k 1} rozumíme množinu symbolů značících tyto derivace a množinou možných derivací gramatiky rozumíme F (G j,u, f ) = {v :u f j v }, kde 1 j n, f D, u V *. Jazyky generované gramatickým systémem Γ = (V,T,w, P 1,..., P n ) definujeme podle módu takto: L f (Γ) = {s T * : (v 0,v 1,...,v m ) (v i F (G ji,v i 1, f ),1 i m,1 j i n, f D,v 0 =w,v m =s,m 1)} 3.4 Jazykové rodiny Různé jazykové rodiny budeme značit podle derivačního módu a omezení stupně, tedy počtu gramatik: CDE0L x ( f ), kde: f : f D je derivační mód, x je n: n 1 pro stupeň nejvýše n, nebo pro neomezený stupeň. CDE0L (=) značí sjednocení všech jazykových rodin CDE0L (=k ) pro k 1. CDE0L ( ) značí sjednocení všech jazykových rodin CDE0L ( k ) pro k 1. 10
15 3.5 Příklady Ukažme si nyní tři příklady takovýchto systémů a odvoďme jazyky, které generují v jednotlivých módech Jazyk a i b i a i První systém definujeme jako Γ 1 =(V,T, S,P 1, P 2,P 3 ), kde V S, A, B,a,b}, T a, b }, P 1 S aabbaa, B bb, A aa, a a, b b }, P 2 B bb, A A, a a, b b }, Generované jazyky pro různé módy jsou: L f (Γ 1 ) f {,=1, 1 } { k : k 1 } a i b i+ j a i :i 1, j 0}, L = k (Γ 1 ) k >1 a ki b k(i + j) a ki :i 1, j 0 }, L k (Γ 1 ) k >1 a i b i a i :i k } {a i b i + j a i :i k, j k }, L t (Γ 1 )=. P 3 B ϵ, A ϵ, a a, b b }. Nejprve prozkoumáme neomezený mód *. První komponenta přidává v každém kroku jeden znak a zleva a zprava a uprostřed přidává jeden znak b. Tedy derivuje S 1 aabbaa i 1 1 a i Ab i Ba i A. Nyní můžeme přepnout na třetí komponentu, která pouze odstraní neterminály a můžeme přijmout řetězec a i b i a i. Jiná možnost je přejít na druhou komponentu, která podobně jako první rozšiřuje prostřední část o jeden znak b. Dojdeme tedy k derivaci a i Ab i Ba i A j 2 a i Ab i + j Ba i A. Po odstranění neterminálů třetí komponentou získáme řetězec a i b i + j a i. Výsledný jazyk získaný jednokrokovými módy je tedy {a i b i + j a i :i 1, j 0 }. Pro právě k -krokové módy musíme zůstat v dané komponentě právě k kroků. Místo jednoho znaku tak mezi přepnutím komponenty získáme právě k znaků. Výsledný jazyk tedy bude obsahovat pouze k -násobky mocnin znaků, {a ki b k (i+ j ) a ki :i 1, j 0}. S nejméně k -krokovými módy nemůžeme přepnout komponentu před dosažením k kroků. Zajistíme tak zvýšení omezení pro i a j. Musíme však rozlišit, jestli použijeme druhou 11
16 komponentu. Bez jejího využití získáme stejné mocniny znaků a a b, zatímco pokud druhou komponentu alespoň jednou využijeme, mocniny b budou alespoň o k vyšší. Získáme tedy jazyk {a i b i a i :i k } {a i b i+ j a i :i k, j k }. V ukončovacím módu se první komponenta nikdy nezastaví, takže výsledný jazyk je prázdný Jazyk (a i b) j c j Druhý systém definujeme jako Γ 2 =(V, T, S, P 1, P 2, P 3 ), kde V S,R,Q, A, B,a,b,c }, T a,b,c}, P 1 S BSc, S BRc, B B, c c }, Generované jazyky jsou: P 2 R R, R Q, B Aab, A Aa, a a, b b, c c }, L f (Γ 2 ) f {, =1, 1 } { k : k 1 } = L t (Γ 2 )(a i b) j c j :i, j 1 }, L =k (Γ 2 ) k>1 (a ki b) kj c kj :i, j 1 }, L k (Γ 2 ) k>1 (a i b) j c j :i, j k }. P 3 Q ϵ, A ϵ, a a, b b, c c }. Opět nejprve rozebereme neomezený mód. První komponenta generuje znaky B a c a v posledním kroku nutně musí přepsat S na R. Před prvním přepnutím tedy máme řetězec B j Rc j. Znak R vynucuje použití druhé komponenty, která zachovává znaky c, přepisuje B na Aa i b a nakonec přepíše R na Q. Před druhým přepnutím tedy máme řetězec (Aa i b) j Qc j. Poslední komponenta podobně jako v minulém příkladě pouze odstraňuje neterminály, aby mohl být řetězec přijat. Získáme tedy jazyk {(a i b) j c j :i, j 1}. Právě k -krokové módy opět pouze vyřadí některé mocniny znaků. Přepnutí na jinou komponentu je možné pouze po k krocích, pokud poslední krok přepsal S na R, resp. R Na Q. Získáme tedy podmnožinu předchozího jazyka {(a ki b) kj c kj :i, j 1 }. V nejméně k -krokových módech máme určenou dolní hranici počtu kroků, po kterých můžeme přepnout komponentu, takže se opět jen zvednou minimální mocniny znaků v řetězci. Generujeme tedy jazyk {(a i b) j c j :i, j k }. 12
17 Díky nutnosti projít sekvenci S, R a Q, je možné zastavit ukončovací mód vždy až po takovém přepisu. Do té doby je možné prodlužovat řetězce podle potřeby, takže tento mód generuje stejný jazyk jako ty jednokrokové Jazyk a 2i b j Třetí systém definujeme jako Γ 3 =(V, T, S, P 1,P 2, P 3, P 4 ), kde V S, A, B,B,C,a,b,c,c}, T a, b }, P 1 S AB, A CC, C A, C ac }, Generované jazyky jsou: P 2 B b B, B B, a a, b b, c c, c c }, L f (Γ 3 ) f {,=1, 1 } { k : k 1 } a 2i b j :i, j 1}, L = k (Γ 3 )= L k (Γ 3 )=, L t (Γ 3 )a 2i b j :i 1,2 i j 1}. P 3 B B, a a, b b, c c, c ϵ }, P 4 B ϵ, a a, b b }. Tento systém je zajímavý především svým ukončovacím módem. Nejprve ale neomezený mód. V něm se nejprve vygeneruje řetězec (ac) 2i B, potom se použitím druhé komponenty připíše jeden znak b a zároveň se libovolný počet c přepíše na c. Ve třetí komponentě se odblokuje symbol B, aby bylo možné připsat další znak b ve druhé komponentě. Také se smažou všechny znaky c. Takto se v tomto módu nakonec smažou všechna c a připíše se libovolný počet b. Po použití poslední komponenty pak dostaneme řetězec terminálů a 2i b j, který můžeme přijmout. Generovaný jazyk je pak {a 2i b j :i, j 1}. Vícekrokové módy v tomto systému kvůli třetí komponentě selhávají. V ní se totiž přepisuje B na B, pro které však nejsou obsažena žádná pravidla, takže se systém zastaví předčasně. Důsledkem toho, že nelze využít třetí komponentu, nemůžeme smazat neterminály c, takže nemůžeme získat žádný řetězec, jenž by se dal přijmout. Nyní tedy ukončovací mód. Tady fungují symboly c jako určitá forma počítadla, protože při každém využití druhé komponenty se alespoň jedno c musí přepsat na c, jinak se ukončovací mód nezastaví. Všechna c se smažou nejméně za jedno použití a nejvíce za počet c, tedy 2 i, použití druhé komponenty. Každé toto využití vygeneruje jedno b, čímž získáme nakonec řetězec se shora omezeným počtem b. Výsledný jazyk je {a 2i b j :i 1,2 i j 1}. 13
18 4 Generativní síly jednotlivých módů 4.1 Neomezený derivační mód Každý CDE0L gramatický systém lze v módu převést na ekvivalentní gramatický systém, který obsahuje pouze dvě komponenty. Mějme původní systém Δ = (W,T,w, R 1,..., R n ). Ekvivalentní dvoukomponentní systém pak definujeme jako: Γ = (V,T,w, P 1, P 2 ), kde: V =W { a,i : a W,1 i n} je rozšířená abeceda, P 1 a a,1 :a W } { a,i a,i+1 : a W,1 i<n} je množina pravidel pro výběr simulované gramatiky a P 2 a,i x :a W,1 i n, a x R i } je množina pravidel pro simulaci vybrané gramatiky. Mějme řetězec původního systému x=a 1 a 2...a m, kde a i W. Druhá komponenta neobsahuje pravidla pro nezměněné symboly, tudíž musíme použít první komponentu. Po k krocích v první komponentě nutně získáme řetězec y= a 1, k a 2, k a m, k. Takto jsme označili, kterou gramatiku z původního systému budeme simulovat ve druhé komponentě ET0L systémy Pro dokázání ekvivalence mezi ET0L systémy a CDE0L systémy využijeme možnosti převodu obou systémů na jejich dvoutabulkové resp. dvoukomponentní ekvivalenty. Mějme ET0L systém H = (W,T, R 1, R 2,... R n,w) zavedený podle [3, s. 21]. Z něho vytvoříme dvoutabulkový systém G = (V,T,P 1, P 2,w), kde: V =W { a,i : a W,1 i n} je rozšířená abeceda, P 1 a a,1 :a W } { a,i a,i+1 : a W,1 i<n} je množina pravidel pro výběr tabulky a P 2 a,i x: a W,1 i n,a x R i } je množina pravidel pro simulaci vybrané tabulky. Z tohoto systému vytvoříme dvoukomponentní CDE0L systém se stejnými množinami Γ = (V,T,w, P 1, P 2 ). ET0L systémy uplatňují derivační pravidla z jedné tabulky na všechny symboly řetězce právě jednou za derivační krok a tabulku vybírají nedeterministicky. CDE0L gramatické 14
19 systémy také vybírají následnou komponentu nedeterministicky a v módu uplatňují libovolný počet kroků z vybrané komponenty, tedy i právě jeden krok. V rámci jednoho kroku také uplatňují derivační pravidla právě jednou na všechny symboly v daném řetězci. Poněvadž mají ET0L systém G a CDE0L systém Γ stejné prvky i stejný postup derivací, dokázali jsme, že jazykové rodiny L (ET0L) a CDE0L ( ) jsou ekvivalentní. 4.2 Nejvíce k-krokové derivační módy Tyto módy, stejně jako mód, obsahují vždy možnost derivace s jedním krokem. Derivace s větším počtem kroků pouze zabraňují přepnutí komponenty, tudíž derivace s jedním krokem je schopna vygenerovat všechny možné řetězce a další derivace generují jen podmnožinu z tohoto jazyka. Proto módy, které obsahují jednokrokovou derivaci tedy módy, = 1, 1 a k pro k 1 jsou navzájem ekvivalentní. 4.3 Nejméně a právě k-krokové derivační módy Pro každý derivační mód se zadaným nejkratším krokem větším než jedna lze sestrojit ekvivalentní dvoukomponentní systém. Nechť Δ = (W,T,w,R 1, R 2,..., R n ) je původní systém, pak: Γ = (V,T,w, P 1, P 2 ), je ekvivalentní dvoukomponentní systém ve stejném módu, kde: V =W { a, i, j : a W,1 i n, 0 j<k } { a,i :a W,1 i n }, P 1 a a,1, k 1 :a W } { a,i, j a,i, j 1 :a W,1 i n,1 j<k } { a,i,0 a,i+1,k 1 : a W,1 i<n}, P 2 a,i, 0 x 1, i x 2,i... x d,i :a W, 1 i n, a x 1 x 2... x d R i } { a,i x 1, i x 2,i... x d, i :a W, 1 i n, a x 1 x2... x d R i } { a,i x :a W, 1 i n, a x R i }. První komponenta zajišťuje vybrání simulované komponenty z původního systému s vložením čekacích symbolů pro splnění nejkratšího kroku. První část pravidel zakóduje původní symbol a nastaví zpoždění. Druhá část pravidel snižuje zpoždění do vypršení, po kterém je možné přepnout komponentu. Jiné symboly než s vypršeným zpožděním nemají v druhé komponentě pravidla. Třetí část pravidel zajišťuje vybrání další původní komponenty a zároveň znovunastavení zpoždění. 15
20 Druhá komponenta obsahuje simulační smyčku ve druhé části pravidel, jež umožňuje použít pravidla z vybrané komponenty bez dalších omezení. Před ukončením simulace je použito pravidlo ze třetí části, které zajistí původní symboly. První část simuluje jeden krok a zároveň maže počítadlo zpoždění. Toto je důležité pro jedinečnost symbolů. Pokud by se použila pravidla z druhé a třetí části v jednom kroku, obsahoval by řetězec původní symboly i symboly s výběrem komponenty. Protože v první gramatice neexistují pravidla pro tyto jedinečné symboly a ve druhé gramatice neexistují pravidla pro původní symboly, nebylo by možné pokračovat ani přijmout řetězec Ekvivalence s jednokrokovými módy Vícekrokové derivační módy umožňují simulovat jednokrokové módy a to vložením čekacích symbolů do druhé komponenty. Změníme tedy druhou komponentu na: P 2 a,i, j a,i, j+1 :a W,1 i n,0 j<k 1 } { a,i, k 1 x :a W,1 i n, a x R i }, takto se po k krocích odsimuluje právě jeden krok v původním systému. Jednokrokové módy dovolují simulovat vícekrokové módy, pokud budeme počítat čísla kroků v rámci symbolů. Definujeme tedy systém Γ=(V,T, w,p 1, P 2 ), který v jednokrokovém módu simuluje původní systém Δ = (W,T, w, R 1, R 2,..., R n ) : V =W { a, i, j : a W,1 i n, 0 j<k } { a,i :a W,1 i n }, P 1 a a,1, 0 :a W } { a,i, 0 a,i+1,0 :a W, 1 i<n }, P 2 a,i, j x 1,i, j+1... x d,i, j+1 :a W,1 i n,0 j<k 1, a x 1... x d R i } { a,i,k 1 x :a W,1 i n,a x R i } { a,i,k 1 x 1,i x 2,i... x d,i :a W,1 i n, a x 1 x 2... x d R i } { a,i x 1,i x 2,i... x d,i :a W, 1 i n,a x 1 x 2... x d R i } { a,i x :a W,1 i n,a x R i }. První komponenta pracuje pouze s původními symboly a symboly s nulovým počítadlem. Proto pokud se využije druhá komponenta, musí se používat až do doby, než vygeneruje řetězec z původních symbolů. Druhá komponenta se skládá z velkého množství pravidel. První část tvoří simulace s počítáním, kolik kroků už proběhlo. Po k 1 krocích se použije druhá část pravidel, která vygeneruje přijímatelný původní řetězec, nebo třetí část pravidel, která zajistí přepis na unikátní formu, ve které čtvrtá část pravidel může bez horního omezení počtu kroků dál simulovat. Pátá část pravidel pak už slouží k ukončení simulace a vytvoření řetězce původních symbolů. Opět pokud se v řetězci objeví původní symboly a některé jiné, nelze využít ani jednu komponentu. 16
21 Z tohoto tedy vyplývá, že rodiny jazyků CDE0L ( ) a CDE0L (=) jsou stejné jako rodina CDE0L ( ) a tedy i L (ET0L). 4.4 Ukončovací derivační mód Ukončovací derivační mód CDE0L systému s neomezeným počtem komponent lze převést na ekvivalentní tříkomponentní systém. Protože v tomto módu lze přepnout komponentu pouze, když už nelze aplikovat další pravidla, je nutné rozdělit výběrovou komponentu dvoukomponentního systému z výše uvedeného algoritmu na dvě samostatné komponenty, které zajistí, že se systém vždy po jednom derivačním kroku zastaví. Toho lze dosáhnout například takto: Nechť Δ = (W,T,w,R 1, R 2,..., R n ) je původní systém, pak ekvivalentní tříkomponentní systém v ukončovacím módu definujeme jako: Γ = (V,T,w, P 1, P 2, P 3 ), kde: V =W { a :a W } { a,i :a W,1 i n } { a,i :a W,1 i n }, P 1 a a,1 :a W } { a,i a,i+1 : a W,1 i<n}, P 2 a,i a,i :a W,1 i n} { a,i a : a W,1 i n}, P 3 a,i x 1,i x 2,i... x d,i : a W, 1 i n,a x 1 x 2... x d R i } { a a: a W }. Mějme řetězec původního systému x=a 1 a 2...a m, kde a i W. Jediná použitelná komponenta je první, která se zastaví po jednom kroku na řetězci se symboly s pruhy a jedničkou. Využitím první poloviny pravidel druhé komponenty můžeme smazat pruh a znovu použít první komponentu pro získání symbolů s pruhem a dalším číslem. Pro simulaci samotné gramatiky použijeme třetí komponentu. Ta se po odsimulování původní gramatiky zastaví na řetězci y= a 1, k a 2, k a m, k. Dále se použije druhá komponenta pro odstranění číslování a třetí komponenta pro odstranění pruhu. Druhá komponenta odstraňuje buď pouze pruh, nebo pouze číslo. Pokud by se odstranilo částečně jedno i druhé, nedala by se použít první komponenta, protože nemá pravidla pro pruhové symboly, ani třetí komponenta, která nemá pravidla pro bezpruhové symboly. 17
22 4.4.1 Generativní síla ukončovacího derivačního módu Ukončovací mód lze využít pro simulaci jednokrokových módů a tedy i ET0L systémů: Mějme původní systém Δ = (W,T,w, R 1,R 2,..., R n ) v jednokrokovém módu, pak definujeme ekvivalentní systém v ukončovacím módu Γ = (V,T,w, P 1, P 2, P 3 ) : V =W { a,i : a W,1 i n} { a,i :a W,1 i n}, P 1 a a,1 :a W } { a,i a,i+1 : a W,1 i<n}, P 2 a,i a,i :a W,1 i n}, P 3 a,i x :a W,1 i n,a x R i }. První komponenta opět postupně vybírá původní komponentu a blokuje symboly. Druhá komponenta odblokuje symboly pro další použití první komponenty. Třetí komponenta simuluje právě jeden krok podle původního systému. Nyní si vezměme jazyk, který nelze generovat ET0L systémem, a vytvořme systém, který tento jazyk generuje. Příkladem takového jazyka je {(ab n ) m : m n 1}, který je podle [3, s. 23] kontextový jazyk, který nelze generovat ET0L systémem. Mějme systém Γ = (V,T,S, P 1, P 2, P 3, P 4 ) : V S,F, A, B,B,a,b,c,c }, T a, b }, P 1 P 2 S F, F ϵ, S ABSc, B b B, c c, c c, B B, c ϵ, A A b b, }, A A }, P 3 c c, c c, B B, B B, b b, A A }, P 4 c ϵ, B ϵ, b b, A a }. První komponenta generuje ze symbolu S řetězec (AB) m Sc m a poté (AB) m Fc m. Jediná další použitelná komponenta je druhá, která generuje (Ab B) m c m. Další komponenta je třetí, která generuje (AbB) m c m i c i, kde 1 i m. Protože pro i=0 se komponenta nezastaví, musí být v ukončovacím módu provedena alespoň jedna změna. Tato metoda je umožněna právě až CDE0L systémy, protože ukončovací mód se zde zastaví, už když nelze použít pravidlo pro alespoň jeden symbol, na rozdíl od CD systémů, kde se zastaví až když nelze použít pravidlo na žádný symbol. Následně se opakuje použití druhé a třetí komponenty dokud se nevyčerpají symboly c, tedy nanejvýš m -krát. Získáme řetězec (Ab n B) m c i, kde 18
23 1 n m. Poslední krok využije čtvrtou komponentu a odstraní všechny neterminály. Získáme (ab n ) m, kde m n 1, tedy žádaný jazyk. Tímto jsme dokázali, že generativní síla CDE0L systémů v ukončovacím módu je větší než síla ET0L systémů, tedy L (ET0L) CDE0L 3 (t)=cde0l (t). 4.5 Shrnutí generativní síly Pokud shrneme dosažené závěry do vět podobně jako v kapitole 2.2, získáme: 1. L (E0L)=CDE0L 1 ( f ) CDE0L 2 ( f )=CDE0L ( f )= L(ET0L), pro f { } {=k, k, k :k 1 } a 2. L (E0L) CDE0L 1 (t) CDE0L 2 (t) CDE0L 3 (t)=cde0l (t) L(ET0L). Jak je vidět, většina hierarchie kolabuje do ekvivalence buď s E0L systémy, nebo ET0L systémy. Nejzajímavější výsledek je síla ukončovacího módu, protože převyšuje sílu komponentních E0L systémů i ukončovacího módu CD systémů. 19
24 5 Demonstrační skript Pro názornou demonstraci CDE0L systémů a použitých algoritmů jsem vytvořil skript v jazyce Python 3.3, který implementuje převody na dvou a tříkomponentní systémy. Dále simulace jednokrokových módů vícekrokovými a naopak a simulace jednokrokových módů ukončujícím módem. Navíc také implementuje hledání příkladů řetězců jazyka takového systému v daném módu. 5.1 Textový formát systému Pro vstup a výstup je dána pevná forma. Mezi kterýmikoli prvky může být libovolný počet bílých znaků. Výstup však dodržuje klasické typografické zásady použití mezer za čárkami a u závorek. Je použito odsazení dvou mezer pro jednu úroveň zanoření. Celý systém je uzavřen v kulatých závorkách. Axiom a jednotlivé množiny abecedy a pravidla jsou od sebe odděleny čárkou, za poslední množinou pravidel však čárka být nesmí. Prvky množin jsou uzavřeny ve složených závorkách a odděleny čárkou, která může být i za posledním prvkem. Symboly abecedy stejně jako axiom musí mít pouze jedno písmeno nebo řetězec ohraničený lomenými závorkami (symboly menší < a větší > ). Případně je možné přidat apostrof ', který nahrazuje pruh v použitých algoritmech. Znaky v lomených závorkách jsou využívány pouze jako výstup z algoritmů a číst je lze jen v režimu vypisování příkladů. Pravidla jsou ve tvaru a > x 1 x 2...x n. Mezi členy pravé strany pravidla se nesmí vyskytovat žádný bílý znak. V případě prázdné pravé strany ji lze vynechat nebo použít znak ϵ(u+03f5). Ve výstupním formátování je každá položka systému na jednom řádku, kromě komponent, pro které platí, že jeden řádek odpovídá jednomu pravidlu. 5.2 Použití skriptu Skript pracuje se standardním vstupem a výstupem, což lze změnit pomocí parametrů input a output. Ze vstupu vždy načte zadaný systém a zpracuje ho. Na výstup posílá podle módu přečtený systém, upravený systém nebo příklady řetězců. Jednotlivé módy se volí pomocí parametrů, jak lze vidět v tabulce 1. 20
25 Dlouhý parametr Krátký parametr Význam --print -p vytisknutí přečteného systému --examples -e hledání příkladů --reduce -r vytvoření dvou nebo tříkomponentního systému --convert -c vytvoření systému simulující jiný mód Tabulka 1: Parametry pro módy skriptu Režim hledání příkladů Pro hledání příkladů je nutné zadat derivační mód, který chceme zkoušet. To se provádí parametrem mode po kterém následuje označení, t, <= k, = k nebo >= k, kde k je konkrétní číslo. V tomto módu se postupně hledají řetězce, které lze přijmout zadaným systémem. Jelikož není zaručeno, že vůbec takový řetězec existuje, je k dispozici parametr t, za kterým následuje kolik sekund má skript běžet od posledního úspěšného nalezení řetězce. Dále lze nastavit, kolik příkladů se má hledat, a to pomocí parametru n. Množství vypisovaných informací o řetězci určuje přepínač full. Bez této volby se vypisují jen přijaté řetězce, každý na jeden řádek. Naopak při zapnutí se na každý řádek vypisuje série derivací, které vedly až k tomuto řetězci Režim redukce Pro jedno i vícekrokové módy vytváří režim redukce dvoukomponentní systém, který generuje stejný jazyk. Pro ukončovací mód je generován tříkomponentní systém. Jediným povinným parametrem je mode, kterým se nastavuje, ze kterého módu se má tvořit nový systém Režim konverze Skript podporuje tři druhy konverzí, tedy vytvoření nového systému v zadaném módu, který generuje stejný jazyk jako zadaný systém v jiném módu. Lze konvertovat systémy v jednokrokovém módu na systémy v ukončovacím nebo vícekrokovém módu nebo vícekrokové na jednokrokové. Jiné konverze, třebaže teoreticky možné, nejsou povoleny. Pro zadání módu vstupního systému, tedy simulovaného, se využívá parametr in a pro mód výstupního, tedy vygenerovaného, systému slouží parametr out. 21
26 5.3 Principy skriptu Nejdůležitější částí skriptu je soubor CDE0L_class.py, ve kterém je definována třída, která implementuje požadované metody, tedy načítání a ukládání z a do řetězce, konverze, redukce a hledání řetězců. Symboly jsou vnitřně reprezentovány jako řetězce. Abecedy jsou množinami řetězců a pravidla dvojicemi symbolu a n-tice symbolů. Druhý soubor CDE0L_demo.py pouze zpracovává argumenty a komunikuje s objektem třídy CDE0L Načtení systému z řetězce Pro načtení systému z řetězce je použito pouze regulárních výrazů. V první fázi se nahradí všechny bílé znaky právě jednou mezerou. Ve druhé fázi se řetězec rozdělí na jednotlivé komponenty, tedy množiny a axiom. V těchto komponentách se dále rozpoznávají oddělovače a symboly. Na závěr se kontroluje, zda axiom a všechny symboly v abecedě terminálů a v pravidlech byly zadány v celkové abecedě Hledání řetězce jazyka daného systému Hledání řetězce využívá algoritmus hledání do šířky, avšak místo normální fronty, do které se ukládají rozgenerované stavy, zavádí prioritní frontu, ve které je zavedeno řazení podle délky aktuálního řetězce kombinované s počtem již proběhlých derivací. Tímto jsou upřednostňovány kratší řetězce a pokud systém neobsahuje epsilon pravidla, algoritmus nalézá řetězce seřazeně podle délky. V každém kroku se podle omezení buď vybere nová komponenta, nebo zůstane stávající a vygenerují se všechny možné kombinace použitelných pravidel na všechny symboly. Poté se každá kombinace testuje, jestli už v dané sekvenci derivací nebyla přítomna, čímž se vyloučí sekvence se smyčkou. Po vytažení z fronty se řetězec testuje a pokud splňuje podmínky, je vrácen z funkce. Takový řetězec musí být pouze z terminálů, dále musí být v kroku, kdy je možné přepnout komponentu, a také musí být unikátní vzhledem k již vráceným řetězcům. 22
27 (1) Nastavení počítadla kroků podle módu (2) Dokud nebylo posláno N příkladů: (3)...Zkontrolování času od posledního nalezení řetězce (4)...Vyzvednutí řetězce ze počátku fronty (5)...Pokud je řetězec z terminálů, je unikátní a je správný krok: (6)...Odeslání řetězce (7)...Přičtení počítadla kroku (8)...Omezení komponent k použití podle kroku (9)...Pro každou komponentu: (10)...Vygenerování všech možných kombinací uplatnění pravidel z komponenty na daný řetězec (11)...Zapsání vygenerovaných řetězců do fronty s prioritou délka(historie) + délka(řetězce) Aplikace algoritmů Algoritmus 1: Hledání řetězce V jazyce Python je zápis matematických konstrukcí do značné míry přímočarý. Jednotlivé algoritmy tak pouze vytváří odpovídající rozšířené abecedy a nové množiny pravidel, z nichž se pak sestaví a vrátí nový systém. Pro symboly s pruhem je využit apostrof za daným symbolem a složené symboly z algoritmů jsou zapsány v lomených závorkách. 23
28 6 Závěr V této práci jsem definoval kombinaci E0L a CD gramatických systémů. Ukázal jsem jejich vlastnosti na příkladech a dále se zabýval generativní silou hlavních módů používaných v literatuře, tedy neomezeným a ukončovacím módem a dále nejméně, právě a nejvíce k - krokovými módy. Ukázal jsem algoritmy pro redukci počtu gramatik na dvě, resp. na tři pro ukončovací mód pomocí číslování pravidel podle komponenty a postupný výběr simulované gramatiky. Další oblastí byly algoritmy pro simulaci vícekrokových módů jednokrokovými a naopak pomocí počítání kroků. Také jsem uvedl důkaz jejich ekvivalence s ET0L systémy. Na závěr jsem se věnoval ukončovacímu módu a jeho simulování jednokrokových módů. Hlavním závěrem je pak důkaz, že ukončovací mód má větší generativní sílu než ET0L systémy a tedy i než ostatní módy. Toho jsem docílil prezentováním systému, který generuje jazyk (ab n ) m, kde m n 1. Tento jazyk podle literatury nelze generovat ET0L systémem. Dané algoritmy jsou pak implementované v rámci demonstračního skriptu v jazyce Python. Skript čte zadaný systém v textové formě a vypisuje systémy po aplikaci vybraných algoritmů. Také je možné pokusit se vypsat příklady řetězců z takového systému. Pro další práci je otevřena otázka síly ukončovacího módu z hlediska kontextových gramatik. Tato práce dokázala, že přesahuje ET0L systémy, ale v rámci hledání tohoto důkazu i jsem zkoumal např. kontextový jazyk a 22, který možná nelze generovat ani v ukončovacím módu. Hlavním důvodem pro tuto hypotézu je způsob generování jazyka (ab n ) m v kapitole Ukončovací mód vyžaduje přepsání alespoň jednoho c využívaného jako počítadlo. Nedokáže však vynutit právě jednu změnu, takže symboly c nemohou být použité jako počítadlo jedna k jedné, ale pouze jako horní omezení. Je však možné, že existuje jiná struktura komponent, která by toto umožňovala. Další otevřenou otázkou je síla jedno a dvoukomponentních systémů v ukončovacím módu. Dá se předpokládat, že jednokomponentní systém je stejně silný jako E0L systém, ze kterého je tvořen, otázkou však je kam zařadit dvoukomponentní systém. Podle CD systémů se dá předpokládat, že by měl být stejně silný jako jednokomponentní. Jinou možností je pak zkoumání jiných módů, např. kombinací stávajících jako je definováno v [6]. Nebo zavést úplně nový mód, který by využíval vlastností E0L gramatik, ze kterých je systém složen. Asi poslední, ale nikoli nejméně zajímavou možností je zavést podobně jako u CD systémů jejich hybridní verze. Ty se liší rozdílným přístupem k módům. Zatímco u normálních systémů je jeden mód určen pro generování celého jazyka, hybridní verze vážou mód na komponentu. 24
29 Literatura [1] DASSOW, Jürgen, Gheorghe PĂUN a Grzegorz ROZENBERG. Grammar Systems. In: ROZENBERG, Grzegorz a Arto SALOMAA, eds. Handbook of Formal Languages. Berlin: Springer, 1997, sv. 2, s , ISBN [2] MEDUNA, Alexander a Petr ZEMEK. Regulated Grammars and Their Transformations. Brno, 2010, ISBN [3] MASOPUST, Tomáš, Alexander MEDUNA a Jiří TECHET. Lindenmayer Systems[online]. Brno, 2007[cit ]. Dostupné z: lsystemspres.pdf. [4] MASOPUST, Tomáš, Alexander MEDUNA a Jiří TECHET. Cooperating Distributed Grammar Systems[online]. Brno, 2007[cit ]. Dostupné z: cdgspres.pdf. [5] BORDIHN, Henning, Erzsébet CSUHAJ-VARJÚ a Jürgen DASSOW. CD Grammar Systems Versus L Systems. In: PĂUN Gheorghe, Arto SALOMAA, eds. Grammatical Models of Multi Agent Systems. Amsterdam: Gordon & Breach, 1999, s , ISBN [6] FERNAU, H., M. Holzer a R. Freund. Hybrid modes in cooperating distributed grammar systems: internal versus external hybridization. Theoretical Computer Science. Elsevier, květen 2001, 259(1-2), [7] MAURER, H. A., A. SALOMAA, D. WOOD. ET0L forms. Journal of Computer and System Sciences. Elsevier, červen 1978, 16(3), [8] EHRENFEUCHT, A. a G. ROZENBERG. On the Structure of derivation in Deterministic ET0L Systems. Journal of Computer and System Sciences. Elsevier, prosinec 1978, 17(3), [9] MEDUNA, Alexander. Automata and Languages: Theory and Applications. London: Springer, 2000, ISBN
30 Obsah CD Přiložené CD obsahuje: písemnou zprávu ve formátu PDF, zdrojový tvar písemné zprávy ve formátu ODT, zdrojové texty demonstračního skriptu a manuál, ukázkové vstupní soubory. 26
Formá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
Automaty 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é
doplně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
AUTOMATY 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ě
Substituce a morfismy jednoduše
Substituce a morfismy jednoduše Petr Zemek 31. července 2010 Abstrakt Tento text si dává za cíl srozumitelně a formou příkladů osvětlit problematiku substitucí a morfismů v rozsahu předmětu Teoretická
Vý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ý
Teoretická 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
Konstrukce 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
Jednoznač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.
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS GRAMATICKÉ SYSTÉMY
EKO-KOLONIE. Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě 24.
EKO-KOLONIE OBHAJOBA DISERTAČNÍ PRÁCE RNDr. Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 24. dubna 2008 Obsah 1 Eko-kolonie
2 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ě
Vztah 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é
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
Regulá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
Turingovy 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,
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:
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...
PŘEVOD GRAMATIK DO NORMÁLNÍCH FOREM
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS PŘEVOD GRAMATIK
Bezkontextové 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
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 Σ
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á
Fakulta 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
Bezkontextové 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
Vysoké učení technické v Brně Fakulta informačních technologií. Gramatiky nad volnými grupami Petr Blatný
Vysoké učení technické v Brně Fakulta informačních technologií Gramatiky nad volnými grupami 2005 Petr Blatný Abstrakt Tento dokument zavádí pojmy bezkontextové gramatiky nad volnou grupou a E0L gramatiky
Formá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
Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému
BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 2/22 Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 4/22 Automaty a gramatiky(bi-aag)
1 Linearní prostory nad komplexními čísly
1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)
Minimalizace 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
Automaty a gramatiky
Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Co bylo minule Úvod do formálních gramatik produkční systémy generativní gramatika G=(V N,V T,,P) G =
Množ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,
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA
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
10 Přednáška ze
10 Přednáška ze 17. 12. 2003 Věta: G = (V, E) lze nakreslit jedním uzavřeným tahem G je souvislý a má všechny stupně sudé. Důkaz G je souvislý. Necht v je libovolný vrchol v G. A mějme uzavřený eurelovský
Formá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)
Vektory 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
Vztah 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
Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13
Postův korespondenční problém Meze rozhodnutelnosti 2 p.1/13 Postův korespondenční problém Definice 10.1 Postův systém nad abecedou Σ je dán neprázdným seznamem S dvojic neprázdných řetězců nadσ, S = (α
Čí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:
1) Syntaktická analýza shora a zdola, derivační strom, kanonická derivace ezkontextová gramatika gramatika typu 2 Nechť G = je gramatika typu 1. Řekneme, že je gramatikou typu 2, platí-li: y
Univerzální Turingův stroj a Nedeterministický Turingův stroj
27 Kapitola 4 Univerzální Turingův stroj a Nedeterministický Turingův stroj 4.1 Nedeterministický TS Obdobně jako u konečných automatů zavedeme nedeterminismus. Definice 14. Nedeterministický Turingův
Zá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
Syntaxí ří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
Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague
1 / 23 Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 2 / 23 biologové často potřebují najít často se opakující sekvence DNA tyto sekvence bývají relativně krátké,
5 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
1) Sekvenční a paralelní gramatiky
A. Kapitoly z teorie formálních jazyků a automatů c Milan Schwarz (006) ) Sekvenční a paralelní gramatiky Derivace v gramatikách: Sekvenční postup sekvenční gramatiky (např. gramatiky v Chomského hierarchii)
Z. 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
Automaty a gramatiky. Uzávěrové vlastnosti v kostce R J BKJ DBKJ. Roman Barták, KTIML. Kvocienty s regulárním jazykem
11 Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Uzávěrové vlastnosti v kostce Sjednocení Průnik Průnik s RJ Doplněk Substituce/ homomorfismus Inverzní
Vlastnosti 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
BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS MASTER S THESIS AUTHOR
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INTELIGENTNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS SYSTÉMY FORMÁLNÍCH
Pojem 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,
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.
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.0141 Báze vektorových prostorů, transformace souřadnic Michal Botur Přednáška
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.
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
AUTOMATY 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
Operace s maticemi
Operace s maticemi Seminář druhý 17.10. 2018 Obsah 1 Operace s maticemi 2 Hodnost matice 3 Regulární matice 4 Inverzní matice Matice Definice (Matice). Reálná matice typu m n je obdélníkové schema A =
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Lineá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,
Syntaktická analýza založená na multigenerativních systémech Závěrečná práce z předmětu TJD. Jakub Martiško
Syntaktická analýza založená na multigenerativních systémech Závěrečná práce z předmětu TJD Jakub Martiško 29. ledna 2016 Obsah 1 Úvod 2 2 Definice a pojmy 4 2.1 Syntaktická analýza...............................
Množiny. množinové operace jsou mírně odlišné od
Množiny Množina se dá chápat jako soubor prvků. ( Např. lidé na planetě zemi tvoří jednu velkou množinu.) Každá množina tedy obsahuje určitý počet prvků, který může být konečný (lze spočítat) nebo nekonečný
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují
Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),
Funkce. Definiční obor a obor hodnot
Funkce Definiční obor a obor hodnot Opakování definice funkce Funkce je předpis, který každému číslu z definičního oboru, který je podmnožinou množiny všech reálných čísel R, přiřazuje právě jedno reálné
Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.
Logika 2. Výroková logika 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, Logika:
Hledání v textu algoritmem Boyer Moore
Zápočtová práce z Algoritmů a Datových Struktur II (NTIN061) Hledání v textu algoritmem Boyer Moore David Pěgřímek http://davpe.net Algoritmus Boyer Moore[1] slouží k vyhledání vzoru V v zadaném textu
zejména Dijkstrův algoritmus pro hledání minimální cesty a hladový algoritmus pro hledání minimální kostry.
Kapitola Ohodnocené grafy V praktických aplikacích teorie grafů zpravidla graf slouží jako nástroj k popisu nějaké struktury. Jednotlivé prvky této struktury mají často přiřazeny nějaké hodnoty (může jít
Fakulta elektrotechnická
České vysoké učení technické v Praze Fakulta elektrotechnická DIPLOMOVÁ PRÁCE Název diplomové práce Praha, 2002 Autor: Jirka Roubal Prohlášení Prohlašuji, že jsem svou diplomovou (bakalářskou) práci vypracoval
Funkce, podmíněný příkaz if-else, příkaz cyklu for
Funkce, podmíněný příkaz if-else, příkaz cyklu for Definice funkce Funkce je pojmenovaná část programu, kterou lze dále zavolat v jiné části programu. V Pythonu je definována klíčovým slovem def. Za tímto
Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30
Počítání modulo polynom 3. přednáška z algebraického kódování Alena Gollová, TIK Počítání modulo polynom 1/30 Obsah 1 Polynomy nad Zp Okruh Zp[x] a věta o dělení se zbytkem 2 Kongruence modulo polynom,
Bezkontextové gramatiky nad volnými grupami
Vysoké učení technické v Brně Fakulta informačních technologií Bezkontextové gramatiky nad volnými grupami 2004 Radek Bidlo Abstrakt Tento dokument zavádí pojem bezkontextové gramatiky nad volnou grupou
ZÁVAZNÉ POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ, DIPLOMOVÉ A DISERTAČNÍ PRÁCE
ZÁVAZNÉ POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ, DIPLOMOVÉ A DISERTAČNÍ PRÁCE Bakalářskou/diplomovou prací se ověřují vědomosti a dovednosti, které student získal během studia a jeho schopnosti využívat je při
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS GRAMATICKÉ SYSTÉMY
8.3). S ohledem na jednoduchost a názornost je výhodné seznámit se s touto Základní pojmy a vztahy. Definice
9. Lineární diferenciální rovnice 2. řádu Cíle Diferenciální rovnice, v nichž hledaná funkce vystupuje ve druhé či vyšší derivaci, nazýváme diferenciálními rovnicemi druhého a vyššího řádu. Analogicky
Strukturální rozpoznávání
Strukturální rozpoznávání 1 Strukturální rozpoznávání obsah hierarchický strukturální popis systém strukturálního rozpoznávání teorie gramatik volba popisu výběr primitiv výběr gramatiky syntaktická analýza
Stromy, haldy, prioritní fronty
Stromy, haldy, prioritní fronty prof. Ing. Pavel Tvrdík CSc. Katedra počítačů FEL České vysoké učení technické DSA, ZS 2008/9, Přednáška 6 http://service.felk.cvut.cz/courses/x36dsa/ prof. Pavel Tvrdík
Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α
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
MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]
MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě
0. ÚVOD - matematické symboly, značení,
0. ÚVOD - matematické symboly, značení, číselné množiny Výroky Výrok je každé sdělení, u kterého lze jednoznačně rozhodnout, zda je či není pravdivé. Každému výroku lze proto přiřadit jedinou pravdivostní
NAIVNÍ TEORIE MNOŽIN, okruh č. 5
NAIVNÍ TEORIE MNOŽIN, okruh č. 5 Definování množiny a jejích prvků Množina je souhrn nějakých věcí. Patří-li věc do množiny X, říkáme, že v ní leží, že je jejím prvkem nebo že množina X tuto věc obsahuje.
Ú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í
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY SYNTAKTICKÁ ANALÝZA ZALOŽENÁ NA MULTIGENEROVÁNÍ PARSING BASED ON MULTIGENERATION
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SYNTAKTICKÁ ANALÝZA
Gramatické systémy - teorie a aplikace
Gramatické systémy - teorie a aplikace Luděk Dolíhal January 8, 2010 Contents 1 Úvod 2 1.1 Teorie gramatických systémů.................... 2 2 CD gramatické systémy 3 2.1 Definice................................
Slož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í,
Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Logika pro každodenní přežití Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Matematika 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
1 Kardinální čísla. množin. Tvrzení: Necht X Cn. Pak: 1. X Cn a je to nejmenší prvek třídy X v uspořádání (Cn, ),
Pracovní text k přednášce Logika a teorie množin 4.1.2007 1 1 Kardinální čísla 2 Ukázali jsme, že ordinální čísla reprezentují typy dobrých uspořádání Základy teorie množin Z minula: 1. Věta o ordinálních
Grafy. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 13.
Grafy doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 13. března 2017 Jiří Dvorský (VŠB TUO) Grafy 104 / 309 Osnova přednášky Grafy
Cvičení 5 - Inverzní matice
Cvičení 5 - Inverzní matice Pojem Inverzní matice Buď A R n n. A je inverzní maticí k A, pokud platí, AA = A A = I n. Matice A, pokud existuje, je jednoznačná. A stačí nám jen jedna rovnost, aby platilo,
Intuitivní pojem pravděpodobnosti
Pravděpodobnost Intuitivní pojem pravděpodobnosti Intuitivní pojem pravděpodobnosti Pravděpodobnost zkoumaného jevu vyjadřuje míru naděje, že tento jev nastane. Řekneme-li, že má nějaký jev pravděpodobnost
PŘ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)
Lineární algebra : Skalární součin a ortogonalita
Lineární algebra : Skalární součin a ortogonalita (15. přednáška) František Štampach, Karel Klouda frantisek.stampach@fit.cvut.cz, karel.klouda@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
Zásobníkový automat. SlovoaaaabbbbpatřídojazykaL={a i b i i 1} a a a a b b b b
ChtělibychomrozpoznávatjazykL={a i b i i 1} Snažíme se navrhnout zařízení(podobné konečným automatům), které přečte slovo, a sdělí nám, zda toto slovo patřídojazykalčine. Při čtení a-ček si musíme pamatovat
Teorie 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
6. blok část C Množinové operátory
6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.
Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.
Úvod do informatiky přednáška čtvrtá Miroslav Kolařík Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008. Obsah 1 Pojem relace 2 Vztahy a operace s (binárními) relacemi
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
Paralelní grafové algoritmy
Paralelní grafové algoritmy Značení Minimální kostra grafu Nejkratší cesta z jednoho uzlu Nejkratší cesta mezi všemi dvojicemi uzlů Použité značení Definition Bud G = (V, E) graf. Pro libovolný uzel u
POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE
POKYNY PRO VYPRACOVÁNÍ BAKALÁŘSKÉ A DIPLOMOVÉ PRÁCE na Fakultě životního prostředí UJEP v Ústí nad Labem. 1. Bakalářská a diplomová práce se odevzdává ve třech výtiscích v pevné vazbě. Práce musí být svázaná
Regulá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)
1 Soustavy lineárních rovnic
1 Soustavy lineárních rovnic 1.1 Základní pojmy Budeme uvažovat soustavu m lineárních rovnic o n neznámých s koeficienty z tělesa T (potom hovoříme o soustavě m lineárních rovnic o n neznámých nad tělesem
63. ročník Matematické olympiády 2013/2014
63. ročník Matematické olympiády 2013/2014 Úlohy ústředního kola kategorie P 2. soutěžní den Na řešení úloh máte 4,5 hodiny čistého času. Při soutěži je zakázáno používat jakékoliv pomůcky kromě psacích
Lineární algebra : Násobení matic a inverzní matice
Lineární algebra : Násobení matic a inverzní matice (8. přednáška) František Štampach, Karel Klouda LS 2013/2014 vytvořeno: 17. března 2014, 12:42 1 2 0.1 Násobení matic Definice 1. Buďte m, n, p N, A
Gymnázium Dr. J. Pekaře Mladá Boleslav PRAVIDLA PRO PSANÍ MATURITNÍ PRÁCE
Gymnázium Dr. J. Pekaře Mladá Boleslav Maturitní práce PRAVIDLA PRO PSANÍ MATURITNÍ PRÁCE Předmět: Např. Český jazyk a literatura Datum a rok odevzdání: xx. x. 2016 Jméno a příjmení: Jan NOVÁK Ročník:
ŠIFROVACÍ METODA ZALOŽENÁ NA FRAKTÁLNÍ KOMPRESI. 1. Úvod. V posledních letech se ukázalo, že teorii fraktálů lze využít v mnoha teoretických
Kvaternion 2 (2012, 83 89 83 ŠIFROVACÍ METODA ZALOŽENÁ NA FRAKTÁLNÍ KOMPRESI TOMÁŠ GRÍSA Abstrakt Tento článek se zabývá teoretickými principy fraktální komprese a využitím modifikovaného algoritmu fraktální
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.
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.0141 Relace, zobrazení, algebraické struktury Michal Botur Přednáška
Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Algebra Struktury s jednou operací
Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Algebra Struktury s jednou operací Teoretická informatika 2 Proč zavádíme algebru hledáme nástroj pro popis objektů reálného světa (zejména