Grundlagen der Informatik Kapitel 20 Harald Krottmaier Sven Havemann
Agenda • Klassen von Problemen • Einige Probleme... • Approximationsalgorithmen
WS2007
2
Klassen • P • NP • NP-vollständig
WS2007
3
Klasse P • praktisch lösbare Probleme • Algorithmus existiert – Betriebsmittel begrenzt • Speicher • Zeit
• nicht lösbar, wenn – Speicheranforderung > # Atome im Universum – Schnellste Rechner benötigt Milliarden Jahre WS2007
4
Klasse P • Klasse von Problemen zu denen Algorithmen existieren, die eine Lösung mit polynomiellem Aufwand berechnen • z.B. – – – – – WS2007
Potenzieren nach Legendre O(log n) Sequentielle Suche O(n) Sortieren O(n log n) Primzahlensieb des Eratosthenes O(n2) (klassische) Matrizenmultiplikation O(n3) 5
Klasse NP • Es ist keine bessere Methode bekannt als alle Lösungsmöglichkeiten (Kombinationen) durchzuprobieren – Und das hat exponentiellen Aufwand, ist damit unpraktikabel (für grössere n)
• NP: Nondeterministic Polynomial time decideable WS2007
6
Bsp: SAT-Problem • SAT: satisfiability problem; – Erfüllbarkeitsproblem
• Existiert zu einem gegebenen booleschen Ausdruck eine Belegung der Variablen (true, false), so dass der Ausdruck true wird? • [einfach berechenbar: Wert des Ausdrucks bei gegebenen Variablen] WS2007
7
SAT-Problem • (not(a)+b)*(a+not(b)+not(c))*not(c) ist true für a=false, b=true, c=false • a*(not(a)+b)*(not(b)+not(c))*c ist nicht erfüllbar, jede Belegung ergibt false. • Kann man also einfach ausprobieren… WS2007
8
SAT • n = Zahl der Variablen im Ausdruck • O(2n): Alle Kombinationen... • Rechner: 106 Schritte pro Sekunde
WS2007
9
ja/nein-Probleme • • • • •
Entscheidungsprobleme Untersuchung über Sprachen Kodierung durch Alphabet Σ jedes Problem ist Wort w aus Σ* Menge aller lösbaren Probleme ist Teilmenge (also Sprache) von Σ*
WS2007
10
SAT... • Worte zu Alphabet • "Der Algorithmus löst Erfüllbarkeitsproblem" wird zu: • "Der Algorithmus akzeptiert die Sprache SAT."
WS2007
11
SAT in polynomialer Zeit O(n) lösbar, wenn... • 2n Parallelrechner rechnen
WS2007
12
Klasse NP • "Menge aller Probleme, wo ein ein nichtdeterministischer Algorithmus in polynomialer Komplexität die Lösung verifizieren kann." • P NP • Zwei Phasen – Guess-Phase (also raten), Zeit: tn – Check-Phase (prüfen), Zeit td WS2007
13
Bsp. • L={xxR | x aus {0, 1}*} • xR ... Spiegelbild zu x
WS2007
14
deterministisch...
WS2007
15
nichtdeterministisch... • Erraten der Mitte • Maximal halber Speicherbedarf
WS2007
16
Satz von Cook • "Jedes Problem in NP lässt sich polynomial auf das SAT-Problem zurückführen."
WS2007
17
Polynomielle Reduktion? • Reduktion: – Relation zwischen zwei Problemen – "A ist über eine Reduktionsfunktion f reduzierbar auf B"
• Reduktion ist polynomial wenn f in deterministischer Polynomialzeit berechnet werden kann. WS2007
18
Das n-Farbenproblem • "Kann ein gegebener Graph mit höchstens n Farben gefärbt werden, sodass alle benachbarten Knoten unterschiedliche Farben haben?"
WS2007
19
2-COLOR ist einfach! • n=2: Zweifarbenproblem • Immer möglich, solange kein Kreis mit ungerader # von Knoten existiert • In linearer Zeit berechenbar
WS2007
20
3-COLOR • n=3 (NP-vollständig!) • Beispiel unten: Sind Knoten 1, 2, 3 und 4 mit 3 Farben färbbar, sodass keine benachbarten Knoten die gleiche Farben haben?
WS2007
21
3-COLOR auf SAT reduzieren • Boolesche Variablen einführen: – si – wi – bi
= Knoten i ist schwarz = Knoten i ist weiß = Knoten i ist blau
• Erlaubte Färbung ist gefunden, wenn folgende 3 Bedingungen erfüllt sind WS2007
22
3-COLOR • 1. Jeder Knoten hat eine Farbe – a1 =
(s1+w1+b1) * (s2+w2+b2) * (s3+w3+b3) * (s4+w4+b4)
• 2. Kein Knoten hat zwei Farben
WS2007
23
3-COLOR • 3. Je zwei benachbarte Knoten haben verschiedene Farben
WS2007
24
3-COLOR • Sei a = a1 * a2 * a3 • Falls Belegung gefunden wird so dass a = true ist, so ist eine Färbung möglich – Einfach ablesen aus der Belegung!
• SAT ist das Grundproblem: Aussagenlogik ist eine universelle Sprache zur Problembeschreibung. WS2007
25
Cook: Rückführbarkeit auf SAT • Alle Probleme aus der Klasse NP sind mit Hilfe der Aussagenlogik formulierbar. • Kann man SAT, das Entscheidungsproblem effizient lösen, so kann man alle Probleme der Klasse NP effizient lösen. • [bis heute keiner gefunden...] WS2007
26
NP-vollständig • • • •
auch NPC [C...complete] SAT ist schwieriges Problem p ist NPC, wenn SAT auf p rückführbar ist. Es gilt: – jedes Problem in NPC ist mind. so schwierig wie SAT – [Cook] Jedes Problem aus NP ist auf SAT rückführbar, d.h. jedes Problem aus NP höchstens so schwierig wie SAT
• d.h. Alle Probleme in NPC sind gleich schwierig WS2007
27
P = NP? • heute ca. 1000 NPC-Probleme bekannt • kann man eines lösen, sind alle lösbar! • Man vermutet, dass P != NP gilt [ist aber nicht bewiesen!] • Größte ungelöste Rätsel der Informatik... • Sicher ist: P NP – deterministische Alg. sind Spezialfälle von nichtdeterministischen Alg.
WS2007
28
Einige NPC-Probleme • 3SAT – Wie SAT, aber OR mit maximal drei Variablen (3KNF) wie in (a+b+c)*(e+f+g)*…*(x+a+b)
• CLIQUE-Problem – Größe des größten vollständigen Subgraphen
WS2007
29
Einige NPC-Probleme • KNAPSACK: Rucksack-Problem – Packe einige Gegenstände mit Größe gi und Wert wi in Rucksack mit Größe G so dass Wert maximal wird
• SUBSUM: Teilsummen-Problem – Gegeben natürliche Zahlen a1..an und Zahl b, kann man b als Summe einiger geeigneter ai erhalten? WS2007
30
Einige NPC-Probleme • HP: Hamilton-Pfad-Problem – Finde Hamiltonschen Pfad: Jeder Knoten eines Graphen wird genau einmal besucht
• HC: Hamilton Circuit-Problem • TSP: Traveling Salesman Problem – Finde den kürzesten Weg für eine Rundreise über n Städte (Distanztabelle) WS2007
31
Etwas mehr im Detail…
WS2007
32
3SAT-Problem • Spezialfall SAT – boolsche Klauseln (OR-Ausdrücke) von max. 3 Variablen – z.B.
• SAT auf 3SAT reduzieren ist Nachweis, dass 3SAT NPC ist. WS2007
33
3SAT...
WS2007
34
3SAT...
WS2007
35
3SAT...
WS2007
36
3SAT... • Jeder SAT-Ausdruck lässt sich mit polynomiellem Aufwand auf einen 3SAT-Ausdruck reduzieren! • Damit gilt:
WS2007
37
CLIQUE-Problem • In einem Graphen ist eine Teilmenge von Knoten eine Clique, wenn je zwei Elemente aus dieser Teilmenge durch eine Kante verbunden sind. • z.B. Jede Person in einer Gruppe kennt die anderen Personen in der Gruppe. WS2007
38
CLIQUE-Problem
• Suche Clique mit den meisten Personen! WS2007
39
Rucksack-Problem • n Gegenstände unterschiedlicher Größe gi mit einem Wert wi. • Gesucht: Rucksack mit Größe gmax so zu füllen, dass Gesamtwert der eingepackten Gegenstände max. wird, jedoch gmax nicht überschritten wird. WS2007
40
Rucksack...
• gmax = 15 • z.B. – 5 x a, d.h. wges = 20 – c und d: wges = 21
WS2007
41
Rucksack... • mögliche Lösung: – für alle Größen: nur Gegenstand a – für alle Größen: nur Gegenstand a und b – ...
• max[k]: größter Wert für gmax=k • optimal[k]: letzter hinzugefügter Gegenstand • Zuvor hinzugefügter Gegenstand? – max[k-g[optimal[k]]] WS2007
42
Rucksack... • Berechne max. Wert wenn nur a verwendet wird, dann wenn nur a und b verwendet wird… bis K
WS2007
43
Rucksack...
WS2007
44
Rucksack... • für ganze Zahlen: Problem proportional zu N * K … ????? – N...Anzahl unterschiedlicher Gegenstände – K...Kapazität des Rucksacks
• Großes K: WS2007
45
Hamilton-Problem • Suche Weg in Graphen, sodass jeder Knoten genau einmal besucht wird. • 2 Varianten – Hamilton-Weg – Hamilton-Kreis: am Ende des Weges ist man wieder beim Anfangsknoten WS2007
46
Hamilton-Graph...
WS2007
47
Hamilton... • NP-vollständig • Reduktion von 3SAT auf HamiltonProblem
WS2007
48
Problem des Handlungsreisenden • Rundreise-Problem • TSP...Traveling Salesman Problem • Aufgabe – n Städte auf kürzestem Weg – jede Stadt nur einmal besuchen – Ende: Ausgangsort
WS2007
49
TSP... • Reduktion des Hamilton-Problems auf TSP möglich
WS2007
50
TSP... • kürzester Weg? – alle Permutationen der Entfernungen zwischen Städten ausprobieren
WS2007
51
TSP... • exponentielles Wachstum
WS2007
52
Lösungen? • optimale Lösung nicht in polynomialer Zeit • d.h. akzeptable Lösung gesucht – in polynomialer Zeit – aber eben nicht optimale Lösung
WS2007
53
Approximation zu TSP... • z.B. Routenplaner • optimale Lösung: – n! Permutationen – z.B. 250 Städte:
WS2007
54
Approximation... • wähle nächstgelegene, noch nicht besuchte Stadt • „greedy“ Strategie: lokal optimal • Klasse der Greedy-Algorithmen
WS2007
55
Zusammenfassung • Problemklassen • NP-vollständige Probleme • Approximationsalgorithmen
WS2007
56
Quellen • "Grundlagen der Informatik", Herold, Lurz, Wohlrab; Pearson Studium • Das Buch zu NP-vollständigen Problemen: – M. R. Garey, D. S. Johnson, Computers and Intractability: A Guide to the Theory of NPCompleteness. W. H. Freeman, 1979
• Wikipedia.... • u.a. http://www.grundstudium.info
WS2007
57