Blatt 4 - Professur für Theoretische Informatik

Werbung
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
Herunterladen