Lösungsvorschlag Übungsblatt Nr. 10

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