PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.
-
Upload
jochim-heisler -
Category
Documents
-
view
110 -
download
3
Transcript of PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.
PB
Praktische Grenzender Berechenbarkeit
Patrick Breuer
25.11.2004
2
PB
1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
Übersicht
3
PB
Komplexitäten messbare oder berechenbare Merkmale von
Algorithmen
Laufzeit Speicherbedarf
4
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.
5
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
6
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
7
PB
Kursanalyse: Aufwand (1.1) Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleifebegin 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:=send
1j i
8
PB
Kursanalyse: Aufwand (1.2) Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleifebegin 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:=send
1
1
n i
k
k
9
PB
Kursanalyse: Aufwand (1.3) Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleifebegin 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:=send
1 2
1 1 1
...n
k k k
k k k
10
PB
Kursanalyse: Aufwand (1.4) Aufwandsmaß: Anzahl der Additionen in der innersten
Zählschleife1 2
1 1 1
1
3 2
...
1 2 ( 1) 3 ( 2) ... ( 1) 2 1
( 1)
1 1 1
6 2 3
n
k k k
n
i
k k k
n n n n n
i n i
n n n
11
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:
1j j
k k jk i k i
a a a
12
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
13
PB
Kursanalyse: Aufwand (2.1)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
1n i
14
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
1
n
k
k
15
PB
Kursanalyse: Aufwand (2.3) Anzahl der Additionen:
1
2
( 1)
2
1 1
2 2
n
k
n nk
n n
16
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.
17
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
18
PB
Kursanalyse: Aufwand (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
n
19
PB
Kursanalyse: Aufwand im Vergleich
Algorithmus Anzahl der Additionen
1
2
3
3 21 1 1
6 2 3n n n
n
21 1
2 2n n
20
PB
Kursanalyse: Aufwand im Vergleich
Alg.Anzahl der Additionen
1
2
3
3 21 1 1
6 2 3n n n
n
21 1
2 2n n
n
20 40 60 80 100
1540 11480 37820 88560 171700
210 820 1830 3240 5050
20 40 60 80 100
21
PB
Übersicht1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
22
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.
23
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
24
PB
Typische Komplexitäten
k(n)
n
10 100 1000 104 105 106
logarithmisch
linear
log-linear
quadratisch
kubisch
exponentiell
2log n
n
2logn n
2n
3n
2n
3 7 10 13 17 20
10 100 1000 410 510 610
30 700
100
1000
410 510 62 10 72 10
410 510 810 1010 1210
1000
610 910 1210 1510 1810
3010 30010 300010 3000010 30000010
25
PB Wachstum einiger Funktionen zur Charakterisierung der Komplexität
in doppeltlogarithmischerDarstellung
26
PB
ZeitaufwandAnnahme: Pro Millisekunde wird eine Grundoperation (Wertzuweisung, Addition, ...) bearbeitet.
Eingabe-größe n
...
...
...
2log msn msn 2 msn 2 msn
10
100
1000
10000
100000
0,003 s
0,007 s
0,01 s
0,013 s
0,017 s
0,01 s
0,1 s
1 s
10 s
1,7 min
0,1 s
10 s
16,7 min
1 T 3,8 h
116 T
1 s
194 10 Jahre
27
PB Maximale Problemgrößein Abhängigkeit von Komplexität
und Laufzeit
Komplexität
Max. Problemgröße n bei einer Laufzeit von
1 s 1 h1 min
2log n
n
2n
2n
30110
1000
31
9
180006 10
60000
244
15
100000010
3600000
1897
21
28
PB
Änderungsrate der maximalen Problemgröße
2log n
n
2n
2n
Während sich die Laufzeiten um den Faktor 60 unterscheiden, errechnet sich die jeweils nächste maximale Problemgröße bei der Komplexität ...
durch Potenzieren mit
durch Multiplizieren mit
durch Multiplizieren mit
durch Addieren von
60
60
60
2log 60
29
PB
Aufgabe1. Auf welchen Wert wächst die maximale
Problemgröße bei der Komplexität , 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 auf 100 steigt?
2n
2n
30
PB
Lösung1. Die maximale Problemgröße wächst um
auf 27.
2. Der Computer müsste um den Faktorschneller sein.
2log 100 ( 6,64)
236 10
31
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
DefinitionDie 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.
32
PB
Asymptotische Ordnung (2)formal:
Beispiel
Die Funktionen
und
sind Elemente der Ordnung O(n3)
0 0 0 0( ( )) : | : ( ) ( )O g n f r n n n f n r g n N R R N
21( ) 3 3 3f n n n
3 22 ( ) 4,5 6f n n n
33
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.
34
PB
Übersicht1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
35
PB
Beispiel: Sequentielle SucheAlgorithmus 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
36
PB
Sequentielle Suche : Aufwand (1) Grundoperationen: Wertzuweisung, Vergleich
Anzahl der Grundoperationen (worst case): Initialisierung: 2 Repeat-Schleife, Rumpf: 2 Repeat-Schleife, Abbruchbedingung: 2 Anzahl der Schleifendurchläufe: n
37
PB
Sequentielle Suche : Aufwand (2)
( ) 2 (2 2)
4 2
( )
seq
seq
t n n
n
t O n
38
PB
Beispiel: Binäre SucheAlgorithmus Binäre Suche(Gegeben: Ein sortiertes n-dimensionales Feld aund 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
39
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: 2log n
40
PB
Binäre Suche: Aufwand (2)
2
2
2
( ) 3 log (3 2)
5 log 3
(log )
bin
bin
t n n
n
t O n
41
PB
Beispiel: Türme von HanoiAlgorithmus 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
42
PB
Türme von Hanoi: Aufwand (1) Grundoperationen: Vergleich, Ausgabe
Anzahl der Grundoperationen: Ein Vergleich, eine Ausgabe 2 mal Grundoperationen der rekursiven Aufrufe
43
PB
Türme von Hanoi: Aufwand (2)
1
2 für 1
2 2 ( 1) für 1
2 (2 1)
2 2
(2 )
hanhan
n
n
nhan
nt
t n n
t O
44
PB
Übersicht1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
45
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 existiert, so dass gilt.
Für Polynome f(n) ist k der Grad des Polynoms, also der größte Exponent:
k N( )kf O n
11 1 0
1 1 0
1 1 0
11 1 0
...
...
( ... )
( ... ) ( )
k kk k
k k k kk k
kk k
k k kk k
c n c n c n c
c n c n c n c n
c c c c n
O c n c n c n c O n
46
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.
47
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).
48
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.
49
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.
50
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.
51
PB
Übersicht1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
52
PB
Definition: Praktische Lö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.
53
PB Beispiel: Königsberger Brückenproblem
Gibt es einenRundweg, beidem jede dersieben Brückengenau einmalbenutzt wird?
54
PB
Verallgemeinerung: Eulerkreis
Gibt es in einem ungerichteten Graphen einen Rundweg, der jede Kante genau einmal enthält?
Ein solcher Rundweg heißt Eulerkreis.
55
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 Nachbarn eines Knotens bezeichnet man als dessen Grad.
In einem ungerichteten Graphen existiert genau dann ein Eulerkreis, wenn der Grad jedes Knotens gerade ist.
56
PB
Eulerkreis: Algorithmus Darstellung des Graphen durch eine Matrix G
(n Zeilen, n Spalten) mit
Aufgabe: Entwerfen Sie einen Algorithmus, der für einen in Matrixform gegebenen Graphen G entscheidet, ob G einen Eulerkreis enthält oder nicht.
1, falls Knoten Nachbar von Knoten ist
0 sonstij
j ig
57
PB
Eulerkreis: AlgorithmusAlgorithmus Eulerkreis(Eingabe: Ein Feld g der Dimension n x n, das die
Kanten des Graphen festlegtAusgabe: 'ja', falls der Graph einen Eulerkreis
enthält, sonst 'nein') begin euler:=1 for i:=1 to n do for j:=1 to n do if g[i,j]=1 then grad[i]:=grad[i]+1 for i:=1 to n do if grad[i] mod 2 = 1 then euler:=0 if euler=1 then Ausgabe: ja else Ausgabe: nein end
58
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.
59
PB
Beispiel: Hamilton-Zyklus (1)
Unter einem Hamilton-Zyklus versteht man in einemungerichteten Graphen einen Rundweg, der jedenKnoten genau einmal enthält.
60
PB
Beispiel: Hamilton-Zyklus (2) Es gibt keinen polynomialen Algorithmus, der das
Problem löst. Die einzige bekannte Möglichkeit, einen Hamilton-
Zyklus 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.
61
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.
62
PB
Beispiel: Problem des Handlungsreisenden (2)
Kostenwert:Fahrzeit zwischenzwei Orten (in Min.)
Gibt es eine Lösungfür k=450 min?
63
PB Problem des Handlungsreisenden: Lösung
Es gibt keine Lösung für k=7,5 h. 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
64
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?
65
PB Problem des Handlungsreisenden: Problemvarianten (2)
Bezüglich der Lösbarkeit sind alle drei Varianten äquivalent.
Das Problem des Handlungsreisenden ist praktisch unlösbar.
66
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.
67
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?
68
PB Verpackungsproblem: Problemvarianten (2)
Bezüglich der Lösbarkeit sind alle drei Varianten äquivalent.
Das Verpackungsproblem ist praktisch unlösbar.
69
PB
Beispiel: Stundenplanproblem (1)Eine Anwendung des Verpackungsproblems:
Behälter: zur Verfügung stehende Raum-Zeit-Kombinationen
Gegenstände: zu verteilende fach-Lerngruppe-Kombinationen (Unterrichtsstunden)
Anzahl k der Behälter: Anzahl Räume · Anzahl Wochen-stunden
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)
70
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.
71
PB
Beispiel: Primfaktorzerlegung 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 Primfaktorenproblem ist praktisch unlösbar.
72
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.
73
PB
Übersicht1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
74
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
75
PB
Hamilton-Zyklus: Auswahlbaum
Jeder Ast stellt – ausgehend vomKnoten 1 – einePermutation derübrigen Knoten dar.
76
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.
77
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.
78
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
79
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
80
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.
81
PB
Problemklassen
alle Probleme
prinzipiell lösbare Probleme
NP
P
Klar: PNP
Offen: P=NP?
82
PB
Probleme der Klasse NP das Problem Hamilton-Zyklus das Problem des Handlungsreisenden das Verpackungsproblem das Stundenplanproblem das Primfaktorenproblem
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.
83
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: PNP).
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
84
PB
Übersicht1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
85
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.
86
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.
87
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
88
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 Q1 wird eine Eingabe f(x) für Q2
zugeordnet Q1 ist für x genau dann mit „ja“ zu beantworten,
wenn Q2 für f(x) mit „ja“ zu beantworten ist.
89
PB
NP-Vollständigkeit undpolynomiale Reduzierbarkeit
Ein Problem QNP 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.
90
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 NP-Vollständigkeit schon nachgewiesen (ohne Ausnutzung der Transitivität)
Cook 1971: Das Erfüllbarkeitsproblem der Aussagenlogik ist NP-vollständig.
91
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.
92
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.
93
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
94
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?
95
PB Aufgabe: Knotenüberdeckungsproblem
Gibt es eine Knotenüberdeckung mit vier Knoten?
Gibt es eine Überdeckung mit drei Knoten?
96
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 QNP: Q p SAT
Wir zeigen: SAT p VCP
Aus der Transitivität folgt: für alle QNP: Q p VCP
97
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
98
PB
VCP: Beweis (3)
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.
( ) ( )B a b c a b c d
99
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
100
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
101
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
102
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.
103
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.
104
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
105
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.
106
PB
VCP: Beweis (11)2. Schritt. G enthalte eine Überdeckung mit k Knoten.
Zu zeigen: B ist erfüllbar.
107
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.
108
PB
VCP: Beweis (13)Wahl der Variablen-belegungen 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.
109
PB
VCP: Beweis (14)Jeder untere Teilgraph enthält einen Knoten, der nicht zu Ü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.
110
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.
111
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 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?
112
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?
113
PB
Übersicht1. Der Komplexitätsbegriff
2. Beschreibung der Zeitkomplexität
3. Abschätzung der Zeitkomplexität
4. Praktisch nicht anwendbare Algorithmen
5. Praktisch unlösbare Probleme
6. Nichtdeterministische Algorithmen,P und NP
7. NP-Vollständigkeit
8. Näherungslösungen
114
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)
115
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 Primzahlenproblem
116
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
117
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)
118
PB
Probabilistischer Algorithmus „prim“ siehe Skript Der Algorithmus testet, ob eine natürliche Zahl n
Primzahl ist. Ist n Primzahl, erkennt der Algorithmus das immer
richtig. Ist n keine Primzahl, erkennt er das manchmal nicht. Die Fehlerwahrscheinlichkeit kann vorgegeben
werden.
119
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.
120
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.