Grundlagen der Informatik Kapitel 20. Harald Krottmaier Sven Havemann

Grundlagen der Informatik Kapitel 20 Harald Krottmaier Sven Havemann Agenda • Klassen von Problemen • Einige Probleme... • Approximationsalgorithmen...
0 downloads 2 Views 577KB Size
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