Institut für Kryptographie und Sicherheit Prof. Dr. Jörn Müller-Quade Nico Döttling Dirk Achenbach Tobias Nilges Vorlesung Theoretische Grundlagen der Informatik Übungsblatt Nr. 5 Abgabetermin: 14.01.2012 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. Wenn Sie auf jedem bis auf einem aller Übungsblätter mindestens 50 % der erreichbaren Punkte erreichen, erhalten Sie einen Übungsschein. Abgabefrist für dieses Übungsblatt ist Montag, der 14.01.2012, 12:00 Uhr. Die Einwurfkästen befinden sich im Kellergeschoss des Informatik-Neubaus (Geb. 50.34). 1 2 3 4 5 Σ Aufgabe 1 (K) (4 Punkte): Das Plätzchenrezeptproblem Der ebenso geniale wie turingmächtige Wissenschaftler und Superbösewicht Doktor Meta möchte Weihnachtsplätzchen backen. Sein Rezept sieht vor, dass er eine Menge von Stoffen S = {s1 , . . . , sn } in den Teig geben muss. Außerdem hat er eine Menge von Zutaten Z = {z1 , . . . , zm }. Jede Zutat zi ∈ Z besteht aus verschiedenen Inhaltsstoffen zi ⊆ S, wobei Sm i=0 zi = S. Doktor Meta stellt sich das Plätzchenrezeptproblem PRP: Gibt es eine Teilmenge Zk ⊆ Z der S Größe höchstens k, so dass ζ∈Zk ζ = S? Aus seinem lange zurückliegenden Informatikstudium weiß Doktor Meta, dass das Problem VERTEX COVER NP-vollständig ist: Gegeben einen ungerichteten Graphen G = (V, E) und k ∈ N, existiert eine Teilmenge der Knoten V 0 ⊆ V mit |V 0 | ≤ k so, dass für alle Kanten {u, v} ∈ E auch u ∈ V 0 oder v ∈ V 0 (oder beide)? i.) a) Betrachten Sie zum Einstieg das Rezept mit den Inhaltsstoffen S = {Aceton, Butan, Kalzium, Propan, Rum, Schwefelsäure} und den Zutaten Z ={ Grog = {Aceton, Rum, Schwefelsäure}, Benzin = {Propan, Butan, Kalzium}, Zahnpasta = {Aceton, Kalzium, Schwefelsäure}, X = {Aceton, Rum} } Finden Sie eine Zutatenmenge Z2 der Größe höchstens k = 2, die ganz S abdeckt. (0,5P) b) Betrachten Sie nun beispielhaft das Haus vom Nikolaus: Finden Sie ein Vertex Cover des gegebenen Graphen der Größe 3. (0,5P) ii.) Zeigen Sie: PRP ist NP-vollständig. Zeigen Sie dazu zunächst, dass PRP ∈ NP. Reduzieren Sie dann VERTEX COVER auf PRP. (2P) iii.) Doktor Meta ist in Weihnachtsstimmung und gibt sich ausnahmsweise mit Näherungslösungen zufrieden. Überlegen Sie sich einen Approximationsalgorithmus für PRP mit polynomieller Laufzeit. Schätzen Sie den Aufwand des Algorithmus und die Güte seiner Lösung möglichst nah ab. Verwenden Sie die Landau-Notation1 . (1P) 1 „O-Notation“. ii Aufgabe 2 (K) (4 Punkte): Kreise auf Graphen Zur Erinnerung: Ein gerichteter Graph G besteht aus einer endlichen Menge V von Knoten und einer Menge E ⊆ V × V von Kanten; eine Kante ist also ein geordnetes Paar zweier Knoten. In einem ungerichteten Graphen sind Kanten ungeordnete Paare zweier Knoten. Ein Eulerkreis für einen Graphen G = (V, E) ist eine Folge von Knoten v1 , v2 , . . . , vm , sodass gilt • v1 = vm . • Für i = 1, . . . , m − 1 ist (vi , vi+1 ) ∈ E, und: jede Kante in E kommt genau einmal in dieser Folge von Kanten vor. Ein Eulerkreis ist also eine Rundreise durch einen Graphen, auf welcher jede Kante genau einmal auftaucht. Das Eulerkreis-Suchproblem SEARCH-EULERKREIS besteht darin, für einen gegebenen Graphen G = (V, E) einen Eulerkreis zu berechnen, falls ein solcher existiert. Ein Hamiltonkreis für einen Graphen G = (V, E) ist eine Folge von Knoten v1 , . . . , vm , so dass gilt • v1 = vm . • Für i = 1, . . . , m − 1 ist (vi , vi+1 ) ∈ E. • Jedes v ∈ V kommt in der Folge v1 , . . . , vm genau einmal vor. Das Hamiltonkreis-Entscheidungsproblem HAMILTON besteht darin, festzustellen, ob ein gegebener Graph G = (V, E) einen Hamiltonkreis besitzt. i.) Zeigen Sie: SEARCH-EULERKREIS ∈ P . (2P) ii.) Zeigen Sie: Das Hamiltonkreisproblem für gerichtete Graphen ist mindestens so schwer wie das Hamiltonkreisproblem für ungerichtete Graphen. (1P) iii.) Zeigen Sie: Das Hamiltonkreisproblem für ungerichtete Graphen ist mindestens so schwer wie das Hamiltonkreisproblem für gerichtete Graphen. (1P) Aufgabe 3 (K) (4 Punkte) Das Problem k-COLOR ist folgendermaßen definiert. Gegeben sei ein Graph G = (V, E). Frage: Lassen sich die Knoten so mit k Farben einfärben, sodass je zwei adjazente Knoten (also Knoten u, v ∈ V mit (u, v) ∈ E) unterschiedlich gefärbt sind? i.) Zeichnen Sie das Haus vom Nikolaus ohne Absetzen. (1P) ii.) Zeigen Sie: Für jede Konstante k ≥ 3 ist das k-COLOR-Problem mindestens so schwer wie das 3-COLOR-Problem. (3P) iii Aufgabe 4 (K) (4 Punkte): Subgraphisomorphie Aus der Vorlesung kennen Sie das Problem CLIQUE in der Entscheidungsvariante: Gegeben ist ein Graph G = (V, E) und eine natürliche Zahl k ∈ N. Gibt es eine Clique der Größe k in G? (Eine Clique ist ein vollständig verbundener Graph.) i.) Betrachten Sie außerdem das Problem SUBGRAPHISOMORPHIE: Gegeben sind zwei Graphen G1 = (V1 , E1 ) und G2 = (V2 , E2 ). Enthält G1 einen Subgraphen, der isomorph zu G2 ist? Gibt es also V ⊆ V1 und E ⊆ E1 derart, dass |V | = |V2 |, |E| = |E2 | und existiert außerdem eine Bijektion f : V2 → V , so dass {u, v} ∈ E2 ⇔ {f (u), f (v)} ∈ E? Zeigen Sie: SUBGRAPHISOMORPHIE ist NP-vollständig, wenn CLIQUE NP-vollständig ist? (1,5P) ii.) Stellen Sie sich nun vor, Sie verfügen über ein CLIQUE-Orakel. a) Zeigen Sie: Die Optimierungsvariante von CLIQUE ist dann in P . Das heißt also, es existiert ein Polynomialzeitalgorithmus, der das größte k findet, so dass eine Clique der Größe k in G existiert. (1P) b) Können Sie einen Polynomialzeitalgorithmus angeben, der einen Zeugen dafür findet, wenn ein gegebener Graph eine k-Clique enthält? (1,5P) iv Aufgabe 5 (K) (1 Punkt): Bonusaufgabe Geben Sie eine Dreifärbung des unten gegebenen Graphen an. (1P) v