HWS 07/08
HWS 07/08
HWS 07/08
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Matthias Krause<br />
Dirk Stegemann<br />
Siavash Vahdati<br />
Klausur Theoretische Informatik, <strong>HWS</strong> 20<strong>07</strong>/20<strong>08</strong><br />
Musterlösung<br />
Mannheim, den 7.2.20<strong>08</strong><br />
AUFGABE K.1: Für die folgenden Maschinenmodelle gib eine (möglichst große) Klasse von<br />
Sprachen an, die durch das jeweilige Maschinenmodell akzeptiert werden. In welchen Fällen<br />
ändert sich die Sprachklasse (bewiesenermaßen) nicht, wenn die nichtdeterministische Variante<br />
der Maschinen benutzt werden darf<br />
a) stets haltende Turingmaschinen,<br />
REK (rekursive Sprachen), auch bei nichtdeterministischer Variante<br />
b) polynomiell zeitbeschränkte Turingmaschinen,<br />
P; bei nichtdeterministischer Variante N P, N P = P wird nicht angenommen<br />
c) endliche Automaten.<br />
REG (reguläre Sprachen), auch bei nichtdeterministischer Variante<br />
AUFGABE K.2: Gib für die folgenden Grammatiken aus der Chomsky-Hierarchie die zugehörige<br />
Sprachklasse und die in der Vorlesung besprochene Komplexität des Wortproblems<br />
(also z.B. quadratische Zeit in der Wortlänge) an.<br />
Chomsky-0: rekursiv aufzählbare Sprachen; Wortproblem nicht berechenbar<br />
Chomsky-2: kontextfreie Sprachen; kubische Zeit<br />
Chomsky-3: reguläre Sprachen; lineare Zeit<br />
AUFGABE K.3: Wir definieren s e (n) als die maximale Anzahl von Schritten, die irgendeine<br />
haltende Turingmaschine mit n Zuständen auf einer gegebenen Eingabe e ausführen kann. Ist<br />
die Funktion s e für jede Eingabe e berechenbar Begründe deine Antwort.<br />
Nein, sonst wäre das Halteproblem wie folgt entscheidbar: Für eine gegebene Turingmaschine<br />
M mit n Zuständen und eine gegebene Eingabe e berechnen wir s e (n) und simulieren maximal<br />
s e (n) Schritte von M; wenn sie bis dahin nicht gehalten hat, wird sie nie halten.<br />
AUFGABE K.4: Definiere das Konzept der polynomiellen Reduzierbarkeit ≤ p . Welche der<br />
folgenden Aussagen sind bewiesenermaßen wahr Dabei bezeichnet N PC die Klasse der N P-<br />
vollständigen Sprachen.<br />
a) L 1 ∈ N P ∧ L 2 ∈ N PC ∧ L 1 ∉ P ⇒ L 2 ∉ P,<br />
b) L 1 ∈ N P ∧ L 2 ∈ N PC ∧ ¯L 2 ∈ N P ⇒ ¯L 1 ∈ N P,<br />
c) L 1 ∈ N P ∧ L 2 ∈ N PC ∧ ¯L 2 ∈ N PC ⇒ L 1 ∈ P,<br />
d) L 1 ∈ N P ∧ L 2 ∈ N PC ∧ ¯L 2 ∈ P ⇒ L 1 ∈ P.<br />
Alle außer (c).
AUFGABE K.5: Bei dem folgenden Problem besteht die Eingabe aus einer Menge von m<br />
Klauseln der Länge drei (wie bei 3-SAT) und einer Zahl k. Zu entscheiden ist, ob es eine<br />
Belegung der Variablen gibt, die mindestens k Klauseln erfüllt. In jedem der folgenden Fälle<br />
beschreibe einen polynomiellen Algorithmus für dieses Problem oder zeige, dass (falls N P ̸= P)<br />
es einen solchen Algorithmus nicht geben kann.<br />
a) k ist beliebig.<br />
Mit einem solchen Algorithmus könnte man 3-SAT in polynomieller Zeit entscheiden,<br />
indem man k = m wählt; was N P = P zur Folge hätte.<br />
b) k ist eine Konstante.<br />
Es ist festzustellen, ob es k Klauseln gibt, die gleichzeitig erfüllt werden können; dafür<br />
gibt es ( m<br />
k)<br />
∈ O(m k ) (also polynomiell viele) Wahlen. In jeder Auswahl kommen maximal<br />
3k (also konstant viele) Variablen vor, womit alle deren Belegungen in konstanter Zeit<br />
getestet werden können. Insgesamt brauchen wir also nur polynomielle Zeit.<br />
AUFGABE K.6: Zeige, dass das folgende Problem N P-vollständig ist: Gegeben ist ein System<br />
C von Teilmengen einer endlichen Menge S. Gesucht ist eine möglichst kleine Teilmenge<br />
S ′ ⊆ S, so dass aus jeder Menge in C mindestens ein Element in S ′ vorkommt. Bei der Entscheidungsvariante<br />
ist zusätzlich eine Schranke L ∈ {1, . . .,|S|} gegeben; es soll entschieden<br />
werden, ob ein solches S ′ mit |S ′ | ≤L existiert.<br />
Offensichtlich gehört dieses Problem zu N P.<br />
Das Problem ist N P-schwer, weil VERTEX COVER ein Spezialfall davon ist; nämlich wenn<br />
jede Menge in C genau zwei Elemente besitzt. (Siehe die Übungsaufgabe 10.2, auch für eine<br />
Reduktion von CLIQUE oder INDEPENDENT SET auf dieses Problem.)<br />
AUFGABE K.7: In dieser Aufgabe betrachten wir die Sprache aller Wörter über {0, 1}, die<br />
mit 111 enden.<br />
a) Gib einen möglichst einfachen NFA an, der diese Sprache entscheidet.<br />
0,1<br />
q<br />
1 1 1<br />
0<br />
q 1<br />
q2 q3<br />
b) Benutze die Potenzmengenkonstruktion unter Vermeidung überflüssiger Zustände, um<br />
einen äquivalenten DFA zu konstruieren.<br />
Als Datenstrukturen benutzen wir eine Queue Q und ein Dictionary D.<br />
In jedem Schritt wird genau ein neuer Zustand in Q und D eingefügt, der im darauffolgenden<br />
Schritt aus Q entnommen wird, und zwar (in dieser Reihenfolge): {q 0 },{q 0 , q 1 },<br />
{q 0 , q 1 , q 2 },{q 0 , q 1 , q 2 , q 3 }. Danach findet kein Einfügen statt, womit Q leer und die Konstruktion<br />
beendet ist.<br />
0<br />
0<br />
0 0<br />
1 1 1<br />
{ q 0 } { q , q 1}<br />
{ q , q , q 2<br />
}{ q , q , q , q 3<br />
}<br />
1 1<br />
0 0 0<br />
2<br />
1<br />
c) Kann man den DFA aus (b) weiter minimieren Begründe deine Antwort.<br />
Nein. Der Automat hat vier Zustände, was auch der Index der Nerode-Relation ist.<br />
(Die Wörter ǫ, 1, 11, 111 sind paarweise nicht Nerode-äquivalent.)
AUFGABE K.8: Sei L eine endliche Sprache, die durch eine Grammatik G mit der Variablenmenge<br />
V erzeugt wird. In jedem der folgenden Fälle stelle fest, wie lang (als Funktion von<br />
|V |) ein Wort aus L maximal sein kann (mit Begründung).<br />
Hinweis: Benutze die Beobachtung aus dem Beweis des Pumping-Lemmas, dass bei jeder<br />
Ableitung eines hinreichend langen Wortes eine Variable wiederholt vorkommen muss.<br />
a) G ist eine reguläre (rechtslineare) Grammatik.<br />
Für ein beliebiges Wort z ∈ L(G) betrachten wir eine Ableitung für z. Falls dabei eine Variable<br />
wiederholt vorkommt, so folgt mit dem Argument im Beweis des Pumping-Lemmas,<br />
dass für eine Zerlegung uvw von z beliebig viele Wörter uv i w ebenfalls zu L(G) gehören;<br />
d.h. L(G) ist unendlich. Wenn also L(G) endlich sein soll, so kann ein Wort aus L(G)<br />
höchstens die Länge |V |−1 haben; und so lange Wörter können offensichtlich vorkommen.<br />
b) G ist eine kontextfreie Grammatik in Chomsky-Normalform.<br />
Für ein beliebiges Wort z ∈ L(G) betrachten wir einen zugehörigen Syntaxbaum ohne die<br />
Terminalzeichen; dieser Baum ist binär. Wenn die Tiefe dieses Baumes mindestens |V |<br />
beträgt, so muss auf einem Pfad von der Wurzel zu einem Blatt eine Variable wiederholt<br />
vorkommen. Damit folgt mit der gleichen Argumentation wie oben, dass L(G) unendlich<br />
ist. Wenn also L(G) endlich sein soll, so kann ein Wort aus L(G) höchstens die Länge<br />
2 |V |−1 haben; und so lange Wörter können offensichtlich vorkommen.<br />
AUFGABE K.9: In dieser Aufgabe betrachten wir Sprachen L über einem einbuchstabigen<br />
Alphabet wie {0}.<br />
a) Kann es sein, dass L mit Hilfe des Pumping-Lemmas für reguläre Sprachen als nicht<br />
regulär identifiziert wurde, aber trotzdem kontextfrei ist Begründe deine Antwort.<br />
Nein. Für die Anwendung des Pumping-Lemmas für kontextfreie Sprachen beobachten<br />
wir, dass für eine beliebige Zerlegung uvwxy mit l := |vx| ≥ 1 das gleiche i wie bei der<br />
Anwendung des Pumping-Lemmas für reguläre Sprachen bezüglich der Zerlegung u ′ v ′ w ′<br />
mit |v ′ | = l zum Erfolg führt.<br />
b) Ist die Sprache {0 p | p ist eine Primzahl} kontextfrei Begründe deine Antwort.<br />
Nein. Wie in der Übungsaufgabe 3.1 für den Beweis der Nichtregularität dieser Sprache<br />
können wir das Pumping-Lemma anwenden (siehe auch die vorige Teilaufgabe). Im Detail<br />
treffen wir für ein Wort 0 p die Wahl i = p+1; das resultierende Wort hat die Form 0 p(l+1)<br />
und ist damit nicht aus der Sprache.<br />
AUFGABE K.10: Gegeben ist die kontextfreie Grammatik G mit folgenden Regeln:<br />
S → AB, BA; A → BC, CB; B → CA, 0; C → BA, 1.<br />
Stelle mit Hilfe des CYK-Algorithmus fest, ob w := 01010 ∈ L(G). Gib dazu die vom Algorithmus<br />
ausgefüllte Tabelle an.<br />
Die Felder der Tabelle V werden in der folgenden Reihenfolge besucht:<br />
(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (1, 2), (2, 3), (3, 4), (4, 5), (1, 3), (2, 4), (3, 5), (1, 4), (2, 5), (1, 5).<br />
In das Feld (Menge) V ii , 1 ≤ i ≤ n = 5, werden alle<br />
Variablen X eingetragen, für die eine Regel X → w i<br />
existiert.<br />
In das Feld (Menge) V ij , 1 ≤ i < j ≤ n = 5, werden alle<br />
Variablen X eingetragen, für die für eine Regel X →<br />
Y Z ein k, i ≤ k < j, mit Y ∈ V ik und Z ∈ V k+1,j<br />
existiert.<br />
Da S ∉ V 1n (= V 1,5 ), gilt: w ∉ L(G).<br />
w = 0 1 0 1 0<br />
j | i 1 2 3 4 5<br />
1 B<br />
2 A C<br />
3 C, S A B<br />
4 ∅ B A C<br />
5 B ∅ C, S A B