Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Ahoj, pomohl by mi někdo začít s tímhle příkladem..
Dokažte, že následující bezkontextová gramatika generuje jazyk {w náleží {a, b}* | |w|a = |w|b}:
S −! epsilon | aB | bA
A −! aS | bAA
B −! bS | aBB
Nápoveda: Postupujte indukcí podle délky slov generovaných jednotlivými neterminály.
Offline
Lemma
(1)Slova délky k generovaná neterminálem S tvoří množinu všech slov délky k, pro které .
(2)Slova délky k generovaná neterminálem A tvoří množinu všech slov délky k, pro které .
(3)Slova délky k generovaná neterminálem B tvoří množinu všech slov délky k, pro které .
Důkaz
Dokazujeme všechny části souběžně a to indukcí podle .
Bázový krok: pro délku 0 generuje S epsilon, A,B negenerují nic. Pro délku negeneruje S nic, A,B generují po řadě a,b. To sedí.
Indukční krok: (věříme tomu pro k=n a dokazujeme pro k=n+1)
Množinu všech slov délky n+1, která splňují lze rozdělit podle toho, jestli začínají na a nebo b. Ty, co začínají na a musí pokračovat řetězcem délky n splňujícím . Ten je z indukčního předpokladu generován neterminálem B. Na druhou stranu každé slovo generované B po připojení a na začátek vytvoří slovo, které splňuje . Analogicky slovo začínající b-čkem splní právě když je za tím b-čkem slovo generované A. Slova nenulové délky splňující lze proto generovat vždy buď jako nebo ,
přesně tato slova generuje .
Zbývá rozmyslet indukční krok pro (2) a (3), opět se bude operovat s tím, jestli slovo začíná na a nebo b ...
Protože jsme dokázali naše lemma pro všechna k, platí i zadané tvrzení.
Offline
No tak to bude dost podobný té (1), ne? Rozdělíme to na případy, kdy slovo začíná a-čkem a kdy začíná b-čkem. Pokud začíná a-čkem, musí následovat část slova délky n, která obsahuje stejně a-ček jako b-ček. To jsou právě ta slova délky n, která generuje neterminál S (dle indukčního předpokladu). Pokud začíná b-čkem, následuje slovo délky n, které má o dvě a-čka víc. My tvrdíme, že právě tato slova generuje dvojice netermiálů AA. Snadno vidíme, že když A generuje slova s jedním a-čkem navíc, bude AA generovat slova s dvěmi a-čky navíc. Zbývá ukázat, že každé slovo, které má dvě a-čka navíc lze generovat dvojicí neterminálů AA. Procházíme slovem od začátku do konce a sledujeme, jak se nám vyvíjí rozdíl počtu aktuálně načtených a-ček a b-ček. Na začátku je nula, na konci 2, mění se vždy o 1. Na nějaké pozici dosáhne hodnoty 1. Když na této pozici slovo rozdělíme na dvě části, dostaneme dvě slova, která jsou obě generovaná neterminálem A.
Offline
↑ Kondr:Děkuji za vysvětlení, jen se chci ještě zeptat, jestli by jste mi neukázal na nějakém příkladu to procházení slovem od začátku až do konce a sledování rozdílu a-ček a b-ček (na, které pozici dosáhne hodnoty 1, tak abych to mohl rozdělit)? Jinak indukční krok 2 dá se sním popsat i ten indukční krok č.3? Děkuji za odpovědi
Offline
Stránky: 1