Michael Rennecke Stephan Präsch Yu Ai [email protected] 11. Übung zur Vorlesung Komplexitästheorie“ ” Aufgabe 11.1 Beweisen Sie, dass P RIM E 1 := {I k : k ist P rimzahl} ∈ L gilt. Abbildung 1: Skizze der DTM 1. DTM liest vom Eingabeband, speichert binär die Anzahl Striche auf Langzeitspeicherband (Platzverbrauch: maximal log(n)+1) 2. Langzeitspeicherband wird auf Arbeitsband 1 kopiert. (Platzverbrauch: maximal log(n)+1) 3. Arbeitsband 2 wird mit 2 (binär 10) initialisiert, wir gehen hier o.B.d.A. davon aus, dass unsere Eingabe > 2 ist, und verzichten auch auf die Tests, ob die Eingabe syntaktisch korrekt ist. 4. Es wird fortlaufend das Arbeitsband 2 vom Arbeitsband 1 subtrahiert solange das Ergebnis der Subtraktion einen positiven Wert aufweist. Falls die Subtraktion < 0 ausfällt, so kopiere auf Arbeitsband 1 wieder Inhalt von Langzeitspeicherband und inkrementiere Arbeitsband 2. 5. Besitzt das Arbeitsband 1 dann den Wert 0, handelt es sich um keine Primzahl, Wort wird verworfen. Ist der Wert > 0, dann inkrementiere den Wert von Arbeitsband 2. Hat das Arbeitsband 2 den selben Wert wie das Langzeitspeicherband, dann akzeptiere das Wort, ansonsten beginne wieder beim Schritt mit dem Subtrahieren. Für das ”Raufzählen” auf Arbeitsband 2 benötigen wir ebenfalls maximal log(n)+1 Platz. Auf allen Bändern also insgesamt maximal 3*(log(n)+1), im Grunde irgendein c*log(n). 1 von 3 Aufgabe 11.2 1. UGAP Beweis: Harry R. Lewis and Christos H. Papadimitriou. Symmetric space-bounded computation. Theor. Comput. Sci., 19:161 - 187, 1982 und O. Reingold, Undirected ST-Connectivity in LogSpace (Theorem 4.1 und Theorem 4.2) folgt sofort, dass UGAP L-vollständig ist 2. Baumisomorphie Aufgabe 11.3 a) Konstruktion einer nichtdeterminitischen Turingmaschine M, die UGAP in logarithmischen Platz löst. M bekommt als Eingabe die beiden Bezeichnungen der Knoten, die auf einen Pfad liegen sollen (Weg von a nach b). Danach ist ein Trennzeichen, nun folgen die Knoten des Graphen. Nach einen weiteren Trennzeichen, werden die Kanten aufgezählt. Die verschiedenen Kanten bzw. Knoten kann mit einem anderen Trennzeichen voneinander trennen. Die Idee ist nun, das man den Weg von a nach b rät und jeden geratenen Schritt durch die Eingabe verifiziert. Der Algorithmus terminiert, wenn er als Knoten b geraten hat. Bezeichnungen • e = (ei , ei+1 ) ist eine beliebige Kante im Graph • ei und ei+1 seien beliebige Knoten im Graph Algorithmus 1. rate eine Kante (a, e1 ) 2. schreibe (a, e1 ) auf das Arbeitsband 3. schaue auf den Eingabeband ob die Kante (a, e1 ) existiert (durch Vergleich mit Arbeitsband) 4. ja: mache weiter, nein: bleibe stehen 5. i = 1 6. rate Kante (ei , ei+1 ) 7. schreibe (ei , ei+1 ) auf das Arbeitsband 8. schaue auf den Eingabeband ob die Kante (ei , ei+1 existiert (durch Vergleich mit Arbeitsband) 9. ja: mache weiter, nein: bleibe stehen 10. i := i + 1 11. wiederhole die Schritte 5 bis 10 solange ei+1 nicht gleich b ist 12. akzeptiere die Eingabe Aufgabe 11.3 b) siehe 11.2 wenn UGAP NL-Vollständing, dann währe L = NL. 2 von 3 Aufgabe 11.4 Zeigen Sie, dass 2SAT ⊆ NL gilt. Hinweis: NL ist abgeschlossen unter Komplement. Da NL unter Komplement abgeschlossen ist, genügt es also die Unerfüllbarkeit jeder 2KNF zeigen zu können: Sei nun G(φ) ein Graph mit allen Variablen des Ausdrucks und deren Negationen. Eine Kante von x nach y existiere genau falls eine Klausel ¬x ∨ y ⇔ x ⇒ y in der Eingabe existiert. Beachte, dass x ⇒ y ⇔ ¬y ⇒ ¬x. Theorem: φ ist unerfüllbar genau dann, wenn für eine Variable x in G(φ) ein Weg von x nach ¬x und ein Weg von ¬x nach x geht. Beweis: (⇐): (¬x ⇒ · · · ⇒ x) ∧ (x ⇒ · · · ⇒ ¬x) ⇔ (¬x ⇔ x) Für x gibt es keine erfüllende Belegung. (⇒): Wähle einen bisher undefinierten Knoten x für die kein Weg x → ¬x im Graphen existiert. (Dies muss jeweils für Variable v oder ¬v gelten) Setze alle von x erreichbaren Variablen auf 1 und ihre Negation auf 0. Dieser Schritt funktioniert, weil 1.) (x → y) ∧ (y → ¬y) ⇒ (y → ¬x) ⇒ (x → ¬x) was ein Widerspruch zur Annahme ist. 2.) Jeder Nachfolger von x ist noch undefiniert. Denn falls (x → 0 ⇒ 1 → ¬x) und x wäre bereits definiert worden. Algorithmus: Wir raten nichtdeterministisch eine Variable x aus dem Eingabe Term und rate einen Weg durch den Graphen von x nach ¬x. Dies ist mit logarithmischem Platz möglich. Damit ist das Komplement von 2-SAT entschieden. 3 von 3