Tutoraufgabe 1 (ɛ-produktionen):

Ähnliche Dokumente
Theoretische Grundlagen der Informatik

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Automatentheorie und formale Sprachen

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 7

Musterlösung Informatik-III-Nachklausur

Theoretische Informatik

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Theoretische Grundlagen der Informatik

Grundlagen der Theoretischen Informatik

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Lösungen zu Übungsblatt 6

Informatik 3 Theoretische Informatik WS 2015/16

3 kontextfreie Sprachen

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

Zentralübung zur Vorlesung Theoretische Informatik

4.2 Die Chomsky Normalform

Ogden s Lemma: Der Beweis (1/5)

Theoretische Grundlagen der Informatik

A : z z A : z z : ( z, x, z ) δ

Formale Grundlagen der Informatik

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Automaten und formale Sprachen Notizen zu den Folien

Informales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Einführung in die Computerlinguistik

Übersicht. 3 3 Kontextfreie Sprachen

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

Automaten und formale Sprachen Notizen zu den Folien

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Übungsblatt Nr. 3. Lösungsvorschlag

Algorithmen und Datenstrukturen (EI)

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

10 Kellerautomaten. Kellerautomaten

Übungen zu Grundlagen der Theoretischen Informatik

Musterlösung Informatik-III-Klausur

Ogden s Lemma (T6.4.2)

Informatik III - WS07/08

Einführung in die Computerlinguistik. Chomskyhierarchie. Dozentin: Wiebke Petersen Wiebke Petersen Einführung CL (SoSe 2010) 1

1. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Ein Fragment von Pascal

Formale Grundlagen der Wirtschaftsinformatik

Lösungen zum Ergänzungsblatt 2

Beweis des Pumping Lemmas

Kontextfreie Sprachen

Theoretische Grundlagen der Informatik

Chomsky-Grammatiken 16. Chomsky-Grammatiken

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

I.5. Kontextfreie Sprachen

Kontextfreie Sprachen

Einführung in die Theoretische Informatik

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

F2 Zusammenfassung Letzte Tips zur Klausur

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Aufgabe Mögliche Punkte Erreichte Punkte a b c d Σ a b c d Σ x1 12

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

3.1 Kontextfreie Sprachen und Grammatiken 3.2 Ableitungsbäume 3.3 Die pre -Operation

Theoretische Grundlagen der Informatik

Grundbegriffe der Informatik Tutorium 12

Das Pumping Lemma der regulären Sprachen

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Klausur zur Vorlesung Einführung in die Theoretische Informatik

Kurz-Skript zur Theoretischen Informatik I

Alphabet, formale Sprache

Theorie der Informatik

Pumping-Lemma 2 Pumping-Lemma Sei L eine von einem endlichen Automaten erkannte Sprache. Dann existiert eine natürliche Zahl p N derart, dass jedes Wo

Formale Sprachen, Automaten, Compiler

Grundbegriffe. Grammatiken

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Grundlagen der Theoretischen Informatik

TU Berlin Nachklausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2012)

Theoretische Grundlagen der Informatik

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Transkript:

Prof aa Dr J Giesl Formale Systeme, Automaten, Prozesse SS 2010 M Brockschmidt, F Emmes, C Fuhs, C Otto, T Ströder Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus dem gleichen Tutorium bearbeitet werden Die Lösungen der Hausaufgaben müssen bis Mi, 30062010 im Tutorium abgegeben werden Alternativ ist es bis 17 Uhr möglich, diese in den Kasten im Flur des LuFG I2 einzuwerfen (Ahornstr 55, E1, 2 Etage) Namen und Matrikelnummern der Studierenden sowie die Nummer der Übungsgruppe sind auf jedes Blatt der Abgabe zu schreiben Heften bzw tackern Sie die Blätter! Die Tutoraufgaben werden in den jeweiligen Tutorien gemeinsam besprochen und bearbeitet Tutoraufgabe 1 (ɛ-produktionen): Überführen Sie die folgende Grammatik mit dem in der Vorlesung vorgestellten Verfahren in eine äquivalente Grammatik ohne ɛ-produktionen S HB H xt Ly T t ɛ L LL l ɛ B icj ɛ C CC D P D DD P ɛ P p ɛ Der Automat für pre ({ɛ}): P, D, C, B, L, T Es sind also P, D, C, B, L und T nullierbar Wir fügen die Produktionen B ij, L L, C C, D D, H xt y, H xly, H xy und S H hinzu und löschen danach T ɛ, L ɛ, B ɛ, D ɛ und P ɛ Es ergibt sich eine Grammatik mit den folgenden Produktionsregeln: 1

S HB H H xt Ly xt y xly xy T t L LL l L B icj ij C CC D P C D DD P D P p Hausaufgabe 2 (ɛ-produktionen): (2 Punkte) Überführen Sie die folgende Grammatik mit dem in der Vorlesung vorgestellten Verfahren in eine äquivalente Grammatik ohne ɛ-produktionen S (S + S) (L S) N N DA D 1 2 3 4 5 6 7 8 9 A AA 0 D ɛ L S ɛ Hinweis: ( und ) sind Terminalsymbole Der Automat für pre ({ɛ}): A, L Es sind also A und L nullierbar Wir fügen die Produktionen S ( S), A A und N D hinzu und löschen A ɛ und L ɛ Es ergibt sich eine Grammatik mit den folgenden Produktionsregeln: S (S + S) (L S) ( S) N N DA D D 1 2 3 4 5 6 7 8 9 A AA 0 D A L S 2

Tutoraufgabe 3 (Chomsky-Normalform): Überführen Sie die folgende Grammatik mit dem in der Vorlesung vorgestellten Verfahren in eine äquivalente Grammatik in Chomsky-Normalform S ab ba ABc B A SSa B cs bb b S R a B R a R b R b A AC R c S R c B R c R b R b B R b R b b A SD BD R b D B R c S R c B R c R b R b B R b R b C BR c R b R c D SR a BR a R b R a R a a R b b R c c Hausaufgabe 4 (Chomsky-Normalform): (4 Punkte) Überführen Sie die folgende Grammatik mit dem in der Vorlesung vorgestellten Verfahren in eine äquivalente Grammatik in Chomsky-Normalform S asbs C C cc c 3

S R a A R c C R c R c c A SB CB R c B B R b S R b C R b R c C R c C R c R c R a a R b b R c c Tutoraufgabe 5 (CYK-Algorithmus): Gegeben sei die folgende Grammatik G S SS R a A R b B R c C A R b R c R c R b B R a R c R c R a C R a R b R b R a R a a R b b R c c Testen Sie mit dem CYK-Algorithmus, ob die folgenden Wörter von G erzeugt werden a) w 1 = abccab b) w 2 = abcba w = a b c c a b a) 1 R a R b R c R c R a R b 2 C A B C 3 S S 4 5 6 S w 1 L(G) w = a b c b a b) 1 R a R b R c R b R a 2 C A A C 3 S S 4 5 4

w 2 / L(G) Hausaufgabe 6 (CYK-Algorithmus): (3 + 3 = 6 Punkte) Gegeben sei die folgende Grammatik G S R a A R e B R g C R l D R r E R a R a R e R e R g R g R l R l R r R r A SR a B SR e C SR g D SR l E SR r R a a R e e R g g R l l R r r Testen Sie mit dem CYK-Algorithmus, ob die folgenden Wörter von G erzeugt werden a) w 1 = regallager b) w 2 = allee w = r e g a l l a g e r a) 1 R r R e R g R a R l R l R a R g R e R r 2 S 3 A 4 S 5 C 6 S 7 B 8 S 9 E 10 S w 1 L(G) w = a l l e e b) 1 R a R l R l R e R e 2 S S 3 B 4 5 5

w 2 / L(G) Tutoraufgabe 7 (Greibach-Normalform): Verwenden Sie den Algorithmus aus der Vorlesung, um für die folgende Grammatik G eine Grammatik G in Greibach-Normalform mit L(G ) = L(G) zu bestimmen Verwenden Sie dabei die folgende Ordnung der Nichtterminale: S < A < B < C S AS SB B AC b C AB Die Regel B AC ist die echt verkleinernde Regel mit dem kleinsten linken Nichtterminal und wird ersetzt S AS SB B ac CBC b C AB Die Regel C AB ist die echt verkleinernde Regel mit dem kleinsten linken Nichtterminal und wird ersetzt S AS SB B ac CBC b C ab CBB Nun gibt es keine echt verkleinernden Regeln mehr Die Linksrekursion in den S-Regeln wird beseitigt Dabei wird das Nichtterminal Z als neues kleinstes Element eingeführt Z B BZ S AS ASZ B ac CBC b C ab CBB Die Linksrekursion in den C-Regeln wird beseitigt Dabei wird das Nichtterminal Y als neues kleinstes Element eingeführt Y BB BBY Z B BZ S AS ASZ B ac CBC b C ab aby 6

Nun gibt es keine verkleinernde Regel mehr Es bleibt, die auf manchen rechten Seiten führenden Nichtterminale zu eliminieren Das größte Nichtterminal (C) ist nach Konstruktion schon in Greibach Form Wir beginnen also mit B Nun folgt die Regel A CB Und nun die S-Regeln Y BB BBY Z B BZ Y BB BBY Z B BZ S AS ASZ B ac abbc aby BC b C ab aby Y BB BBY Z B BZ S AS ASZ A a abb aby B B ac abbc aby BC b C ab aby S as abbs aby BS asz abbsz aby BSZ A a abb aby B B ac abbc aby BC b C ab aby Nach dem Ersetzen in den Z- und Y -Regeln befindet sich die Grammatik in Greibach-Normalform: Y acb abbcb aby BCB bb acby abbcby aby BCBY bby Z ac abbc aby BC bb acz abbcz aby BCZ bz S as abbs aby BS asz abbsz aby BSZ A a abb aby B B ac abbc aby BC b C ab aby Hausaufgabe 8 (Greibach-Normalform): (5 Punkte) Verwenden Sie den Algorithmus aus der Vorlesung, um für die folgende Grammatik G eine Grammatik G in Greibach-Normalform mit L(G ) = L(G) zu bestimmen Verwenden Sie dabei die folgende Ordnung der Nichtterminale: S < A < B < C A SA B CA b C BB c 7

Die Regel A SA ist die echt verkleinernde Regel mit dem kleinsten linken Nichtterminal und wird ersetzt A ABA aa B CA b C BB c Die Regel C BB ist die echt verkleinernde Regel mit dem kleinsten linken Nichtterminal und wird ersetzt A ABA aa B CA b C CAB bb c Nun gibt es keine echt verkleinernden Regeln mehr Die Linksrekursion in den A-Regeln wird beseitigt Dabei wird das Nichtterminal Z als neues kleinstes Element eingeführt Z BA BAZ A aa aaz B CA b C CAB bb c Die Linksrekursion in den C-Regeln wird beseitigt Dabei wird das Nichtterminal Y als neues kleinstes Element eingeführt Y AB ABY Z BA BAZ A aa aaz B CA b C bb c bby cy Nun gibt es keine verkleinernde Regel mehr Es bleibt, die auf manchen rechten Seiten führenden Nichtterminale zu eliminieren Das größte Nichtterminal (C) ist nach Konstruktion schon in Greibach Form Wir beginnen also mit B Y AB ABY Z BA BAZ A aa aaz B bba ca bby A cy A b C bb c bby cy 8

Nun folgt S, da die A-Regeln ebenfalls schon die gewünschte Form haben Y AB ABY Z BA BAZ S aab aazb a A aa aaz B bba ca bby A cy A b C bb c bby cy Nach dem Ersetzen in den Z- und Y -Regeln befindet sich die Grammatik in Greibach-Normalform: Y aab aazb aaby aazby Z bbab cab bby AB cy AB ba bbaaz caaz bby AAZ cy AAZ baz S aab aazb a A aa aaz B bba ca bby A cy A b C bb c bby cy Tutoraufgabe 9 (Pumping-Lemma): Prüfen Sie, ob folgende Sprachen über dem Alphabet Σ = {a, b, c} kontextfrei sind Falls die Sprache nicht kontextfrei ist, beweisen Sie dies mit Hilfe des Pumping-Lemmas für kontextfreie Sprachen Falls die Sprache kontextfrei ist, geben Sie eine CFG an, welche die Sprache erzeugt a) L 1 = {(ab) n (ca) n (bc) n n 0} b) L 2 = {a n b 2n c n 0} a) Sei n N Wir wählen das Wort z = (ab) n (ca) n (bc) n L 1 Sei uvwxy = z eine Zerlegung mit vwx n und vx > 0 Wir wählen nun i = 0 und betrachten das Wort z = uwy Wegen vwx n gibt es nur zwei Fälle Falls (bc) n ein Teilwort von y ist, muss z zu wenige ab oder ca Teilworte enthalten und es gilt z / L 1 Falls (ab) n ein Teilwort von u ist, muss z zu wenige ca oder bc Teilworte enthalten und es gilt wiederum z / L 1 Damit ist L 1 nicht kontextfrei b) L 2 ist kontextfrei mit L 2 = L(G) für G wie folgt: S Ac A aabb ɛ 9

Hausaufgabe 10 (Pumping-Lemma): (3 + 3 + 3 = 9 Punkte) Prüfen Sie, ob folgende Sprachen über dem Alphabet Σ = {a, b, c} kontextfrei sind Falls die Sprache nicht kontextfrei ist, beweisen Sie dies mit Hilfe des Pumping-Lemmas für kontextfreie Sprachen Falls die Sprache kontextfrei ist, geben Sie eine CFG an, welche die Sprache erzeugt Wir erinnern an die Funktionen z für ein Zeichen z Σ, welche die Anzahl der Zeichen z in einem Wort zählen a) L 3 = {a n b 2n c 3n n 0} b) L 4 = {w Σ a (w) = b (w) = c (w)} c) L 5 = {a n b n2 n 0} a) Sei n N Wir wählen das Wort z = a n b 2n c 3n L 3 Sei uvwxy = z eine Zerlegung mit vwx n und vx > 0 Wir wählen nun i = 0 und betrachten damit das Wort z = uwy Wegen vwx n gibt es nur zwei Fälle Fall vwx = a k b l für k, l N 0 : Da vx > 0 gilt, muss mindestens eins von beiden nicht-leer sein Durch das Löschen von v und x aus z erhalten wir also ein Wort, das weiterhin mit c 3n endet, die Zahl der a oder b ist aber strikt kleiner geworden und daher gilt z L 3 Fall vwx = b k c l für k, l N 0 : Analog zum vorherigen Fall enthält z mindestens ein b oder c zu wenig und wieder gilt z / L 3 Die Fälle vwx = a k, vwx = b k und vwx = c k sind in den beiden betrachteten Fällen enthalten, da dort k bzw l jeweils als 0 gewählt werden können Die Bedingungen des Pumping Lemmas gelten also nicht für die Sprache L 3 und das Wort z Daher ist L 3 keine kontextfreie Sprache b) Sei n N Wir wählen das Wort z = a n b n c n L 4 Sei uvwxy = z eine Zerlegung mit vwx n und vx > 0 Wir wählen nun i = 0 und betrachten das Wort z = uwy Wegen vwx n gibt es nur zwei Fälle Fall vwx = a k b l für k, l N 0 : Da vx > 0 gilt, muss mindestens eins von beiden nicht-leer sein Durch das Löschen von v und x aus z erhalten wir also ein Wort z, das weiterhin mit c n endet, die Zahl der a oder b ist aber strikt kleiner geworden und daher gilt z L 4 Fall vwx = b k c l für k, l N 0 : Analog zum vorherigen Fall enthält z mindestens ein b oder c zu wenig und wieder gilt z L 4 Die Fälle vwx = a k, vwx = b k und vwx = c k sind in den beiden betrachteten Fällen enthalten, da dort k bzw l jeweils als 0 gewählt werden können Die Bedingungen des Pumping Lemmas gelten also nicht für die Sprache L 4 und das Wort z Daher ist L 4 keine kontextfreie Sprache c) Sei n N Wir wählen das Wort z = a n b n2 L 5 Sei uvwxy = z eine Zerlegung mit vwx n und vx > 0 Wir wählen nun i = 2 und betrachten das Wort z = uv 2 wx 2 y Falls vwx L(a ) oder vwx L(b ), gilt direkt z / L 5, da nur die Anzahl von a s oder b s verändert wird und die Bedingung a (z ) = b (z ) 2 verletzt wird Sei also vwx = a k b l Falls v = a k b t oder x = a t b l ist, gilt z = uvvwxxy = ua k b t a k b t wxxy bzw z = uvvwa t b l a t b l y, dh z enthält das Teilwort ba und damit ist z L 5 10

Im letzten verbleibenden Fall gilt v = a p und x = b q für p, q N 0 Dann ist w = a k p b l q und z = uvvwxxy = a n k a p a p a k p b l q b q b q b n2 q = a n+p b n2 +q Es gilt (n + p) 2 = n 2 + 2np + p 2 Damit z L 5 gilt, müsste also n 2 + 2np + p 2 = n 2 + q 2np + p 2 = q gelten Wegen n vwx q ist dies ein Widerspruch und es gilt z / L 5 Damit ist L 5 nicht kontextfrei Hausaufgabe 11 (Pumping-Lemma): (2 Punkte) Zeigen Sie, dass das Pumping-Lemma für kontextfreie Sprachen für jede endliche Sprache erfüllt ist Beweisen Sie dazu die folgende Aussage: Sei L eine endliche Sprache Dann existiert ein n N, sodass für jedes z L mit z n gilt, dass Wörter u, v, w, x, y existieren mit z = uvwxy, vwx n und vx > 0, sodass für jedes i N gilt, dass uv i wx i y L Sie dürfen in diesem Beweis nicht verwenden, dass jede kontextfreie Sprache das Pumping-Lemma für kontextfreie Sprachen erfüllt Sei L eine endliche Sprache Sei n N größer als die Länge aller Wörter in L Dann gibt es kein Wort z L mit z n und die Aussage gilt trivialerweise Alternativer Beweis mit Hilfe des Pumping-Lemmas für reguläre Sprachen: Sei L eine endliche Sprache Da L regulär ist, gilt nach dem Pumping-Lemma für reguläre Sprachen, dass ein n N existiert, sodass für jedes z L mit z n gilt, dass Wörter r, s, t existieren mit z = rst, rs n und s > 0, sodass für jedes i N gilt, dass rs i t L Wähle u = v = ɛ, w = r, x = s und y = t Dann gilt vwx = rs n, vx = s > 0 und uv i wx i y = rs i t L für alle i N Damit ist die Aussage bewiesen 11