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

Podobné dokumenty
Turingovy stroje. Teoretická informatika Tomáš Foltýnek

Jednoznačné a nejednoznačné gramatiky

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

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

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

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.

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 Σ

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

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

Teoretická informatika - Úkol č.1

2 Formální jazyky a gramatiky

Vlastnosti regulárních jazyků

Vztah jazyků Chomskeho hierarchie a jazyků TS

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

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

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

AUTOMATY A GRAMATIKY

Naproti tomu gramatika je vlastně soupis pravidel, jak

Vysoké učení technické v Brně Fakulta informačních technologií. Gramatiky nad volnými grupami Petr Blatný

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

Teoretická informatika TIN 2013/2014

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

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

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

Teoretická informatika

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

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

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.

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

Teoretická informatika TIN

Bezkontextové gramatiky nad volnými grupami

Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49

Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/31

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

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

Automaty a gramatiky

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

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

BRNO UNIVERSITY OF TECHNOLOGY FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS MASTER S THESIS AUTHOR

Úvod do informatiky. Miroslav Kolařík

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

Syntaxí řízený překlad

Úvod do informatiky. Miroslav Kolařík

Učební texty k státní bakalářské zkoušce Programování Základy teoretické informatiky. študenti MFF 15. augusta 2008

Matematická analýza 1

Překladač sestrojující k regulárnímu výrazu ekvivalentní konečný automat Připomeňme si jednoznačnou gramatiku G pro jazyk RV({a, b})

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

Teoretická informatika

Martin Plicka. October 24, 2012

Strukturální rozpoznávání

SYNTAKTICKÁ ANALÝZA ZALOŽENÁ NA GRAMATICKÝCH A AUTOMATOVÝCH SYSTÉMECH PARSING BASED ON GRAMMAR AND AUTOMATA SYSTEMS

Konečný automat Teorie programovacích jazyků

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

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

Naproti tomu gramatika je vlastně soupis pravidel, jak

Automaty a gramatiky. Roman Barták, KTIML. Separované gramatiky. Kontextové gramatiky. Chomského hierarchie

Automaty a gramatiky. Roman Barták, KTIML. Chomského normální forma

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

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

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

ZÁPADOČESKÁ UNIVERZITA V PLZNI

Automaty a gramatiky(bi-aag)

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

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

Syntaxí řízený překlad

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

Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce

Cvičení 1. Úvod do teoretické informatiky(2014/2015) cvičení 1 1

ZÁKLADY TEORETICKÉ INFORMATIKY

B i n á r n í r e l a c e. Patrik Kavecký, Radomír Hamřík

1) Sekvenční a paralelní gramatiky

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

Návrh algoritmů pro sémantické akce při výstavbě interpretu metodou rekurzivního sestupu

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

Definice. Necht M = (Q, T, δ, q 0, F ) je konečný automat. Dvojici (q, w) Q T nazveme konfigurací konečného automatu M.

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY SYNTAKTICKÁ ANALÝZA ZALOŽENÁ NA MULTIGENEROVÁNÍ PARSING BASED ON MULTIGENERATION

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

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

Definice 1.1. Nechť je M množina. Funkci ρ : M M R nazveme metrikou, jestliže má následující vlastnosti:

Základní datové struktury III: Stromy, haldy

0. ÚVOD - matematické symboly, značení,

Lineární algebra : Násobení matic a inverzní matice

Lexikální analýza (Obsah)

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

Postův korespondenční problém. Meze rozhodnutelnosti 2 p.1/13

Konečný automat. Jan Kybic.

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

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

Marie Duží

Matematika B101MA1, B101MA2

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

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

Logické programy Deklarativní interpretace

Modely Herbrandovské interpretace

Matematická analýza pro informatiky I.

Univerzální Turingův stroj a Nedeterministický Turingův stroj

Matematika I. Přednášky: Mgr. Radek Výrut, Zkouška:

Programovací jazyky, syntaxe, sémantika, zpsoby popisu

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE

Transkript:

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é informatiky Fakulta informačních technologií ČVUT v Praze c Jan Holub, 2011 Evropský sociální fond. Praha & EU: Investujeme do vaší budoucnosti Cvičení 2 domácí úkoly po 6 bodech 3 testy za 9 + 9 + 10 bodů celkem 40 bodů zápočet: minimálně 20 bodů. Jeden z testů je možné na konci semestru opakovat. Zkouška rozstřel : max. 10 bodů zkouškový test: max. 50 bodů ústní část: ±5 bodů + právo veta zkouška: rozstřel min. 7 bodů, test min. 25 bodů, projít ústní zkouškou Motivace BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 1/29 BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 3/29 Obsah předmětu Motivace Správné použití teorie jazyků a automatů šetří čas a prostředky. Jedna ze základních teorií Computer Science. Pochopení efektivních řešení pro celou řadu základních problémů. Cíle předmětu Seznámit se s teorií jazyků a automatů. Umět ji efektivně používat. Rozeznat třídy jazyků. 1. Základní pojmy, Chomského hierarchie. 2. Deterministické a nedeterministické konečné automaty (DKA a NKA), NKA s epsilon přechody. 3. Operace s automaty (převod na NKA bez epsilon přechodů, na DKA, minimalizace), průnik, sjednocení. 4. Programová realizace DKA a NKA, obvodová realizace. 5. Rozšíření o překlad, Mealey, Moore, převody. 6. Operace s regulárními gramatikami, převody na KA. 7. Reg. výrazy, převody mezi RV, KA a RG, Kleenova věta. 8. Principy využití RV v UNIXu ([e]grep, perl, PHP,... ). 9. KA jako lexikální analyzátor, lex/flex generátory. 10. Vlastnosti reg. jazyků (pumping lemma, Nerodova věta). 11. Jazyky bezkontextové, zasobníkový automat. 12. Analýza bezkontextových jazyků (nedeterm. versus determ.). 13. Jazyky kontextové a neomezené, Turingův stroj.

Základní pojmy BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 6/29 Formální jazyk BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 8/29 Abeceda konečná množina symbolů (značíme Σ, někdy též T) binární {0,1}, ternární {Yes, No, Maybe}, DNA {A, C, G, T}, klíčová slova {while, do, begin, end, to, for, false, true,... } Řetězec nad abecedou konečná posloupnost symbolů abecedy. Např. 0110101, ACCCGT, while true do Prázdná posloupnost = prázdný řetězec = ε. Σ množina všech řetězců nad Σ Σ + množina všech neprázdných řetězců nad Σ Σ = Σ + {ε} Formální jazyk L nad Σ: L Σ (množina řetězců). operace: množinové operace sjednocení, průnik a rozdíl komplement (doplněk) jazyka L 1 : L 2 = Σ \ L 1 (L 2 L 1 = Σ, L 1 L 2 = ). součin (zřetězení) jazyků: L = L 1.L 2 = {xy : x L 1, y L 2 } (L je definován nad abecedou Σ = Σ 1 Σ 2 ) N tá mocnina jazyka L: L n = L.L n 1, L 0 = {ε}. Iterace L jazyka L: L = L n, pro všechna n od nuly do nekonečna. L = L + {ε}, L + = L.L = L.L (pozitivní iterace). Operace zřetězení : BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 5/29 Základní pojmy x, y Σ, připojením řetězce y za řetězec x vznikne řetězec xy je asociativní, t.j. (xy)z = x(yz) není komutativní, t.j. xy yx ε se chová vzhledem k operaci zřetězení jako neutrální prvek: xε = εx = x Délka řetězce x: značíme x x 0, ε = 0 a 0 = ε, a 1 = a, a 2 = aa, a 3 = aaa,... je čtveřice G = (N, T, P, S), kde N je konečná množina neterminálních symbolů, BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 7/29 T je konečná množina terminálních symbolů (T N =, T je vlastně vstupní abeceda Σ), P je konečná podmnožina množiny (N T ).N.(N T ) (N T ), (element (α, β) z P zapíšeme α β a nazveme pravidlo), S N je počáteční symbol gramatiky (též větný nebo startovací symbol).

BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 10/29 BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 12/29 G 1 = ({A, S}, {0, 1}, P, S), kde P : S 0A A 1A A 0. Poznámka: α β 1, α β 2,..., α β n, lze zkrátit na: α β 1 β 2... β n. G = (N, T, P, S), x, y (N T ). Říkáme, že x přímo derivuje y (x y), jestliže existuje α β P a γ, δ (N T ) takové, že x = γαδ, y = γβδ. G 1 = ({A, S}, {0, 1}, P, S), P = {S 0A, A 1A, A 0}. 01A 011A α k β, jestliže existuje posloupnost α 0, α 1,..., α k, pro k 0, k + 1 řetězců takových, že α = α 0, α i 1 α i pro 1 i k, a α k = β. Tuto posloupnost nazveme derivací řetězce β z řetězce α, která má délku k v gramatice G. G 1 : 01A 4 011111A BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 9/29 BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 11/29 Další možnosti zápisu pomocí Backus-Naurovy formy (BNF) nebo rozšířené Backus-Naurovy formy (EBNF). G generuje jazyk celých čísel bez znaménka. V této gramatice je použita BNF. G = ({ celé číslo, číslice }, {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, P, celé číslo ) Množina P obsahuje pravidla: celé číslo ::= číslice celé číslo číslice číslice ::= 0 1 2 3 4 5 6 7 8 9. Tranzitivní uzávěr relace : α + β, když α i β pro nějaké i 1. Tranzitivní a reflexivní uzávěr relace : α β, když α i β pro nějaké i 0.

BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 14/29 BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 16/29 L(G) = {w : w T, S w} je jazyk generovaný gramatikou G. G 1 = ({A, S}, {0, 1}, {S 0A, A 1A, A 0}, S) generuje jazyk L(G 1 ) = {01 n 0 : n 0}. V gramatice G 1 existují například derivace S 0A 00 S 0A 01A 010 S 0A 01A 011A 0110 Gramatiky G 1 a G 2 jsou ekvivalentní, když generují stejný jazyk. To znamená, že L(G 1 ) = L(G 2 ). BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 13/29 G = (N, T, P, S). Řetězec α nazveme větnou formou v gramatice G, jestliže platí S α, α (N T ). G 1 : S 01A Větná forma v gramatice G = (N, T, P, S), která neobsahuje neterminální symboly se nazývá věta generovaná gramatikou G. G 1 : S 0110 Jazyk generovaný gramatikou G je množina všech vět generovaných gramatikou G. BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 15/29 Klasifikace gramatik Noam Chomsky (*7.12.1928 Philadelphia) práce na poli gramatik jak formálních tak i přirozených jazyků G = (N, T, P, S). Říkáme, že G je: 1. Neomezená (typu 0), jestliže odpovídá obecné definici gramatiky. 2. Kontextová (typu 1), jestliže každé pravidlo z P má tvar γa δ γαδ, kde γ, δ (N T ), α (N T ) +, A N. Výjimku tvoří pravidlo S ε v případě, že S se neobjeví na pravé straně žádného pravidla. 3. Bezkontextová (typu 2), jestliže každé pravidlo má tvar A α, kde A N, α (N T ). 4. Regulární (typu 3), jestliže každé pravidlo má tvar A ab nebo A a, kde A, B N, a T. Výjimku tvoří pravidlo S ε v případě, že S se neobjeví na pravé straně žádného pravidla.

Klasifikace jazyků BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 18/29 Klasifikace jazyků BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 20/29 1. Rekurzivně spočetné jazyky (typu 0) generované neomezenými gramatikami. rozpoznatelné Turingovým strojem 2. Kontextové jazyky (typu 1) generované kontextovými gramatikami. rozpoznatelné lineárně omezeným Turingovým strojem 3. Bezkontextové jazyky (typu 2) generované bezkontextovými gramatikami. rozpoznatelné zásobníkovým automatem 4. Regulární jazyky (typu 3) generované regulárními gramatikami. rozpoznatelné konečným automatem G 1 = ({S}, {0, 1}, {S 0S, S 1S, S 1, S 0}, S) je regulární gramatika a generuje jazyk L(G 1 ) = {0, 1} +. G 2 = ({S}, {0, 1}, {S 0S1, S 01}, S) je bezkontextová a generuje jazyk L(G 2 ) = {0 n 1 n : n 1}. G 3 = ({S, A}, {0, 1}, {S 0A1, S 01, 0A 00A1, A 01}, S) je kontextová a generuje jazyk L(G 3 ) = {0 n 1 n : n 1}. G 4 = ({S}, {0, 1}, {S 0S1, S 01, 0S1 S}, S) je neomezená a generuje jazyk L(G 4 ) = {0 n 1 n : n 1}. Gramatiky G 2, G 3 a G 4 jsou ekvivalentní, protože L(G 2 ) = L(G 3 ) = L(G 4 ) = {0 n 1 n : n 1}. BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 17/29 Klasifikace jazyků BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 19/29 Zařazení jazyka nalezení gramatiky, rekurzivně spočetné jazyky kontextové jazyky nalezení automatu, Pumping Lemma, Nerodova věta bezkontextové jazyky regulární jazyky jazyky typu 3 jazyky typu 2 jazyky typu 1 jazyky typu 0

Pumping lemma pro regulární jazyky BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 22/29 Gramatiky a operace nad jazyky BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 24/29 Pumping lemma pro regulární jazyky Necht L je regulární jazyk. Pak existuje taková konstanta p > 1, že pro w L a w p může být w zapsáno ve tvaru w = xyz, kde 1 y < p a xy i z L pro všechna i 0. Použití: Důkaz, že nějaký jazyk není regulární. L = {a n b n : n 0} Zvolíme w = a p+1 b p+1. Pak x = a k, y = a p+1 k b l, z = b p+1 l, k < p. xz = a k b p+1 l L xyz = a k a p+1 k b l b p+1 l = a p+1 b p+1 L xyyz = a k a p+1 k b l a p+1 k b l b p+1 l L Proto L není regulární. Algoritmus Konstrukce gramatiky pro sjednocení jazyků. Vstup: Bezkontextové gramatiky G 1 a G 2 generující jazyky L 1 a L 2. Výstup: Bezkontextová gramatika G, že L(G) = L 1 L 2. Metoda: G 1 = (N 1, T, P 1, S 1 ), G 2 = (N 2, T, P 2, S 2 ) Za předpokladu, že množiny terminálních symbolů jsou stejné a N 1 N 2 = : G = (N 1 N 2 {S}, T, P 1 P 2 {S S 1 S 2 }, S), kde S N 1 N 2. BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 21/29 Pumping lemma pro bezkontext. jazyky Pumping lemma pro bezkontextové jazyky Necht L je bezkontextový jazyk. Pak existuje taková konstanta p > 1, že pro w L a w p může být w zapsáno ve tvaru w = xuyvz, kde 1 uyv < p a xu i yv i z L pro všechna i 0. Použití: Důkaz, že nějaký jazyk není bezkontextový. L = {a n b n c n : n 0} Zvolíme w = a p b p c p. BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 23/29 Gramatiky a operace nad jazyky Algoritmus Konstrukce gramatiky pro součin jazyků. Vstup: Bezkontextové gramatiky G 1 a G 2 generující jazyky L 1 a L 2. Výstup: Bezkontextová gramatika G, že L(G) = L 1.L 2. Metoda: G 1 = (N 1, T, P 1, S 1 ), G 2 = (N 2, T, P 2, S 2 ), N 1 N 2 =. G se vytvoří takto: G = (N 1 N 2 {S}, T, P 1 P 2 {S S 1 S 2 }, S), kde S N 1 N 2. Pak...... Proto L není bezkontextový.

Gramatiky a operace nad jazyky BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 26/29 Derivační strom pro bezkontextové jazyky BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 28/29 Algoritmus Konstrukce gramatiky pro iteraci jazyka. Vstup: Bezkontextová gramatika G generující jazyk L. Výstup: Bezkontextová gramatika G, že L(G ) = L. Metoda: G = (N, T, P, S). Výslednou gramatiku G zkonstruujeme takto: G = (N {S }, T, P {S SS, S ε}, S ), kde S N. Derivační strom je grafickým vyjádřením syntaktické struktury věty. BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 25/29 Konečné jazyky BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 27/29 Derivační strom pro bezkontextové jazyky Konečný jazyk L Σ je konečný právě tehdy, když L je konečná množina. Nejmenší množina jazyků, která obsahuje všechny konečné jazyky a jazyky vzniklé pomocí operací a) sjednocení, b) součinu, c) iterace, je množina všech regulárních jazyků. Derivační strom je orientovaný acyklický graf strom. Jestliže máme dánu gramatiku G = (N, T, P, S), pak derivační strom v této gramatice musí mít tyto vlastnosti: 1. Uzly derivačního stromu jsou ohodnoceny terminálními a neterminálními symboly. 2. Kořen stromu je ohodnocen počátečním symbolem. 3. Jestliže uzel má alespoň jednoho následovníka, je ohodnocen neterminálním symbolem. 4. Jestliže n 1, n 2,..., n k jsou bezprostřední následovníci uzlu n, který je ohodnocen symbolem A, a tyto uzly jsou zleva doprava ohodnoceny symboly A 1, A 2,...A k, pak A A 1 A 2...A k je pravidlo v P. 5. Koncové uzly derivačního stromu tvoří zleva doprava větnou formu nebo větu v gramatice G, která je výsledkem derivačního stromu.

Derivační strom pro bezkontextové jazyky G = ({S, A, B}, {a, b, c, d}, P, S), kde P : (1)S AB (2)A aab (3)A ab (4)B cbd (5)B cd S AB aabb aabbb aabbcd. S A B a A b c d a b S AB Acd aabcd aabbcd S AB aabb aabcd aabbcd BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 29/29