Theoretische Informatik 2 Sommersemester 2016 Noleen Köhler Georg Schnitger Hannes Seiwert Institut für Informatik AG Theoretische Informatik Ausgabe: 09.05.16 Abgabe: 17.05.16 Übung 4 Aufgabe 4.1. Vorspiegelung falscher Tatsachen (1+3 Punkte) a) Sei A ein DFA mit n Zuständen. Zeigen Sie: Wenn L(A) 6= Σ∗ , dann verwirft A ein Wort der Länge höchstens n − 1. b) Konstruieren Sie einen NFA N mit O(n2 ) Zuständen über dem Alphabet Σ = {1}, für den gilt: L(N ) 6= Σ∗ , aber der kürzeste von N verworfene String besitzt mindestens die Länge 2n . Hinweis: Die k Zahlen n1 , . . . , nk seien paarweise teilerfremd. Dann ist n1 · · · nk die kleinste von Null verschiedene Zahl, die von allen k Zahlen geteilt wird. Aufgabe 4.2. Reguläre Ausdrücke: Beschreibungslänge (2+2+2+(2+2+2) Punkte) Sei r ein regulärer Ausdruck. Dann ist Länge(r) die Anzahl der Zeichen von r, die keine Klammern sind. a) Sei n ≥ 1 und w = w1 · · · wn ∈ Σn gegeben. Konstruieren Sie einen regulären Ausdruck r für die Sprache {ε, w1 , w1 w2 , w1 w2 w3 , . . . , w1 · · · wn }, also für die Menge der Präfixe von w. Es soll Länge(r) = O(n) gelten. b) Sei Σ = {0, 1}. Für ein Wort w ∈ Σ∗ betrachten wir das Komplement Kw := { u ∈ Σ∗ : w ist kein Teilwort von u } der Teilwortsprache. Beachte: Es gibt DFAs mit |w| + 1 Zuständen für Kw . Sei w = 0n . Konstruieren Sie einen möglichst kurzen regulären Ausdruck für Kw . Es gibt Ausdrücke der Länge O(|w|). Kommentar : Für bestimmte w könnte Kw das Beispiel einer Sprache sein, für die DFAs eine kompaktere Beschreibung als reguläre Ausdrücke liefern. Sei zum Beispiel w = FWk das in Blatt 2 definierte kte Fibonacci-Wort. Reguläre Ausdrücke der Länge O(|w|) für Kw sind nicht bekannt. c) Zeigen Sie: Wenn r ein regulärer Ausdruck ist, dann gibt es einen zu r äquivalenten NFA N mit höchstens O(Länge(r)) Zuständen. (N ist äquivalent zu r, wenn L(N ) = L(r) gilt.) Fazit: NFAs besitzen mindestens die Beschreibungskraft der regulären Ausdrücke. 1 d) Wie groß können die Unterschiede in der Beschreibungslänge von DFAs und regulären Ausdrücken werden? i) Der reguläre Ausdruck r := (0|1)∗ ·1·(0|1)k−1 hat die Länge O(k), während DFAs für L(r) mindestens 2k Zustände besitzen. Dieses Beispiel deckt bereits einen fast größtmöglichen Unterschied in der Beschreibungslänge auf. Sei R ein regulärer Ausdruck. Zeigen Sie: Es gibt einen DFA für L(R) mit höchstens 2O(Länge(R)) Zuständen. ii) Wie groß können zu einem DFA äquivalente reguläre Ausdrücke im schlimmsten Fall werden? Sei A ein DFA mit Zustandsmenge Q. Zeigen Sie: Das dynamische Programmier-Verfahren im Beweis des Satzes von Kleene produziert einen regulären Ausdruck der Länge höchstens |Σ| · |Q| · 2O(|Q|) . iii) Wir definieren die Sprache Wn , die für DFAs sehr leicht, für reguläre Ausdrücke aber sehr schwer ist. Das Alphabet ist die Menge Σn = {(i, j) : 1 ≤ i, j ≤ n} aller Paare von Zahlen aus {1, . . . , n}. Wn besteht aus allen Worten der Form (1, i1 )(i1 , i2 )(i2 , i3 ) · · · (ik−1 , ik ) über Σn mit k ≥ 1. Man kann zeigen, dass jeder reguläre Ausdruck für Wn mindestens die Länge Ω(2n ) besitzt. Konstruieren Sie einen DFA für Wn mit möglichst wenigen Zuständen. Fazit: Eine Explosion der Länge regulärer Ausdrücke (im Vergleich zur Zustandszahl von DFAs) ist also unausweichlich. Aufgabe 4.3. PFAs und der Gleichheitstest (2+(3+3) Punkte) Sie dürfen PFAs mit einer Anfangsverteilung benutzen: Ein PFA mit Anfangsverteilung π wählt den Zustand q mit Wahrscheinlichkeit πq als Startzustand. a) Die Sprachen L1 , . . . , Lk mögen DFAs mit jeweils höchstens N Zuständen besitzen. Beschreiben Sie einen PFA mit höchstens O(k · N ) Zuständen, der die Sprache L = L1 ∪ · · · ∪ Lk akzeptiert. Ihr PFA sollte mindestens die Lücke 1/(2k) mit dem Schwellenwert λ = 1/(2k) erreichen. Kommentar: Die Lücke ist sehr klein: Wir müssen den PFA Ω(k) Mal „anwerfen“, bis wir eine verlässliche Prognose über die Akzeptanz abgeben können. b) Wir betrachten die Sprache EQk = {ww : w ∈ {0, 1}k }. Jeder NFA für EQk benötigt mindestens 2k Zustände. i) P Fassen Sie ein Wort w = w1 · · · wk ∈ {0, 1}k als Binärdarstellung der Zahl Z(w) = k k−i auf. Für eine Zahl m konstruieren Sie einen DFA A , der ein Wort xy m i=1 wi · 2 genau dann akzeptiert, wenn x, y ∈ {0, 1}k und Z(x) ≡ Z(y) (mod m). Die Anzahl der Zustände von Am soll polynomiell in k und m sein. ii) Konstruieren Sie einen PFA mit poly(k) Zuständen, der EQk mit Schwellenwert und Lücke 1−1/k akzeptiert. 2 1+1/k 2 Hinweis: Für genügend großes M gibt es mindestens M 2 verschiedene Primzahlen p ≤ M 3. Kommentar: Bereits nach einem einzigen Lauf des PFAs können wir eine gute Prognose mit Fehlerwahrscheinlichkeit höchstens k1 abgeben. 2