}w!"#$%&'()+,-./012345<ya Fulty of Informtis Msryk University Brno Cvičení k předmětu IA006 Vyrné kpitoly z teorie utomtů Jiří Brnt Ivn Černá poslední modifike 22. ledn 2009
Funke FIRST FOLLOW Opkování motive 1.1 Je dán následujíí grmtik G. Nvrhněte PDA (zásoníkový utomt), který nlyzuje slov nd eedou,, metodou shor dolů. G = ({S, A},{,, },P, S), kde P = { S S S A, A A ε } 1.2 Nvrhněte LL(1) jednoduhou grmtiku pro jzyk zpsný následujíí množinou ) {1 n 2 0 n 1 m 2 0 m n > 0, m 0} ) {1 n 2 0 n 1 m 2 0 m n 0, m 0} Poznámk: V jednoduhé LL(1) grmtie zčínjí všehny prvé strny prvidel terminálem, prvidl se stejnou levou strnou zčínjí různým terminálem. 1.3 Rozmyslete si jk proíhá nlýz jednoduhýh LL(1) grmtik. 1.4 Njděte jzyk, který se nedá generovt žádnou jednoduhou LL(1) grmtikou. FIRST FOLLOW Nehť G = (N, Σ, P, S) je ezkontextová grmtik. Funke F IRST G F OLLOW G jsou definovány následovně: F IRSTk G : (Σ N) 2 Σ F IRSTk G(α) = {w Σ (α w w k) (α wu w = k ; u Σ )} F OLLOWk G : N 2Σ F OLLOWk G(A) = {w Σ S uaα, w F IRST k (α) ; u Σ, α (Σ N) } Poznámk: Pozor n typ rgumentu u jednotlivýh funkí. Funke F IRSTk G (α) ere jko rgument řetěze terminálů neterminálů (α (Σ N) ), nrozdíl od funke F OLLOWk G (A), jejíž rgumentem je vždy právě jeden neterminál (A N). Běžně se používjí zkráené zápisy funkí, F I k (α) pro F IRSTk G(α) F O k (A) pro F OLLOWk G (A) (G je zřejmé z kontextu typiky se neuvádí). Poznámk: Definie funkí F IRSTk G F OLLOW k G lze přirozeně rozšířit tké n množiny odpovídjííh rgumentů, ož je užitečné zejmén pro funki F IRST. F IRST G k : 2(Σ N) 2 Σ F IRST G k (M) = α M F IRST G k (α) F OLLOWk G : 2N 2 Σ F OLLOWk G(M) = A M F OLLOW k G(A) 1
Operátor k k : 2 Σ 2 Σ 2 Σ A k B = {w Σ (w A B w k) (wu A B w = k u Σ )} Poznámk: Neformálně řečeno, operátor k provádí zřetězení množin terminálníh řětězů ořezání výslednýh řetězů n řetěze délky mximálně k. Tuto operi je tké možné relizovt v různýh lgoritmeh jko F IRSTk G (A B). Všimněme si le, že striktně formálně lze toto použít pouze je-li z kontextu dán grmtik G. Algoritmus pro výpočet funke FIRST Je dán grmtik G = (N, Σ, P, S) řetěze α = Y 1 Y 2... Y l, kde Y x N Σ. 1) F I k (x) = {x} pro x Σ {ε}, 1 x l 2) Výpočet F I k (x) pro x N: Nehť N = {X 1, X 2,..., X n }. Budeme počítt hodnotu F I k (X i ) součsně pro všehny neterminály (i = 1,..., n). Nehť všehn prvidl pro neterminál X i jsou tto: Potom X i Y1 1... Yk 1 1 Y1 2... Yk 2 2... Y j 1... Y j k j F I k (X i ) = [ F I k (Y1 1 ) k F I k (Y2 1 ) k... k F I k (Yk 1 1 ) ]... [ F I k (Y1 1 ) k F I k (Y2 1 ) k... k F I k (Yk 1 1 ) ]. Hodnoty F I k (X i ) jsou pevnými ody uvedené soustvy rekurzivníh rovni. Počáteční hodnoty jsou F I k (X i ) =. 3) F IRST k (α) = F I k (Y 1 ) k F I k (Y 2 ) k k F I k (Y l ) Algoritmus pro výpočet funke FOLLOW Je dán redukovná grmtik G = (N, Σ, P, S). Funke F O je definován pouze pro neterminály. Postupně počítáme hodnoty: F O 1 (A) pro všehny A N, F O 2 (A) pro všehny A N. F O k (A) pro všehny A N Při výpočtu F O i (A) postupujeme následovně: 1) F O 0 (A) := {ε} pro A N. F O i (S) := {ε} F O i (A) := pro A N \ {S}. 2) Pro kždé prvidlo tvru: B αaβ P, kde β ε F O i (A) := F O i (A) [(F I i (β) {ε}) i F O i 1 (B)] 3) OPAKUJ Pro kždé prvidlo tvru: B αaβ P, kde β = ε neo ε F I 1 (β) Tk dlouho, dokud se nedosáhne pevného odu. F O i (A) := F O i (A) F O i (B) 2
Poznámk: Hodnotu výrzu F IRSTk G (α) lze intuitivně vypočítt lterntivním způsoem. Přesně řečeno lze prozkoumt všehny možné derive vyházejíí z řetěze α vzít v potz terminální prefixy délky k z održenýh větnýh forem (větné formy musí ýt normovné, tj. vyderivovtelné do terminálního řetěze). Poznámk: Intuitivně (tj. ne přesně podle lgoritmu) lze postupovt i při výpočtu hodnoty funke F OLLOWk G (A). Seství se rovnie tk, jk uvedeno v lgoritmu tyto se řeší líným vyhodnoováním, tj. jednotlivé členy rovni se počítjí ž v okmžiku, kdy jsou potřeuj. Avšk i při tomto postupu může dojít k definii rekurzivní rovnie, npříkld: F O 2 (A) = {} {, } F O 1 (B) F O 2 (A). Tuto situi lze n intuitivní úrovni řešit vypuštěním členu F O 2 (A), neoť F O 2 (A) nepřináší ni nového do F O 2 (A), tj nmísto předhozí rekurzivní rovnie se použije: F O 2 (A) = {} {, } F O 1 (B). V oené rovině tkto rekurzivní rovnie smozřejmě řešit nelze, le v tomto kontextu je to možné. 1.5 Podle lgoritmu řešte F I 2 (A) F I 3 (Ae) pro grmtiku G = ({A, B, C},{,, d},p, A), kde P = { A B, B A C d, C B d } 1.6 Podle lgoritmu řešte F I 2 (A) F I 3 (A) pro grmtiku G = ({A},{, },P, A), kde P = { A A, A } 1.7 Vypočítejte F I 1 (BB), F I 2 (BB), F O 1 (A), F O 1 (S), F O 1 (B), F O 1 (C), F O 3 (A), F O 3 (S), F O 3 (C), F I 1 (SAB), F I 4 (SAB) pro následujíí grmtiku: G = ({S, A, B, C},{,,, e, d},p, S), kde P = { S A B, A A SCe ε, B C ε, C d ε } 1.8 Podle lgoritmu řešte F O k (X), kde k = 1, 2, 3, 4 X {S, A, B, C, D} pro následujíí grmtiku: G = ({S, A, B, C, D},{,, d,, x, y, z},p, S), kde P = { S ABCD ε, A ASd ε, B SA xc ε, C Sy Cz ε, D BD ε } 1.9 Vypočítejte F O k (X), kde k = 1, 2, 3, 4 X {S, A, B, C, D} pro následujíí grmtiku: G = ({S, B, A, D, C},{,,, d},p, S), kde P = { S BB, A A A, B DA A, C B B, D d dc } 3
SLL(k) grmtiky nlyzátory Grmtik je SLL(k), právě když pro všehny neterminály A N, pro kždá dvě různá prvidl A β, A γ pltí: F I k (β F O k (A)) F I k (γ F O k (A)) = 2.1 Ověřte, zd následujíí grmtik je SLL(2): G = ({S, X, Y },{, },P, S), kde P = { S X, X Y Y, Y ε } 2.2 Ověřte, zd grmtik je SLL(3) G = ({S, A, B},{, },P, S), kde P = { S AB AB, A, B B } 2.3 Nvrhněte SLL(2) nlyzátor pro následujíí grmtiku nlyzujte slovo slovo. G = ({S, A, B, D},{,, },P, S), kde P = { S AA, S BB, A A, A, B D, D D, D ε } 2.4 Nvrhněte SLL(3) nlyzátor pro grmtiku nlyzujte slovo. G = ({S, A, B},{, },P, S), kde P = { S A, S B, A A, A B, B A, B ε } 4
LL(k) grmtiky nlyzátory Grmtik je LL(k), právě když pro dvě liovolná různá prvidl grmtiky A β, A γ pro všehny nejlevější větné formy tvru waα pltí: F I k (β α) F I k (γ α) = Grmtik je LL(1) právě když je SLL(1). Je-li grmtik G SLL(k), pk je tké LL(k). 3.1 Ověřte, zd je následujíí grmtik LL(2): G = ({S, X, Y },{, },P, S), kde P = { S X, X Y Y, Y ε } 3.2 Ověřte, zd je následujíí grmtik LL(3): G = ({S, A, B},{, },P, S), kde P = { S AB AB, A, B B } 3.3 Ukžte, že grmtik není LL(k) pro žádné k: G = ({S, A, B},{,, 0, 1},P, S), kde P = { S A B, A A 0, B B 1 } 3.4 Ukžte, že grmtik je LL(k): G = ({S, T, A, B}, {,, }, P, S), kde P = { S T T SA A A B B k 1 d ε 3.5 Zkonstruujte LL(2) nlyzátor pro grmtiku G: G = ({S, A},{, },P, S), kde P = { S ε, S A, A S, A } 3.6 Zkonstruujte LL(3) nlyzátor pro grmtiku G: G = ({S, A, B},{, },P, S), kde P = { S AB, S AB, A, A, B B, B } 5
3.7 Njděte LL(1) nlyzátor pro jzyk generovný následujíí grmtikou: G = ({ST AT, V AR, IDLIST }, {if, id, then, else, fi, while, do, od, (, ), :=}, P, ST AT ) P = { ST AT if id then ST AT else ST AT fi ST AT while id do ST AT od ST AT V AR := V AR ST AT id (IDLIST ) V AR id id (IDLIST ) IDLIST id id (IDLIST ) 6
Trnsforme LL(k) grmtik Motive: Pltí: Grmtik je LL(1), právě když je SLL(1). Pro grmtiky, které jsou SLL(1), se sndno konstruuje nlyzátor. Pro dnou ezkontextovou grmtiku G je nerozhodnutelné, zd je LL(k) pro nějké k 0. Je-li dán ezkontextová grmtik G pevné k tkové, že G není LL(k), pk je nerozhodnutelné určit, zd G má ekvivletní grmtiku, která je LL(k). Nvzdory výše uvedeným fktům existuje několik trnsformí, které zhovávjí jzykovou ekvivleni které někdy vedou k LL(1) grmtie. Grmtik není LL(1) prinipielně ze dvou důvodů. Těmi jsou konflikt first-first konflikt first-follow. Správný postup řešení příkldu převod n LL(1) grmtiku oshuje tyto tři kroky: nlezení konfliktů v trnsformovné grmtie (pomoí ověření n LL(1)), odstrnění konfliktů níže uvedenými postupy, ověření výsledné grmtiky n LL(1) (při nlezení konfliktů opkování předhozího kroku). Odstrnění levé rekurze 4.1 Odstrňte levou rekurzi v následujíí grmtie: G = ({S, A, B},{,, },P, S), kde P = { S SA SB S AB, A A ε, B BB } Rohová sustitue Nehť G = (N, T, P, S) je ezkontextová grmtik s prvidlem A Bα, nehť všehny B prvidl jsou B α 1 α 2... α m. Nehť G 1 = (N, T, P, S) je grmtik, která vznikl z G vyloučením prvidl A Bα přidáním prvidel A α 1 α α 2 α... α m α. Tto trnsforme nese název rohová sustitue. Je zvláštní tím, že její opkovnou lpikí je možné z grmtiky, která je LL(1) nemá ε-prvidl udělt jednoduhou LL(1) grmtiku. 4.2 Aplikujte rohovou sustitui n následujíí grmtiku: G = ({S, A, B},{,,, d},p, S), kde P = { S AB, A B, B db } 7
4.3 Aplikujte rohovou sustitui n následujíí grmtiku: G = ({S, A, B},{, },P, S), kde P = { S AB, A A ε, B A ε } Levá fktorize Pro LL(1) grmtiku musí pltit: A α, A β F IRST 1 (α) F IRST 1 (β) = nesplnění této podmínky se oznčuje jko konflikt F IRST F IRST. Kolizi může způsoit přítomnost prvidel tvru A αα 1 αα 2... αα n, kde α ε. Kolizi odtsrníme jestliže uvedená prvidl nhrdíme prvidly tvru A αa, A α 1 α 2... α n. Této trnsformi se říká levá fktorize. Většinou je nutné před touto trnsformí plikovt n grmtiku rohovou sustitui, y konflikty uvedeného typu yly v poždovné formě. 4.4 Aplikujte levou fktorizi n grmtiku: G = ({A, B, C},{,,, d},p, A), kde P = { A B C db B C, B B dc BC, C A } 4.5 Aplikujte levou fktorizi n grmtiku: G = ({A, B, C},{, x, y, z},p, A), kde P = { A Bxx Cyy zy zx, B Bx z, C ycy z } 4.6 Odstrňte konflikt first-first v následujíí grmtie. G = ({S, A, B},{,, },P, S), kde P = { S A B, A A, B B } 4.7 Odstrňte konflikt first-first v následujíí grmtie. G = ({A, B, C},{,,, d},p, A), kde P = { A B CB, C C B, B B d } 4.8 Odstrňte konflikt first-first v následujíí grmtie. G = ({A, B, D},{, d,, x, y, z},p, A), kde P = { A B Dd, B x y, D Bz } 4.9 Odstrňte konflikt first-first v následujíí grmtie. G = ({S, A, B},{,,, d},p, S), kde P = { S A AB, A, B A dd } 8
4.10 Odstrňte konflikt first-first v následujíí grmtie. G = ({S, A, B},{,, },P, S), kde P = { S A B, A A ε, B B ε } Pohlení terminálního symolu Pro LL(1) grmtiku musí pltit: A α, A ε F IRST 1 (α) F OLLOW 1 (A) = nesplnění této podmínky se oznčuje jko konflikt F IRST F OLLOW. Nehť {} F IRST 1 (γ i ) F OLLOW 1 (A). Může to ýt způsoeno tím, že v grmtie je prvidlo následujíího tvru: X αaβ přitom A prvidl jsou tyto: A γ 1... γ n. Konflikt se můžeme pokusit odstrnit tk, že prvidlo X αaβ nhrdíme prvidlem X α[a]β pro nový neterminál [A] přidáme prvidl [A] γ 1... γ n. Tím jsme z množiny F OLLOW 1 (A) vyloučili symol (z předpokldu, že tm není z jiného důvodu). 4.11 Řešte kolizi FIRST-FOLLOW v následujíí grmtie: G = ({A, B, C},{,, },P, A), kde P = { A BC, B ε C, C C } 4.12 Řešte kolizi FIRST-FOLLOW v následujíí grmtie: G = ({A, B, C},{, },P, A), kde P = { A BC, B B ε, C } Extrke prvého kontextu Pohlení terminálního symolu je možné udělt pouze tehdy, vyskytuje-li se přímo z prolemtikým neterminálem. Situe le může vypdt npříkld tkto: X αay β Y β + γ. V tomto přípdě nelze přímo použít trnsformi pohlení terminálního symolu, můžeme se všk pokusit (opkovně) sustituovt z neterminál ezprostředně vprvo od neterminálu A održet tk konflikt v poždovné formě. Této trnsformi říkáme extrke prvého kontextu. 4.13 Pokuste se provést extrki prvého kontextu zmyslete se: G = ({S, A, B},{d,,, },P, S), kde P = { S Ad, A AB ε, B A } 4.14 Řešte kolizi FIRST-FOLLOW v následujíí grmtie: G = ({S, B, A, C},{,, d, },P, S), kde P = { S BA AB, A ε C BCd, B B CdC, C C d } 4.15 Trnsformujte n LL(1) následujíí grmtiku: G = ({E, T, F, S},{o, n,, (, )},P, E), kde P = { E EoT T, T T of F, F ns S, S (E) } 9
4.16 Ověřte, zd je následujíí grmtik LL(1) grmtik. Pokud není, použijte stndrdní trnsforme n úprvu grmtiky n LL(1) o výsledné grmtie dokžte, že je LL(1) grmtikou. G = ({S, A},{,, },P, S), kde P = { S A, A ε A } 10
LR(0) SLR(k) nlyzátory LR(0) nlyzátor 5.1 Zkonstruujte LR(0) nlyzátor G = ({S, A},{,, },P, S), kde P = { S A, S A, A A, A A, A } nlyzujte slovo 5.2 Dokžte, neo vyvrťte, že následujíí grmtik je LR(0) G = ({S, A, B, C},{,,, d},p, S), kde P = { S A, S B, S C, S dcd, A A, B A C, C A } 5.3 Zkonstruujte LR(0) nlyzátor nlyzujte liovolné slovo G = ({S, A, C, B, D},{,,, d},p, S), kde P = { S A, S A, S C, S dcd, A B, B, C D, D d } SLR(k) nlyzátor 5.4 Zkonstruujte SLR(1) SLR(2) nlyzátor G = ({S, A, B},{, },P, S), kde P = { S AB, A A, A ε, B B, B } nlyzujte slovo 5.5 Njděte všehny SLR(2) konflikty 11
G = ({S, P, R},{,,, d},p, S), kde P = { S P P, P R, P R, P d, P d, R d } 5.6 Dokžte, že grmtik z příkldu 5.5 není SLR(k) pro žádné k 5.7 Rozhodněte, zd následujíí grmtik je SLR(k) G = ({X, S, L, R},{=, i, d, },P, X), kde P = { X S, S L = R, S R, L id, L R, R L } 5.8 Zkonstruujte SLR(1) nlyzátor: G = ({X, S, A},{+, (, ), },P, X), kde P = { X S, S S + A, S A, A (S), A (S), A } LR(0) SLR(k) grmtiky 5.9 Zkonstruujte LR(0) grmtiky L 1 = {1 n 0 n n 0} {1 n 0 2n n 0} L 2 = { 1 n 0 n n 0} { 1 n 0 2n n 0} L 3 = {1 n 0 m m > n > 0} L 4 = {w#w R w {0, 1} } 5.10 Dokžte, že následujíí grmtik není LR(0) le je SLR(1) G = ({X, S, A},{+, (, ), },P, X), kde P = { X S, S S + A, S A, A (S), A (S), A } 5.11 Nlezněte o možná nejjednoduší grmtiku tkovou, že ) není LR(0) ) není SLR(1) protože má konflikt čtení-reduke ) není SLR(1) protože má konflikt reduke-reduke 5.12 Ověřte, zd je následujíí grmtik SLR(1) či SLR(2) grmtik. G = ({X, S, B},{, },P, X), kde P = { X S, S B, S, B S } 12
LR(k) LALR(k) nlyzátory 6.1 Rozhodněte, zd je grmtik LR(0), SLR(1), LALR(1), LR(1) G = ({X, S, A, B},{, d,, e, },P, X), kde P = { X S, S Ad, S Bd, S Be, S Ae, A, B } 6.2 Rozhodněte, zd je grmtik LR(0), SLR(1), LALR(1), LR(1) G = ({X, S, A, B, C, D, E},{, },P, X), kde P = { X S, S AB, A, B CD, B E, C, D, E } 6.3 Zkonstruujte LALR(1) nlyzátor G = ({X, S, A, B},{,, },P, X), kde P = { X S, S A, S, S B, A S, A B, B } 6.4 Zkonstruujte iniiální stv LR(2) utomtu G = ({S, R},{+, (, ), },P, S), kde P = { S R, R RR, R R + R, R (R), R } 6.5 Proveďte LR(1) nlýzu G = ({X, S, A},{, },P, X), kde P = { X S, S AS, S ε, A } 13
6.6 Zkonstruujte nlyzátor nlyzujte slov G = ({S, A, B},{0, 1},P, S), kde P = { S AB, A 0A1, A ε, B 1B, B 1 } 14
Bisimule 7.1 Pro dný přehodový systém njděte všehny dvojie isimulčně ekvivlentníh stvů metodou hry. Pomoí isimulčního kolpsu k němu zkonstruujte ekvivlentní přehodový systém. 1 2 3 5 6 4 7.2 Pro dný přehodový sytém njděte mximální isimuli metodou postupnýh proximí. 1 2 3 4 5 7.3 Je dán přehodový systém P 1 (nekonečně stvový). Zkonstruujte přehodový systém P 2 tkový, y pltilo: (i) P 2 má stv I tkový, že I 1 (ii) P 2 je konečně stvový Jká je mximální isimule pro P 1? P 1 : 1 2 3 4 5 7.4 Njděte konečné utomty A 1, A 2 ez ε-přehodů tkové, y splňovly všehny tři následujíí podmínky: (i) L(A 1 ) = L(A 2 ) (ii) L(A 1 ) je nekonečný (iii) Počáteční stvy utomtů A 1, A 2 nejsou isimulčně ekvivlentní 15
7.5 Dokžte neo vyvrťte: 2 8. Njděte mximální isimuli. 1 2 8 7 3 4 6 5 7.6 Njděte nejmenší n, tkové y pltilo 3 n 4, le 3 n 1 4. Njděte mximální isimuli. Fktorizujte podle rele isimule. 1 2 3, 4 5 6 7.7 Njděte nejmenší n, tkové y pltilo 3 n 4, le 3 n 1 4. Njděte mximální isimuli. Fktorizujte podle rele isimule. 3 4 16
Přehodové systémy BPA BPP 8.1 Otázky: Je dný proes popsný deterministikým konečným utomtem. Jk zjistím, které stvy jsou isimulčně ekvivlentní? Njděte postčujíí podmínku n to, y pro normovný přehodový systém, yl jzyková ekvivlene shodná s isimulí. Pro normovné BPA ověřte: ABC DBC A D Njděte nutnou podmínku, y pro BPA pltilo AA A. 8.2 Dán BPA lger. Njděte přehodový systém, který je určen X XBB X ε B BBB B ε 8.3 Jký jzyk generuje následujíí BPA (z proměnné X)? X XA X XB X ε A ε B ε 8.4 Nkreslete přehodový systém určený BPP lgerou X X B X X D B ε D d ε (X e ε ) 8.5 Vyjádřete dný přehodový systém BPA i BPP syntxí: 17
8.6 Vyjádřete dný přehodový systém BPA syntxí: d d d 8.7 Vyjádřete dný přehodový systém BPP syntxí: 8.8 Vyjádřete dný přehodový systém BPA syntxí: 8.9 Vyjádřete dný přehodový systém BPP syntxí: 18
Konstruke tel pro BPA Tlo pro γ = δ se skládá z podtel. Kždé podtlo je strom. Podtlo s kořenem Xα = Y β vytvoříme následovně. Nehť k = min{ X, Y }. N uzel Xα = Y β plikujeme k-krát trojii prvidel (REC, SUM, PREFIX). Po k-plikíh jsou některé uzly reziduály, jeden z nih oznčíme jko vytčený podle něj plikujeme n osttní uzly v ktuálním ptře prvidlo SUB (respektive SUBL, neo SUBR). Reziduálem je uzel ve tvru α = γβ (použijeme prvdilo SUBL) neo γα = β (použijeme prvdilo SUBR), přípdně α = β (použijeme prvdilo SUB (tj. SUBL, neo SUBR, n strně nezáleží)). Po pliki odpovídjíího prvidl SUB ( jen tehdy) održíme listy podtl. Po dokončení podtl, zkontrolujeme všehny jeho listy. U kždého listu nstává jeden z následujííh přípdů: List je úspěšný. (Netře pro něj udovt podtlo.) List je neuspěšný. Pk je elé tlo neúspěšné. List není ni úspěšný ni neúspěšný, stává se kořenem nového podtl. Jestliže v průěhu tvory kteréhokoliv podtl se některý uzel (nemusí to ýt nutně list) ukáže ýt neúspěšným podle níže uvedenýh kritérií, je neúspěšné elé tlo. Kždé podtlo je téměř vyvážený strom. Všehny esty v něm jsou stejně dlouhé, liší se mximálně o jedn (po pliki prvidl SUB,SUBL neo SUBR se pod vytčeným reziduálem est neprodlouží, sám reziduál slouží jko list, tedy přípdně i jko kořen dlšího podtl, ztímo pod osttními uzly n stejném ptře se est prodlouží o jedn (díky pliki odpovídjíího prvidl SUB), teprve tyto uzly (o ptro níž než je reziduál) tvoří listy dného podtl). Kritéri úspěšnosti: 1. α = α (tj. levá prvá strn jsou shodné, α zde nemá ni společného s α použitou výše či níže) 2. α = β n estě od tohoto listu do kořene elého tl se vyskytuje uzel se stejným oznčením α = β mezi nimi je lespoň jednou použito prvidlo PREFIX (uzel β = α se nepočítá!) Kritéri neúspěšnosti : 1..α =.β,kde je různé od 2. α = β,kde α je různá od β Poznámk: 1. Výše uvedená metod funguje pouze pro NORMOVANÉ BPA!!! 2. Poznámk o zápisu: XY = X.Y Prvidl Xα = Y β Eα = F β REC def kde X = E Y def = F α = β P REF IX α = β 19
( m i=1 iα i )α = ( n j=1 jβ j )β { i α i α = f(i) β f(i) β} m i=1 { g(j)α g(j) α = j β j β} n SUM j=1 kde f : {1,..., m} {1,..., n} g : {1,..., n} {1,..., m} m, n 1 α i α = β i β SUBL α i γ = β i α i α = β i β α i = β i γ SUBR 9.1 Zkonstruujte důkz P QQ = SU kde α = γβ je vytčený residuál kde γα = β je vytčený residuál P = P QQ + RQQ + Q = R = P S = SU + T + T = SU U = V V = 9.2 Zkonstruujte důkz F X = A, XCB = BCX, F BX = AB, CXB = XBB A = BCX + B B = C C = D D = D + F = + XC X = Y Y = D 9.3 Dokžte DH DF G, AH AGF, EF D, BA DG A = BC + D + EF B = C = D = H + C E = G F = G = A H = BA 9.4 Zkonstruujte důkz Y = C X = Y X + Y = X A = C + C = AA 9.5 Zkonstruujte důkz X = A X = XX + + Y Y = Y X + + X A = AA + + A 20
9.6 Zkonstruujte důkz A = E A = BC + H B = C = d + DE D = F F = E = C + GH G = H = d + I I = K K = A 9.7 Zkonstruujte důkz A = X X = d + XX + Y + Z Y = X + Y Y + Z + d Z = X A = d + AA + A + B B = A 9.8 Zkonstruujte důkz AB = XY B A = B + C X = + Z B = B + Y = Y + Z = Z + X C = C + A 9.9 Zkonstruujte důkz F BI = AB A = BCI + B B = C C = D D = D + F = + IC I = K K = D 21
Bühiho utomty 10.1 Nvrhněte nedeterministiký BA pro jzyk všeh ω-slov nd eedou Σ = {,, }, která oshují nekonečný počet symolů. 10.2 Nvrhněte nedeterministiký BA pro jzyk všeh ω-slov nd eedou Σ = {,, }, která oshují nekonečný počet symolů pro která pltí, že pokud liovolný konečný prefix slov oshuje lihý počet symolů pk oshuje tké sudý počet symolů. 10.3 Nvrhněte nedeterministiký BA pro jzyk L = {w = w 1 w 2 w 3... w i {, } pro i 1, nekonečně mnoho j N tkovýh, že w j = w j+4 } 10.4 Nehť Σ = {0, 1, #}. Pro slovo w = 0 1 3... Σ ω dvě čísl i, j N, 0 i j oznčme w[i, j] podslovo i... j. Pro pevně zvolené n N definjme jzyk: L n ={w w ((0 + 1) n 1 #) ω, pro nekonečně mnoho i 0 pltí: w[2in, (2i + 1)n 1] w[(2i + 1)n, (2i + 2)n 1]}. Popište dv nedeterministiké BA A 1, A 2 velikosti O(n) tkové, y L n = L(A 1 ) L(A 2 ). 10.5 Dokžte, neo vyvrťte: Ke kždému NBA A lze zkonstruovt NBA A s jediným počátečním stvem. 10.6 Nehť jzyk L = {w {0, 1} ω uď 0 inf(w), neo 1 inf(w)}. ) zkonstruujte nedeterministiký BA ) diskutujte, zd je možné sestrojit pro dný jzyk NBA s jedním konovým stvem ) dokžte, že pro dný jzyk nelze sestrojit NBA s jedním konovým stvem 10.7 Konstruujte NBA pro následujíí jzyky L nd eedou {,,, d}. ) L = {w inf(w) = {}} ) L = {w inf(w) = {, }} ) L = {w inf(w)} d) L = {w inf(w) inf(w)} e) L = {w {, } inf(w) d inf(w)} f) L = {w {, } inf(w)} 10.8 Buď A konečný utomt. Oznčme L(A) množinu slov, kterou keptuje konečný utomt A. Oznčme L ω (A) množinu ω-slov, kterou keptuje Bühiho utomt A. Njděte utomt A tk, y pltilo ) (L(A)) ω = L ω (A) ) (L(A)) ω L ω (A) 22