Séria domácich úloh na cvičenie 5
Vo všetkých úlohách predpokladajte (pokiaľ nie je uvedené ináč), že
L, L1, L2 atď. sú ľubovoľné jazyky a h je ľubovoľný
homomorfizmus.
Zjednotenie značíme u, prienik ^, doplnok C
a reverz R.
Počiatočný symbol gramatiky označujeme S. Ak nie je povedané ináč,
malé písmená označujú terminály, veľké písmená neterminály. Používame skrátenú
formu zápisu pravidiel, t. j. S->A | bb sú dve pravidlá:
S->A a S->bb.
-
Pomocou štandardnej konštrukcie (z prednášky) zostrojte k danej bezkontextovej gramatike G
ekvivalentnú bezkontextovú gramatiku G', ktorá nebude obsahovať tzv. "chain rules", t.j.
pravidlá tvaru X -> Y, kde X,Y sú neterminály.
G = ( N, T, P, S )
N = { S, A, B, C, D }, T = { a, b }
P = {
S -> b | bS | A
A -> bCa | A | BB | C
B -> C | abSa | bB | A | D
C -> epsilon | A | B
D -> aaC | bA
}
-
Pomocou štandardnej konštrukcie (z prednášky) zostrojte k danej bezkontextovej gramatike G
ekvivalentnú bezkontextovú gramatiku G', ktorá bude v Chomského normálnom tvare, t.j.
jej pravidlá budú podmnožinou N x ( NN u T u { epsilon } ).
G = ( N, T, P, S )
N = { S, A, B, C, D }, T = { a, b }
P = {
S -> b | bS | SABC
A -> bCa | BB | C
B -> C | abSa | bB | AD
C -> epsilon | A | B
D -> aaC | bA | bb
}
-
Upravte konštrukciu Chomského normálneho tvaru z prednášky tak, aby vo výslednej gramatike
neboli ani pravidlá tvaru X -> epsilon, kde X je neterminál iný ako S.
Dokážte správnosť vašej konštrukcie.
-
Zostrojte frázovú gramatiku, ktorá bude generovať jazyk L = { a2^n | n>=1 }.
Stačí neformálne popísať, ako by sa dala dokázať jej správnosť. (Dala by sa pre jazyk L
zostrojiť kontextová gramatika? Ako / Prečo?)
-
Nech
G1 = (N1,T1,P1,S1),
G2 = (N2,T2,P2,S2)
sú dané bezkontextové gramatiky. Zostrojte bezkontextovú gramatiku pre jazyk:
( L(G1) . L(G2) )*.
Formálne dokážte správnosť svojej konštrukcie. Vaša konštrukcia by mala byť
všeobecná, t.j. mala by fungovať pre ľubovoľné dve bezkontextové gramatiky.
-
Nech G je ľubovoľná bezkontextová gramatika a w nech je slovo z L(G).
Aké najkratšie a aké najdlhšie (čo do počtu krokov) mohlo byť odvodenie slova w?
Aký hlboký mohol byť strom odvodenia?
Ako sa tieto hodnoty zmenia, ak je G v Chomského normálnom tvare?
-
Ak to ide, zostrojte bezkontextovú gramatiku pre jazyk
L = { w | w patrí do {a,b}* a #a(w)
sa nerovná #b(w) }. Ak nie, pokúste sa zdôvodniť, prečo tento jazyk nie je bezkontextový.
-
(pre samovrahov)
Dané je prirodzené číslo k. Rozhodnite, či je jazyk
L = { w | w patrí do {a,b}* a #a(w) = k.#b(w) }
bezkontextový.