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. 9 Abgabetermin: 20.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 20.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) Sei G = (V, E) ein gerichteter Graph. Ein Kern von G ist eine Teilmenge K ⊆ V sodass • Für je zwei u 6= v in K ist weder (u, v) ∈ E noch (v, u) ∈ E. • Für jedes u ∈ / K gibt es ein v ∈ K sodass (v, u) ∈ E. Wir erhalten das folgende Problem: KERNEL Gegeben: Ein gerichteter Graph G = (V, E) Frage: Hat G einen Kern? Zeigen Sie: KERNEL ist NP-vollständig. Verwenden Sie dazu die NP-Vollständigkeit von 3SAT. Hinweis: Verwenden Sie in ihrer Reduktion für die in der 3SAT-Instanz auftauchenden Variablen Teilgraphen wie in Abbildung 2. Dieser Teilgraph hat genau 2 SZustände"(oder i Abbildung 1: Beispiel: Die Menge der rot eingekreisten Knoten ist ein Kern Abbildung 2: Das Gadget für 3SAT Variablen Belegungen), da immer nur einer der beiden Knoten in einem Kern enthalten sein kann. Verwenden Sie weiter dass sich für einen Knoten v die Mitgliedschaft im Kern erzwingen läßt, indem man ihn mit einem wie in Abbildung 3 dargestellten Gadget ausstattet. Lösung: Wir stellen zunächst fest dass KERNEL ∈ N P . Eine NP-Maschine M könnte so vorgehen: Eingabe: Ein gerichteter Graph G = (V, E) Ausgabe: G besitzt einen Kern JA/NEIN • Rate nichtdeterministisch eine Knotenmenge K ⊆ V . • Prüfe für alle u ∈ K ob es ein v ∈ K gibt mit (u, v) ∈ E, falls ja dann gibt NEIN aus • Prüfe für alle u ∈ V ob es ein v ∈ K gibt mit (u, v) ∈ E, falls nein dann gib NEIN aus • Gib JA aus Die Maschine M hat maximal Laufzeit O(|V | · |E|), ist also nichtdeterministisch polynomiell. Damit gilt KERNEL ∈ N P . Wir zeigen nun durch Reduktion von 3SAT auf KERNEL dass KERNEL NP-hart ist. Sei φ dazu eine 3SAT Instanz. φ habe die Variablen X1 , . . . , Xn und die Klauseln K1 , . . . , Km . Wir konstruieren nun folgenden Graphen G = (V, E). Es sei V = {x1 , . . . , xn , x̄1 , . . . , x̄n , k1 , . . . , km , s, t1 , t2 , t3 }. Wir definieren E durch • (xi , x̄i ) ∈ E und (x̄i , xi ) ∈ E für i = 1, . . . , n ii v Abbildung 3: ein Gadget welches erzwingt dass v im Kern enthalten ist • Für alle j = 1, . . . , m und i = 1, . . . , n: Falls in Klausel Kj das Literal Xi enthält, dann sei (xi , kj ) ∈ E. Falls Kj das Literal X̄i enthält, dann sei (x̄i , kj ) ∈ E. • Für alle j = 1, . . . , m sei (kj , s) ∈ E. • Es sei (s, t1 ), (s, t2 ), (s, t3 ), (t1 , t2 ), (t2 , t3 ), (t3 , t1 ) ∈ E. Der so konstruierte Graph hat 2n + m + 4 Knoten und ≤ 2n + n · m + m + 6 Kanten. Die Reduktion hat also Aufwand O((2n + m + 4)(2n + (n + 1)m + 6)), ist also eine Polynomialzeitreduktion. Wir zeigen nun: φ besitzt genau dann eine erfüllende Belegung wenn G einen Kern besitzt. Sei dazu (ξ1 , . . . , ξn ) ∈ {0, 1}n eine erfüllende Belegung von φ. Wir setzen dann für alle i = 1, . . . , n: xi ∈ K falls ξi = 1 und x̄i ∈ K falls ξi = 0. Weiterhin sei s ∈ K. K ist nun ein Kern von G, denn für die Knoten xi , x̄i mit i = 1, . . . , n ist immer einer von beiden in K und der andere ist mit diesem durch eine Kante verbunden. Weiterhin gibt es, da (ξ1 , . . . , ξm ) eine erfüllende Belegung ist, für jedes Kj mit j = 1, . . . , m ein Literal Xi mit Belegung ξi = 1 oder ein Literal X̄i mit Belegung ξi = 0. Im ersten Fall gibt es eine Kante (xi , kj ) ∈ E mit xi ∈ K, im zweiten Fall gibt es eine Kante (x̄i , kj ) ∈ E mit x̄i ∈ E. Da s ∈ K und (s, tl ) ∈ E (l = 1, 2, 3) gibt es auch für tl ein v ∈ K mit (v, tl ) ∈ K. Damit ist K ein Kern von G. Sei nun umgekehrt K ein Kern von G. Wir konstruieren aus K eine erfüllende Belegung ξ1 , . . . , ξn von φ. Für alle i = 1, . . . , n ist die einzige eingehende Kante von xi (x̄i , xi ). Genauso ist die einzige eingehende Kante von x̄i (xi , x̄i ). Es muss also für alle i = 1, . . . , n entweder xi ∈ K oder x̄i ∈ K gelten, da K Kern ist. Weiterhin gilt zwingend dass s ∈ K. Denn wäre s∈ / K, dann müsste eines von t1 , t2 , t3 in K sein. Sagen wir o.B.d.A. t1 ∈ K, dann gilt aber t3 ∈ / K, da (t3 , t1 ) ∈ E. Dann muss aber t2 ∈ K gelten, da es ansonsten keine Kante von K nach t3 gibt. Da aber (t1 , t2 ) ∈ E kann t1 nicht in K liegen, das ist aber ein Widerspruch. Deshalb liegt s ∈ K. Da s ∈ K kann kein kj für j = 1, . . . , m in K liegen. Es gibt also für jedes kj ein xi ∈ K mit (xi , kj ) ∈ E oder ein x̄i ∈ K mit (x̄i , kj ) ∈ E. Für i = 1, . . . , n setzen wir dann ξi = 0 falls x̄i ∈ K und ξi = 1 falls xi ∈ K. Damit ist ξ1 , . . . , xin eine erfüllende Belegung für φ. Aufgabe 2 (K) (4 Punkte) Gegeben ist das folgende Problem: iii CLIQUE Gegeben: Ein ungerichteter Graph G = (V, E) und eine Zahl k. Frage: Besitzt G einen vollständigen Subgraphen mindestens der Größe k (also einen Subgraph G′ = (V ′ , E ′ ) mit |V ′ | ≥ k, V ′ ⊆ V, E ′ ⊆ E und ∀vi , vj ∈ V ′ : (vi , vj ) ∈ E ′ )? Zeigen Sie, dass CLIQUE NP-vollständig ist. Lösung: Als erstes sieht man, dass CLIQUE in NP liegt. Hat man für eine Instanz G = (V, E), k eine Clique C ⊆ V geraten, so läßt sich in O(k 2 ) Schritten überprüfen ob C tatsächlich eine Clique ist indem man überprüft ob für alle u, v ∈ C gilt (u, v) ∈ E. Damit ist CLIQUE ∈ N P . Reduktion von Vertex Cover auf CLIQUE: Sei ein Graph G = (V, E) gegeben. Dann bilde einen Graphen G′ = (V ′ , E ′ ) mit V ′ = V und E ′ = V × V \ E (also (v, w) ∈ E ′ ⇔ (v, w) ∈ / E). ′ ′ Anschaulich wird ein Komplementärgraph G zum Graphen G gebildet, so dass bei G genau die Kanten vorhanden sind, die bei G′ nicht vorhanden sind. Der Graph G hat genau dann ein Vertex Cover höchstens der Größe k wenn es einen vollständigen Subgraphen von G′ mindestens der Größe n = |V | − k gibt. Aufgabe 3 (*) Gegeben sei folgendes Problem PLANAR 3COLOR Gegeben: Ein ungerichteter planarer Graph G = (V, E). Frage: Gibt es eine Färbung der Knoten mit 3 Farben sodass je zwei adjazente Knoten verschiedene Farben haben? Zeigen Sie: PLANAR 3COLOR ist NP-vollständig. Verwenden Sie dazu dass 3COLOR NPvollständig ist. Lösung PLANAR 3COLOR ist offensichtlich in NP mit dem selben Argument wie für 3COLOR: Man rät sich eine Färbung des Graphen und prüft für alle |E| Kanten nach dass die beiden Endknoten unterschiedlich gefärbt sind. Damit ist der Aufwand O(|E|). Wir geben nun eine Polynomialzeitreduktion von 3COLOR auf. Sei G = (V, E) eine Instanz von 3CO- LOR. Im ersten Schritt betten wir G beliebig in die Ebene ein. Dabei entstehen maximal |E| 2 Kantenkreuzungen. Wir schreiben für die drei zur Verfügung stehenden Farben im weiteren 0,1 und 2. Wir geben nun ein Gadget an mit welchem wir Kantenkreuzungen auflösen und den Resultierenden Graphen planar macht, eine 3-Färbung aber erhält. Zunächst sieht man in Abbildung 4 dass 2 Knoten v1 und v2 die durch ein solches Gadged miteinander verbunden sind notwendigerweise die selbe Farbe haben müssen. Haben v1 und v2 die Farbe 0, so besteht noch ein Freiheitsgrad in welcher Farbe man v3 und v4 färbt. Es stehen die Färbungen v3 7→ 1, v4 7→ 2 sowie v3 7→ 2, v4 7→ 1 zur Verfügung. Wir geben nun das Gadget zur Auflösung einer Kantenkreuzung an. Dafür brauchen wir ein Gadget das Färbung über Kreuzungen hinwegtransportiert. Wir suchen also ein planares Gadget W (Abbildung 5) welches sicherstellt dass jeweils v1 und v1′ als auch v2 und v2′ gleich gefärbt sind. Ein solches Gadget läßt sich dazu verwenden eine Zwangsbedingung über Kantenkreuzungen hinwegzutransportieren (Abbildung 6). Es ist nun klar dass falls W die oben genannte Bedingung erfüllt, der planare Graph G′ in welchem alle Kantenkreuzungen durch Transportgadgets ersetzt und schließlich die ’transportierten’ Knoten mit den ursprünglichen Nachbarn verbunden wurden genau dann 3-färbbar ist wenn G 3-färbbar ist. Wir geben nun eine planare Implementierung von W an (Abbildung 7). Wir zeigen nun dass in W sowohl v1 und v1′ alsauc v2 und v2′ die mit der selben Farbe gefärbt sein müssen. Dazu sei o.B.d.A v1 mit der Farbe 0 gefärbt. Durch die obige Bemerkung zum einfachen Gadget (durch welches v1 und v2 in vierfacher Reihenschaltung miteinander verbunden sind) muss dann auch v1′ die Farbe 0 annehmen. Es gibt nun zwei Fälle zu unterscheiden. Im ersten ist v2 auch mit 0 gefärbt. Wir finden nun eine bis auf zwei Vertauschungen von 1 iv v3 v1 v2 v4 Abbildung 4: ein einfaches Gadget v2′ v1 v1′ W v2 Abbildung 5: Das Transportgadget W Abbildung 6: Verwendung des Gadgets v W v2′ v1′ v1 v2 Abbildung 7: Implementierung des Transportgadgets W und 2 eindeutige Färbung für W (siehe Abbildung 8). Im zweiten Fall ist v2 mit einer anderen Farbe als 0 gefärbt, o.B.d.A mit 1. Die Färbung ist nun bis auf zwei Vertauschungen von 0 und 2 eindeutig (Abbildung 9). Damit leistet das Gadget W das gewünschte. Es läßt sich nun einfach eine 3-Färbung von G′ in eine 3-Färbung von G übersetzen und umgekehrt. vi v2′ 0 1 2 2 0 1 0 1 0 2 0 0 v1′ v1 1 2 2 1 1 2 0 v2 Abbildung 8: v2 mit 0 gefärbt v2′ 1 2 0 1 0 1 0 2 0 2 0 0 v1′ v1 2 2 1 1 2 0 1 v2 Abbildung 9: v2 mit 1 gefärbt vii