Title: Praktische Grenzen der Berechenbarkeit
1Praktische Grenzender Berechenbarkeit
- Patrick Breuer
- 25.11.2004
2Übersicht
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
3Komplexitäten
- messbare oder berechenbare Merkmale von
Algorithmen - Laufzeit
- Speicherbedarf
4Aufgabe 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.
5Kursanalyse Strategie (1)
- Für jeden möglichen Kauftag i und Verkaufstag j
die Teilsumme ai...aj berechnen - Aus allen Teilsummen das Maximum bestimmen
6Kursanalyse 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
7Kursanalyse 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
8Kursanalyse 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
9Kursanalyse 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
10Kursanalyse Aufwand (1.4)
- Aufwandsmaß Anzahl der Additionen in der
innersten Zählschleife
11Kursanalyse 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
12Kursanalyse Algorithmus (2)
- begin
- max0
- for i1 to n do
- s0
- for ji to n do
- ssaj
- if sgtmax then maxs
- end
13Kursanalyse Aufwand (2.1)
- begin
- max0
- for i1 to n do
- s0
- for ji to n do
- ssaj
- if sgtmax then maxs
- end
14Kursanalyse Aufwand (2.2)
- begin
- max0
- for i1 to n do
- s0
- for ji to n do
- ssaj
- if sgtmax then maxs
- end
15Kursanalyse Aufwand (2.3)
16Kursanalyse 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.
17Kursanalyse Algorithmus (3)
- begin
- max0
- s0
- for i1 to n do
- ssai
- if sgtmax then maxs
- if slt0 then s0
- end
18Kursanalyse Aufwand (3)
- begin
- max0
- s0
- for i1 to n do
- ssai
- if sgtmax then maxs
- if slt0 then s0
- end
19Kursanalyse Aufwand im Vergleich
Algorithmus Anzahl der Additionen
1
2
3
20Kursanalyse 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
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
22Drei 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.
23Beschreibung 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
24Typische 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
25Wachstum einiger Funktionen zur Charakterisierung
der Komplexität
in doppelt logarithmischer Darstellung
26Zeitaufwand
Annahme Pro Millisekunde wird eine
Grundoperation (Wertzuweisung, Addition, ...)
bearbeitet.
Eingabe-größe n
...
...
...
27Maximale 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
29Aufgabe
- Auf welchen Wert wächst die maximale Problemgröße
bei der Komplexität , wenn der Computer
100-mal schneller arbeitet? - Um welchen Faktor muss der Computer schneller
arbeiten, damit die maximale Problemgröße bei der
Komplexität auf 100 steigt?
30Lösung
- Die maximale Problemgröße wächst um auf 27.
- Der Computer müsste um den Faktorschneller sein.
31Asymptotische 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.
32Asymptotische Ordnung (2)
- formal
- Beispiel
- Die Funktionen
- und
- sind Elemente der Ordnung O(n3)
33Asymptotische 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
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
35Beispiel 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
36Sequentielle 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
37Sequentielle Suche Aufwand (2)
38Beispiel 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
39Binä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
40Binäre Suche Aufwand (2)
41Beispiel 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
42Türme von Hanoi Aufwand (1)
- Grundoperationen Vergleich, Ausgabe
- Anzahl der Grundoperationen
- Ein Vergleich, eine Ausgabe
- 2 mal Grundoperationen der rekursiven Aufrufe
43Türme von Hanoi Aufwand (2)
44Übersicht
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
45Definition 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
46Abgeschlossenheit
- 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.
47Definition 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).
48Anwendbare 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.
49These 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.
50Ausnahmen
- 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
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
52Definition 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.
53Beispiel Königsberger Brückenproblem
Gibt es einen Rundweg, bei dem jede der sieben
Brücken genau einmal benutzt wird?
54Verallgemeinerung Eulerkreis
Gibt es in einem ungerichteten Graphen einen
Rundweg, der jede Kante genau einmal enthält?
Ein solcher Rundweg heißt Eulerkreis.
55Eulerkreis 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.
56Eulerkreis 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.
57Eulerkreis 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
58Eulerkreis 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.
59Beispiel Hamilton-Zyklus (1)
Unter einem Hamilton-Zyklus versteht man in
einem ungerichteten Graphen einen Rundweg, der
jeden Knoten genau einmal enthält.
60Beispiel 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.
61Beispiel 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.
62Beispiel Problem des Handlungsreisenden (2)
Kostenwert Fahrzeit zwischen zwei Orten (in
Min.) Gibt es eine Lösung für k450 min?
63Problem 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
64Problem 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?
65Problem des Handlungsreisenden Problemvarianten
(2)
- Bezüglich der Lösbarkeit sind alle drei Varianten
äquivalent. - Das Problem des Handlungsreisenden ist praktisch
unlösbar.
66Beispiel 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.
67Verpackungsproblem 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?
68Verpackungsproblem Problemvarianten (2)
- Bezüglich der Lösbarkeit sind alle drei Varianten
äquivalent. - Das Verpackungsproblem ist praktisch unlösbar.
69Beispiel 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)
70Beispiel 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.
71Beispiel 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.
72Beispiel 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
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
74Beispiel Hamilton-Zyklus
- Lösungskandidaten sind alle Permutationen der
Knoten. - Der Startknoten kann frei gewählt werden.
- Darstellung aller Lösungskandidaten in einem
Auswahlbaum
75Hamilton-Zyklus Auswahlbaum
Jeder Ast stellt ausgehend vom Knoten 1
eine Permutation der übrigen Knoten dar.
76Hamilton-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.
77Nichtdeterministische 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.
78Nichtdeterministische 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
79Nichtdeterministische 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
80Definition 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.
81Problemklassen
alle Probleme prinzipiell lösbare Probleme NP P
Klar P?NP Offen PNP?
82Probleme 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.
83PNP-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
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
85PNP-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.
86Definition 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.
87Definition 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
88Nachweis 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.
89NP-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.
90Nachweis 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.
91Definition 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.
92Definition 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.
93Erfü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
94Definition 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?
95Aufgabe Knotenüberdeckungsproblem
Gibt es eine Knotenüberdeckung mit vier
Knoten? Gibt es eine Überdeckung mit drei Knoten?
96VCP 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
97VCP 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
98VCP 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.
99VCP 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.
100VCP Beweis (5)
- Die Kanten werden so festgelegt, dass sie je
ein Literal der entsprechenden Klausel
repräsentieren.
101VCP 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
102VCP 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.
103VCP 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.
104VCP Beweis (9)
B wird erfüllt durch afalsch, bwahr, cwahr,
dfalsch
105VCP 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.
106VCP Beweis (11)
2. Schritt. G enthalte eine Überdeckung mit k
Knoten.
Zu zeigen B ist erfüllbar.
107VCP 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.
108VCP 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.
109VCP 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.
110VCP 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.
111Weitere 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?
112Weitere 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
- Der Komplexitätsbegriff
- Beschreibung der Zeitkomplexität
- Abschätzung der Zeitkomplexität
- Praktisch nicht anwendbare Algorithmen
- Praktisch unlösbare Probleme
- Nichtdeterministische Algorithmen,P und NP
- NP-Vollständigkeit
- Näherungslösungen
114Praxisrelevanz 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)
115Lö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
116Genetische 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
117Aufgabe 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)
118Probabilistischer 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.
119Fazit (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.
120Fazit (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.