TU Ilmenau, Fakultät IA Institut TI, FG Komplexitätstheorie und Effiziente Algorithmen Univ.-Prof. Dr. Martin Dietzfelbinger, Dipl.-Inf. Martin Aumüller http://www.tu-ilmenau.de/iti/lehre/lehre-ws-20112012/kt/ Komplexitätstheorie, WS 2011/2012 Übungsblatt 7 (Besprechung: 25.11.2011) Aufgabe 1 Sie haben in der Vorlesung gesehen, dass das Problem BINPACKING stark NPvollständig ist. (a) Geben Sie einen pseudopolynomiellen Algorithmus A zur Lösung von 2-BINPACKING an, also für das BINPACKING-Problem mit genau 2 Eimern. (b) Können Sie diesen Algorithmus auf k-BINPACKING, k ∈ N fest, erweitern? (c) Geben Sie einen pseudopolynomiellen Algorithmus B für PARTITION an, der A als Unterprogramm nutzt. Aufgabe 2 Wir wollen in dieser Aufgabe das Konzept aus Aufgabe 1(d) verallgemeinern. Wir nehmen dafür an, dass P und P 0 zwei NP-Suchprobleme sind und P 0 einen pseudopolynomiellen Algorithmus besitzt. Bearbeiten Sie die folgenden Teilaufgaben: (a) Geben Sie zwei Probleme P, P 0 an, so dass P ≤p P 0 gilt, aber nicht folgt, dass P einen pseudopolynomiellen Algorithmus besitzt. (b) Geben Sie eine Bedingung für das Funktionspaar (f, h) (wie im Satz 2.8.4 der Vorlesung) an, so dass wir aus der Existenz eines pseudopolynomiellen Algorithmus für P 0 und P ≤p P 0 einen pseudopolynomiellen Algorithmus B zur Lösung von P erhalten. Aufgabe 3 Die eigentliche Schwierigkeit eines Problems liegt manchmal in möglicherweise kleinen Teilen des Inputs. Diese Problemkerne“ lassen sich oft durch die Angabe einfacher ” Regeln bestimmen. Betrachten Sie den folgenden Regelsatz für das VERTEX COVERProblem mit Problemparameter k. 1. Falls G einen isolierten Knoten besitzt, so muss dieser bei einer Knotenüberdeckung nicht beachtet werden. 2. Falls G ein Blatt v besitzt, d.h. v besitzt Grad 1, und v ∈ V 0 für eine Knotenüberdeckung V 0 mit maximal k Knoten gilt, so existiert in G eine Knotenüberdeckung V 00 mit maximal k Knoten und v ∈ / V 00 . 3. Falls G einen Knoten v mit mehr als k Nachbarn besitzt, so muss v in jeder Knotenüberdeckung mit maximal k Knoten vorkommen. Wenden Sie diese Regeln auf einen Eingabegraphen G und Eingabeparameter k an, bis Sie entweder einen kleinen (in seiner Größe nur durch k beschränkten) Graphen erhalten, in dem Sie eine Knotenüberdeckung der maximalen Größe k 0 ≤ k suchen, oder entscheiden können, dass G keine Knotenüberdeckung mit maximal k Knoten besitzt. Geben Sie eine Laufzeitabschätzung für Ihren Algorithmus an. 2 Komplexitätstheorie, WS 2011/2012 Übungsblatt 7 (Besprechung: 25.11.2011) Aufgabe 4 Eine wichtige Technik, um schwierige Probleme beherrschbar zu machen, sind tiefenbeschränkte Suchbäume. Die Grundidee ist wie folgt: Finde in polynomieller Zeit eine kleine Teilmenge des Inputs, so dass zumindest ein Element dieser Teilmenge in einer zulässigen Lösung liegt. Dann verzweige rekursiv um alle Möglichkeiten durchzuprobieren. Wir illustrieren diese Grundidee am Beispiel von Vertex Cover: Für dieses Problem bilden die Endpunkte einer Kante eine solche Teilmenge, da mindestens einer dieser Knoten in einer Knotenüberdeckung liegen muss. Wir betrachten nun zwei Fälle: 1. Der linke Knoten ist Teil der Knotenüberdeckung. 2. Der rechte Knoten ist Teil der Knotenüberdeckung. Wir betrachten diese Fälle getrennt und entfernen jeweils den entsprechenden Knoten und all seine inzidenten Kanten. Dann rufen wir unseren Algorithmus rekursiv auf dem so modifizierten Graphen mit Problemparameter k − 1 auf (es werden also jeweils 2 kleinere Probleme rekursiv betrachtet). Beschreiben Sie, basierend auf der oben beschriebenen Idee, einen Algorithmus für VERTEX COVER mit Laufzeit O(2k · (|V | + |E|)). Inwiefern ist dieser Algorithmus besser als das Durchprobieren aller k-elementigen Teilmengen der Knotenmenge? Aufgabe 5 Wir betrachten in dieser Aufgabe die folgende NP-vollständige Variante des HITTING SET-Problems: 3-HITTING SET (3HS) Eingabe: A = {1, . . . , n}, B = (B1 , . . . , Bm ), Bi ⊆ A, |Bi | ≤ 3, k ∈ N. Aufgabe: Finde eine Menge J ⊆ A, |J| ≤ k, so dass aus jeder Teilmenge Bi mindestens ein Element in J liegt. Betrachten Sie nun die folgenden Reduktionsregeln: 1. Für jedes Paar Bi , Bj ∈ B: Falls Bi ⊆ Bj , dann können wir Bj entfernen. 2. Für jedes Paar i, j ∈ A mit i < j: Falls es mehr als k dreielementige Teilmengen aus B gibt, die sowohl i als auch j enthalten, dann entferne all diese Teilmengen aus B und füge {i, j} zu B hinzu. 3. Für jedes Element a ∈ A: Falls mehr als k 2 dreielementige Teilmengen bzw. mehr als k zweielementige Teilmengen in B existieren, die a enthalten, dann muss a in jedem 3-HITTING SET der Größe maximal k liegen. Diese Regeln werden auf eine gegebene Eingabe für 3HS angewendet. Wie groß wird die resultierende Eingabe, falls es eine Lösung mit maximal k Elementen gibt? Aufgabe 6 Geben Sie einen Algorithmus auf der Basis von tiefenbeschränkten Suchbäumen (siehe Aufgabe 4) an, der das 3HS-Problem in Zeit O(3k · m) löst.