Lösung - Arbeitsgruppe Kryptographie und Sicherheit

Werbung
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
Lösungsvorschlag
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
und den Zutaten
Z ={
ng
S = {Aceton, Butan, Kalzium, Propan, Rum, Schwefelsäure}
Grog = {Aceton, Rum, Schwefelsäure},
Benzin = {Propan, Butan, Kalzium},
Lö
su
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
Lösungsvorschlag
i.)
a) Z2 = {Grog, Benzin}
b)
ii.) PRP ∈ NP: Gegeben eine Menge von Zutaten kann man einfach die Liste durchgehen,
ob alle Stoffe enthalten sind.
ng
VERTEX COVER ≤T PRP: Wir transformieren eine Instanz von VERTEX COVER in
eine Instanz des PRP, indem wir die Kanten als Inhaltsstoffe nutzen und die Knoten als
Zutaten. Dann ist durch Zmin das minimale Vertex Cover gegeben und löst somit das
Entscheidungsproblem, ob es ein Vertex Cover der Größe ≤ k gibt.
Lö
su
iii.) Wir nutzen folgenden Approximations-Alogrithmus: wir wählen einen beliebigen unmarkierten Inhaltsstoff aus und speichern uns alle Zutaten, die diesen Stoff enthalten. Dann
markieren wir alle Inhaltsstoffe, die durch die Zutaten abgedeckt werden. Diesen Schritt
wiederholen wir so oft, bis es keinen unmarkierten Inhaltsstoff mehr gibt. Die auf diese Weise gespeicherten Zutaten decken also die Menge S ab. Mit diesem Algorithmus
erhalten wir garantiert eine Lösung für das PRP mit Komplexität O(n).
Um die Güte in Abhängigkeit der optimalen Lösung zu bestimmen, betrachten wir den
schlimmsten Fall der eintreten kann. Dies passiert, falls mit den zu einem Inhaltsstoff
zugehörigen Zutaten nur gemeinsame Inhaltsstoffe hinzukommen, sodass keine anderen
Inhaltsstoffe gestrichen werden. Die Anzahl der unnötig hinzugefügten Zutaten ist l ≤
maxs∈S |Zutaten(s)|. Damit ist die Lösung maximal um den Faktor l schlechter als die
optimale Lösung.
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.
iii
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)
ng
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)
Lösungsvorschlag
Lö
su
i.) Algorithmus HORST berechnet für einen gegebenen Graphen G = (V, E) einen Eulerkreis
(falls ein solcher existiert).
HORST läuft in Linearzeit (und ist damit in P): In jeder Iteration der Schleife wird eine
Kante e ∈ E markiert und jede Kante wird höchsten einmnal markiert. Damit läuft der
Algorithmus in O(|E|).
HORST ist korrekt: Nach dem Euler-Kriterium existiert genau dann ein Eulerkreis, wenn
jeder Knoten geraden Grad besitzt. Beginnt ein Pfad also an einem Knoten v0 , so muss
ein Pfad über unmarkierte Kanten zu v0 zurückführen, denn für jeden Knoten ausser v0
zu welchem eine unmarkierte Kante hinführt, muss auch eine unmarkierte Kante wieder
wegführen (da jeder Knoten v geraden Grad besitzt). Daher endet der Pfad zwangsläufig
bei v0 (da dies der einzige Knoten mit einer ungeraden Anzahl an nichtmarkierten Kanten ist). Weiterhin bleiben Kreise durch das Einfügen von Unterkreisen erhalten. Der
Algorithmus terminiert erst wenn keine unmarkierten Kanten mehr existieren.
ii.) Sei G = (V, E) ein ungerichteter Graph. Wir konstruieren einen gerichteten Graphen
G0 = (V 0 , E 0 ) welcher genau dann einen gerichteten Hamiltonkreis besitzt wenn G einen
ungerichteten Hamiltonkreis besitzt. Wir setzten V 0 = V und für jede ungerichtete Kante
e = (v1 , v2 ) in E fügen wir zwei gerichtete Kanten e1 = (v1 , v2 ) und e2 = (v2 , v1 ) in E 0 ein.
Jeder Hamiltonkreis v1 , . . . , vn in G ist nun auch ein Hamiltonkreis in G0 und umgekehrt.
iii.) Sei G = (V, E) ein gerichteter Graph. Wir konstruieren einen ungerichteten Graphen
G0 = (V 0 , E 0 ) welcher genau dann einen gerichteten Hamiltonkreis besitzt wenn G einen
ungerichteten Hamiltonkreis besitzt. Für jeden Knoten v ∈ V fügen wir drei Knoten
v1 , v2 und v3 in E 0 . Wir verbinden v2 mit v1 und v3 , v1 mit allen Knoten von welchen
iv
Lö
su
ng
Eingabe : Graph G = (V, E)
Ergebnis : Ein Eulerkreis v1 , . . . , vn )
Beginn
Wähle einen Startknoten v0 ∈ V ;
Setze v := v0 ;
Setze C := [ ];
Setze i := 1;
solange Unmarkierte Kanten existieren tue
Wähle eine umarkierte Kante e ∈ E welche mit v inzident ist und markiere e;
Füge v in die Folge C an der Stelle i ein ein.;
Setze v auf den anderen Endknoten von e;
Setze i := i + 1;
wenn v = v0 und unmarkierte Kanten existieren dann
Suche einen Knoten v ∈ C welcher inzident zu einer nichtmarkierten Kante ist;
Sei i der Index von v in der Liste C;
Setze v0 := v;
Ende
wenn v 6= v0 und keine unmarkierten Kanten inzident zu v sind dann
Zurück ⊥;
Ende
Ende
zurück C
Ende
Algorithmus 1 : HORST
eingehende Kanten kommen und v3 mit allen Knoten zu welchen ausgehende Kanten
führen
v
v1
v2
v3
Der Knoten v2 stellt nun sicher, dass ein Kreis den Knoten v1 über v2 und v3 verlässt,
ansonsten wäre v2 nichtmehr erreichbar. Jeder Kreis erreicht also den simulierten Knoten
v über v1 und verlässt ihn über v3 . Damit besitzt G genau dann einen Hamiltonkreis
wenn G0 einen Hamiltonkreis besitzt.
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
v
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)
Lösungsvorschlag
2
3
4
1
ng
5
8
Lö
su
7
6
i.)
ii.) Sei G = (V, E) ein 3-COLOR-Instanz. Wir konstruieren nun aus G einen Graphen G0 ,
welcher genau dann k-färbbar ist wenn G 3-färbbar ist. Zunächst fügen wir zu G k neue
Knoten hinzu und verbinden diese alle miteinander, wir fügen also eine k-Clique hinzu.
Seien v1 , . . . vk die Knoten dieser k-Clique. v1 , . . . , vk dient uns nun als Farbpalette: Wird
dieser Graph mit k Farben eingefärbt, so taucht jede Farbe in dieser k-Clique exakt
einmal auf. Nun verbinden wir die jeden Knoten in V mit v4 , . . . , vk . Die Knoten in
V können also nurnoch mit drei verschiedenen Farben eingefärbt werden, nämlich den
Farben von v1 , v2 und v3 . Damit ist G0 genau dann k-färbbar wenn G 3-färbbar ist.
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?
vi
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)
Lösungsvorschlag
ng
i.) Wir zeigen, dass wir eine gegebene Instanz von CLIQUE (in polynomieller Zeit) so transformieren können, dass sie eine Instanz von SUBGRAPHISOMORPHIE ist, die genau dann
eine Ja-Instanz ist, wenn die CLIQUE-Instanz eine Ja-Instanz ist: Wir setzen G1 = G
und G2 = Kk , wobei Kk der vollständig verbundene Graph mit k Knoten ist.
ii.) Wir stellen uns vor, wir verfügen über ein CLIQUE-Orakel. Dieses aufzurufen, koste uns
polynomiell viel Zeit. Wir nennen es CLIQUE.
a) Wir beschreiben den Algorithmus und analysieren dessen Laufzeit:
Lö
su
Eingabe : Graph G = (V, E)
Ergebnis : k, die Größe der größten Clique in G
Beginn
k := 0;
solange CLIQUE(G, k + 1) = Ja tue
k := k + 1
Ende
zurück k;
Ende
Die Schleife wird k mal durchlaufen. Ihr Rumpf hat eine polynomielle Laufzeit.
Damit hat auch der Algorithmus polynomielle Laufzeit.
b) Ja:
vii
ng
Eingabe : Graph G = (V, E), k ∈ N
Ergebnis : Clique V 0 ⊆ V mit |V 0 | = k
Beginn
wenn CLIQUE(G, k) = Nein dann
zurück E
Ende
V 0 := ∅;
für v ∈ V 0 tue
wenn CLIQUE(V \ {v}, k) = Ja dann
V := V \ {v};
Ende
sonst
V 0 := V 0 ∪ {v};
Ende
Ende
zurück V 0
Ende
Der Algorithmus geht die Knoten des Graphen einzeln durch und löscht sie testweise. Ist
nach dem Löschen eines Knoten immer noch eine k-Clique im Graph, gehört der gelöschte
Knoten nicht dazu. Andernfalls schon.
Aufgabe 5 (K) (1 Punkt): Bonusaufgabe
Lö
su
Geben Sie eine Dreifärbung des unten gegebenen Graphen an. (1P)
viii
ix
ng
Lö
su
Lö
su
ng
Lösungsvorschlag
x
Herunterladen