Vorlesung: Algorithmische Diskrete Mathematik

Werbung
Vorlesung: Algorithmische Diskrete Mathematik
Raymond Hemmecke
Vertretungsprofessor für Algorithmische Diskrete Mathematik
SS 2009 | TU Darmstadt | Raymond Hemmecke | 1
Inhalt der Vorlesung
I Komplexitätstheorie
I
Datenstrukturen und Kodierungsschemata
I
asymptotische Notation, untere und obere Schranken
I
Klassen
P, N P, N P -vollständig
I Algorithmen auf Graphen
I
DFS-Algorithmus (aufspannende Bäume)
I
Greedy-Algorithmus (minimale aufspannende Bäume)
I
Dijkstra, Moore-Bellman, Yen-Variante (kürzeste Wege in Graphen)
I
Ford-Fulkerson (maximale Flüsse in Netzwerken, Matching in bipartiten
Graphen)
I Sortieren in Arrays
I
Mergesort, Quicksort, Heapsort
I
Divide-and-Conquer
I
untere Komplexitätsschranken für das Sortieren
SS 2009 | TU Darmstadt | Raymond Hemmecke | 2
Grundlegende Begrie der Graphentheorie
SS 2009 | TU Darmstadt | Raymond Hemmecke | 3
Was ist ein Graph?
Graph
I Ein ungerichter Graph ist ein Paar
Elemente von
E
G = (V , E )
disjunkter Mengen, wobei die
ungeordnete Paare von Elementen aus
I Die Elemente aus
V
heiÿen Knoten, die Elemente aus
V
E
sind.
Kanten.
Digraph
I Ein gerichter Graph ist ein Paar
Elemente von
A
G = (V , A)
disjunkter Mengen, wobei die
geordnete Paare von Elementen aus
I Die Elemente aus
A
V
sind.
heiÿen Bögen oder gerichtete Kanten.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 4
Nachbarschaftsbeziehungen
Inzidenz, Grad/Valenz
I Ein Knoten
v
heiÿt mit einer Kante
I Der Grad/die Valenz eines Knoten
e
v
inzident, wenn
v ∈e
ist die Anzahl der mit
gilt.
v
inzidenten Kanten.
Adjazenz, vollständiger Graph
I Zwei Knoten
x
und
y
heiÿen adjazent oder benachbart in
I Sind je zwei Knoten von
G
benachbart, so heiÿt
G
G,
wenn
xy ∈ E (G )
vollständig.
e
v
SS 2009 | TU Darmstadt | Raymond Hemmecke | 5
x
y
K4
ist.
Bipartite Graphen
Denition
I Ein Graph heiÿt bipartit, wenn sich
lässt, so dass jede Kante in
E
V
disjunkt in zwei Teile
einen Endknoten in
V1
V1
und
V2
zerteilen
und einen Endknoten in
besitzt.
K3,3
Fakt
→
Beweis als Übungsaufgabe
I Ein Graph ist genau dann bipartit, wenn er nur Kreise gerader Länge enthält.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 6
V2
Was sind Kreise?
Pfad, Weg, Kreis
I Ein Pfad ist ein nichtleerer Graph
P = (V , E )
der Form
V = {x0 , x1 , ... , xk }, E = {x0 x1 , x1 x2 , ... , xk−1 xk }.
I Ein Weg ist ein Pfad, in dem alle
I Ein Kreis ist ein nichtleerer Graph
xi
paarweise verschieden sind.
P = (V , E )
der Form
V = {x0 , x1 , ... , xk }, E = {x0 x1 , x1 x2 , ... , xk−1 xk , xk x0 },
wobei die
xi
paarweise verschieden sind.
x0
x1 ,x4
x0
x1
x0
x2
x5
x3
Pfad
SS 2009 | TU Darmstadt | Raymond Hemmecke | 7
x1
x2
x2
Weg
Kreis
Zusammenhangskomponenten, Bäume und
Wälder
Zusammenhängende Graphen
I Ein Graph
von
v
G heiÿt zusammenhängend,
w in G gibt.
falls es zu jedem Paar
v, w ∈ V
einen Weg
nach
I Die zusammenhängenden Teile von
G
heiÿen Zusammenhangskomponenten.
Bäume und Wälder
I Ein Baum ist ein zusammenhängender Graph, der keinen Kreis besitzt.
I Ein Wald ist ein Graph, der keinen Kreis besitzt.
Baum
SS 2009 | TU Darmstadt | Raymond Hemmecke | 8
Wald, 2 Komponenten
Komplementärgraph
Komplementärgraph
I Der zu
G
komplementäre Graph
Ḡ
ist der Graph
Graph
Fakt
→
Ḡ = (V , Ē ),
mit
Komplement
Beweis als Übungsaufgabe
I Mindestens einer der Graphen
SS 2009 | TU Darmstadt | Raymond Hemmecke | 9
G
oder
Ḡ
ist zusammenhängend.
ij ∈ Ē ⇔ ij 6∈ E .
Untergraphen, aufspannende Untergraphen
Untergraph, aufspannende Untergraphen
I
I
G 0 = (V 0 , E 0 )
0
G ⊆G
heiÿt Untergraph von
G = (V , E ),
heiÿt aufspannender Untergraph von
Graph mit Untergraph
Finden eines aufspannenden Waldes
I Für gegebenes
G = (V , E )
SS 2009 | TU Darmstadt | Raymond Hemmecke | 10
→
G,
falls
falls
V0 ⊆ V
0
V =V
und
gilt.
aufspannender Baum
DFS-Algorithmus
nde man einen aufspannenden Wald.
E0 ⊆ E
gilt.
Probleme auf Graphen (1)
Finden eines Kreises/Hamiltonischen Kreises
I Entscheide für einen gegebenen Graphen
G = (V , E ),
ob er einen Kreis enthält.
G = (V , E ),
ob er einen hamiltonischen
Falls ja, gib einen solchen an.
I Entscheide für einen gegebenen Graphen
Kreis enthält. Falls ja, gib einen solchen an. (Ein hamiltonischer Kreis ist ein Kreis,
der jeden Knoten genau einmal durchläuft.)
Finden eines aufspannenden Waldes
I Für gegebenes
G = (V , E )
→
DFS-Algorithmus
nde man einen aufspannenden Wald.
Maximales Matching
I Finde für gegebenen Graphen
G = (V , E )
so dass je zwei Kanten nicht inzident sind.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 11
die maximale Anzahl von Kanten aus
E,
Probleme auf Graphen (2)
Maximale stabile Mengen/Cliquen
I Finde für gegebenen Graphen
G = (V , E )
die maximale Anzahl von Knoten aus
so dass je zwei Knoten nicht benachbart sind.
I Finde für gegebenen Graphen
→
G = (V , E ) die maximale
→ Clique
Anzahl von Knoten aus
so dass je zwei Knoten benachbart sind.
Kürzeste Wege
I Für gegebenes
G = (V , E )
und gegebenen Kantengewichten
kürzesten Weg zwischen zwei gegebenen Knoten
v
und
cij
nde man einen
w.
Färbungsproblem
I Finde für gegebenen Graphen
dass sich die Knoten von
G
G = (V , E ) die minimale Anzahl k von Farben,
k Farben färben lassen, dass benachbarte
so mit
Knoten unterschiedlich gefärbt sind.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 12
V,
stabile Menge
so
V,
Asymptotische Notation
SS 2009 | TU Darmstadt | Raymond Hemmecke | 13
Asymptotische Notation
Obere Schranken:
I Sei
O -Notation
g : N → R.
Dann bezeichnet
O(g ) := {f : N → R : ∃c > 0, n0 ∈ N
die Menge aller Funktionen
n0 ∈ N
mit
|f (n)| ≤ c|g (n)| ∀n ≥ n0 }
f : N → R, für die zwei positive Konstanten c ∈ R
n ≥ n0 gilt |f (n)| ≤ c|g (n)|.
existieren, so dass für alle
Bemerkungen
I Die asymptotische Notation vernachlässigt Konstanten und Terme niedrigerer
Ordnung (wie z.B. die Terme
ak nk
mit
k<m
im Polynom).
Satz
I Für ein Polynom
f (n) = am nm + ... + a1 n + a0
SS 2009 | TU Darmstadt | Raymond Hemmecke | 14
vom Grade
m
gilt
f ∈ O(nm ).
und
Vergleich
Die nachfolgende Tabelle zeigt, wie sechs typischen Funktionen anwachsen, wobei die
Konstante gleich
und
O(n log n)
1
gesetzt wurde. Wie man feststellt, zeigen die Zeiten vom Typ
ein wesentlich schwächeres Wachstum also die anderen.
log n
0
1
2
3
4
5
n
1
2
4
8
16
32
SS 2009 | TU Darmstadt | Raymond Hemmecke | 15
n log n
0
2
8
24
64
160
n2
1
4
16
64
256
1024
n3
1
8
64
512
4096
32768
2n
2
4
16
256
65536
4294967296
O(n)
Untere Schranken
Ω-
und
Θ-Notation
f , g : N → R. Dann ist f ∈ Ω(g ), wenn
n0 ∈ N existieren, so dass für alle n ≥ n0 gilt:
I Seien
zwei positive Konstanten
c∈R
und
|f (n)| ≥ c|g (n)|.
I
f ∈ Θ(g ), wenn es positive Konstanten c1 , c2 ∈ R
n ≥ n0 gilt c1 |g (n)| ≤ |f (n)| ≤ c2 |g (n)|.
I Falls
f ∈ Θ(g ),
dann ist
g
und
n0 ∈ N
gibt, so dass für alle
sowohl eine obere als auch eine untere Schranke für
f.
Beispiel: Sequentielle Suche
I Sei
f (n)
die Anzahl von Vergleichen bei der sequentiellen Suche nach einem
bestimmten Wert in einem unsortierten Array mit
f ∈ O(n),
da man ja mit
n
n
Komponenten. Dann ist
Vergleichen auskommt.
I Andererseits muss man auch jede Komponente überprüfen, denn ihr Wert könnte ja
der gesuchte Wert sein. Also
SS 2009 | TU Darmstadt | Raymond Hemmecke | 16
f ∈ Ω(n)
und damit
f ∈ Θ(n).
Ein weiteres Beispiel
Matrixmultiplikation
n × n Matrizen
ergibt sich die Berechnung
P
C = A · B gemäÿ cij = nk=1 aik · bkj . Sie erfordert also n
Multiplikationen und n − 1 Additionen.
I Bei der Matrixmultiplikation von
Eintrags
cij
eines
von
C also n2 Einträge cij zu berechnen, und somit
n2 (n + n − 1) = 2n3 − n2 = O(n3 ) arithmetische Operationen insgesamt
I Insgesamt sind für ganz
auszuführen.
I Da jeder Algorithmus für die Matrixmultiplikation
n2
Einträge berechnen muss,
folgt andererseits, dass jeder Algorithmus zur Matrixmultiplikation von zwei
2
Matrizen Ω(n ) Operationen benötigt.
I Es klat zwischen
Ω(n2 )
und
O(n3 )
also noch eine Komplexitätslücke. Die
schnellsten bekannten Algorithmen zur Matrixmultiplikation kommen mit
Operationen aus.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 17
n×n
O(n2,376 )
Komplexitätstheorie
SS 2009 | TU Darmstadt | Raymond Hemmecke | 18
Was ist ein Problem?
Denition
I Ein Problem ist eine allgemeine Fragestellung, bei der mehrere Parameter oen
gelassen sind und für die eine Lösung oder Antwort gesucht wird.
I Ein Problem ist dadurch deniert, dass alle seine Parameter beschrieben werden und
dass genau angegeben wird, welche Eigenschaften eine Antwort (Lösung) haben soll.
I Sind alle Parameter eines Problems mit expliziten Daten belegt, dann sprechen wir
von einem Problembeispiel (Instanz).
Beispiel
I Finde einen kürzesten Hamiltonischen Kreis.
I Oene Parameter: Anzahl Städte, Entfernungen
SS 2009 | TU Darmstadt | Raymond Hemmecke | 19
Algorithmen
Was ist ein Algorithmus?
I Ein Algorithmus ist eine Anleitung zur schrittweisen Lösung eines Problems. Wir
sagen, ein Algorithmus A löst ein Problem
I ∈ Π,
Π,
falls A für alle Problembeispiele
eine Lösung in einer endlichen Anzahl an Schritten ndet.
I Ein Schritt ist eine elementare Operation: Addieren, Subtrahieren, Vergleichen,
Multiplikation, Division.
I Die Laufzeit eines Algorithmus ist die Anzahl der Schritte, die notwendig sind zur
Lösung des Problembeispiels.
Forschungsschwerpunkte zu Algorithmen
I Entwurf von Algorithmen
I Berechenbarkeit: Was kann durch einen Algorithmus berechnet werden?
I Komplexität von Algorithmen
I Korrektheit von Algorithmen
SS 2009 | TU Darmstadt | Raymond Hemmecke | 20
Komplexität von Algorithmen
SS 2009 | TU Darmstadt | Raymond Hemmecke | 21
Was ist Ezienz?
Was ist Ezienz?
I Komplexitätstheorie
I Speicher- und Laufzeitkomplexität
Trivial
I Laufzeit eines Algorithmus hängt ab von der Gröÿe der Eingabedaten
I Laufzeitanalyse erfordert eine Beschreibung, wie Problembeispiele dargestellt
werden (Kodierungsschema)
I Notwendigkeit exakter Denitionen
I
geeignetes Rechnermodell
SS 2009 | TU Darmstadt | Raymond Hemmecke | 22
→
Turing-Maschine
Kodierungsschema
Ganze Zahlen
I Ganze Zahlen werden binär dargestellt, d.h. wir schreiben
n=±
k
X
xi · 2i ,
i=0
mit
xi ∈ {0, 1}
und
k = blog2 (|n|)c.
I D.h. die Kodierungslänge
hni
einer ganzen Zahl
n
ist gegeben durch die Formel
hni = dlog2 (|n| + 1)e + 1 = blog2 (|n|)c + 2,
wobei
+1
wegen des Vorzeichens
+
oder
−.
Rationale Zahlen
I Sei
r ∈ Q.
Dann existieren
p∈Z
und
q ∈ Z,
teilerfremd, mit
hr i = hpi + hqi
SS 2009 | TU Darmstadt | Raymond Hemmecke | 23
r=
p
.
q
Kodierungsschema (2)
Vektoren
I Für
x = (x1 , ... , xn )| ∈ Qn
ist
hxi =
n
X
hxi i.
i=1
Matrizen
I Für
A ∈ Qm×n
ist
hAi =
m X
n
X
haij i.
i=1 j=1
SS 2009 | TU Darmstadt | Raymond Hemmecke | 24
Rechnermodell
Nach Festlegung der Kodierungsvorschrift muss ein Rechnermodell entworfen werden, auf
dem unsere Speicher- und Laufzeitberechnungen durchgeführt werden.
In der Komplexitätstheorie: Turing-Maschine (ein ganz normaler Computer)
Unendliches Band, auf dem Lese-/Schreiboperationen durchgeführt werden
−1 0
lesen/schreiben
1
2
3
4
Programm
Prozessor
stellt Operationen zur Verfügung:
+, −, *, /, vergleichen, löschen, schreiben, lesen
SS 2009 | TU Darmstadt | Raymond Hemmecke | 25
Ablauf eines Algorithmus auf der TuringMaschine
Algorithmus
A
soll Problembeispiel
I
des Problems
Π
lösen. Alle Problembeispiele liegen
in kodierter Form vor.
Inputlänge
I Die Anzahl der Speicherplätze, die nötig sind, um
Inputlänge,
I
vollständig anzugeben, heiÿt
hI i.
Der Algorithmus liest die Daten und beginnt dann, Operationen auszuführen, d.h. Zahlen
zu berechnen, zu speichern, zu löschen.
Speicherbedarf
I Die Anzahl der Speicherplätze, die während der Ausführung des Algorithmus
mindestens einmal benutzt werden, nennen wir Speicherbedarf von
von
I.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 26
A
zur Lösung
Laufzeit
Informell
A zur Lösung von I ist die Anzahl elementarer Operationen. Dazu
+, −, ∗, /, Vergleich, Löschen, Schreiben, Lesen von rationalen Zahlen.
I Die Laufzeit von
zählen
Dies ist jedoch zu unpräzise!
I Zur Darstellung der entsprechenden Zahlen werden mehrere Bits benötigt.
→
Für jede Operation müssen wir mehrere Bits zählen.
Korrekte Denition
I Die Laufzeit von
Operationen, die
A
A
zur Lösung von
I
ist deniert durch die Anzahl elementarer
ausgeführt hat, um
I
zu lösen, multipliziert mit der gröÿten
Kodierungslänge der während der Berechnung aufgetretenen ganzen oder rationalen
Zahl.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 27
Laufzeitfunktion, Speicherplatzfunktion (worstcase)
Laufzeitfunktion, polynomielle Laufzeit
I Sei
A
ein Algorithmus zur Lösung eines Problems
fA (n) = max{Laufzeit
heiÿt Laufzeitfunktion von
I Der Algorithmus
A
Π.
Die Funktion fA
von A zur Lösung von
: N → N,
I : I ∈ Π, hI i ≤ n}
A.
hat eine polynomiale Laufzeit (kurz:
Algorithmus), wenn es ein Polynom
p:N→N
A
ist ein polynomialer
gibt mit fA (n)
≤ p(n)
für alle
n ∈ N.
Speicherplatzfunktion, polynomieller Speicherbedarf
I Die Speicherplatzfunktion sA
:N→N
sA (n) = max{Speicherbedarf
I Der Algorithmus
q:N→N
A
gibt mit
von
von
A
A
ist deniert durch
zur Lösung von
I : I ∈ Π, hI i ≤ n}.
hat polynomialen Speicherbedarf, falls es ein Polynom
sA (n) ≤ q(n)
SS 2009 | TU Darmstadt | Raymond Hemmecke | 28
für alle
n ∈ N.
Weitere Bemerkungen
Bemerkungen
I Nehmen wir an, wir ermitteln die Rechenzeit
Algorithmus. Die Variable
n
f (n)
für einen bestimmten
kann z.B. die Anzahl der Ein- und Ausgabewerte sein,
ihre Summe, oder auch die Gröÿe eines dieser Werte. Da
f (n)
maschinenabhängig
ist, genügt eine a priori Analyse nicht. Jedoch kann man mit Hilfe einer a priori
Analyse ein
g
bestimmen, so dass
f ∈ O(g ).
I Wenn wir sagen, dass ein Algorithmus eine Rechenzeit
O(g )
hat, dann meinen wir
damit folgendes: Wenn der Algorithmus auf unterschiedlichen Computern mit den
gleichen Datensätzen läuft, und diese Gröÿe
n
haben, dann werden die
resultierenden Laufzeiten immer kleiner sein als eine Konstante mal
Suche nach der Gröÿenordnung von
g
zu nden, so dass
f ∈ O(g )
SS 2009 | TU Darmstadt | Raymond Hemmecke | 29
gilt.
f
|g (n)|.
Bei der
werden wir darum bemüht sein, das kleinste
Die Klassen P , N P , N P -vollständig
SS 2009 | TU Darmstadt | Raymond Hemmecke | 30
Die Klasse P
Was ist ein Entscheidungsproblem?
I Problem, das nur zwei mögliche Antworten besitzt, ja oder nein.
I Beispiele: Ist
Die Klasse
P:
n
eine Primzahl? oder Enthält
G
einen Kreis?
informelle Denition
I Klasse der Entscheidungsprobleme, für die ein polynomialer Lösungsalgorithmus
existiert
Die Klasse
P:
formale Denition
I Gegeben ein Kodierungsschema
I
I
E
und ein Rechnermodell
Π
E
sei ein Entscheidungsproblem, wobei jede Instanz aus
Π
gehört zur Klasse
Π
M.
durch Kodierungsschema
kodierbar sei.
P
(bzgl.
E
und
M ),
wenn es einen auf
Algorithmus zur Lösung aller Problembeispiele aus
auf
M
polynomial ist.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 31
Π
M
implementierbaren
gibt, dessen Laufzeitfunktion
Die Klasse N P
Motivation
→
→P
I Enthält
G
einen Kreis?
I Enthält
G
einen hamiltonischen Kreis?
Die Klasse
N P:
→
schwieriger
→ NP
informelle Denition
I Entscheidungsproblem
I
einfach
Π
gehört zur Klasse
Ist die Antwort ja für
I ∈ Π,
N P,
wenn es folgende Eigenschaft hat:
dann kann Korrektheit dieser Aussage mit Hilfe
eines geeigneten Zusatzobjekts in polynomialer Laufzeit überprüft werden.
Beispiel: Enthält
G
einen hamiltonischen Kreis?
I Geeignetes Zusatzobjekt wäre ein hamiltonischer Kreis.
I Es muss nun lediglich geprüft werden, ob der angegebene Kreis tatsächlich ein
hamiltonischer Kreis von
SS 2009 | TU Darmstadt | Raymond Hemmecke | 32
G
ist.
Die Klasse N P (2)
Formale Denition
I Entscheidungsproblem
Π
gehört zu
(a) Für jedes Problembeispiel
mindestens ein Objekt
Q,
N P,
I ∈ Π,
wenn es die folgende Eigenschaften hat:
für das die Antwort ja lautet, gibt es
mit dessen Hilfe die Korrektheit der ja-Antwort
überprüft werden kann.
(b) Es gibt einen Algorithmus, der Problembeispiele
I ∈Π
und Zusatzobjekte
als Input akzeptiert und der in einer Laufzeit, die polynomial in
überprüft, ob
I
Q
hI i
Q
ist,
ein Objekt ist, aufgrund dessen Existenz eine ja-Antwort für
gegeben werden muss.
Bemerkungen
I Es wird keine Aussage über die Berechenbarkeit eines geeigneten
Q
gemacht.
Q
kann auch geraten werden.
I Da der Überprüfungsalgorithmus
Q
lesen muss, muss
hQi
polynomial in
I Es wird keine Aussage zu möglicher nein-Antwort gemacht.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 33
→
coNP
hI i
sein!
Charakterisierung besonders schwieriger Probleme in N P
Polynomiale Transformation von Problemen
I Gegeben seien zwei Entscheidungsprobleme
I Eine polynomiale Transformation von
Π
Π
und
Π0 .
Π0 ist ein polynomialer Algorithmus,
I ∈ Π, ein (kodiertes) Problembeispiel
in
der,
gegeben ein (kodiertes) Problembeispiel
I 0 ∈ Π0 produziert, so dass folgendes gilt:
I
Die Antwort auf
Die Klasse
I
ist genau dann ja, wenn die Antwort auf
I0
ja ist.
N P -vollständig
I Ein Entscheidungsproblem
andere Problem aus
NP
SS 2009 | TU Darmstadt | Raymond Hemmecke | 34
Π
heiÿt
N P -vollständig, falls Π ∈ N P und
Π transformiert werden kann.
polynomial in
falls jedes
Bemerkung und Fragen
Bemerkung
I Falls ein
N P -vollständiges
Entscheidungsproblem
Π
in polynomialer Zeit gelöst
werden kann, so gilt das auch für jedes andere Problem aus
Π N P − vollständig
und
N P:
Π ∈ P ⇒ P = N P.
I Diese Eigenschaft zeigt, dass (bzgl. polynomialer Lösbarkeit) kein Problem in
schwieriger ist als ein
Existieren
I
NP
N P -vollständiges.
N P -vollständige
Probleme? Ja.
(x1 ∨ x̄2 ∨ x3 ) ∧ (...) ∧ ... =
3-SAT:
Oene Fragen
SS 2009 | TU Darmstadt | Raymond Hemmecke | 35
P
=
NP ∩
NP
=
coN P
P
=
6
NP
coN P
TRUE
Komplexität von Optimierungsproblemen
SS 2009 | TU Darmstadt | Raymond Hemmecke | 36
Die Klasse N P -schwer
Transformation in Entscheidungsproblem
I Sei
O
ein Maximierungsproblem (Minimierungsproblem). Man legt zusätzlich zur
Instanz
I
I
noch eine Schranke
Gibt es für
I
B
fest und stellt die Frage:
eine Lösung, deren Wert nicht kleiner (gröÿer) als
B
ist?
I Damit ist ein Optimierungsproblem polynomial in ein Entscheidungsproblem
transformierbar.
Die Klasse
N P -schwer:
formale Denition
I Ein Optimierungsproblem
Entscheidungsproblem
wenn
O
Π
O
heiÿt
N P -schwer, falls es ein N P -vollständiges
Π in polynomialer Zeit gelöst werden kann,
gibt, so dass
in polynomialer Zeit gelöst werden kann.
Beispiele
I Rucksackproblem, Maschinenbelegung, stabile Menge maximaler Kardinalität,
Clique maximaler Kardinalität, minimale Knotenüberdeckung
SS 2009 | TU Darmstadt | Raymond Hemmecke | 37
Beispiel
Traveling Salesman Problem
I Input: Instanz
I
ist charakterisiert durch eine Distanzmatrix
cij ∈ Z ∀i, j ∈ V ,
|V | = n.
I Problem: Finde einen bzgl.
c
minimalen Hamiltonischen Kreis in
Kn .
I TSP-Entscheidungsproblem:
B ∈ Z.
I
Input wie beim TSP,
I
Problem: Existiert eine TSP-Tour der Länge
≤ B ?
Lemma
I Polynomialer Algorithmus zur Lösung des TSP-Entscheidungsproblems würde
polynomialen Algorithmus zur Lösung des TSP implizieren.
SS 2009 | TU Darmstadt | Raymond Hemmecke | 38
Lösung: Binäre Suche
Beweis
Kn ist ein ganzzahliger Wert im Intervall
s = min{cij : i, j ∈ V , i =
6 j} und t = max{cij : i, j ∈ V , i 6= j}.
I Länge eines hamiltonischen Kreises in
[ns, nt],
wobei
I Rufe TSP-Entscheidungsproblem mit
oder untere Schranke
ns
auf, passe obere Schranke
nt
je nach Ergebnis an und iteriere.
I Insgesamt reichen demnach
SS 2009 | TU Darmstadt | Raymond Hemmecke | 39
c
B = b n(s+t)
2
log(nt − ns)
Iterationen aus.
Herunterladen