Einf hrung in algorithmen und komplexit t
Download
1 / 43

Einf hrung in Algorithmen und Komplexit t - PowerPoint PPT Presentation


  • 169 Views
  • Uploaded on

Einführung in Algorithmen und Komplexität. SS2004. Was haben wir bisher gemacht?. Rechenmodell: Turingmaschine Entscheidbare, rekursiv aufzählbare Sprachen, berechenbare Funktionen Nicht entscheidbare, nicht rekursiv aufzählbare Sprachen Grammatiken

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Einf hrung in Algorithmen und Komplexit t' - maeve


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Was haben wir bisher gemacht l.jpg
Was haben wir bisher gemacht?

  • Rechenmodell: Turingmaschine

  • Entscheidbare, rekursiv aufzählbare Sprachen, berechenbare Funktionen

  • Nicht entscheidbare, nicht rekursiv aufzählbare Sprachen

  • Grammatiken

  • Reguläre Grammatiken und endliche Automaten

  • Kontextfrei Grammatiken und Kellerautomaten


Ziele der vorlesung l.jpg
Ziele der Vorlesung

  • - Vorstellungeines der wichtigsten Konzepte der

  • Komplexitätstheorie: NP-Vollständigkeit.

  • - Wir werden sehen:

  • - NP-vollständige Probleme haben sehr große

  • worst-case Laufzeit (falls )

  • - viele wichtigen (Optimierungs-) Probleme sind

  • NP-vollständig

  • - Aber: NP-vollständige Probleme „sind überall“:

  • Wie gehen wir mit ihnen um?

  • - Heuristiken

  • - Approximationsalgorithmen


Komplexit tsma e l.jpg
Komplexitätsmaße

  • TM(x) = Anzahl Schritte, die Turingmaschine M gestartet mit Eingabe x ausführt

  • SM(x) = Anzahl Speicherzellen, die M bei Rechnung gestartet mit x besucht

  • TM(n) = max{TM(x), |x|· n} (worst case Laufzeit)

  • M hat Laufzeit O(t(n)) (M ist O(t(n) zeitbeschränkt), falls TM(n) = O(t(n)) gilt.


Komplexit tsklassen l.jpg
Komplexitätsklassen

  • t : N !N sei monoton wachsend.

  • DTIME(t(n)) = { L | L kann von einer TM in Zeit

  • O(t(n)) entschieden werden}

  • P = k ¸ 0 DTIME(nk)

  • P ist die Klasse der Spachen , die von einer deterministischen TM in polynomieller Zeit entschieden werden können.

  • P ist robust : z. B ergibt sich die gleiche Klasse, wenn wir TMs durch Registermachinen oder Java-Programme ersetzen.


Ber die klasse p l.jpg
Über die Klasse P

  • Jede Mehrband-TM mit Laufzeit t(n) kann durch 1-Band-TM mit Laufzeit

  • O(t(n)²) simuliert werden.

  • Jede RAM mit Laufzeit t(n) kann durch 1-Band-TM mit Laufzeit O(t(n)3)

  • simuliert werden.

  • Jede 1-Band-TM mit Laufzeit t(n) kann durch RAM mit Laufzeit

  • O(t(n)) simuliert werden.

  • P ist robust!


Sprachen in p l.jpg
Sprachen in P

  • MST: Eingabe: (G, c, k); entscheide, ob der gewichtete

  • Graph (G,c) einen Spannbaum mit Gewicht · k enthält.

  • Path: Eingabe: (G, s, t); entscheide, ob im gerichteten

  • Graphen G ein gerichteter Weg von s nach t existiert.

  • Rel_Prim: Eingabe: (x, y) 2 ; entscheide ob x and y

  • relativ prim sind.

  • Matching: Eingabe (G, c, k); entscheide, ob der gewichtete

  • Graph (G, c) ein Matching mit Gewicht ¸ k enthält.


Die klasse np l.jpg
Die Klasse NP

  • Verifizieren versus Berechnen

  • TSP: Eingabe (G, c, k); entscheide, ob es im

  • gewichteten Graphen (G, c) eine Rundreise der

  • Länge · k gibt.

  • Berechnen (Finden) einer solchen Rundreise scheint

  • sehr schwierig zu sein.

  • Aber: Für eine gegebene Rundreise verifizieren, ob ihr

  • Gewicht · k ist, ist einfach!


Die klasse np9 l.jpg
Die Klasse NP

  • Rucksackproblem: (RS)

  • Gegeben sind n Objekte 1, …, n. Objekt i hat Gewicht gi und

  • Wert wi, G={g1, … , gn}, W={w1,…,wn} ,

  • Gewichtsschranke (Rucksackgröße) g

  • Optimierungsproblem:

  • Suche S µ {1,…,n} so, dass i 2 S gi· g gilt und i 2 S wi maximal wird.

  • Entscheidungsproblem:

  • RSent = {<G,W,g,w> | Es gibt S µ {1,…,n} mit i 2 S gi· g und i 2 S wi¸ w}

  • scheint schwierig zu entscheiden zu sein.

  • Aber: Für gegebenes S µ {1,…,n} zu verifizieren, dass

  • S eine Lösung liefert, ist sehr einfach.



Ntm s l.jpg
NTM‘s

  • Rechnung einer NTM………

  • Beobachtung: NTM kann bei fester Eingabe w 2*

  • viele verschiedene Rechnungen durchführen.

  • Wann akzeptiert sie w??

  • Falls 99 % der Rechnungen akzeptiert sind

  • randomisierte (probabilistische) Algorithmen

  • Falls mindestens eine Rechnung akzeptiert

  • Nichtdeterminismus.


Rechnungen einer ntm l.jpg
Rechnungen einer NTM

Berechnungsbaum einer NTM bei Eingabe w




Np und nichtdeterministische tms l.jpg
NP und nichtdeterministische TMs

  • Satz: Es gibt polynomiellen Verifizierer für L genau dann, wenn es eine polynomiell zeitbeschränkte NTM für L gibt.

  • Satz: NP = [k ¸ 0 NTIME (nk)

  • „NP ist die Klasse aller Sprachen, die von NTMs in

  • polynomieller Zeit akzeptiert werden können.“


Ber np l.jpg
Über NP

  • P µ NP

  • - Offenes Problem: P NP?


Das erf llbarkeitsproblem satifiability sat l.jpg
Das Erfüllbarkeitsproblem (Satifiability, SAT)

  • Eine Boole’sche Variable x kann Werte 0 und 1 (falsch und wahr) annehmen.

  • Eine Boole’sche Formel  ist eine Verknüpfung von Boole’schen Variablen durch Boole’sche Operatoren, z.B. AND ( Æ ) , OR ( Ç ), NOT ( : ).

  • Beispiel: = (:x Ç y) Æ (x Ç :z ) ist eine

  • Boole’sche Formel mit Variablen x, y, z.

  •  ist erfüllbar, falls es eine Belegung der Variablen mit Werten 0, 1 gibt, die  wahr macht.

  • Beispiel:  ist erfüllbar, z. b. durch x=1, y=1, z=0.


Das erf llbarkeitsproblem satifiability sat18 l.jpg
Das Erfüllbarkeitsproblem (Satifiability, SAT)

  • SAT = { <> |  ist erfüllbare Boole‘sche Formel}

  • Bem: SAT 2 NP


Konjunktive normalform knf l.jpg
Konjunktive Normalform (KNF)

  • Literal: Variable oder negierte Variable

  • Klausel: Disjunktion K von Literalen,

  • K= y1Ç … Ç ym, yi Literale

  • Formel  in Konjunktiver Normalform (KNF): Konjunktion von Klauseln,

  •  = K1Æ … Æ Kl , Ki Klauseln

  • k-SAT Formel: Formel in KNF, in der jede Klausel aus k Literalen besteht.

  • k-SAT= { <> |  ist erfüllbare Boole‘sche

  • k- SAT Formel}


K sat l.jpg
k-SAT

  • k-SAT= { <> |  ist erfüllbare Boole‘sche k-SAT

  • Formel}

  • Bem: k-SAT 2 NP für jedes k.

  • Satz : 2-SAT 2 P


Clique l.jpg
CLIQUE

  • Eine k-Clique in einem Graphen G ist ein

  • vollständiger Teilgraph von G mit k Knoten.

  • CLIQUE = { <G,k> | G ist ein Graph der eine

  • k-Clique enthält}

  • Bem: CLIQUE 2 NP.


Polynomielle reduktion l.jpg
Polynomielle Reduktion

  • Sei A µ1*, B µ2*.

  • A heißt polynomiell reduzierbar auf B,

  • falls es eine in polynomieller Zeit berechenbare

  • Funktion f: 1* ! 2* gibt, so dass für alle x 2 1* gilt:

  • x 2 A , f(x) 2 B .

  • Wir schreiben: A ·p B

  • Lemma:

  • A ·p B und B 2 P ) A 2 P

  • A ·p B und B ·p C ) A ·p C (Transitivität)


Polynomielle reduktionen l.jpg
Polynomielle Reduktionen

  • Satz: 3-SAT ist polynomiell auf CLIQUE reduzierbar, d.h. 3-SAT ·p CLIQUE.

  • Was ist zu tun?

  • Beschreibe eine in polynomieller Zeit berechenbare

  • Funktion f, die zu einer 3-SAT Formel  einen

  • Graphen G und eine Zahl k berechnet, so dass gilt:

  •  Ist genau dann erfüllbar, wenn G eine k-Clique enthält.


Np vollst ndigkeit l.jpg
NP-Vollständigkeit

  • Def. : L heißt NP-vollständig, falls gilt:

  • L 2 NP

  • Für jedes A 2 NP gilt A ·p L

  • Satz: Ist L NP-vollständig und L 2 P, so ist P = NP.

  • Korollar: Falls NP P gilt, dann sind alle NP-vollständigen Sprachen in NP \ P, also insbesondere nicht in P.


Np vollst ndige probleme l.jpg
NP-vollständige Probleme

  • Wir werden durch Masterreduktionen zeigen:

  • SAT und 3-SAT sind NP-vollständig.

  • Da wir schon gezeigt haben:

  • CLIQUE 2 NP und

  • 3-SAT ·p CLIQUE,

  • folgt :

  • CLIQUE ist NP-vollständig.


Die np vollst ndigkeit des erf llbarkeitsproblems l.jpg
Die NP-Vollständigkeit des Erfüllbarkeitsproblems

  • Satz von Cook/Levin:

  • SAT ist NP-vollständig.

  • Zu zeigen:

  • SAT 2 NP (haben wir schon gezeigt)

  • Für jedes L 2 NP gilt: L ·p SAT


Die reduktion l.jpg
Die Reduktion

  • Sei L 2 NP, M=(Q, , , ) eine NTM, die L in Zeit

  • t(n) entscheidet, für ein Polynom t.

  • Aufgabe: Beschreibe eine in polynomieller Zeit berechenbare Funktion f,

  • die bei Eingabe w 2 * eine Boole‘sche Formel  berechnet, so, dass gilt:

  • M akzeptiert w ,  ist erfüllbar


Der beweis l.jpg
Der Beweis

  • Idee:

  • Berechne aus Eingabe w, |w|=n, eine Formel ,

  • so dass erfüllende Belegungen für  zu akzeptierenden Rechnungen von M gestartet mit w korrespondieren.


Weitere np vollst ndige probleme l.jpg
Weitere NP-vollständige Probleme

  • Eine Knotenüberdeckung in einem Graph G = (V,E) ist eine

  • Menge U µ V mit für alle e 2 E.

  • KNOTENÜBERDECKUNG

  • := {<G, K>, G enthält Knotenüberdeckung der Größe k}

  • KNOTENÜBERDECKUNG 2 NP

  • CLIQUE ·p KNOTENÜBERDECKUNG

  • Aufgabe: Gebe eine in polynomieller Zeit berechenbare

  • Funktion an, die zu jedem <G,k> ein (G‘, k‘)

  • berechnet, so dass gilt:

  • G‘ enthält Knotenüberdeckung

  • G enthält k-Clique der Größe k‘


Weitere np vollst ndige probleme30 l.jpg
Weitere NP-vollständige Probleme

  • SUBSETSUM

  • SUBSETSUM 2 NP

  • 3-SAT ·p SUBSETSUM

  • Aufgabe: Gebe einen in polynomieller Zeit berechenbare Funktion an,

  • die zu jeder 3-SAT Formel  eine Menge und

  • ein berechnet, so dass gilt:


Weitere np vollst ndige probleme31 l.jpg
Weitere NP-vollständige Probleme

  • RUCKSACK: {<G, W, g, w> | es existiert S µ {1, …, n}

  • mit i 2 S gi· g und i 2 S wi¸ w}

  • - RUCKSACK 2 NP

  • - SUBSETSUM ·p RUCKSACK


Weitere np vollst ndige probleme32 l.jpg
Weitere NP-vollständige Probleme

  • Ein Hamiltonkreis in einem Graphen S ist ein Kreis

  • in S, der jeden Knoten berührt.

  • HAMILTONKREIS := {<G>, G enthält Hamiltonkreis}

  • TSP:= {<G, k>, G ist vollständiger Graph mit

  • Kantengewichten so dass G

  • einen Hamiltonkreis mit Gesamtlänge ·k enthält}


Heuristiken l.jpg
Heuristiken

  • …. sind Algorithmen, die exakte Lösungen für

  • Probleme berechnen, „in der Praxis“ „häufig“ sehr

  • schnell sind, aber typischerweise sehr schlechte

  • worst case Laufzeit haben.

  • Beispiele:

  • Backtracking

  • Branch & Bound

  • - Lokale Verbesserung (Genetische Algorithmen, Simulated Annealing, …….)


Backtracking l.jpg
Backtracking

  • ….findet Anwendung bei Problemen, deren Lösungen

  • aus vielen Komponenten zusammengesetzt sind.

  • Bsp :3 SAT : Lösung: (a1, …, an) 2 {0,1}n

  • HC : Lösung: Knotenfolge (1, v2, …, vn)

  • Erste Idee: „erschöpfende Suche“ (exhaustive search)

  • Durchsuche systematisch alle Lösungen durch

  • Tiefen- oder Breitensuche im Suchbaum.

  • 3 SAT: Binärer Baum der Tiefe n ! 2n Blätter

  • HC : n-ärer Baum der Tiefe n ! nn Blätter

  • oder (etwas schlauer) Baum

  • mit Graden n-1, n-2, n-3, … ! (n-1)! Blätter.

  • Worst Case und Best Case: O(2n) bzw. O(nn) bzw. O (n!)


Idee des backtracking l.jpg
Idee des Backtracking

  • Führe Tiefensuche aus,

  • versuche frühzeitig an einem Knoten zu erkennen, ob unter ihm

  • noch eine zulässige Lösung liegt,

  • d.h.: ob die durch den Knoten beschriebene Teillösung zur Gesamtlösung

  • vervollständigt werden kann.

  • Falls nicht, gehe gar nicht erst in den Subbaum hinein, sondern gehe eine

  • Kante rückwärts im Baum (backtrack)).


Backtrack regeln f r 3 sat l.jpg
Backtrack-Regeln für 3-SAT

  • Frage: Wann ist Teillösung (a1, …, ai, x, x, …, x) für eine 3SAT-Formel 

  • garantiert nicht zur Gesamtlösung erweiterbar?

  • Antwort: Wenn die belegten Variablen bereits mindestens eine

  • Klausel falsch macht.

  • Bsp. : enthält Klausel (x1Ç:x2Ç x5) und Teillösung ist

  • (0,1,1,00, x x … x)

  • Frage: Wann ist Teillösung garantiert zur Gesamtlösung erweiterbar?

  • Antwort: Wenn die belegten Variablen bereits in jeder Klausel je

  • mindestens ein Literal wahr macht.

  • [Einfache Variante des Davis-Putnam Algorithmus]


Brand bound l.jpg
Brand & Bound

  • ….. ist „Backtracking für Optimierungsprobleme“.

  • BeispielTSP:

  • Gegeben: vollständiger Graph G mit Kantengewichten d(i,j)

  • Gesucht : Rundreise 1, v1 … vn-1 mit minimaler Länge.

  • Beobachtung:

  • Da G vollständig ist, ist jede der (n-1)! möglichen Rundreise zulässig.

  • Idee: Durchlaufe G wieder mit Tiefensuche, berechne an jeden Knoten untere Schranken LB für die Länge der kürzesten Rundreise, die mit dieser Teillösung T erreichbar ist.

  • d.h.: Berechne Zahl LB, so dass jede Rundreise, die Erweiterung von T ist, Länge mindestens LB hat.

  • Führe Backtrack durch, falls LB > beste bisher gefundene Lösung


Approximationsalgorithmen l.jpg
Approximationsalgorithmen

  • …liefern in polynomieller Zeit Lösungen für Optimierungsprobleme, die nur um einen festen Faktor

  • (die Güte des Appr. Algo) vom Optimum entfernt sind.

  • TSP: Falls in (G, w) die kürzeste Rundreise Länge k hat,

  • muss ein Appr. Alg. mit Güte c eine Rundreise

  • der Länge liefern.

  • [Minimierungsproblem, c > 1]

  • Rucksack: Falls G, g, W eine Lösung mit Gewicht k erlaubt,

  • muss ein Appr. Algo mit Güte c eine Lösung mit

  • Gewicht liefern.

  • [Maximierungsproblem, c < 1]


Bsp 1 max cut l.jpg
Bsp 1: Max-Cut

  • Ein Schnitt (Cut) eines Graphen G = (V, E)

  • ist definiert durch eine Menge

  • w(S):= # Kanten zwischen S und V-S in G.

  • Max Cut: Berechne zu Graph G einen Max-Cut, d.h.

  • Zugehöriges Entscheidungsproblem:

  • Eingabe: (G, k)

  • Frage : Ist Max-Cut

  • ist NP-vollständig.


Appox algo f r max cut l.jpg
Appox. Algo für Max-Cut

  • Eingabe: G = (V, E)

  • S :=

  • Solange v 2 V existiert, so dass w(S M {v}) > w(S) ist,

  • setze S := S M {v}

  • Ausgabe w(S), S

  • Laufzeit: O(E) pro Schleifendurchlauf, · E Schleifen-

  • durchläufe polynomielle Laufzeit

  • Appr. Güte: Algo liefert Lösung mit Güte ¸ ½

  • d.h. Für jeden Graphen G liefert er eine Lösung

  • w(S) ¸ ½ Optimum


Bsp 2 metrisches tsp mtsp l.jpg
Bsp. 2: Metrisches TSP (MTSP)

  • Eingabe: vollst. Graph G mit Kantengewichten

  • w(e) 2 , so dass die Dreiecksungleichung

  • gilt: w(a,c) · w(a, b) + w (b,c).

  • Ausgabe: minimale Rundreise (Permutation  )

  • Spezialfall: Euklidisches TSP:

  • V µ , w(a,b) = ||a-b||

  • Die Entscheidungsprobleme zum metrischen und zum

  • Euklidischen TSP sind NP-vollständig.

  • (ETSP ist Spezialfall von MTSP)


Appr algo f r mtsp l.jpg
Appr. Algo für MTSP

  • Eingabe: G = (V,E) vollständig, Kantengewichte

  • die die Dreiecksungleichung erfüllen.

  • Berechne Minimalen Spannbaum T in (G, w).

  • Durchlaufe T in Preorder (Start bei beliebigen Knoten),

  • gebe diese als Rundreise aus.

  • Laufzeit: polynomiell

  • Approximationsgüte: gefundene Rundreise ist höchstens um Faktor 2 länger als optimale Rundreise.


Grenzen der approximierbarkeit l.jpg
Grenzen der Approximierbarkeit

  • Satz: Falls NP P gilt, gibt es kein polynomiellen Appr. Algo

  • für TSP mit konstanter Güte c.


ad