Inhalt Empfehlenswerte Referenzen Aufgabe 1 – Polynom-warm-up

Werbung
Tutorium zur theoretischen Informatik
Übungsblatt 5 (2006-12-20)
Man bringt einen Ingenieur am schnellsten dazu, ein Problem zu lösen, wenn man behauptet, das
Problem sei unlösbar. Kein Ingenieur kann ein unlösbares Problem sich selbst überlassen, bis es
jemand anderer löst. Weder Krankheit noch Ablenkung können den Ingenieur von dem Problem
abbringen. Eine solche Herausforderung wird schnell zu einem persönlichen Kampf zwischen dem
Ingenieur und den Naturgesetzen.
(Scott Adams in "Das Dilbert-Prinzip.", Kapitel 14: "Von Ingenieuren, Wissenschaftlern,
Programmierern und anderen seltsamen Menschen")
Inhalt
1.
2.
3.
4.
5.
6.
7.
Empfehlenswerte Referenzen
Aufgabe 1 – Polynom-warm-up
How To: NP-Probleme reduzieren
Aufgabe 2 – Hamilton-Pfad ≤p Hamilton-Kreis
Aufgabe 3 – Hamilton-Kreis ≤p Travelling Salesman
Aufgabe 4 – Rucksack ≤p Partition
Aufgaben to go
Empfehlenswerte Referenzen
●
●
●
●
http://www.claymath.org/millennium/ - für alle, die mal schnell nebenher etwas Geld
verdienen wollen: auf den mathematisch stichhaltigen Beweis dass NP=P, bzw
NP≠P sind 1.000.000 $ ausgesetzt.
http://de.wikipedia.org/wiki/Komplexit%C3%A4tsklasse_NP - der obligatorische
Wikipedia-Link zur Klasse NP
http://en.wikipedia.org/wiki/List_of_NP-complete_problems – dieser
englischsprachige Wiki-Link führt jede Menge NP-Probleme auf
Uwe Schöning "Theoretische Informatik – kurzgefasst" - ab Seite 163 werden 10
gängige NP-Probleme samt Reduktionen aufgeführt
Aufgabe 1 – Polynom-warm-up
Welche dieser Funktionen sind Polynome und welche nicht:
a(n) = n
f (n) = nn + n2 + n + 2
2
b(n) = n + n + 2006
g(n) = n!
c(n) = n32
h(n) = log7(n)
n
d(n) = 3
i (n) = ld(n) n
e(n) = nn
j (n) = 42
Lösung
Die Funktionen a, b, c und j. Die anderen entsprechen nicht der Form
n
P  x =∑ a i x =a n x a n−1 x
i=0
i
n
n −1 
2
...a 2 x a 1 xa 0
Anmerkung: hier ist n bekanntlich der Grad des Polynoms (= höchste auftretende Potenz)
und ai jeweils eine Konstante abhängig vom Index i. ai kann auch 0 sein – dann gibt es
das jeweilige Summenglied im Polynom eben nicht.
Seite 1 / 7
Tutorium zur theoretischen Informatik
Übungsblatt 5 (2006-12-20)
How To: NP-Probleme reduzieren
Die Aufgabenstellung lautet in der Regel, dass für ein gegebenes NP-vollständiges
Problem A eine polynomiale Reduktion auf ein anderes Problem B anzugeben ist – wobei
man nicht davon ausgehen darf, dass B NP-vollständig ist: das ist durch die Reduktion ja
zu zeigen!
Formal drückt man die polynomiale Reduktion so aus: A ≤ p B
Um sich vor Augen zu halten, was dabei abgeht, kann man sich vorstellen, A sei eine
Black Box, die einen bestimmten Input erhält, im Inneren damit etwas anstellt und am
Ende entweder eine Lösung ausgibt oder sagt, dass es keine Lösung gibt.
Die Reduktion von A auf B ist gegeben, wenn man darstellen kann, wie diese Black Box
funktioniert, wenn im Inneren B zur Lösungsermittlung des Problems A für eine beliebige
Eingabe verwendet wird. Graphisch sieht das z. B. so aus:
Die polynomiale Reduktion ist also zunächst mal eine Funktion f, das die Elemente des
NP-vollständigen Problems A auf die Elemente des Problems B "mappt" – also: ihnen eine
Bedeutung zuweist, die im Rahmen von B sinnvoll ist.
Falls für den Input I (in der Grafik mit "Instanz" des Problems A bezeichnet) nach
Anwendung von f eine Lösung S durch das Problem B gefunden wird, muss diese Lösung
noch in den "Bedeutungsbereich" des Problems A zurücktransformiert werden. Dies wird
durch die Funktion h bewerkstelligt.
Damit die Reduktion polynomial ist, muss das Wachstum von f und h jeweils durch ein
Polynom darstellbar sein, also z. B. durch O(1), O(n), O(n³), O(n777 + n + 23), ...
Seite 2 / 7
Tutorium zur theoretischen Informatik
Übungsblatt 5 (2006-12-20)
Aufgabe 2 – Hamilton-Pfad ≤p Hamilton-Kreis
Problem Hamilton-Pfad
gegeben: ein Graph G=(V, E), sowie
Knoten s, t mit s ≠ t
gesucht: Pfad von s nach t, so dass jeder
Knoten in V genau 1x besucht
wird.
Problem Hamilton-Kreis
gegeben: ein vollständiger Graph G=(V,E)
gesucht: eine Rundreise R, so dass jeder
Knoten in V in R genau 1x
enthalten ist.
Gib Hamiton-Pfad ≤p Hamilton-Kreis an.
Lösung
Ham.-Pfad ist also durch den Ham.-Kreis darzustellen. Die Visualisierung der Lösung als
Black Box:
Es ist also für das Hamilton-Pfad-Problem eine Lösung auffindbar, genau dann, wenn für
das Hamilton-Kreis-Problem eine Lösung auffindbar ist. Das allein reicht aber noch nicht:
Wichtig ist auch, dass f und h mit polynomialem Aufwand durchgeführt werden können.
Dies ist hier gegeben, denn sowohl das Hinzufügen eines Knotens und 2er Kanten, als
auch deren Entfernung können in O(1) getan werden.
Seite 3 / 7
Tutorium zur theoretischen Informatik
Übungsblatt 5 (2006-12-20)
Aufgabe 3 – Hamilton-Kreis ≤p Travelling Salesman
Problem Travelling Salesman
gegeben: Graph G=(V, E), Gewichtsfunktion δ(e ∈ E), Budget n ∈ ℕ
gesucht: Rundreise R, die alle v ∈ V enthält und für die gilt:
∑
 e∈E n
Kante e in R
Gib Hamilton-Kreis ≤p Travelling Salesman an.
Lösung
Die Idee ist, den Eingabe-Graphen derart zu einem vollständigen Graphen (also ein
Graph, bei dem zwischen allen Knoten Kanten existieren) mit Kantengewichten zu
erweitern, dass nur die ursprünglich vorhandenen Kanten Gewichte haben, die für eine
Lösungsrundreise verwendet werden können. Alle neu hinzugefügten Kanten erhalten
Gewichte, die so groß sind, dass jede von ihnen "das Budget n sprengen" würde, würde
die Kante zur Lösung hinzugenommen werden. Daher ist klar, dass eine Lösung (wenn es
eine gibt) ausschließlich aus Kanten von G bestehen muss.
"id" steht hier für die identische Abbildung, die ihre Eingabe 1:1 wieder ausgibt.
Die Funktion f "mapped" ihre Eingabe G wie folgt auf G':
● Die Knoten V werden ohne Änderung nach G' übernommen, denn jede gefundene
gültige Rundreise soll ja jeden dieser Knoten je 1x enthalten.
● Die Menge der Kanten wird erweitert, so dass G' ein vollständiger Graph ist:
○ ∀ v1, v2 ∈ V mit v1 ≠ v2 wird gesetzt: E' = E' ∪ {Kante v1v2}
● Die Gewichtsfunktion gibt aus:
○ δ(e) = 1, wenn die Kante e auch in der Eingabe G existiert
Seite 4 / 7
Tutorium zur theoretischen Informatik
Übungsblatt 5 (2006-12-20)
δ(e)= 1 + α, mit α > 0 wenn e nur in G' und nicht in G existiert.
Das Budget n setzen wir auf die Anzahl der Knoten: n ≔ |V|
Mit jeder Kante, die neu zur Lösungsrundreise R hinzugenommen wird, wird auch ein
neuer Knoten hinzugenommen. Daher ist klar, dass die Anzahl der Kanten in R genau
gleich der Anzahl der Knoten in R ist.
Da das Budget so "knapp" bemessen wurde und alle Knoten besucht werden müssen, ist
klar, dass für die Lösungsreise nur Kanten in Frage kommen, die es auch in G gibt. Sobald
eine Kante mit Gewicht gleich 1 + α in die Rundreise aufgenommen wird, wird das Budget
überschritten.
Daher kann es nur dann eine Lösung für das Problem Hamilton-Kreis geben, wenn es
auch eine Lösung für TSP gibt.
h=id ist mit konstantem oder höchstens linearem Aufwand machbar (Ansichtssache) und
liegt somit auf jeden Fall aber in der Klasse von polynomialem Aufwand.
Zur Ermittlung des Aufwands von f müssen wir die einzelnen Schritte "durchgehen":
● Übernahme der Knotenmenge ohne Änderung: konstanter oder linearer Aufwand,
also auch O(1) oder O(n)
● Erweitern zu vollständigem Graph: ist mit quadratischem Aufwand machbar
● Definition der Gewichtsfunktion: kann in O(n) realisiert werden
● Budget setzen: O(n), da die Anzahl der Knoten zusammengezählt werden muss,
bzw. O(1), wenn man sie schon weiss
Auf jeden Fall hat f polynomialen Aufwand.
○
●
Seite 5 / 7
Tutorium zur theoretischen Informatik
Übungsblatt 5 (2006-12-20)
Aufgabe 4 – Rucksack ≤p Partition
Problem Rucksack
gegeben: Zahlen a1, ..., ai, b ∈ ℕ
gesucht: gibt es T ⊆ {1, ..., i}
mit ∑ at =b ?
Problem Partition
gegeben: a1, ..., ai ∈ ℕ
gesucht: gibt es T ⊆ {1, ..., i}
mit ∑ at =∑ a t ?
t ∈T
t ∈T
t ∉T
Gib Rucksack ≤p Partition an.
Lösung
(Angelehnt an den Reduktionsbeweis im Buch von Uwe Schöning, s. o.)
Idee: die "Rucksackgröße" b wird wie eine weitere Zahl der "in den Rucksack zu füllenden"
Zahlenmenge behandelt. Dann muss man noch irgendwie dafür sorgen, dass die Zahlen
aq, ..., ap einer Teilmenge der Partition zusammengezählt b ergeben, wenn b in dieser
Zahlenmenge nicht enthalten ist.
Die Funktion f wird also so definiert, dass zur Eingabe {a1, ..., ai} die Zahlen b+1 und
i
M–b+1 hinzugefügt werden, wobei M =∑ a k ist. Die Zahlen M–b+1 und b+1 können
k=1
nicht beide in derselben Partitions-Teilmenge sein, da alle anderen Zahlen
zusammengezählt dem Wert M-b+1 + b+1 = M+2 nicht mehr "die Waage halten" können.
Um die Zahlenmenge {a1, ..., ai, M-b+1, b} in 2 partitionierende Teilmengen aufzuteilen,
muss M-b+1 in der einen und b in der anderen Teilmenge sein.
Wenn es eine Lösung für die Eingabe gibt, dann kann man sie beispielsweise so
Seite 6 / 7
Tutorium zur theoretischen Informatik
Übungsblatt 5 (2006-12-20)
darstellen (wobei die Indizes evtl. anders lauten müssen) für eine Eingabe von 10
Zahlenwerten ai (die Feldlänge soll die jeweilige Größe des Wertes darstellen):
a1
a2
a3
a4
a5
a6
a7
a8
a9
a10
M
a1
a2
a3
M–b
a4
a5
b
a6
a7
a8
1
a9
a10
1
Wie man sieht, gilt hier: b = a6 + a7 + a8 + a9 + a10
Damit ist auch schon gesagt, wie die Funktion h aussieht, die aus einer Lösung für das
Problem Partition eine Lösung für Rucksack generiert: h gibt entfernt aus derjenigen
Teilmenge, in der sich M-b+1 befindet, eben diese Zahl und gibt alle anderen Zahlen
dieser Menge zurück.
Sowohl f, als auch h lassen sich mit polynomialem Aufwand realisieren; Rucksack hat
genau dann eine Lösung, wenn Partition eine Lösung hat: somit ist Rucksack auf Partition
reduziert.
Aufgaben to go
1. Lies und verstehe mindestens 10 Reduktionsbeweise, z. B. von den o. g.
Referenzen.
2. Gib Bin Packing ≤p Minimale Prozessdauer an.
Problem Bin Packing
Problem Minimale Prozessdauer
gegeben: eine Behältergröße b ∈ ℕ, ein
gegeben: n Prozesse jeweils
mit Bearbeitungsdauer pi ∈ ℕ+,
Wert k ∈ ℕ+ und
i ∈ {1, .., n} und ein Wert m ∈ ℕ+
"Objekte" a1, ..., an jeweils mit
Größe ≤ b
gesucht: gibt es einen Belegungsplan für m
identische parallel arbeitende
gesucht: gibt es eine Verteilung der n
Prozessoren, so dass die
Objekte auf k Behälter ohne,
Bearbeitungsdauer minimal ist
dass die Behältergröße
und alle Prozesse abgearbeitet
überschritten wird?
werden?
Seite 7 / 7
Herunterladen