Praktische Grenzen der Berechenbarkeit - PowerPoint PPT Presentation

About This Presentation
Title:

Praktische Grenzen der Berechenbarkeit

Description:

Praktische Grenzen der Berechenbarkeit Patrick Breuer 25.11.2004 bersicht Der Komplexit tsbegriff Beschreibung der Zeitkomplexit t Absch tzung der ... – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 121
Provided by: PatrickB170
Category:

less

Transcript and Presenter's Notes

Title: Praktische Grenzen der Berechenbarkeit


1
Praktische Grenzender Berechenbarkeit
  • Patrick Breuer
  • 25.11.2004

2
Übersicht
  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

3
Komplexitäten
  • messbare oder berechenbare Merkmale von
    Algorithmen
  • Laufzeit
  • Speicherbedarf

4
Aufgabe Aktienkursanalyse
  • Die SituationGegeben ist der Kursverlauf einer
    Aktie über 30 Tage. Gesucht ist der maximale
    Gewinn bei optimaler Wahl des Kauf- und
    Verkaufstages
  • Das ModellGegeben ist eine Zahlenfolge
    a1,...,an, die Folge der Tagesgewinne. Gesucht
    ist die maximale Teilsumme von a1,...,an.

5
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
Kursanalyse Algorithmus (1)
  • begin
  • max0
  • for i1 to n do
  • for ji to n do
  • s0
  • for ki to j do
  • ssak
  • if sgtmax then maxs
  • end

7
Kursanalyse Aufwand (1.1)
  • Aufwandsmaß Anzahl der Additionen in der
    innersten Zählschleife
  • begin
  • max0
  • for i1 to n do
  • for ji to n do
  • s0
  • for ki to j do
  • ssak
  • if sgtmax then maxs
  • end

8
Kursanalyse Aufwand (1.2)
  • Aufwandsmaß Anzahl der Additionen in der
    innersten Zählschleife
  • begin
  • max0
  • for i1 to n do
  • for ji to n do
  • s0
  • for ki to j do
  • ssak
  • if sgtmax then maxs
  • end

9
Kursanalyse Aufwand (1.3)
  • Aufwandsmaß Anzahl der Additionen in der
    innersten Zählschleife
  • begin
  • max0
  • for i1 to n do
  • for ji to n do
  • s0
  • for ki to j do
  • ssak
  • if sgtmax then maxs
  • end

10
Kursanalyse Aufwand (1.4)
  • Aufwandsmaß Anzahl der Additionen in der
    innersten Zählschleife

11
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

12
Kursanalyse Algorithmus (2)
  • begin
  • max0
  • for i1 to n do
  • s0
  • for ji to n do
  • ssaj
  • if sgtmax then maxs
  • end

13
Kursanalyse Aufwand (2.1)
  • begin
  • max0
  • for i1 to n do
  • s0
  • for ji to n do
  • ssaj
  • if sgtmax then maxs
  • end

14
Kursanalyse Aufwand (2.2)
  • begin
  • max0
  • for i1 to n do
  • s0
  • for ji to n do
  • ssaj
  • if sgtmax then maxs
  • end

15
Kursanalyse Aufwand (2.3)
  • Anzahl der Additionen

16
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
Kursanalyse Algorithmus (3)
  • begin
  • max0
  • s0
  • for i1 to n do
  • ssai
  • if sgtmax then maxs
  • if slt0 then s0
  • end

18
Kursanalyse Aufwand (3)
  • begin
  • max0
  • s0
  • for i1 to n do
  • ssai
  • if sgtmax then maxs
  • if slt0 then s0
  • end

19
Kursanalyse Aufwand im Vergleich
Algorithmus Anzahl der Additionen
1
2
3
20
Kursanalyse Aufwand im Vergleich
Alg. Anzahl der Additionen
1
2
3
n n n n n
20 40 60 80 100
1540 11480 37820 88560 171700
210 820 1830 3240 5050
20 40 60 80 100
21
Übersicht
  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

22
Drei Fälle
  • Best-Case-AnalyseDie im günstigsten Fall
    erforderliche Laufzeit wird ermittelt.
  • Average-Case-AnalyseDie im mittleren Fall
    (Mittelwert, Erwartungswert) erforderliche
    Laufzeit wird ermittelt
  • Worst-Case-AnalyseDie im ungünstigsten Fall
    erforderliche Laufzeit wird ermittelt.

23
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
Typische Komplexitäten
k(n) k(n) n n n n n n
k(n) k(n) 10 100 1000 104 105 106
logarithmisch
linear
log-linear
quadratisch
kubisch
exponentiell
25
Wachstum einiger Funktionen zur Charakterisierung
der Komplexität
in doppelt logarithmischer Darstellung
26
Zeitaufwand
Annahme Pro Millisekunde wird eine
Grundoperation (Wertzuweisung, Addition, ...)
bearbeitet.
Eingabe-größe n


...
...
...
27
Maximale Problemgrößein Abhängigkeit von
Komplexitätund Laufzeit
Komplexität Max. Problemgröße n bei einer Laufzeit von Max. Problemgröße n bei einer Laufzeit von Max. Problemgröße n bei einer Laufzeit von
Komplexität




28
Ä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 ...
durch Potenzieren mit
durch Multiplizieren mit
durch Multiplizieren mit
durch Addieren von
29
Aufgabe
  1. 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?

30
Lösung
  1. Die maximale Problemgröße wächst um auf 27.
  2. Der Computer müsste um den Faktorschneller sein.

31
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
Asymptotische Ordnung (2)
  • formal
  • Beispiel
  • Die Funktionen
  • und
  • sind Elemente der Ordnung O(n3)

33
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
Übersicht
  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

35
Beispiel Sequentielle Suche
  • Algorithmus Sequentielle Suche
  • (Gegeben Ein sortiertes n-dimensionales Feld a
  • und ein Suchschlüssel s)
  • begin
  • gefundenfalse
  • i1
  • repeat
  • if ais then
  • gefundentrue
  • ii1
  • until gefunden or igtn
  • end

36
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
Sequentielle Suche Aufwand (2)

38
Beispiel Binäre Suche
  • Algorithmus Binäre Suche
  • (Gegeben Ein sortiertes n-dimensionales Feld a
  • und ein Suchschlüssel s)
  • begin
  • gefundenfalse
  • l1
  • rn
  • repeat
  • m(lr) div 2
  • if ams then gefundentrue
  • if amgts then rm-1
  • if amlts then lm1
  • until gefunden or lgtr
  • end

39
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

40
Binäre Suche Aufwand (2)

41
Beispiel Türme von Hanoi
  • Algorithmus Hanoi(n,von,nach,ueber)
  • (von Ausgangsstab, nach Zielstab, ueber
    Hilfsstab)
  • begin
  • if n1 then
  • Ausgabe von -gt nach
  • else
  • Hanoi(n-1,von,ueber,nach)
  • Ausgabe von -gt nach
  • Hanoi(n-1,ueber,nach,von)
  • end

42
Türme von Hanoi Aufwand (1)
  • Grundoperationen Vergleich, Ausgabe
  • Anzahl der Grundoperationen
  • Ein Vergleich, eine Ausgabe
  • 2 mal Grundoperationen der rekursiven Aufrufe

43
Türme von Hanoi Aufwand (2)

44
Übersicht
  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

45
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

46
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
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
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
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
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,00120,001n ist für n100000
    noch schneller als ein polynomialer Algorithmus
    der Komplexität tp(n)1000 n5.
  • Für prinzipielle Betrachtungen gilt dennochEin
    Algorithmus ist nicht anwendbar,wenn er nicht
    polynomial ist.

51
Übersicht
  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

52
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 AlgorithmenPraktische
    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
Beispiel Königsberger Brückenproblem
Gibt es einen Rundweg, bei dem jede der sieben
Brücken genau einmal benutzt wird?
54
Verallgemeinerung Eulerkreis
Gibt es in einem ungerichteten Graphen einen
Rundweg, der jede Kante genau einmal enthält?
Ein solcher Rundweg heißt Eulerkreis.
55
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
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.

57
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
  • euler1
  • for i1 to n do
  • for j1 to n do
  • if gi,j1 then gradigradi1
  • for i1 to n do
  • if gradi mod 2 1 then euler0
  • if euler1 then Ausgabe ja
  • else Ausgabe nein
  • end

58
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
Beispiel Hamilton-Zyklus (1)
Unter einem Hamilton-Zyklus versteht man in
einem ungerichteten Graphen einen Rundweg, der
jeden Knoten genau einmal enthält.
60
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
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, kn.

62
Beispiel Problem des Handlungsreisenden (2)
Kostenwert Fahrzeit zwischen zwei Orten (in
Min.) Gibt es eine Lösung für k450 min?
63
Problem des Handlungsreisenden Lösung
  • Es gibt keine Lösung für k7,5 h.
  • Der kleinste Kostenwert, für den eine Rundreise
    existiert, ist k456 min.
  • Die kostengünstigste Rundreise istMZ-DA-HD-AZ-KL
    -SB-TR-KO-WI-MZ

64
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
Problem des Handlungsreisenden Problemvarianten
(2)
  • Bezüglich der Lösbarkeit sind alle drei Varianten
    äquivalent.
  • Das Problem des Handlungsreisenden ist praktisch
    unlösbar.

66
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
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
Verpackungsproblem Problemvarianten (2)
  • Bezüglich der Lösbarkeit sind alle drei Varianten
    äquivalent.
  • Das Verpackungsproblem ist praktisch unlösbar.

69
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
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
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
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
Übersicht
  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

74
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
Hamilton-Zyklus Auswahlbaum
Jeder Ast stellt ausgehend vom Knoten 1
eine Permutation der übrigen Knoten dar.
76
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
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
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
Nichtdeterministische Algorithmen (3)
  • Von Bedeutung für theoretische Betrachtungen,
    wenn Ratephase und Prüfphase mit polynomialem
    Aufwand möglich sindDienen zur Klassifizierung
    von prinzipiell lösbaren Problemen, für die
    möglicherweise ein polynomialer Algorithmus
    existiert

80
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 Verifikationsalgorithmu
    s.

81
Problemklassen
alle Probleme prinzipiell lösbare Probleme NP P
Klar P?NP Offen PNP?
82
Probleme der Klasse NP
  • das Problem Hamilton-Zyklus
  • das Problem des Handlungsreisenden
  • das Verpackungsproblem
  • das Stundenplanproblem
  • das PrimfaktorenproblemDas 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
PNP-Problematik (1)
  • Um die Frage klären zu können, ob PNP 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 PNP).
  • Ziel Klassifizierung der schwersten Probleme in
    NP

84
Übersicht
  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

85
PNP-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
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
    PNP gilt.
  • Die NP-vollständigen Probleme sind die
    schwersten in der Klasse NP.

87
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
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
NP-Vollständigkeit undpolynomiale 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.

90
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
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
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
Erfüllbarkeitsproblem
  • Das Erfüllbarkeitsproblem der Aussagenlogik
    (engl. satisfiability problem, kurz SAT)
    lautetGegeben ist ein boolescher Ausdruck B in
    konjunktiver Normalform. Ist B erfüllbar?
  • Das Erfüllbarkeitsproblem ist NP-vollständig.
  • Beweisskizze siehe Skript

94
Definition Knotenüberdeckungsproblem
  • Das Knotenüberdeckungsproblem (engl. vertex
    covering problem, kurz VCP) lautetGegeben 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
Aufgabe Knotenüberdeckungsproblem
Gibt es eine Knotenüberdeckung mit vier
Knoten? Gibt es eine Überdeckung mit drei Knoten?
96
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
97
VCP Beweis (2)
  • 1. Schritt VCP liegt in NPsiehe 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 giltB ist genau dann erfüllbar,
    wenn G eine Überdeckung mit k Knoten enthält.
  • Beweis, dass die Konstruktion richtig ist

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

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

100
VCP Beweis (5)
  • Die Kanten werden so festgelegt, dass sie je
    ein Literal der entsprechenden Klausel
    repräsentieren.

101
VCP Beweis (6)
  • Bestimmung einer natürlichen Zahl kMan addiert
    die Anzahl der Variablen zur Anzahl der Literale
    in B und subtrahiert die Anzahl der Klauseln.

k4(34)-2 9
102
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
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
VCP Beweis (9)
B wird erfüllt durch afalsch, bwahr, cwahr,
dfalsch
105
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
VCP Beweis (11)
2. Schritt. G enthalte eine Überdeckung mit k
Knoten.
Zu zeigen B ist erfüllbar.
107
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
VCP Beweis (13)
Wahl der Variablen-belegungen für B entsprechend
den oben ausgewählten Knoten
Im Beispiel awahr, bfalsch, cfalsch,
dwahr Noch zu zeigen Die Belegung erfüllt B.
109
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
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
Weitere NP-vollständige Probleme (1)
  • 3KNF-SATErfüllbarkeitsproblem für boolesche
    Ausdrücke in konjunktiver Normalform mit
    höchstens drei Literalen
  • MengenüberdeckungsproblemGegeben 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?
  • RucksackproblemGegeben k Gegenstände von
    unterschiedlichem Gewicht. Gibt es eine Auswahl
    von Gegenständen, die ein vorgegebenes
    Gesamtgewicht hat?

112
Weitere NP-vollständige Probleme (2)
  • ErbteilungsproblemGegeben k Münzen von
    unterschiedlichem Wert. Gibt es eine Aufteilung
    der Münzen, so dass jeder Teil denselben Wert
    hat?
  • k-FärbbarkeitsproblemGegeben 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
Übersicht
  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

114
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
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
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
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
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
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 PNP gilt.
  • NP-vollständige Probleme sind die schwersten
    unter denjenigen, für die möglicherweise ein
    schneller Algorithmus existiert.

120
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 PNP.
Write a Comment
User Comments (0)
About PowerShow.com