Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Nico Döttling Dirk Achenbach Tobias Nilges Vorlesung Theoretische Grundlagen der Informatik Übungsblatt Nr. 2 Lösungsvorschlag Aufgabe 1 (K) (4 Punkte): Konstruktion äquivalenter Automaten und Automatenminimierung Der ebenso geniale wie unberechenbare Wissenschaftler und Superbösewicht Doktor Meta hat den Eingang zu seinem geheimen Labor mit einem Zugangsschutz versehen. Die Tür öffnet sich erst, wenn auf einem Tastenfeld (Σ = {0, 1, · · · , 9}) eine korrekte PIN eingegeben wird. Doktor Meta hat die PIN-Eingabe als endlichen Automaten A implementiert, der durch den folgenden Zustandsübergangsgraphen gegeben ist: 2 q0 ε, 2 1, 3 1, 3 q1 1, 7 1, 7 q2 q4 ε q3 ε ng Existiert für eine gegebene Eingabe ein Pfad zu einem akzeptierenden Zustand, öffnet sich die Tür zum Labor. Sonst öffnet sich eine Falltür zu einem Haifischbecken (mit „Lasern“). Auf diese Weise kann Doktor Meta jedem seiner Handlanger eine individuelle PIN zuteilen. Aufgrund jüngerer Vorfälle im Zusammenhang mit dem System ist Doktor Meta beunruhigt. i.) Geben Sie die Zustandsübergangstabelle für A an. (0,5P) Lö su ii.) Wandeln Sie den Automaten in einen deterministischen Akzeptor um. (1P) iii.) Minimieren Sie den Automaten. Zeichnen Sie den Automatengraphen. (1P) iv.) Geben Sie die vom Automaten akzeptierte Sprache (die „Meta-PIN“) als regulären Ausdruck an. Geben Sie weiter eine rechtslineare Grammatik an, die sie erzeugt. Ist Doktor Meta zurecht beunruhigt? (1,5P) Lösungsvorschlag i.) q0 q1 q2 q3 q4 ε q1 ∅ q1 q4 ∅ 1 ∅ q2 q2 , q4 ∅ q3 2 q1 q1 ∅ ∅ ∅ 3 ∅ q2 q2 ∅ ∅ 7 ∅ ∅ q4 ∅ q3 wobei Σ = {0, 1, . . . , 9}. Nicht definierte Übergänge führen in den Fehlerzustand. Es war nicht gefordert, die Tabelle vollständig anzugeben, ist aber selbstverständlich erlaubt. ii.) ii {q0 , q1 } {q1 , q2 } {q1 } {q1 , q2 , q4 } {q4 } {q1 , q2 , q3 , q4 } {q3 , q4 } ∅ 1 {q1 , q2 } {q1 , q2 , q4 } {q1 , q2 } {q1 , q2 , q3 , q4 } {q3 , q4 } {q1 , q2 , q3 , q4 } {q3 , q4 } ∅ 2 {q1 } {q1 } {q1 } {q1 } ∅ {q1 } ∅ ∅ 3 {q1 , q2 } {q1 , q2 } {q1 , q2 } {q1 , q2 } ∅ {q1 , q2 } ∅ ∅ 7 ∅ {q4 } ∅ {q3 , q4 } {q3 , q4 } {q3 , q4 } {q3 , q4 } ∅ An dieser Stelle ist es sinnvoll, Zustandsbezeichnungen geeignet zu substituieren, aber nicht notwendig. iii.) Für eine Zustandsmenge {qi , qi+1 , . . . , qi+j } (aufsteigend sortiert) definieren wir einen neuen Zustand qi i+1 ... i+j und substituieren entsprechend: q1 – – 2 1 1 1 1 q12 – – – 1 1 1 1 q124 – – – – 2 ≡ 2 q4 – – – – – 2 ≡ q1234 – – – – – – 2 q34 – – – – – – – ng q01 q1 q12 q124 q4 q1234 q34 q01 – ≡ 2 1 1 1 1 Lö su 3 7 [q12 ] 1, 7 [q4 ] 1 1, 3 2 7 3 [q01 ] 2 2 [q124 ] 1 iv.) Den regulären Ausdruck entwickelt man am einfachsten aus dem ursprünglich gegebenen Automaten: (2 + ε)(2∗ (1 + 3))+ (1 + 7)+ Die Grammatik lesen wir aus dem minimierten, deterministischen Automatengraphen ab: S → 1A | 2S | 3A, A → 1C | 2S | 3A | 7B, B → λ | 1B | 7B, C → λ | 1C | 2S | 3A | 7B iii Doktor Meta ist zurecht beunruhigt. Die kürzesten akzeptierten PINs haben die Länge 2 und es gibt vier Stück von ihnen (11, 17, 31, 37). Raten Eindringlinge unkoordiniert 4 eine zweistellige PIN, ist die Erfolgswahrscheinlichkeit pro Versuch |Σ|4 2 = 100 . Es ist also ein erfolgreicher Einbruch für je 25 Eindringlinge zu erwarten. (Korrekturhinweis: Jede andere sinnvolle Aussage ist auch richtig zu bewerten.) Aufgabe 2 (K) (4 Punkte): Automatenkonstruktion Zwei Zahlen in Binärdarstellung sollen verglichen werden. Sie werden als zwei Worte a = an · an−1 · . . . · a1 ∈ {0, 1}∗ und b = bn · bn−1 · . . . · b1 ∈ {0, 1}∗ gleicher Länge n notiert. (Kleinere Zahlen werden mit führenden Nullen dargestellt.) a) wenn a > b, b) wenn b > a, c) sonst. ng i.) Die Zahlen sollen als Wort der Form an · bn · an−1 · bn−1 · . . . · a1 · b1 an einen Akzeptor übergeben werden, mit dem jeweils größtwertigen Bit zuerst. Konstruieren Sie jeweils einen DEA, der genau dann akzeptiert Lö su Zeichnen Sie die Automatengraphen. Geben Sie reguläre Ausdrücke für die von den Automaten akzeptierten Sprachen La>b , Lb>a , La=b an. (1,5P) ii.) Die Zahlen werden nun mit dem niederwertigsten Bit zuerst übergeben, also in der Form a1 · b1 · a2 · . . . · an · bn . Konstruieren Sie analog zur vorigen Teilaufgabe die drei DEAs. (1P) iii.) Wie lautet die Vereinigung der drei akzeptierten Sprachen La>b ∪La<b ∪La=b ? Wie lautet diese Sprache in Worten? Zeichnen Sie einen DEA, der genau die Vereinigung akzeptiert. (0,5P) iv.) Kann man einen endlichen Automaten angeben, der genau dann akzeptiert, wenn a > b, wobei zuerst a und dann b übergeben werden, also in der Form an ·an−1 ·. . .·a1 ·bn ·bn−1 ·b1 ? Warum, wie? Oder warum nicht? Beweisen Sie Ihre Behauptung. (1P) Lösungsvorschlag i.) a) iv 0, 1 1 q2 q4 q5 0 0, 1 0 q0 1 1 0, 1 0 q1 q3 q6 0, 1 (Korrekturhinweis: Der Automat enthält einen unnötigen Zustand. Lösungen sind sowohl mit wie auch ohne diesen Zustand richtig.) b) ng La>b = (11 + 00)∗ 10((0 + 1)(0 + 1))∗ 0, 1 1 q2 0 q5 0, 1 Lö su 0 q4 q0 1 1 0 q1 0, 1 q3 q6 0, 1 (Korrekturhinweis: Der Automat enthält einen unnötigen Zustand. Lösungen sind sowohl mit wie auch ohne diesen Zustand richtig.) Lb>a = (11 + 00)∗ 01((0 + 1)(0 + 1))∗ c) v 0, 1 1 q2 q4 q5 0 0, 1 0 q0 1 1 0, 1 0 q1 q3 q6 0, 1 (Korrekturhinweis: Der Automat enthält unnötige Zustände. Lösungen sind sowohl mit wie auch ohne diese Zustände richtig.) ii.) ng La=b = (00 + 11)∗ a) q7 0, 1 Lö su 0 1 q2 1 q4 q5 0 1 0 q0 1 0 1 1 0 q1 0 q3 q6 0 0, 1 1 q8 Das Minimieren des Automaten war nicht gefordert. Dennoch: vi q2 0 0, 1 q0 1 0 1 1 q1 q3 q6 0 0, 1 b) ng q7 0, 1 0 1 1 q2 0 q5 1 Lö su 0 q4 q0 1 0 1 1 0 q1 0 q3 0 0, 1 Minimiert: vii q6 1 q8 1 0 q1 q4 q5 0 1 0, 1 0 q0 1 0, 1 q2 c) ng q7 0, 1 0 1 1 q2 0 q5 1 Lö su 0 q4 q0 1 0 1 1 0 q1 0 q3 0 0, 1 Minimiert: viii q6 1 q8 q2 0 1 0 q0 q3 0, 1 1 0 1 q1 iii.) La>b ∪ La<b ∪ La=b = ((0 + 1)(0 + 1))∗ . Es handelt sich um die Sprache aller geradzahliger Worte über dem Alphabet Σ = {0, 1}. Der folgende DEA akzeptiert sie: 0, 1 q1 ng q0 0, 1 iv.) Ist n beschränkt, so ist die akzeptierte Sprache endlich und die Konstruktion trivial. Ist n unbeschränkt, kann ein solcher Automat nicht existieren. Er müsste sich a „merken“, bevor er b einliest. Lö su Wir führen einen Beweis durch Widerspruch. Sei A = (Q, {0, 1}, δ, q0 , F) ein endlicher Automat, der an ·an−1 ·. . .·a1 ·bn ·. . .·b1 ∀a, b ∈ {0, 1}n , n ∈ N genau dann akzeptiert, wenn a > b. Lies ein beliebiges a ∈ {0, 1}n mit n > ld |Q| ein und stoppe die Berechnung. Da es 2n > |Q| verschiedene Zeichenfolgen der Länge {0, 1}n gibt, gibt es a und a0 der Länge n, nach deren Einlesen A nun im gleichen Zustand ist, obwohl a 6= a0 . Sei o. B. d. A. a0 > a. Wähle nun b = a als zweite Eingabe in A. Der Automat akzeptiert nicht, da a = b. Lies nun a0 · b in den Automaten ein. Da a0 > b, akzeptiert er. Dies ist ein Widerspruch dazu, dass er nach dem Einlesen von a und a0 im gleichen Zustand war und danach dieselbe Eingabe b erfolgte. E (Hinweis: Ein Beweis mit der Anwendung des Pumping Lemmas genügt hier nicht ganz, wenn so nur gezeigt wird, dass der Automat nicht erkennen kann, dass Eingaben nicht „wohlgeformt“ (|a| = 6 |b|) sind. Es geht hier aber darum, dass der Automat nicht zählen kann, selbst wenn alle Eingaben per Definition wohlgeformt sind. (Es könnte ja sein, dass es einen Automaten gibt, der erkennen kann, ob a > b, obwohl er nicht erkennen kann, wenn er eine nicht wohlgeformte Eingabe erhält. Warum das nicht sein kann, thematisiert diese Aufgabe.) Es gibt eine gültige Form des Beweises mit Pumping Lemma: Dabei wird w = 0n 10n+1 (a > b) gewählt. Dann enthält y für jede Zerlegung w = xyz mit |y| ≥ 1 und |xy| ≤ n keine 1 und durch (geradzahliges!) „Aufpumpen“ von y 2i wird a < b und w 6∈ La>b . E) ix Aufgabe 3 (K) (4 Punkte): Grenzen endlicher Automaten Zeigen Sie unter Zuhilfenahme des Pumping Lemmas für reguläre Sprachen, dass die folgenden Sprachen nicht regulär sind: i.) L1 = {0m 12m | m > 0}. (1P) ii.) L2 = {w ∈ {0, 1}∗ | w ist ein Palindrom}. (1P) iii.) L3 = {0n 1m 0k | m, n, k ≥ 0, m − n > k}. (1P) iv.) L4 = {w1 w2 ∈ {a, b, c}∗ | w1 ∈ {a, b}∗ , w2 ∈ {b, c}∗ , #a w1 + #b w1 = #b w2 + #c w2 }. Hier sei #x w die Häufigkeit des Vorkommens eines Zeichens x ∈ {a, b, c} in einem Wort w ∈ {a, b, c}∗ . (1P) Lösungsvorschlag ng i.) Wir wählen das Wort s = 0l 12l , wobei l = p gilt. Dann ist für s = xyz: |xy| ≤ p und damit xy = 0l . Daraus folgt x = 0l−m , y = 0m und z = 12l . Wäre L regulär, müsste auch s0 = xy 2 z = 0l+m 12l in L liegen (Pumping Lemma). Dies ist aber offensichtlich nicht der Fall. E Lö su ii.) Wir wählen das Wort s = 0l 10l , wobei l = p gilt. Dann ist für s = xyz: |xy| ≤ p und damit xy = 0l . Daraus folgt x = 0l−m , y = 0m und z = 10l . Wäre L regulär, müsste auch s0 = xy 2 z = 0l+m 10l in L liegen (Pumping Lemma). Dies ist aber offensichtlich nicht der Fall. E iii.) Wir wählen das Wort s = 0l 12l (also m = l, n = 2l und k = 0), wobei l = p gilt. Damit kann die Argumentation aus Teilaufgabe i.) verwendet werden. E iv.) Wir wählen das Wort s = al cl , wobei l = p gilt. Dann ist für s = xyz: |xy| ≤ p und damit xy = al . Daraus folgt x = al−m , y = am und z = cl . Wäre L regulär, müsste auch s0 = xy 2 z = al+m cl in L liegen (Pumping Lemma). Dies ist aber offensichtlich nicht der Fall. E Aufgabe 4 (K) (4 Punkte): Chomsky-Normalform Gegeben sei die folgende Grammatik G = ({0, 1}, {A, B, C, D, E, F, G, S}, S, P), wobei P gegeben ist durch: S → 01A A → 1B|0C B → 0A|G C → D|AEG D → C|0 E → F |G|01 x F →1 G→ε Überführen Sie G in Chomsky-Normalform, indem Sie in folgenden Schritten vorgehen: i.) Eliminieren Sie die ε-Regeln. (1P) ii.) Eliminieren Sie die Kettenregeln. (1P) iii.) Eliminieren Sie die nutzlosen Variablen. (1P) iv.) Transformieren Sie die Grammatik in die Chomsky-Normalform. (1P) Lösungsvorschlag Lö su ii.) Eleminieren des Zyklus C ↔ D. Entfernen der Kettenregeln: S → 01A A → 1B|0C|1 B → 0A C → AEG|AE|AG|1B|0C|1|0 D → 0|AEG|AE|AG|1B|0C|1 E → 01|1 F →1 ng i.) Folgende Variablen bilden auf ε ab: {B, E, G} Daraus ergeben sich folgende Produktionen: S → 01A A → 1B|0C|1 B → 0A|G C → D|AEG|A|AE|AG D → C|0 E → F |G|01 F →1 iii.) F kann nicht erreicht werden und G war eine ε-Produktion. Entfernen der nutzlosen Variablen: S → 01A A → 1B|0C|1 B → 0A C → AE|1B|0C|1|0 E → 01|1 iv.) Chomsky-Normalform: S → DA A → Y B|XC|1 B → XA C → AE|Y B|XC|1|0 xi D → XY E → XY |1 X→0 Y →1 Aufgabe 5 (*): Abgeschlossenheit kontextfreier Sprachen Zeigen Sie: i.) Der Schnitt einer regulären und einer kontextfreien Sprache ist kontextfrei. ii.) Der Schnitt zweier kontextfreier Sprachen ist im allgemeinen nicht kontextfrei. iii.) Kontextfreie Sprachen sind unter Vereinigung abgeschlossen. Lösungsvorschlag ng iv.) Kontextfreie Sprachen sind nicht unter Komplementbildung abgeschlossen. Lö su i.) Der Schnitt einer regulären und einer kontextfreien Sprache ist kontextfrei. Lösung Sei M = (Q, Σ, δ, q0 , F) ein deterministischer endlicher Automat der eine reguläre Sprache L1 erkennt, K = (W, Σ, Γ, ρ, w0 , H) ein Kellerautomat der eine kontextfreie Sprache L2 erkennt. Wir konstruieren einen Kellerautomaten R der L1 ∩ L2 erkennt. Sei dazu R = (Z, Σ, Γ, φ, z0 , E). Wir setzen Z = Q × W, z0 = (q0 , w0 ) und E = F × H. Die Zustandsübergangsrelation φ : Z × (Σ ∪ {}) × (Γ ∪ {}) → P(Z × (Γ ∪ {})) sieht folgendermaßen aus. φ((qi , wj ), , g) = {((qi , wj0 ), g 0 )|(wj0 , g 0 ) ∈ ρ(wj , , g)} und für s 6= φ((qi , wj ), s, g) = {((δ(qi , s), wj0 ), g 0 )|(wj0 , g 0 ) ∈ ρ(wj , s, g)}. Es ist nun klar dass R ein Wort w genau dann akzeptiert, wenn sowohl M als auch K w akzeptieren, da R simultan M und K simuliert. ii.) Der Schnitt zweier kontextfreier Sprachen ist im allgemeinen nicht kontextfrei. Lösung Die Sprachen L1 = {an bn cm |n, m ∈ N} und L2 = {an bm cm |n, m ∈ N} sind beide kontextfrei. Ihr Schnitt L3 = {an bn cn |n, m ∈ N} ist nicht kontextfrei, wie in der Vorlesung mit dem Pumping-Lemma für kontextfreie Sprachen gezeigt wurde. iii.) Kontextfreie Sprachen sind unter Vereinigung abgeschlossen. Lösung Sind G1 = (T1 , V1 , S1 , P1 ) und G2 = (T2 , V2 , S2 , P2 ) kontextfreie Grammatiken mit T1 ∩ T2 = ∅ und V1 ∩ V2 = ∅, so ist G = (T1 ∪ T2 , V1 ∪ V2 ∪ {S}, S, P1 ∪ P2 ∪ {S → S1 |S2 }), mit einem neuen Nichtterminal S eine kontextfreie Grammatik für L1 ∪ L2 . xii Lö su ng iv.) Kontextfreie Sprachen sind nicht unter Komplementbildung abgeschlossen. Lösung Wären kontextfreie Grammatiken und Komplementbildung abgeschlossen, so wären sie auch unter Schnitt abgeschlossen, denn L1 ∩ L2 = L1 ∪ L2 . Dies ist jedoch ein Widerspruch zu (ii). xiii