Üungen zu CFGs (niel ieert 2011, -y-n-s) nmerkungen: 1. Wenn niht explizit ngegeen gilt für lle CFGs s trtsymol. ie Terminl- un ihtterminlsymole ergeen sih us en Prouktionsregeln. 2. ufgentypen zur Einshätzung es hwierigkeitsgres: () Typ1: iht vershhtelte hängigkeiten. () Typ2: Einfh vershhtelte hängigkeiten. () Typ3: Mehrfh vershhtelte hängigkeiten. () Typ4: Komplexe hängigkeiten. 3. Zeitngen geen nur eine sehr gro geshätzte Einshätzung es ereitungsufwnes. 1. ufwärmüung: L = { n k k = n, k 1}, geen ie G n. (Typ1, 5min) 2 2. G ht ie Prouktionsregeln:,,, geen ie L n. Tipp: Vergessen ie niht ie Werteereihe für ie Inizes! (Typ1, 10min) 3. L = {() n l n+1 n, l 0}, geen ie G n. (Typ2, 15min) 4. G ht ie Prouktionsregeln:,,, geen ie L n. (Typ2, 10min) 5. L = { k ( n+2 m n ) k+1 k mo 2 = 0; k, n, m 0}, geen ie G n. (Typ3, 20min) 6. G ht ie Prouktionsregeln,, geen ie L n.(typ2, 15min) Für hlue: Üerlegen ie ws sih änert, wenn ußerem (lso ) gilt. (Typ2, zusätzlih 5min) 7. L = { n m n l l, m, n 0}\{w R w w {,,, } + }, geen ie G n. Tipp: Üerlegen ie welhe Wörter mit w 4 es git. (Typ4, 20min) 8. G ht folgene Prouktionsregelns:,, geen ie L n? (Typ4, 20min) 1
Üungen zu CFGs: Lösungen 1. Lösung: sowohl n ls uh k urh ie eingung k = n von n hängen müssen 2 lle Terminl 's un 's vom selen ihtterminl erzeugt weren. Um immer hl so viele 's wie 's zu erhlten erzeugen wir einfh immer zwei 's un ein gleihzeitig. Möglihe Prsäume sin: 2. Lösung: L = { n m m m, n 1} urh s trtsymol wir irekt ein un ein erzeugt un es führt keine Regel zurük zu, somit wissen wir, ss un vollstänig unhängig von einner sin. Es ist einfh zu erkennen, ss elieig lnge Ketten von 's, jeoh minestens eins, erzeugt. erzeugt wieerum elieig viele 's un 's jeoh immer gleih viele un in fester Reihenfolge. Möglihe Prsäume: 3. Lösung:,, 2
() n un n+1 vom gleihen Inex n hängen müssen sie vom selen ihtterminl erzeugt weren. Um genu ein mehr zu erhlten ls 's hängt unsere erste Regel einfh ein gnz ns Ene ller erzeugten Wörter. ie zweite Regel erzeugt nun jeweils 's un 's in gleiher Menge. es jeoh uh 's zwishen en 's un 's geen knn expnieren wir zunähst nh. ie ritte Regel ermögliht es un nun entweer zurük zu zu expnieren un somit in einer -hleife elieig viele 's un 's zu erzeugen, oer elieig viele 's zu erzeugen, oer irekt ufzuhören. Möglihe Prsäume: 4. Lösung: L = {() n n+1 m n, m 0} erzeugt zwei von einner unhängige ihttermin un wie rn zu erkennen ist, ss in keiner weiteren Regel vorkommt un un jeweils nur sih selst rekursiv enthlten. ußerem wir ein zusätzlihes in er Mitte erzeugt, ies führt zum +1 es n+1 in er Kettensprhe. erzeugt rekursiv elieig viele Ketten er Form () n n, lso gleih viele 's un 's, oer terminiert mit. Zu ehten ist, ss lle von erzeugten 's irekt vor em urh erzeugten stehen, somit ergit sih () n n+1. Zuletzt erzeugt ie Expnsion von rekursiv eine elieige nzhl 's oer gr keine, wourh wir ein unhängiges m erhlten. Ein mögliher Prsum: 3
5. Lösung: K, KK, K Z, Z Z C, C C Zullererst üerlegt mn sih ie möglihen Werteereihe er Inizes. k = {0, 2, 4, 6,...}, n+2 = {2, 3, 4, 5,...}, n, m = {0, 1, 2, 3,...}, k+1 = {1, 3, 5, 7,...}. Hierus ergit sih s kleinste möglihe Wort "". Um en nähsten hritt zu vereinfhen lenen wir jetzt en gesmten Klmmerinhlt us un ersetzen ihn urh K, lso k (} n+2 {{ m n }) k+1 = k K k+1 Wir enötigen jetzt lso eine K Regel ie s +1 usgleiht mit wir nur noh k K k ilen müssen ws mit em ülihen Verfhren zur Prouktion gleih lnger Ketten funktioniert. Unsere ersten Regel lutet lso K, sie prouziert ein einzelnes extr K (+1) un üergit ie weitere Prouktion n. ls nähstes enötigen wir eine Regel zur Prouktion gleih lnger Ketten von 's un K's. Zu ehten ist hier, ss iese Ketten eine Länge von 0 hen können oer eine gere nzhl n Zeihen hen müssen. KK erfüllt iese nforerungen. Jetzt können wir uns er Prouktion es Inhltes von K zuwenen. uh hier hen wir wieer ein Ungleihheit zwishen zwei Inizes mit gleiher sis uszugleihen, nämlih s +2 in ( n+2 n ). ies erreihen wir wie oen urh ie Einführung einer Regel ie zwei 's vorne nhängt un ie Prouktion es verleienen ( n n ) n ie nähte Regel weitergit. Wir nennen iesen verleienen Teil willkürlih Z un erhlten so unsere Regel K Z. Z muss nun nh em ülihen Verfhren gleih viele 's un 's prouzieren, lso Z Z. wir m Ene jeoh vielleiht noh 's prouzieren müssen erweitern wir Z um eine möglihe C Expnsion un erhlten Z Z C. C expniert nun gnz einfh zu einer elieigen, uh leeren, Kette von 's C C. Mögliher Prsum (üersihtshler mit nur einem K-Element-Teilum): 4
K K K Z Z C C 6. Lösung: L = {() k () k k 0} Regel Eins prouziert zunähst ein un ein, ies stellt s minimle Wort r ( nh expnieren knn ), wir shreien. un hen wir zwei rekursive hleifen ürig ie zusmmen eine gleihe nzhl n 's, 's, 's un 's prouzieren. Wir müssen iese jetzt nur noh in ie rihtige Reihenfolge ringen. wir mit er Expnsion von eginnen müssen erhlten wir zunähst. Zwishen ieses un muss jeoh jeweils ein s ei er Expnsion von entsteht, lso. erüksihtigen wir nun noh ie möglihe Rekursion un fügen unser nfänglihes n so erhlten wir ie Lösung: () k () k zu er wir leiglih noh en Wertereih von k k 0 ls efinieren müssen um uh s Minimlwort '' zuzulssen. Zustzlösung: L = {() k () m () k k 0 un 1 m 0} Wie oen jeoh müssen wir jetzt ehten, ss s Wort uh urh eine Expnsion enen knn. Wir fügen lso einfh in er Mitte ein () m, welhes ie letzten entstnenen Terminlsymole vor er -Expnsion erstellt. Wir egrenzen ies urh efinition es entsprehenen Werteereihs von m uf ein (Wort enet urh -Expnsion) oer null (Wort enet uf -Expnsion) Vorkommen. Möglihe Prsäume: 5
ohne mit 7. Lösung:,,, Zuerst einml müssen wir lle Wörter usshließen ie kein enthlten, iese utomtish Plinrome (w R w) sin. Einzige usnhme sin Ketten er Form m l un, somit erhlten wir, s entweer minestens ein erzwingt oer 's usshließt. Regel zwei muss nun Ketten er Form n n generieren, ws nh em ülihen hem zu führt. wir noh 's zwishen en 's enötigen erweitern wir, so ss 's nh en 's prouziert weren können un erhlten. Zuletzt fügen wir noh zwei Regeln hinzu ie elieig lnge Ketten von 's un 's prouzieren. Zu ehten ist hier, ss iese Regeln uh prouzieren können um Ketten us nur 's zw. nur 's zu ermöglihen. Möglihe Prsäume: 8. Lösung: L = {w n 1 m w n 2 n 0; m 1; w 1 {, }; w 2 {, }} Wir sehen uf en ersten lik, ss eine elieig lnge Kette von 's jeoh minestens eines prouziert un s iese Kette in er Mitte jees Wortes er 6
Zielsprhe stehen muss, lso notieren wir zunähst L = { m m 1}. Wir sehen weiterhin, ss ie Teilketten vor un hinter en 's gleih lng sein müssen, un jeweils genu ein Terminlsymol uf eien eiten prouzieren, lso L = {w 1 w 2 w 1 = w 2 }. elieig nh oer expnieren knn muss ie linke Teilkette eine Mishung us 's un 's un ie rehts eine us 's un 's sein. lso w 1 {, } un w 2 {, }. wir jeoh ie Länge von w 1 un w 2 vergleihen wollen shreien wir stttessen {w1 n w2 n w 1 {, }; w 2 {, }}. Zuletzt fehlt noh ie eingung n 0 ei irekter nwenung von uf s trtsymol keine w1 n w2 n Ketten entstehen. Möglihe Prsäume: 7
Prsing-Zwishenklusurufgen Hier folgen ufgen us er Zwishenklusur es Prsing-Kurses von Lur Kllmeyer us em 2011. 1. (Zwishenklusur: ufge 6) Welhe prhe wir von er CFG mit = {,, }, T = {, }, trtsymol un folgenen Prouktionen erzeugt?,,. Prsing-Zwishenklusurufgen: Lösungen 1. Lösung: L = {w w {, } +, w = 2 w } eim ersten lik uf ie Prouktionsregeln stellt mn fest, ss lle Terminlsymole us Expnsionen elieiger ihtterminlsymole erzeugt weren können, jeoh knn nur eine Teilkette mit un nur eine Teilkette mit finl shließen. ußerem sheint es ls o ie Prouktionsregeln elieige "gemishte"rekursion zwishen en vershieenen Regeln ermöglihen. rus können wir shließen, ss es sih ei er erzeugten prhe niht um eine prhe mit einfhen hängigkeiten wie etw () n () n hnelt. Gehen wir lso hritt für hritt vor: Zuerst ermitteln wir welhe minimlen Wörter ie gesuhte prhe ht, zu shuen wir uns n un stellen fest, s nur '', '' un '' in Frge kommen. ei sehr shrfem hinsehen könnten wir hier ereits feststellen, ss iese 3 Wörter ie Gemeinsmkeit hen jeweils ein un zwei 's zu hen un es knn keine weiteren Wörter mit w = 3 geen ie iese Eigenshft hen. nlysieren wir nun zunähst un, wir sehen, ss un jeweils ein un generieren oer eine neue Teilkette ns Ene nhängen, wir können lso von usgehen, ss unsere Zielsprhe von er Form n mit n 1 ist. Es gilt nun lso lle Eigenshften er Teilketten zu finen. huen wir uns lso nun n. Wir stellen fest, ss hier s ihtterminl unüliherweise zu einem Terminl un weiteren ihttermin expniert. etrhten wir nun en Fll in em lle iese ihttermin urh un expnieren so erhlten wir. iese 3 Teilketten hen jeweils 2 's un 2 's, eenken wir jeoh, ss wir ursprünglih ein expniert hen un zählen entsprehen ein weniger, 8
so hen wir wieer unser Verhältnis von einem zu zwei 's für ie Restkette, ss wir ereits ei er Ermittlung er Minimlwörter festgestellt htten. huen wir uns unter en selen Gesihtspunkten n, so stellen wir fest, s uh hier ein uf zwei 's kommt ( züglih einem wegen -Expnsion). Wir wissen nun lso, ss lle Teilketten ie eingung w = 2 w einhlten, lso oppelt so viele 's wie 's enthlten. Es ist jeoh niht zu erkennen, ss iese 's un 's in einer estimmten Reihenfolge stehen, es ist lso von {, } uszugehen. llerings hen wir ei er uhe nh Minimlwörtern eine Minestlänge von 3 festgestellt, lso {, } +. Fügen wir nun lle unsere Informtionen zusmmen so erhlten wir ie korrekte Lösung L = {w w {, } +, w = 2 w }, woei Wörter er Länge 1 un 2 urh s Verhältnis von 's zu 's utomgish usgeshlossen weren. Möglihe Prsäume: 9