n - Informatik

Werbung
PB
Praktische Grenzen
der Berechenbarkeit
Patrick Breuer
15.11.2007
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
2
PB
Komplexitäten
 messbare oder berechenbare Merkmale von
Algorithmen
 Laufzeit
 Speicherbedarf
15.11.2007
WBK Inf X - 6
3
PB
Aufgabe: Aktienkursanalyse
 Die Situation:
Gegeben ist der Kursverlauf einer Aktie über 30 Tage.
Gesucht ist der maximale Gewinn bei optimaler Wahl
des Kauf- und Verkaufstages
 Das Modell:
Gegeben ist eine Zahlenfolge a1,...,an, die Folge
der Tagesgewinne. Gesucht ist die maximale
Teilsumme von a1,...,an.
15.11.2007
WBK Inf X - 6
4
PB
Kursanalyse: Strategie (1)
 Für jeden möglichen Kauftag i und Verkaufstag j die
Teilsumme ai+...+aj berechnen
 Aus allen Teilsummen das Maximum bestimmen
15.11.2007
WBK Inf X - 6
5
PB
Kursanalyse: Algorithmus (1)
begin
max:=0
for i:=1 to n do
for j:=i to n do
s:=0
for k:=i to j do
s:=s+a[k]
if s>max then max:=s
end
15.11.2007
WBK Inf X - 6
6
PB
Kursanalyse: Aufwand (1.1)
 Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleife
begin
max:=0
for i:=1 to n do
for j:=i to n do
s:=0
for k:=i to j do
j− i+ 1
s:=s+a[k]
if s>max then max:=s
end
15.11.2007
WBK Inf X - 6
7
PB
Kursanalyse: Aufwand (1.2)
 Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleife
begin
max:=0
for i:=1 to n do
for j:=i to n do
s:=0
n− i+ 1
for k:=i to j do
k
s:=s+a[k]
k=1
if s>max then max:=s
end
∑
15.11.2007
WBK Inf X - 6
8
PB
Kursanalyse: Aufwand (1.3)
 Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleife
begin
max:=0
for i:=1 to n do
for j:=i to n do
1
2
n
s:=0
k+
k + ... +
k
for k:=i to j do
k=1
k=1
k=1
s:=s+a[k]
if s>max then max:=s
end
∑
15.11.2007
WBK Inf X - 6
∑
∑
9
PB
Kursanalyse: Aufwand (1.4)
 Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleife
1
∑
k+
k=1
2
∑
k + ... +
k=1
n
∑
k
k=1
= 1 ⋅ n + 2 ⋅ (n − 1) + 3 ⋅ (n − 2) + ... + (n − 1) ⋅ 2 + n ⋅ 1
=
n
∑
i (n − i + 1)
i= 1
1 3 1 2 1
= n + n + n
6
2
3
15.11.2007
WBK Inf X - 6
10
PB
Kursanalyse: Strategie (2)
 Für jeden möglichen Kauftag i und Verkaufstag j die
Teilsumme ai+...+aj berechnen
 Aus allen Teilsummen das Maximum bestimmen
Nicht jede Teilsumme muss einzeln bestimmt werden.
Es gilt für ai+...+aj:
j
∑
k= i
15.11.2007
ak =
j− 1
∑
k= i
ak + a j
WBK Inf X - 6
11
PB
Kursanalyse: Algorithmus (2)
begin
max:=0
for i:=1 to n do
s:=0
for j:=i to n do
s:=s+a[j]
if s>max then max:=s
end
15.11.2007
WBK Inf X - 6
12
PB
Kursanalyse: Aufwand (2.1)
begin
max:=0
for i:=1 to n do
s:=0
for j:=i to n do
n−
s:=s+a[j]
if s>max then max:=s
end
15.11.2007
WBK Inf X - 6
i+ 1
13
PB
Kursanalyse: Aufwand (2.2)
begin
max:=0
for i:=1 to n do
s:=0
for j:=i to n do
s:=s+a[j]
if s>max then max:=s
end
15.11.2007
WBK Inf X - 6
n
∑
k
k=1
14
PB
Kursanalyse: Aufwand (2.3)
 Anzahl der Additionen:
n ⋅ (n + 1)
∑k = 1 k = 2
1 2 1
= n + n
2
2
n
15.11.2007
WBK Inf X - 6
15
PB
Kursanalyse: Strategie (3)
 Für jeden möglichen Kauftag i und Verkaufstag j die
Teilsumme ai+...+aj berechnen
 Aus allen Teilsummen das Maximum bestimmen
Nicht jede Teilsumme muss einzeln bestimmt werden.
 Eine Teilfolge mit negativer Summe kann nie zu einer
Teilfolge mit maximaler Summe erweitert werden.
15.11.2007
WBK Inf X - 6
16
PB
Kursanalyse: Algorithmus (3)
begin
max:=0
s:=0
for i:=1 to n do
s:=s+a[i]
if s>max then max:=s
if s<0 then s:=0
end
15.11.2007
WBK Inf X - 6
17
PB
Kursanalyse: Aufwand (3)
begin
max:=0
s:=0
for i:=1 to n do
n
s:=s+a[i]
if s>max then max:=s
if s<0 then s:=0
end
15.11.2007
WBK Inf X - 6
18
PB
Kursanalyse: Aufwand im Vergleich
Algorithmus
1
Anzahl der Additionen
1 3 1 2 1
n + n + n
6
2
3
2
1 2 1
n + n
2
2
3
n
15.11.2007
WBK Inf X - 6
19
PB
Kursanalyse: Aufwand im Vergleich
Anzahl der
Alg.
Additionen
n
20
40
60
80
100
1
1 3 1 2 1
n + n + n
6
2
3
1540
11480
37820
2
1 2 1
n + n
2
2
210
820
1830
3240
5050
3
n
20
40
60
80
100
15.11.2007
WBK Inf X - 6
88560 171700
20
PB
Sortierdemo
15.11.2007
WBK Inf X - 6
21
PB
Delphi-Projekt Sortieralgorithmen





Zeitmessung mittels Funktion „now“
Mehrere Durchläufe für unterschiedliche Eingabegrößen
Speicherung der gemessenen Zeiten als csv-Datei
Import der Daten in StarOffice, OpenOffice, Excel ...
Darstellung als Diagramm
15.11.2007
WBK Inf X - 6
22
PB
Sortierverfahren im Vergleich
Zeitaufwand in Millisekunden
n
BubbleSort InsertSort QuickSort
10000
1221
411
10
20000
4376
1683
10
30000
9894
3785
20
40000
17526
6729
10
50000
27440
10495
20
60000
39607
15152
20
70000
53807
20620
30
80000
70341
26849
40
90000
88907
34029
40
100000
90000
80000
70000
60000
50000
BubbleSort
InsertSort
QuickSort
40000
30000
20000
10000
0
10000 20000 30000 40000 50000 60000 70000 80000 90000
15.11.2007
WBK Inf X - 6
23
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
24
PB
Drei Fälle
 Best-Case-Analyse:
Die im günstigsten Fall erforderliche Laufzeit wird
ermittelt.
 Average-Case-Analyse:
Die im mittleren Fall (Mittelwert, Erwartungswert)
erforderliche Laufzeit wird ermittelt
 Worst-Case-Analyse:
Die im ungünstigsten Fall erforderliche Laufzeit wird
ermittelt.
15.11.2007
WBK Inf X - 6
25
PB
Beschreibung der Zeitkomplexität (1)
 Zeitmessungen:
 können von praktischer Relevanz in Einzelfällen
sein
 gelten nur für einen Computertyp
 sind nur bis zu einer bestimmten zeitlichen Grenze
möglich
 Berechnungen:
 sind maschinenunabhängig
 beschreiben die Komplexität durch einen Term in
Abhängigkeit vom Umfang der Eingabedaten
 sind in der Praxis bei konkreten
Rahmenbedingungen weniger aussagekräftig
15.11.2007
WBK Inf X - 6
26
PB
Typische Komplexitäten
n
10
100
1000
104
105
106
3
7
10
13
17
20
n
10
100
1000
104
105
106
n ⋅ log 2 n
30
700
104
105
2 ⋅ 106
2 ⋅ 107
1012
k(n)
logarithmisch
linear
log-linear
log 2 n
quadratisch
n2
100
104
105
108
1010
kubisch
n3
1000
106
109
1012
1015
n
1000
1030
10300
103000
exponentiell
15.11.2007
2
WBK Inf X - 6
1018
1030000 10300000
27
PB
Wachstum einiger Funktionen zur
Charakterisierung der Komplexität
in doppelt
logarithmischer
Darstellung
15.11.2007
WBK Inf X - 6
28
PB
Zeitaufwand
Annahme: Pro Millisekunde wird eine Grundoperation
(Wertzuweisung, Addition, ...) bearbeitet.
Eingabegröße n
log 2 n ms
n ms
n 2 ms
2n ms
10
0, 003 s
0, 01 s
0,1 s
1s
100
0, 007 s
0,1 s
10 s
4 ⋅ 1019 Jahre
1000
0, 01 s
1s
16, 7 min
...
10000
0, 013 s
10 s
1 T 3,8 h
...
100000
0, 017 s
1, 7 min
116 T
...
15.11.2007
WBK Inf X - 6
29
PB
Maximale Problemgröße
in Abhängigkeit von Komplexität
und Laufzeit
Max. Problemgröße n bei einer Laufzeit von
Komplexität
log 2 n
1s
10
301
1 min
1h
6 ⋅ 10
101000000
18000
n
1000
60000
3600000
n2
31
244
1897
2n
9
15
21
15.11.2007
WBK Inf X - 6
30
PB
Änderungsrate der maximalen
Problemgröße
Während sich die Laufzeiten um den Faktor 60
unterscheiden, errechnet sich die jeweils nächste
maximale Problemgröße bei der Komplexität ...
log 2 n durch Potenzieren mit
n
durch Multiplizieren mit
n2
durch Multiplizieren mit
2n
durch Addieren von
15.11.2007
60
60
60
log 2 60
WBK Inf X - 6
31
PB
Aufgabe
1. Auf welchen Wert wächst die maximale
Problemgröße bei der Komplexität 2 n , wenn der
Computer 100-mal schneller arbeitet?
2. Um welchen Faktor muss der Computer schneller
arbeiten, damit die maximale Problemgröße bei der
Komplexität 2n auf 100 steigt?
15.11.2007
WBK Inf X - 6
32
PB
Lösung
1. Die maximale Problemgröße wächst um log 2 100 ( ≈ 6, 64)
auf 27.
2. Der Computer müsste um den Faktor 6 ⋅ 1023
schneller sein.
15.11.2007
WBK Inf X - 6
33
PB
Asymptotische Ordnung (1)
Klassifizierung von Algorithmen:
 Zeitbedarf bei großem Umfang der Eingabedaten
 Zusammenfassen von Komplexitätsklassen, die sich
nur um einen konstanten Faktor unterscheiden
Definition
Die asymptotische Ordnung O(g(n)) einer Funktion g
ist die Menge aller Funktionen f, die für hinreichend
große Werte von n nach oben durch ein positives
reelles Vielfaches von g beschränkt sind.
15.11.2007
WBK Inf X - 6
34
PB
Asymptotische Ordnung (2)
formal:
O ( g (n)) =
{ f :N →
R 0+ | ∃ r ∈ R + ∃ n0 ∈ N 0 ∀ n ≥ n0 : f (n) ≤ r ⋅ g (n)}
Beispiel
Die Funktionen
f1 (n) = 3n 2 + 3n − 3
und
f 2 (n) = 4,5n3 + 6n 2
sind Elemente der Ordnung O(n3)
15.11.2007
WBK Inf X - 6
35
PB
Asymptotische Ordnung (3)
 Die asymptotische Ordnung gibt nur eine obere
Schranke für das Laufzeitverhalten eines Algorithmus
an.
 Aussagekräftig kann sie nur sein, wenn sie eine
möglichst kleine obere Schranke angibt.
15.11.2007
WBK Inf X - 6
36
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
37
PB
Beispiel: Sequentielle Suche
Algorithmus Sequentielle Suche
(Gegeben: Ein sortiertes n-dimensionales Feld a
und ein Suchschlüssel s)
begin
gefunden:=false
i:=1
repeat
if a[i]=s then
gefunden:=true
i:=i+1
until gefunden or i>n
end
15.11.2007
WBK Inf X - 6
38
PB
Sequentielle Suche : Aufwand (1)
 Grundoperationen: Wertzuweisung, Vergleich
 Anzahl der Grundoperationen (worst case):
 Initialisierung:
 Repeat-Schleife, Rumpf:
 Repeat-Schleife, Abbruchbedingung:
 Anzahl der Schleifendurchläufe:
15.11.2007
WBK Inf X - 6
2
2
2
n
39
PB
Sequentielle Suche : Aufwand (2)
tseq (n) = 2 + n ⋅ (2 + 2)
= 4n + 2
tseq ∈ O(n)
15.11.2007
WBK Inf X - 6
40
PB
Beispiel: Binäre Suche
Algorithmus Binäre Suche
(Gegeben: Ein sortiertes n-dimensionales Feld a
und ein Suchschlüssel s)
begin
gefunden:=false
l:=1
r:=n
repeat
m:=(l+r) div 2
if a[m]=s then gefunden:=true
if a[m]>s then r:=m-1
if a[m]<s then l:=m+1
until gefunden or l>r
end
15.11.2007
WBK Inf X - 6
41
PB
Binäre Suche: Aufwand (1)
 Grundoperationen: Wertzuweisung, Vergleich
 Anzahl der Grundoperationen (worst case):
 Initialisierung:
3
 Repeat-Schleife, Rumpf:
5
 Repeat-Schleife, Abbruchbedingung:
2
 Anzahl der Schleifendurchläufe:
[log 2 n]
15.11.2007
WBK Inf X - 6
42
PB
Binäre Suche: Aufwand (2)
t bin n=3[ log 2 n ]⋅32
=5⋅[ log 2 n ]3
t bin ∈O log 2 n
15.11.2007
WBK Inf X - 6
43
PB
Beispiel: Türme von Hanoi
Algorithmus Hanoi(n,von,nach,ueber)
(von: Ausgangsstab, nach: Zielstab, ueber:
Hilfsstab)
begin
if n=1 then
Ausgabe: von -> nach
else
Hanoi(n-1,von,ueber,nach)
Ausgabe: von -> nach
Hanoi(n-1,ueber,nach,von)
end
15.11.2007
WBK Inf X - 6
44
PB
Türme von Hanoi: Aufwand (1)
 Grundoperationen: Vergleich, Ausgabe
 Anzahl der Grundoperationen:
 Ein Vergleich, eine Ausgabe
 2 mal Grundoperationen der rekursiven Aufrufe
15.11.2007
WBK Inf X - 6
45
PB
Türme von Hanoi: Aufwand (2)
than
2
für n = 1

= 
 2 + 2 ⋅ than (n − 1) für n > 1
= 2 ⋅ (2n − 1)
= 2n + 1 − 2
than ∈ O(2n )
15.11.2007
WBK Inf X - 6
46
PB
Türme von Hanoi: Simulation
15.11.2007
WBK Inf X - 6
47
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
48
PB
Definition: Polynomiale Ordnung
Ein Algorithmus heißt polynomial (von polynomialer
Ordnung), wenn seine Zeitkomplexität durch eine
Funktion f(n) beschrieben wird, für die ein k ∈ N
existiert, so dass f ∈ O(n k ) gilt.
Für Polynome f(n) ist k der Grad des Polynoms, also
der größte Exponent.
15.11.2007
WBK Inf X - 6
49
PB
Abgeschlossenheit
 Werden zwei polynomiale Algorithmen nacheinander
ausgeführt, ist der resultierende Gesamtalgorithmus
polynomial.
 Wird ein Teil eines polynomialen Algorithmus durch
ein Modul ersetzt, das selbst einen polynomialen
Algorithmus enthält, ist der resultierende
Gesamtalgorithmus polynomial.
15.11.2007
WBK Inf X - 6
50
PB
Definition: Anwendbarkeit
Ein Algorithmus heißt (praktisch) anwendbar
(durchführbar, handhabbar, engl. tractable), wenn er
polynomial ist, andernfalls (praktisch) nicht anwendbar
(nicht durchführbar, nicht handhabbar, engl.
intractable).
15.11.2007
WBK Inf X - 6
51
PB
Anwendbare Algorithmen
 Werden zwei anwendbare Algorithmen nacheinander
ausgeführt, ist der resultierende Gesamtalgorithmus
anwendbar.
 Wird ein Teil eines anwendbaren Algorithmus durch
ein Modul ersetzt, das selbst einen anwendbaren
Algorithmus enthält, ist der resultierende
Gesamtalgorithmus anwendbar.
 Nicht anwendbare Algorithmen werden auch auf
zukünftigen Computern nicht anwendbar sein.
15.11.2007
WBK Inf X - 6
52
PB
These der sequentiellen
Berechenbarkeit
Alle sequentiellen Computer besitzen ähnliche
polynomiale Berechnungszeiten.
 Die Transformation einer beliebigen Beschreibung
eines Algorithmus (Maschinensprache, höhere
Programmiersprache,...) in eine äquivalente
Turingtafel ist stets mit polynomialem Aufwand
durchführbar.
 Folgerung: Die Definition der Anwendbarkeit von
Algorithmen ist maschinenunabhängig.
15.11.2007
WBK Inf X - 6
53
PB
Ausnahmen
 Die Klassifizierung eines Algorithmus als „nicht
anwendbar“ bezieht sich auf die asymptotische
Komplexität.
 In der Praxis kann auch ein exponentieller Algorithmus
brauchbar sein
 Beispiel: Ein exponentieller Algorithmus der
Komplexität te(n)=0,001·20,001n ist für n=100000 noch
schneller als ein polynomialer Algorithmus der
Komplexität tp(n)=1000 ·n5.
 Für prinzipielle Betrachtungen gilt dennoch:
Ein Algorithmus ist nicht anwendbar,
wenn er nicht polynomial ist.
15.11.2007
WBK Inf X - 6
54
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
55
PB
Definition: Praktische Unlösbarkeit
Ein Problem heißt praktisch lösbar, wenn es einen
polynomialen Lösungsalgorithmus für dieses Problem
gibt, andernfalls praktisch unlösbar.
Unterschied zur Definition der Anwendbarkeit von
Algorithmen:
Praktische Unlösbarkeit gilt im Allgemeinen nur für den
aktuellen Stand der Forschung. Oft kann nicht
ausgeschlossen werden, dass noch ein schnellerer
Algorithmus gefunden wird.
15.11.2007
WBK Inf X - 6
56
PB
Beispiel: Königsberger
Brückenproblem
Gibt es einen
Rundweg, bei
dem jede der
sieben Brücken
genau einmal
benutzt wird?
15.11.2007
WBK Inf X - 6
57
PB
Verallgemeinerung: Eulerkreis
Gibt es in einem
ungerichteten Graphen
einen Rundweg, der jede
Kante genau einmal
enthält?
Ein solcher Rundweg
heißt Eulerkreis.
15.11.2007
WBK Inf X - 6
58
PB
Eulerkreis: Lösung
 In einem ungerichteten Graphen heißt ein Knoten
Nachbar eines Knotens v, wenn er mit v durch eine
Kante verbunden ist.
Die Anzahl der vom Knoten v ausgehenden Kanten
bezeichnet man als dessen Grad.
In einem Graphen ohne Mehrfachkanten zwischen
zwei Knoten entspricht der Grad der Anzahl der
Nachbarn.
 In einem ungerichteten Graphen existiert genau dann
ein Eulerkreis, wenn der Grad jedes Knotens gerade
ist.
15.11.2007
WBK Inf X - 6
59
PB
Eulerkreis: Algorithmus
 Darstellung des Graphen durch eine Matrix G
(n Zeilen, n Spalten) mit
g ij = Anzahl der Kanten zwischen Knoten i und Knoten j
 Aufgabe: Entwerfen Sie einen Algorithmus, der für
einen in Matrixform gegebenen Graphen G
entscheidet, ob G einen Eulerkreis enthält oder nicht.
15.11.2007
WBK Inf X - 6
60
PB
Eulerkreis: Algorithmus
Algorithmus Eulerkreis
(Eingabe: Ein Feld g der Dimension n x n, das die
Kanten des Graphen festlegt
Ausgabe: 'ja', falls der Graph einen Eulerkreis
enthält, sonst 'nein')
begin
euler:=true
for i:=1 to n do
for j:=1 to n do
grad[i]:=grad[i]+g[i,j]
for i:=1 to n do
if grad[i] mod 2 = 1 then euler:=false
if euler=true then Ausgabe 'ja'
else Ausgabe 'nein'
end
15.11.2007
WBK Inf X - 6
61
PB
Eulerkreis: Aufwand
 Wegen der geschachtelten Zählschleife liegt die
Zeitkomplexität des Algorithmus in der Klasse O(n2).
 Das Problem „Eulerkreis“ ist also mit polynomialem
Aufwand lösbar.
15.11.2007
WBK Inf X - 6
62
PB
Beispiel: Hamilton-Zyklus (1)
Unter einem Hamilton-Zyklus versteht man in einem
ungerichteten Graphen einen Rundweg, der jeden
Knoten genau einmal enthält.
15.11.2007
WBK Inf X - 6
63
PB
Beispiel: Hamilton-Zyklus (2)
 Es gibt keinen polynomialen Algorithmus, der das
Problem löst.
 Die einzige bekannte Möglichkeit, einen HamiltonZyklus zu finden, besteht in der vollständigen
Überprüfung aller möglichen Knotenfolgen.
 Weil der „Startknoten“ bei einem Rundweg beliebig
festgelegt werden kann, gibt es (n-1)! Permutationen
der (übrigen) Knoten.
 Das Problem „Hamilton-Zyklus“ ist praktisch unlösbar.
15.11.2007
WBK Inf X - 6
64
PB
Beispiel: Problem des
Handlungsreisenden (travelling
salesman problem) (1)
 Verallgemeinerung des Hamilton-Problems
 Jeder Kante des Graphen wird ein Kostenwert
zugeordnet.
 Das Problem besteht darin zu entscheiden, ob es
einen Hamilton-Zyklus gibt, bei dem die Summe der
Kostenwerte der benutzten Kanten eine Kostengrenze
k nicht übersteigt.
 Hamilton-Problem ist Sonderfall: Alle Kanten haben
den Kostenwert 1, k=n.
15.11.2007
WBK Inf X - 6
65
PB
Beispiel: Problem des
Handlungsreisenden (2)
Kostenwert:
Fahrzeit zwischen
zwei Orten (in Min.)
Gibt es eine Lösung
für k=450 min?
15.11.2007
WBK Inf X - 6
66
PB
Problem des Handlungsreisenden:
Lösung
 Es gibt keine Lösung für k=450 min.
 Der kleinste Kostenwert, für den eine Rundreise
existiert, ist k=456 min.
 Die kostengünstigste Rundreise ist:
MZ-DA-HD-AZ-KL-SB-TR-KO-WI-MZ
15.11.2007
WBK Inf X - 6
67
PB
Problem des Handlungsreisenden:
Problemvarianten (1)
Entscheidungsvariante:
Gibt es zu einem
gegebenen Kostenwert k
eine Rundreise, deren
Kosten k nicht
übersteigen?
Zahlvariante:
Was ist der kleinste
Kostenwert k, für den eine
Rundreise existiert?
Optimierungsvariante:
Welches ist die
kostengünstigste
Rundreise?
15.11.2007
WBK Inf X - 6
68
PB
Problem des Handlungsreisenden:
Problemvarianten (2)
 Bezüglich der Lösbarkeit sind alle drei Varianten
äquivalent.
 Das Problem des Handlungsreisenden ist praktisch
unlösbar.
15.11.2007
WBK Inf X - 6
69
PB
Beispiel: Verpackungsproblem
(bin-packing problem)
 Gegeben sind k Behälter einer festen Größe G und n
Gegenstände mit den Größen g1,...,gn.
 Gesucht ist eine Verteilung der Gegenstände auf die
Behälter, bei der die jeweilige Summe der Größen der
Gegenstände die Größe G der Behälter nicht
überschreitet.
 Anwendung: Verteilung von Paletten mit
unterschiedlichem Gewicht auf Lastwagen mit
identischer Nutzlast.
15.11.2007
WBK Inf X - 6
70
PB
Verpackungsproblem:
Problemvarianten (1)
Entscheidungsvariante:
Gibt es eine zulässige
Verteilung der
Gegenstände auf die
Behälter?
Zahlvariante:
Was ist die kleinste Anzahl
von Behältern, so dass alle
Gegenstände verteilt
werden können?
Optimierungsvariante:
Welche zulässige
Verteilung benötigt am
wenigsten Behälter?
15.11.2007
WBK Inf X - 6
71
PB
Verpackungsproblem:
Problemvarianten (2)
 Bezüglich der Lösbarkeit sind alle drei Varianten
äquivalent.
 Das Verpackungsproblem ist praktisch unlösbar.
15.11.2007
WBK Inf X - 6
72
PB
Beispiel: Stundenplanproblem (1)
Eine Anwendung des Verpackungsproblems:
Behälter:
zur Verfügung stehende Raum-ZeitKombinationen
Gegenstände:
zu verteilende Fach-LerngruppeKombinationen (Unterrichtsstunden)
Anzahl k der Behälter:
Anzahl Räume · Anzahl Wochenstunden
Anzahl n der
Gegenstände:
Gesamtzahl der wöchentlichen
Unterrichtsstunden
Größe G der Behälter:
1 (Pro Raum und Unterrichtsstunde
kann nur eine Lerngruppe in einem
Fach unterrichtet werden)
15.11.2007
WBK Inf X - 6
73
PB
Beispiel: Stundenplanproblem (2)
Randbedingungen:
 Raumgröße entsprechend der Größe der Lerngruppe
 Unterricht in Fachräumen
 Lehrpersonen nicht in zwei Räumen gleichzeitig
 Pro Lerngruppe nicht mehrere Fächer gleichzeitig
 ...
Das Stundenplanproblem ist praktisch unlösbar.
15.11.2007
WBK Inf X - 6
74
PB
Beispiel: Faktorisierung
 Gegeben ist eine n-stellige natürliche Zahl.
 Gesucht ist ihre Zerlegung in Primfaktoren.
 Alle bekannten Algorithmen erfordern exponentiellen
Aufwand in Abhängigkeit von n.
 Das Faktorisierungsproblem ist praktisch unlösbar.
 Grundlage für die Sicherheit des RSA-Verfahrens
15.11.2007
WBK Inf X - 6
75
PB
Faktorisierung mit Derive
15.11.2007
WBK Inf X - 6
76
PB
Beispiel: Türme von Hanoi
 Es gibt keinen schnelleren Lösungsalgorithmus als
den vorgestellten.
 Jeder Lösungsalgorithmus hat die Zeitkomplexität
O(2n) (Beweis durch vollständige Induktion)
 Das Problem „Türme von Hanoi“ ist praktisch
unlösbar.
15.11.2007
WBK Inf X - 6
77
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
78
PB
Beispiel: Hamilton-Zyklus
 Lösungskandidaten sind alle
Permutationen der Knoten.
 Der Startknoten kann frei
gewählt werden.
 Darstellung aller
Lösungskandidaten in einem
Auswahlbaum
15.11.2007
WBK Inf X - 6
79
PB
Hamilton-Zyklus: Auswahlbaum
Jeder Ast stellt –
ausgehend vom
Knoten 1 – eine
Permutation der
übrigen Knoten dar.
15.11.2007
WBK Inf X - 6
80
PB
Exkurs: Backtracking
 „Vorwärts, wenn möglich - rückwärts, wenn nötig“
 Tiefensuche in einem Baum
 Der Algorithmus endet ...
 wenn eine Lösung gefunden wurde mit Ausgabe der
Lösung
 wenn keine Lösung existiert nach Überprüfung aller
Möglichkeiten.
15.11.2007
WBK Inf X - 6
81
PB
Acht-Damen-Problem
15.11.2007
WBK Inf X - 6
82
PB
Hamilton-Zyklus:
„Lösungsalgorithmus“
 Errate einen Pfad im Auswahlbaum.
 Überprüfe, ob es sich um einen Hamilton-Zyklus
handelt.
Beide Schritte lassen sich mit polynomialem
Zeitaufwand lösen.
15.11.2007
WBK Inf X - 6
83
PB
Nichtdeterministische Algorithmen (1)
 Ratephase, in der ein Lösungskandidat bestimmt wird
 Prüfphase (Verifikationsphase), in der getestet wird,
ob es sich um eine Lösung handelt
Theoretisch...
 ... erzeugt ein nichtdeterministischer Algorithmus in
der Ratephase für jeden möglichen
Lösungskandidaten eine Kopie von sich selbst.
 ... laufen beliebig viele Prozesse parallel.
15.11.2007
WBK Inf X - 6
84
PB
Nichtdeterministische Algorithmen (2)
In der Praxis...
 ... wird ein nichtdeterministischer Algorithmus durch
einen deterministischen nachgeahmt.
 ... wird jeder Lösungsversuch, der nicht zum Ziel führt,
bis zur letzten Verzweigung im Entscheidungsbaum
zurückgezogen und ein anderer Weg von dort aus
weiter verfolgt.
Folge:
 Exponentieller Zeitbedarf im ungünstigsten Fall
 Zunächst keine praktische Relevanz
15.11.2007
WBK Inf X - 6
85
PB
Nichtdeterministische Algorithmen (3)
Von Bedeutung für theoretische Betrachtungen, wenn
Ratephase und Prüfphase mit polynomialem Aufwand
möglich sind
Dienen zur Klassifizierung von prinzipiell lösbaren
Problemen, für die möglicherweise ein polynomialer
Algorithmus existiert
15.11.2007
WBK Inf X - 6
86
PB
Definition: P und NP
Die Klasse P enthält genau diejenigen Probleme, für
die ein polynomialer Lösungsalgorithmus existiert.
Die Klasse NP enthält genau diejenigen Probleme, für
die folgende Eigenschaften erfüllt sind:
 Es existiert ein Algorithmus mit exponentiellem
Zeitaufwand.
 Es ist möglich, durch ein nichtdeterministisches
Verfahren mit polynomialem Zeitaufwand eine Lösung
zu bestimmen.
 Es gibt einen polynomialen Verifikationsalgorithmus.
15.11.2007
WBK Inf X - 6
87
PB
Problemklassen
alle Probleme
prinzipiell lösbare
Probleme
NP
P
Klar: P⊆NP
Offen: P=NP?
15.11.2007
WBK Inf X - 6
88
PB
Probleme der Klasse NP





das Problem Hamilton-Zyklus
das Problem des Handlungsreisenden
das Verpackungsproblem
das Stundenplanproblem
das Faktorisierungsproblem
Das Problem „Türme von Hanoi“ liegt nicht in NP, weil
das Umlegen der Scheiben bzw. das Speichern oder
Ausgeben einer Lösung 2n-1 Schritte erfordert.
15.11.2007
WBK Inf X - 6
89
PB
P=NP-Problematik (1)
Um die Frage klären zu können, ob P=NP gilt, muss
einer der folgenden Sätze bewiesen werden:
 Es gibt ein Problem in NP, für das kein polynomialer
Algorithmus existieren kann (Folgerung: P≠NP).
 Für jedes Problem in NP (auch jedes noch nicht
formulierte) existiert ein polynomialer Algorithmus
(Folgerung: P=NP).
Ziel: Klassifizierung der schwersten Probleme in NP
15.11.2007
WBK Inf X - 6
90
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
91
PB
P=NP-Problematik (2)
 Cook 1971: Es gibt Probleme, die man als die
schwersten in NP beschreiben kann.
 Eigenschaft: Die Entdeckung eines deterministischen
polynomialen Algorithmus hätte zur Folge, dass jedes
Problem in NP deterministisch polynomial lösbar ist.
15.11.2007
WBK Inf X - 6
92
PB
Definition: NP-Vollständigkeit
Ein Problem heißt NP-vollständig (engl. NP-complete),
wenn die folgenden Eigenschaften erfüllt sind:
 Das Problem gehört zur Klasse NP.
 Das Problem gehört genau dann zur Klasse P, wenn
P=NP gilt.
Die NP-vollständigen Probleme sind die schwersten in
der Klasse NP.
15.11.2007
WBK Inf X - 6
93
PB
Definition: Polynomiale
Reduzierbarkeit
Ein Problem Q1 heißt polynomial reduzierbar auf ein
Problem Q2, falls es einen polynomialen Algorithmus
gibt, der einen Lösungsalgorithmus für Q2 zu einem
Lösungsalgorithmus für Q1 erweitert.
Schreibweise: Q1 ≤p Q2
15.11.2007
WBK Inf X - 6
94
PB
Nachweis der polynomialen
Reduzierbarkeit
 Gegeben: Zwei Probleme Q1 und Q2, beide aus NP
 Zu zeigen: Q1 ≤p Q2
 Konstruktion einer (berechenbaren und polynomial
zeitbeschränkten) Funktion f mit folgenden
Eigenschaften:
 Jeder Eingabe x für Q wird eine Eingabe f(x) für Q
1
2
zugeordnet
 Q ist für x genau dann mit „ja“ zu beantworten,
1
wenn Q2 für f(x) mit „ja“ zu beantworten ist.
15.11.2007
WBK Inf X - 6
95
PB
NP-Vollständigkeit und
polynomiale Reduzierbarkeit
Ein Problem Q∈NP ist genau dann NP-vollständig,
wenn jedes Problem Q‘∈NP polynomial auf Q
reduzierbar ist.
Zum Nachweis der NP-Vollständigkeit eines Problems
Q muss also „nur“ gezeigt werden, dass sich jedes
Problem Q‘∈NP polynomial auf Q reduzieren lässt.
15.11.2007
WBK Inf X - 6
96
PB
Nachweis der NP-Vollständigkeit
 Polynomiale Reduzierbarkeit ist transitiv, d. h.
aus Q1 ≤p Q2 und Q2 ≤p Q3 folgt Q1 ≤p Q3.
 Um nachzuweisen, dass ein Problem Q NP-vollständig
ist, reicht es zu zeigen, dass ein Problem Q‘
polynomial auf Q reduzierbar ist, von dem man schon
weiß, dass es NP-vollständig ist.
 Voraussetzung: Für ein Problem wurde die NPVollständigkeit schon nachgewiesen (ohne
Ausnutzung der Transitivität)
 Cook 1971: Das Erfüllbarkeitsproblem der
Aussagenlogik ist NP-vollständig.
15.11.2007
WBK Inf X - 6
97
PB
Definition: Boolescher Ausdruck (1)
 Ein boolescher Ausdruck besteht aus Variablen, die
durch Operatoren verknüpft sind.
 Die Variablen können nur die Werte wahr und falsch
annehmen.
 Die erlaubten Operatoren sind

∧ (Konjunktion, logisches „und“)

(Disjunktion, logisches „oder“)
∨
 ¬ (Negation, logisches „nicht“)
 Zur Strukturierung eines Ausdrucks können Klammern
gesetzt werden.
15.11.2007
WBK Inf X - 6
98
PB
Definition: Boolescher Ausdruck (2)
 Eine Disjunktion von Variablen oder deren
Komplementen heißt Klausel
 Ein boolescher Ausdruck hat konjunktive Normalform,
wenn er aus Konjunktionen von Klauseln besteht.
 Ein boolescher Ausdruck heißt erfüllbar, wenn es eine
Belegung der Variablen mit wahr oder falsch gibt,
durch die der Ausdruck insgesamt wahr wird.
15.11.2007
WBK Inf X - 6
99
PB
Erfüllbarkeitsproblem
 Das Erfüllbarkeitsproblem der Aussagenlogik (engl.
satisfiability problem, kurz SAT) lautet:
Gegeben ist ein boolescher Ausdruck B in konjunktiver
Normalform. Ist B erfüllbar?
 Das Erfüllbarkeitsproblem ist NP-vollständig.
 Beweisskizze siehe Skript
15.11.2007
WBK Inf X - 6
100
PB
Definition:
Knotenüberdeckungsproblem
 Das Knotenüberdeckungsproblem (engl. vertex
covering problem, kurz VCP) lautet:
Gegeben ist ein ungerichteter Graph G und eine
natürliche Zahl k. Gibt es eine Teilmenge von G mit k
Knoten, so dass jede Kante mindestens einen
Endpunkt aus dieser Teilmenge enthält?
15.11.2007
WBK Inf X - 6
101
PB
GraphBench
15.11.2007
WBK Inf X - 6
102
PB
Aufgabe:
Knotenüberdeckungsproblem
Gibt es eine Knotenüberdeckung
mit vier Knoten?
Gibt es eine Überdeckung mit
drei Knoten?
15.11.2007
WBK Inf X - 6
103
PB
VCP: Beweis (1)
 Das Knotenüberdeckungsproblem ist NP-vollständig.
 Beweis: Zu zeigen ist, dass sich das
Erfüllbarkeitsproblem SAT polynomial auf VCP
reduzieren lässt.
Aus der Transitivität der Relation ≤p folgt dann, dass
sich jedes Problem in NP polynomial auf VCP
reduzieren lässt.
Nach Cook gilt:
für alle Q∈NP: Q ≤p SAT
Wir zeigen:
SAT ≤p VCP
Aus der Transitivität folgt: für alle Q∈NP: Q ≤p VCP
15.11.2007
WBK Inf X - 6
104
PB
VCP: Beweis (2)
● 1. Schritt: VCP liegt in NP
siehe Skript
● 2. Schritt: Reduktion von SAT auf VCP
● Konstruktion eines Verfahrens, durch das jedem
booleschen Ausdruck B eine Eingabe für VCP (ein
Graph G und eine natürliche Zahl k) zugeordnet
wird, für die gilt:
●
B ist genau dann erfüllbar, wenn G eine
Überdeckung mit k Knoten enthält.
Beweis, dass die Konstruktion richtig ist
15.11.2007
WBK Inf X - 6
105
PB
VCP: Beweis (3)
B = (a ∨ b ∨ ¬ c) ∧ (a ∨ ¬ b ∨ c ∨ ¬ d )
Für jede Variable enthält G zwei Knoten, die später
das Vorkommen der Variablen in den Klauseln (negiert
oder nicht negiert) repräsentieren.
15.11.2007
WBK Inf X - 6
106
PB
VCP: Beweis (4)
Für jede Klausel enthält G einen vollständigen
Teilgraphen, dessen Knotenanzahl durch die Anzahl
der Literale in der jeweiligen Klausel bestimmt ist.
B = (a ∨ b ∨ ¬ c) ∧ (a ∨ ¬ b ∨ c ∨ ¬ d )
15.11.2007
WBK Inf X - 6
107
PB
VCP: Beweis (5)
Die Kanten werden so festgelegt, dass sie je ein
Literal der entsprechenden Klausel repräsentieren.
B = (a ∨ b ∨ ¬ c) ∧ (a ∨ ¬ b ∨ c ∨ ¬ d )
15.11.2007
WBK Inf X - 6
108
PB
VCP: Beweis (6)
Bestimmung einer natürlichen Zahl k:
Man addiert die Anzahl der Variablen zur Anzahl der
Literale in B und subtrahiert die Anzahl der Klauseln.
k=4+(3+4)-2
=9
15.11.2007
WBK Inf X - 6
109
PB
VCP: Beweis (7)
Zu zeigen: B ist genau dann erfüllbar, wenn G eine
Überdeckung mit k Knoten enthält.
● 1. Schritt: Ist B erfüllbar, dann enthält G eine
Überdeckung mit k Knoten.
● 2. Schritt: Enthält G eine Überdeckung mit k Knoten,
dann ist B erfüllbar.
15.11.2007
WBK Inf X - 6
110
PB
VCP: Beweis (8)
1. Schritt. Sei B erfüllbar.
Auswahl der Knoten für die Überdeckung:
● Im oberen Teil diejenigen Knoten, die einer
erfüllenden Belegung entsprechen
● Im unteren Teil alle Knoten bis auf einen je
Teilgraph, der mit einem schon ausgewählten
Knoten im oberen Teil verbunden ist.
15.11.2007
WBK Inf X - 6
111
PB
VCP: Beweis (9)
B = (a ∨ b ∨ ¬ c) ∧ (a ∨ ¬ b ∨ c ∨ ¬ d )
B wird erfüllt durch a=falsch, b=wahr, c=wahr, d=falsch
15.11.2007
WBK Inf X - 6
112
PB
VCP: Beweis (10)
Anzahl der oben
ausgewählten Knoten
= Anzahl der Variablen
Anzahl der unten ausgewählten Knoten
= Anzahl der Literale – Anzahl der Klauseln
Es wurden k Knoten ausgewählt und die
Überdeckung ist nach Konstruktion vollständig.
15.11.2007
WBK Inf X - 6
113
PB
VCP: Beweis (11)
2. Schritt. G enthalte eine Überdeckung mit k Knoten.
Zu zeigen: B ist erfüllbar.
15.11.2007
WBK Inf X - 6
114
PB
VCP: Beweis (12)
In jedem oberen
Teilgraphen muss
mindestens ein
Knoten zur
Überdeckung
gehören.
In jedem unteren Teilgraphen kann höchstens ein
Knoten nicht zur Überdeckung gehören.
Nach Konstruktion von k gehört deshalb in den
unteren Teilgraphen jeweils genau ein Knoten nicht
zur Überdeckung.
15.11.2007
WBK Inf X - 6
115
PB
VCP: Beweis (13)
Wahl der Variablenbelegungen für B
entsprechend den
oben ausgewählten
Knoten
Im Beispiel:
a=wahr, b=falsch, c=falsch, d=wahr
Noch zu zeigen: Die Belegung erfüllt B.
15.11.2007
WBK Inf X - 6
116
PB
VCP: Beweis (14)
Jeder untere
Teilgraph enthält
einen Knoten, der
nicht zur Überdeckung gehört. Er ist
mit einem Knoten im
oberen Teilgraphen
verbunden, der zur
Überdeckung gehören
muss.
Nach Konstruktion der Belegung ist das zugehörige
Literal wahr, so dass auch die Klausel wahr ist.
15.11.2007
WBK Inf X - 6
117
PB
VCP: Beweis (15)
Insgesamt: B ist genau dann erfüllbar, wenn G eine
Überdeckung mit k Knoten enthält.
➾ SAT ≤p VCP
➾ für alle Probleme Q in NP: Q ≤p VCP
➾ Das Knotenüberdeckungsproblem ist NP-vollständig.
15.11.2007
WBK Inf X - 6
118
PB
GraphBench
15.11.2007
WBK Inf X - 6
119
PB
Weitere NP-vollständige Probleme (1)
● 3KNF-SAT:
Erfüllbarkeitsproblem für boolesche Ausdrücke in
konjunktiver Normalform mit höchstens drei Literalen
● Mengenüberdeckungsproblem:
Gegeben: Teilmengen einer endlichen Menge M und
eine natürliche Zahl k. Gibt es eine Auswahl von k
Teilmengen, bei der bereits alle Elemente von M
vorkommen?
● Rucksackproblem:
Gegeben: k Gegenstände von unterschiedlichem
Gewicht. Gibt es eine Auswahl von Gegenständen, die
ein vorgegebenes Gesamtgewicht hat?
15.11.2007
WBK Inf X - 6
120
PB
Weitere NP-vollständige Probleme (2)
 Erbteilungsproblem:
Gegeben: k Münzen von unterschiedlichem Wert. Gibt
es eine Aufteilung der Münzen, so dass jeder Teil
denselben Wert hat?
 k-Färbbarkeitsproblem:
Gegeben: Ein ungerichteter Graph G und eine
natürliche Zahl k. Gibt es eine Färbung der Knoten von
G mit k verschiedenen Farben, so dass keine
benachbarten Knoten dieselbe Farbe haben?
15.11.2007
WBK Inf X - 6
121
PB
GraphBench
15.11.2007
WBK Inf X - 6
122
PB
Übersicht
1.
2.
3.
4.
5.
6.
7.
8.
Der Komplexitätsbegriff
Beschreibung der Zeitkomplexität
Abschätzung der Zeitkomplexität
Praktisch nicht anwendbare Algorithmen
Praktisch unlösbare Probleme
Nichtdeterministische Algorithmen, P und NP
NP-Vollständigkeit
Näherungslösungen
15.11.2007
WBK Inf X - 6
123
PB
Praxisrelevanz praktisch unlösbarer
Probleme
 Das Stundenplanproblem ist regelmäßig zu lösen,
obwohl es praktisch unlösbar ist.
 Das Problem des Handlungsreisenden ist bei vielen
Routenplanungen zu lösen (Müllabfuhr, Post,...)
 Reedereien haben eine Problemkombination zu lösen:
 Problem des Handlungsreisenden (Routenplanung)
 Verpackungsproblem (Beladen der Schiffe)
15.11.2007
WBK Inf X - 6
124
PB
Lösungsansätze
 Verwendung eines exponentiellen Algorithmus, wenn
die konkret auftretenden Eingabedaten meistens eine
schnelle Bearbeitung zulassen.
Abbruch nach vorgegebener Zeit
 Aufgeben der Forderung, dass das Ergebnis optimal
ist.
Beispiele: Stundenplan, Handlungsreisender
→ Genetischer Algorithmus zum Rucksackproblem
 Aufgeben der Forderung, dass das Ergebnis immer
korrekt ist.
→ Probabilistischer Algorithmus zum Problem
„Independent Set“
15.11.2007
WBK Inf X - 6
125
PB
Genetische Algorithmen: Begriffe
Individuum: Lösungskandidat
Population: Menge von Lösungskandidaten
Selektion: Auswahl der besten Lösungskandidaten
Kreuzung: Kombination von zwei Lösungskandidaten
zu zwei neuen
 Mutation: Zufällige Veränderung eines
Lösungskandidaten




15.11.2007
WBK Inf X - 6
126
PB
Aufgabe: Rucksackproblem
 Gegeben: k Zahlen a1,...,ak, die das Gewicht der
Gegenstände angeben, sowie eine Zahl b, das
maximale Gesamtgewicht.
 Gesucht: Eine Auswahl von Gegenständen, deren
Gesamtgewicht möglichst groß ist, jedoch ohne b zu
überschreiten.
Schreiben Sie eine Delphi-Anwendung, die das
Problem durch einen genetischen Algorithmus löst.
(Einzelheiten siehe Skript)
15.11.2007
WBK Inf X - 6
127
PB
Probabilistischer Algorithmus zum
Problem „Independent Set“
 In einem ungerichteten Graphen G heißt eine
Teilmenge I der Knotenmenge unabhängig, wenn G
keine Kante enthält, die zwei Knoten aus I verbindet.
Gesucht ist eine unabhängige Menge mit maximaler
Kardinalität.
 Algorithmus:
 Bilde eine zufällige Teilmenge I der Knotenmenge
von G.
 Überprüfe, ob es in I Knoten gibt, die in G durch
eine Kante verbunden sind. Falls ja, entferne einen
der betroffenen Knoten.
 Wiederhole den vorherigen Schritt, bis I eine
unabhängige Menge ist.
15.11.2007
WBK Inf X - 6
128
PB
Fazit (1)
 Zeitaufwand ist ein wichtiges Kriterium für die Qualität
von Algorithmen.
 Zeitaufwand kann man maschinenunabhängig
beschreiben.
 Für viele Probleme gibt es keine schnellen
Algorithmen. Sie sind praktisch unlösbar.
 Es ist unbekannt, ob P=NP gilt.
 NP-vollständige Probleme sind die schwersten unter
denjenigen, für die möglicherweise ein schneller
Algorithmus existiert.
15.11.2007
WBK Inf X - 6
129
PB
Fazit (2)
 Viele praktisch unlösbare Probleme besitzen
praktische Relevanz.
 Manchmal gibt es Näherungslösungen.
Aber:
 Für einige NP-vollständige Probleme kann bewiesen
werden, dass es unmöglich ist, akzeptable Lösungen
zu finden – es sei denn, es gilt P=NP.
15.11.2007
WBK Inf X - 6
130
Herunterladen