Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Dirk Achenbach Tobias Nilges Vorlesung Theoretische Grundlagen der Informatik Übungsblatt Nr. 5 Lösungsvorschlag Aufgabe 1: Eine schöne Bescherung (K) (4 Punkte) Der ebenso geniale wie kältefühlige Wissenschaftler und Superbösewicht Doktor Meta möchte den Weihnachtsmann ausrauben. Dazu hat er sich einen konkreten Plan überlegt. Er kennt alle n Kamine, die der Weihnachtsmann über Weihnachten anfliegt. Außerdem ist ihm klar, dass der Weihnachtsmann immer eine optimale Route fliegt, da es ihm sonst aufgrund relativistischer Effekte nicht möglich wäre, alle Geschenke rechtzeitig in t Zeiteinheiten auszuliefern. Doktor Meta möchte nun die Route bestimmen, die der Weihnachtsmann nimmt, um ihn abzupassen, jedoch ohne die ganze Nacht in der Kälte an einem Ort auszuharren. Allerdings hat er die Vermutung, dass der Weihnachtsmann über ein NP-Orakel verfügt, mit dem er schwierige Probleme löst. ng Gegeben sei das WEIHNACHTSMANNPROBLEM mit Kaminen K, Routenabschnitten R, und einer Funktion f : R → N, welche die Reisedauer jedes Routenabschnitts angibt. Es sei |K| = P n, |R| = m. Finde eine Route (r1 , . . . , rn−1 ), ri ∈ R, mit in−1 f (ri ) ≤ t, auf der jeder Kamin k ∈ K genau einmal besucht wird. i.) Zeigen Sie, dass das WEIHNACHTSMANNPROBLEM NP-vollständig ist, indem Sie das im Skript beschriebene Problem HAMPATH (Problem 3.39) auf das WEIHNACHTSMANNPROBLEM reduzieren. Nehmen Sie dabei HAMPATH als NP-vollständig an. (3P) Lö su ii.) Zeichnen Sie das Haus vom Nikolaus ohne Absetzen: (1P) Lösungsvorschlag i.) Wir zeigen zuerst, dass das WEIHNACHTSMANNPROBLEM in NP liegt. Dazu nehmen wir an, dass wir eine Route (r1 , . . . , rn1 ) gegeben bekommen. Wir bilden jetzt einfach P die Summe n−1 f (ri ) und prüfen, ob sie ≤ t ist. Weiterhin prüfen wir, ob alle Kamine i aus K angeflogen werden. Diese Überprüfung ist in Linearzeit möglich. Jetzt muss eine Instanz des Problems HAMPATH in eine Instanz des WEIHNACHTSMANNPROBLEMs transformiert werden. Dazu kurz zur Erinnerung: Gegeben ist ein Graph G = (V, E), wobei V die Knoten und E die Kanten beschreibt; weiterhin soll ein Pfad von den Knoten a nach b gefunden werden, sodass jeder Knoten v ∈ V einmal besucht wird. Wir nehmen im Folgenden an, dass Routen gerichtet sind. Die Transformation ist dann einfach: Jeder Knoten stellt einen Kamin dar, jede Kante eine Route. Als Reisedauer legen f (x) := 1 fest. Die Start- und Zielknoten a und b ergänzen wir durch je einen zusätzlichen Knoten, den wir hinzufügen. Diese neuen Knoten verbinden wir jeweils mit genau einer Kante mit a und b. Damit erzwingen wir, dass die Route des Weihnachtsmanns von a nach b geht (oder andersrum; die Route ist symmetrisch). ii Gibt es jetzt einen effizienten Algorithmus für das WEIHNACHTSMANNPROBLEM, können wir diesen nutzen, um jedes Problem aus HAMPATH in Polynomialzeit zu lösen. Also folgt, dass das WEIHNACHTSMANNPROBLEM NP-vollständig ist. Sind die Routen des WEIHNACHTSMANNPROBLEMs ungerichtet und betrachten wir das Hamiltonpfadproblem für gerichtete Graphen, ist nicht so einfach klar, wie die Transformation gelingt. Tatsächlich ist aber auch das Hamiltonpfadproblem für ungerichtete Graphen NP-vollständig. Auf Übungsblatt 6 zeigen wir, dass das Hamiltonpfadproblem für gerichtete und ungerichtete Graphen äquivalent sind. ii.) 2 3 4 1 ng 5 8 7 Lö su 6 Aufgabe 2 (K): Komplexitätstheorie (4 Punkte) Geben Sie für die folgenden Aussagen mit einer Begründung an, ob sie stimmen. (jeweils 1P) i.) 2-COL ∈ / NP . ii.) Wenn P = NP , dann gilt für jede Sprache L ∈ P , dass L ∈ NP C. iii.) Es gibt keine Probleme, die NP -schwer sind, aber nicht in NP liegen. iv.) Das Problem DNF-SAT, also die Erfüllbarkeit einer aussagenlogischen Formel in disjunktiver Normalform, liegt in P . Lösungsvorschlag i.) Die Aussage ist falsch, 2-COL ist sogar in P. Gegeben ein 2-gefärbten Graphen müssen alle zu einem Knoten adjazenten Knoten eine andere Farbe haben. Dies ist in polynomieller Laufzeit überprüfbar. iii ii.) Die Aussage ist falsch, obwohl sie für alle Sprachen außer ∅ und Σ∗ korrekt ist. Wenn P = NP , dann ist jede Sprache aus P auch in NP . Weiter ist die auch NP -schwer: Die Transformation aus jeder anderen NP -Sprache L0 kann die L0 -Instanz selbst in Polynomialzeit lösen und dann eine „ja“ oder „nein“-Instanz von L ausgeben. Dieser „Trick“ versagt bei ∅ und Σ∗ , da diese Sprachen keine „ja“-, respektive „nein“-Instanzen haben. iii.) Doch, das Halteproblem ist NP -schwer, aber es liegt nicht in NP . iv.) Richtig, ein Algorithmus, um dies in Polynomialzeit zu lösen: Es muss nur eine Klausel gefunden werden, die zu wahr auswertet. Dazu prüft man für alle Literale einer Klausel, ob sie sowohl negiert als auch nicht-negiert in der Klausel vorkommen. Ist dies nicht der Fall, ist die Klausel erfüllbar und damit die komplette Formel. ng Aufgabe 3: Das Partyproblem (K) (4 Punkte) Gegeben sei das folgende NP-vollständige PARTYPROBLEM mit einer (endlichen) Menge S an Studenten, einer (endlichen) Menge P an Parties, einer Menge T an Terminen und einer Relation R ⊆ S × P . Dabei bedeutet (s, p) ∈ R, dass Student s die Party p besuchen möchte. Gibt es eine Abbildung f : P → T , sodass alle Studenten alle Parties besuchen können, ohne dass sie eine Party vorzeitig verlassen müssen, also Lö su ∀p1 , p2 ∈ P : (s, p1 ) ∈ R ∧ (s, p2 ) ∈ R ∧ p1 6= p2 ⇒ f (p1 ) 6= f (p2 ) Nutzen Sie dieses Problem, um zu zeigen, dass SAT NP-vollständig ist. Lösungsvorschlag Aus der Vorlesung wissen wir, dass SAT ∈ NP . Nun müssen wir eine Polynomialzeit-Transformation vom PARTYPROBLEM auf SAT angeben. Dazu nutzen wir die folgende Codierung: • Jede Party-Termin-Kombination ergibt eine boolesche Variable, xtp , die genau dann wahr ist, wenn an Termin t die Party p stattfindet. • Jede Party findet nur an einem Termin statt: C1 = ^ ^ 0 ^ ¬(xtp ∧ xtp ) p∈P t∈T t0 ∈T,t6=t0 • Für keinen Studenten finden zwei Parties zeitgleich statt: C2 = ^ ^ (p1 ,p2 )∈P ×P mit t∈T (s,p1 )∈R,(s,p2 )∈R und p1 6=p2 iv ¬(xtp1 ∧ xtp2 ) • Jede Party muss stattfinden: C3 = ^ _ xtp p∈P t∈T Eine erfüllende Belegung für C = C1 ∧ C2 ∧ C3 löst das PARTYPROBLEM. Die Transformation kann offensichtlich in Polyzeit berechnet werden. Daraus folgt, dass SAT ∈ NP C. Aufgabe 4: Mehr Entscheidbarkeit (K) (4 Punkte) Zeigen Sie: i.) Die Sprache L = {hM i | M ist eine Turingmaschine und L(M ) ist semi-entscheidbar} ist entscheidbar. (2P) Lösungsvorschlag ng ii.) Das Halteproblem HALT = {hM iw | M ist eine Turingmaschine und M hält auf der Eingabe w.} ist semi-entscheidbar. (2P) Lö su i.) Durch probeweises Decodieren der Gödelnummer kann man leicht testen, ob sie eine Turingmaschine beschreibt. Weiter ist eine Sprache nach Definition dann semi-entscheidbar, wenn eine Turingmaschine existiert, die sie akzeptiert. Folglich ist jede Sprache, die von einer Turingmaschine akzeptiert wird, semi-entscheidbar. Insgesamt ist L also entscheidbar. ii.) Um zu zeigen, dass das Halteproblem semi-entscheidbar ist, müssen wir eine Maschine angeben, die genau dann akzeptiert, wenn die gegebene Maschine M auf w hält: • Simuliere M auf w. • Akzeptiere. v