PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

120
PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004

Transcript of PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

Page 1: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

PB

Praktische Grenzender Berechenbarkeit

Patrick Breuer

25.11.2004

Page 2: PB Praktische Grenzen der 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

Page 3: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

3

PB

Komplexitäten messbare oder berechenbare Merkmale von

Algorithmen

Laufzeit Speicherbedarf

Page 4: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 5: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 6: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 7: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 8: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 9: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 10: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 11: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 12: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 13: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 14: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 15: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

15

PB

Kursanalyse: Aufwand (2.3) Anzahl der Additionen:

1

2

( 1)

2

1 1

2 2

n

k

n nk

n n

Page 16: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 17: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 18: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 19: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 20: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 21: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 22: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 23: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 24: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 25: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

25

PB Wachstum einiger Funktionen zur Charakterisierung der Komplexität

in doppeltlogarithmischerDarstellung

Page 26: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 27: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 28: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 29: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 30: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 31: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 32: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 33: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 34: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 35: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 36: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 37: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

37

PB

Sequentielle Suche : Aufwand (2)

( ) 2 (2 2)

4 2

( )

seq

seq

t n n

n

t O n

Page 38: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 39: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 40: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 41: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 42: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

42

PB

Türme von Hanoi: Aufwand (1) Grundoperationen: Vergleich, Ausgabe

Anzahl der Grundoperationen: Ein Vergleich, eine Ausgabe 2 mal Grundoperationen der rekursiven Aufrufe

Page 43: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 44: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 45: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 46: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 47: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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).

Page 48: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 49: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 50: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 51: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 52: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 53: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

53

PB Beispiel: Königsberger Brückenproblem

Gibt es einenRundweg, beidem jede dersieben Brückengenau einmalbenutzt wird?

Page 54: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 55: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 56: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 57: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 58: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 59: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

59

PB

Beispiel: Hamilton-Zyklus (1)

Unter einem Hamilton-Zyklus versteht man in einemungerichteten Graphen einen Rundweg, der jedenKnoten genau einmal enthält.

Page 60: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 61: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 62: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

62

PB

Beispiel: Problem des Handlungsreisenden (2)

Kostenwert:Fahrzeit zwischenzwei Orten (in Min.)

Gibt es eine Lösungfür k=450 min?

Page 63: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 64: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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?

Page 65: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 66: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 67: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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?

Page 68: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

68

PB Verpackungsproblem: Problemvarianten (2)

Bezüglich der Lösbarkeit sind alle drei Varianten äquivalent.

Das Verpackungsproblem ist praktisch unlösbar.

Page 69: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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)

Page 70: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 71: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 72: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 73: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 74: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 75: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

75

PB

Hamilton-Zyklus: Auswahlbaum

Jeder Ast stellt – ausgehend vomKnoten 1 – einePermutation derübrigen Knoten dar.

Page 76: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 77: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 78: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 79: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 80: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 81: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

81

PB

Problemklassen

alle Probleme

prinzipiell lösbare Probleme

NP

P

Klar: PNP

Offen: P=NP?

Page 82: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 83: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 84: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 85: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 86: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 87: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 88: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 89: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 90: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 91: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 92: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 93: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 94: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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?

Page 95: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

95

PB Aufgabe: Knotenüberdeckungsproblem

Gibt es eine Knotenüberdeckung mit vier Knoten?

Gibt es eine Überdeckung mit drei Knoten?

Page 96: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 97: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 98: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 99: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 100: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 101: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 102: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 103: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 104: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 105: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 106: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

106

PB

VCP: Beweis (11)2. Schritt. G enthalte eine Überdeckung mit k Knoten.

Zu zeigen: B ist erfüllbar.

Page 107: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 108: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 109: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 110: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 111: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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?

Page 112: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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?

Page 113: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 114: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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)

Page 115: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 116: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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

Page 117: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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)

Page 118: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 119: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.

Page 120: PB Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004.

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.