Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Nico Döttling Daniel Kraschewski Vorlesung Theoretische Grundlagen Lösungsvorschlag Übungsblatt Nr. 10 Abgabetermin: 27.01.2010 Name Tutorium Nr. Matrikelnummer Mit (K) markierte Aufgaben können zur Korrektur abgegeben werden. Korrigierte Übungsblätter erhalten Sie eine Woche nach Abgabe von ihrem Tutor. Bei Erreichen von mehr als 50% der erreichbaren Punkte aller Übungsblätter erhalten Sie einen Übungsschein. Abgabefrist für dieses Übungsblatt ist Mittwoch, der 27.01.2010, 12:00 Uhr. Die Einwurfkästen befinden sich im Kellergeschoss des Informatik-Neubaus (Geb. 50.34). 1 2 Σ Aufgabe 1 (K) (4 Punkte) Das CLIQUE-Problem war folgendermaßen definiert: Problem: CLIQUE • Gegeben: Ein Graph G = (V, E) und eine Zahl k • Frage: Gibt es einen vollständigen Subgraphen der Größe k G? Das Suchproblem MAX-CLIQUE ist folgendermaßen definiert: Problem: MAX-CLIQUE • Gegeben: Ein Graph G = (V, E) • Gesucht: Finde eine Clique maximaler Größe in G, das heißt eine Clique der Größe k, sodass es keine Clique der Größe k + 1 in G gibt. i Es ist FP die Klasse aller Funktionen f : Σ∗ → Σ∗ welche in Polynomialzeit berechnet werden können. Zeigen Sie: Falls das Entscheidungsproblem CLIQUE in P liegt, dann liegt das Suchproblem MAX-CLIQUE in FP. Lösung: Wir geben einen Algorithmus mit Orakelzugriff auf ein Orakel O, welches das Entscheidungsproblem CLIQUE löst, an, welcher in polynomiell vielen Schritten MAX-CLIQUE löst. Algorithmus A Eingabe: Ein Graph G = (V, E) Ausgabe: Eine Clique maximaler Größe in G • Setze k0 = 1 und k1 = |V | • Wiederhole bis k0 = k1 1 – Setze k = ⌈ k0 +k 2 ⌉ – Rufe das Orakel O mit Eingabe (G, k) – Falls O 1 ausgibt (also falls (G, k) ∈ CLIQUE), dann setze k0 = k – Falls O 0 ausgibt (also falls (G, k) ∈ / CLIQUE), dann setze k1 = k − 1 • Falls k = 1 dann gib einen fixen Punkt v ∈ V aus. • Setze W = ∅ • Für alle v ∈ V – Setze G′ = (V ′ , E ′ ), wobei V = V \(W ∪ {v}) und E ′ aus Kanten in E besteht für die beide Endpunkte in V ′ liegen. – Rufe das Orakel O mit Eingabe (G′ , k) auf. – Falls O 0 ausgibt, setze W = W ∪ {v} • Gib C = V W aus Korrektheit: Im ersten Abschnitt findet A das größtmögliche k für das noch eine Clique existiert durch Binärsuche. Im zweiten Abschnitt wird für jeden Knoten v ermittelt ob dieser notwendigerweise zu einer größtmöglichen Clique C gehören muss. Wenn v nicht zu C gehören muss, also nach Entfernen von v noch eine Clique der Größe k existiert, dann wird v zur Menge W der unnötígen Knoten hinzugefügt. Es ist also C = V W nach beenden der zweiten Schleife eine Clique der Größe k. Aufwand: Nehmen wir an dass CLIQUE ∈ P , dann gibt es einen Algorithmus T der Laufzeit O(|V |m ) für eine Konstante m ∈ N hat und das Entscheidungsproblem CLIQUE löst, also das Orakel O implementiert. In der ersten Schleife finden maximal log |V | Orakelaufrufe statt, daher hat dieser Teil des Algorithmus einen Aufwand von O((log |V |) · |V |m ). Im zweiten Teil des Algorithmus geschehen |V | Orakelaufrufe, deshalb hat dieser Teil einen Aufwand von O(|V |m+1 ). Wir können o.B.d.A. annehmen dass alle anderen Operationen mindestens von O(|V |m ) beschränkt sind. Insgesamt ergibt sich also eine Laufzeit von O(log(|V |) + |V |)|V |m , was polynomiell in der Eingabe ist. Damit ist MAX-CLIQUE ∈ F P . Aufgabe 2 (K) (4 Punkte) In der Vorlesung wurde gezeigt dass das HAMILTON-PATH Problem NP-vollständig ist. Problem: HAMILTON-PATH ii • Gegeben: Ein gerichteter Graph G = (V, E) und zwei Knoten s, t ∈ V . • Frage: Gibt es einen Pfad in G, der s und t verbindet, und dabei jeden Knoten in V genau einmal passiert? Das HAMILTON-CIRCUIT Problem sei folgendermaßen definiert: Problem: HAMILTON-CIRCUIT • Gegeben: Ein gerichteter Graph G = (V, E). • Frage: Gibt es eine Rundreise in G die jeden Knoten genau einmal passiert? Zeigen Sie: HAMILTON-CIRCUIT ist NP-vollständig. Lösung: Zunächst ist klar dass HAMILTON-CIRCUIT ∈ N P : Zunächst rät man eine Rundreise w = (vi1 , . . . , vin ) mit n = |V | und überprüft dann dass für alle j = 1, . . . , n (vij , vij+1 ) ∈ E sind. und (vin , vi1 ) ∈ E. Dann überprüft man ob die vij für j = 1, . . . , n paarweise verschieden Ist dies erfüllt so ist w ein Hamilton-Kreis. Diese Prozedur hat Aufwand O(n2 ), da n2 = O(n2 ) Paare von Knoten überprüft werden müssen. Damit ist HAMILTON-CIRCUIT ∈ N P . Wir zeigen nun dass HAMILTON-CIRCUIT NP-hart ist durch Reduktion HAMILTON-PATH ≤p HAMILTON-CIRCUIT. Sei (G = (V, E), s, t) eine HAMILTON-PATH Instanz. Wir konstruieren eine HAMILTON-CIRCUIT Instanz (G′ = (V ′ , E ′ )) indem wir V ′ = V ∪{r} für einen neuen Knoten r und E ′ = E ∪ {(t, r), (r, s)} setzen. Dies ist offensichtlich eine Polynomialzeitreduktion. Gibt es nun einen Hamilton-Pfad w = (s, vi2 , . . . , vin−1 , t) in von s nach t in G, dann gibt es auch einen Hamilton-Kreis in G′ , nämlich w′ = (s, vi2 , . . . , vin−1 , t, r), da (t, r), (r, s) ∈ E und ansonsten alle Kanten beibehalten wurden. Ist umgekehrt w = (vi1 , . . . , vin+1 ) ein HamiltonKreis in G, dann erreicht dieser Kreis den Knoten r von t aus und führt von r nach s. Weiter Da w ein Hamilton-Kreis ist s mit t durch einen Pfad der jeden anderen Knoten genau einmal besucht verbunden. Damit erhalten wir den gewünschten Hamilton-Pfad von s nach t. Aufgabe 3 (*) Sei M eine Turingmaschine die auf allen Eingaben hält. Die Bandkomplexität von M ist eine Funktion f : N → N sodass M bei einer Eingabe der Länge n maximal f (n) verschiedene Bandstellen beschreibt (schon beschriebene Bandstellen können beliebig oft wiederverwendet werden). Wenn die Bandkomplexität von M O(f (n)) ist, dann sagen wir dass L(M) ∈ SPACE(f (n)). Zeigen Sie: • Es gibt eine Sprache L ∈ SPACE(n2 )\SPACE(n), also eine Sprache die mit O(n2 ) Speicherzellen erkannt werden kann, mit O(n) Speicherzellen jedoch nicht. Lösung: Wir zeigen die Existenz einer solchen Sprache durch Diagonalisierung. Dazu beschreiben wir eine Turingmaschine T die Eingaben der Form w = hMi#0n erhält, wobei hMi die Gödelnummer einer Turingmaschine ist und n eine natürliche Zahl. 2 – Simuliere die Berechnung von hMi bei Eingabe w für maximal 2n Schritte. Falls M dabei mehr als n2 Speicherzellen verbraucht, dann breche die Berechnung ab und gib NEIN aus. – Wenn M mit Ausgabe JA hält, dann gib NEIN aus iii – Wenn M mit Ausgabe NEIN hält, gib JA aus. Es ist offensichtlich L(T ) ∈ SPACE(n2 ), da T in SPACE(n2 ) läuft. Wir behaupten nun dass L(T ) nicht in SPACE(n) erkannt werden kann. Dazu stellen wir zunächst fest dass eine Maschine M die in SPACE(f (n)) läuft, maximal in TIME(2O(f (n)) ), also spätestens nach 2O(f (n)) Zeitschritten terminiert, da sie ansonsten während ihrer Berechnung eine Konfiguration mehrfach einnehmen würde sich damit in einer Endlosschleife befände. Nehmen wir also an dass L = L(T ) ∈ SPACE(n). Dann gibt es eine Turingmaschine M die L mit c · n Speicherzellen erkennt, wobei c ∈ N eine Konstante ist. Wir fragen nun ob das Wort w = hMi#0c in L liegt. Es sei |w| = r + c, wobei r = |hMi| + 1 die Länge der beschreibung von M ist. Nehmen wir an dass w ∈ L. Das ist nach Definition von M genau dann der Fall wenn M w in c · n = rc + c2 , Speicherzellen akzeptiert. Dann aber akzeptiert T das Wort w nicht, denn T simuliert M für (r + c)2 = r2 + 2rc + c2 > rc + c2 Speicherzellen, hat also genügend Speicher die Berechnung von M zu beenden. Damit ist dann aber w ∈ / L. Ist hingegen w ∈ / L, dann läuft M in rc + c2 Speicher und akzeptiert das Wort w nicht. Dann aber akzeptiert T das Wort w, da sie wiederum (r + c)2 = r2 + 2rc + c2 > rc + c2 Speicherzellen zur Verfügung hat und es gilt w ∈ L. Insgesamt haben wir also dass w ∈ L ⇔ w ∈ / L. Das ist ein Widerspruch. Damit ist L ∈ SPACE(n2 )\SPACE(n). • Es gilt NP 6= SPACE(n). Beachten Sie dabei dass die Definition von SPACE(n) identisch mit der Definition von Chomsky-Typ 1 ist. Es gilt also NP 6= CH-1. Lösung: Nehmen wir an dass NP = SPACE(n) gilt. Nach obiger Teilaufgabe gibt es eine Sprache L ∈ SPACE(n2 )\SPACE(n). Wir definieren eine neue Sprache 2 L′ = {w#0|w| |w ∈ L} 2 Es ist nun klar dass L ∈ SPACE(n), da durch das Padding 0|w| die Größe der Eingabe soweit aufgeblasen wurde dass allein durch die Größe der Eingabe genügend Speicher zur Verfügung steht um zu entscheiden ob w ∈ L. Da nach Annahme NP = SPACE(n), gilt 2 L′ ∈ NP. Die Abbildung f : Σ∗ → Σ∗ mit w 7→ w#0|w| ist eine Polynomialzeitreduktion 2 2 von L auf L′ , da w#0|w| ∈ L′ ⇔ w ∈ L und das Hinzufügen des Endstückes #0|w| offensichtlich in quadratischer Zeit möglich ist. Da die Klasse NP unter Polynomialzeitreduktionen abgeschlossen ist (Ist f : L1 → L2 Polynomialzeitreduktion und L2 ∈ NP, so ist auch L1 ∈ NP), gilt auch L ∈ NP = SPACE(n). Dies ist aber ein Widerspruch zu L∈ / SPACE(n). Also gilt NP 6= SPACE(n). iv