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
Zdravim, mohl byste mi nekdo poradit jak vygenerovat bezkontextovou gramatiku z nasledujiciho jazyka:
Existuje nejaky postup, jak zacit? Ja bych si nejdrive vypsal par slov ze zacatku, ktere jazyk vygeneruje, napr. a, aa, aba, bab, aaa apod.
Potom zacnu:
S -> aAa
A ->
| a | b
a tim koncim :(
Offline
Ja bych to resil nejak takhle:
S -> aBa
S -> bAb
A -> aB
A -> bA
B -> lambda
B -> aB
B -> bB
Prvni dva radky resi, aby to zacinalo a koncilo stejnym pismenem. Dokud tam neni zadne a, tak to zustava v A, jakmile je tam vlozeno nejake a, tak se prejde do B a tam uz se davaji libovolne terminaly...
↑ tascoa:
Ne A -> Ab,tam nechybi, staci A -> bA. Naopak je ale zbytecne aby tam bylo A -> aA i A -> Aa, staci jedno, nic navic ta druha vec negeneruje a navic to dela gramatiku viceznacnou. Ale ta gramatika generuje i slovo bbbb, coz neni slovo daneho jazyka a naopak treba negeneruje aaa, coz je soucasti jazyka, takze mi neprijde jako odpovidajici danemu zadani...
Offline
↑ Mr.Pinker: ja to take chapu tak, ze cetnost znaku a je vetsi nez nula. slovo bbb by tam tedy patrit nemelo...
Offline
↑ tascoa: To bych nerekl, protoze takhle to generuje i slova "abbab" nebo "ab", ktera zrejme nejsou z daneho jazyka.
Tady bych se na to podival cca takhle. Pokud tam musi byt podslovo bb, pak tam musi byt minimalne podslovo aabb, aby platila rovnost poctu znaku a,b. A do jeho stredu pak muzes pridavat libovolne "ab".
Jinak jeste ted koukam, ze v predchozim prispevku jsem odsouhlasil gramatiku, ktera je spatne, protoze to negeneruje vsechna slova jazyka. Je potreba tam pridat jeste jedno pravidlo, jako cviceni necham jeho nalezeni, ale souvisi to s podminkou
, ted to plati pouze pro
, coz je paradoxne presne jazyk na ktery mirila posledni otazka.
Offline
↑ Jookyn:
Pro tu gramatiku bez podslova 'bb' muze byt takto:
S -> epsilon | ab | aSb
?
Pro gramatiku s podslovem 'bb':
muze gramatika generovat i slova abba, aabb, bbaa? Ta podminka, ze kdyz je nutnost obsahovat podslovo 'bb' zarucuje, ze automaticky musi kvuli podmince
obsahovat podslovo aabb se mi nezda.
Offline
↑ tascoa:
jj, je to tak, dokonce to jde i bez S -> ab, pokud je tam to pravidlo S -> epsilon.
S podslovem bb:
Tak pokud k jazyku
pridame nutnost aby to obsahovalo bb, tak porad musi platit, ze prvnich n znaku jsou "a" a potom je n znaku "b", takze do toho mi abba a bbaa nepasuje... Takze ona z toho ta podminka na podslovo "bb" udela prakticky jazyk 
Offline
↑ tascoa:
No, tohle nefunguje, protoze to jednak neudrzi stejne pocty "a" a "b", ale hlavne to temer nic negeneruje (mozna jsi chtel napsat ty pravidla A -> epsilon | aA), takhle se hned prepise A na terminal a uz s tim nejde nic delat. Takze tahle gramatika generuje jen 3 slova: aabb, aaabb, aabbb a z toho 2 ani nejsou soucasti jazyka.
Je potreba tam generovat najednou "ab", aby se to "nerozhodilo". A to je mozne pridavat jedine do stredu toho vznikajiciho slova. Takze treba takhle:
S -> aaAbb
A -> epsilon | aAb
Offline
Asi uplne nevim, jak to myslis... Ale mozna mas trosku nejasnosti, jak to generovani probiha. Probiha to po krocich, tady zhruba takto:
Mame pocatecni neterminal S
Podle jedineho pravidla se prepise na aaAbb
-- Tady zacina nedeterminismus - pro A existuji 2 pravidla, v kazdem kroku si gramatika "muze vybrat" jake pouzije
Pouzitim A -> aAb ziskame aaaAbbb
Pouzitim A -> aAb ziskame aaaaAbbbb
Pouzitim A -> epsilon ziskame aaaabbbb a konci odvozovani.
Pokud mame na vyber, ktery neterminal (slovo ze ktereho odvozujeme je treba tvaru AabB) se bude prepisovat, tak si gramatika "opet muze vybrat".
Pokud byla myslena otazka, jestli to pravidlo muze byt jako S -> aaAAbb, tak odpoved zni ne, zkus najit, jake slovo ktere neni soucasti jazyka to muze vygenerovat.
Offline
Stránky: 1