Einf hrung in algorithmen und komplexit t l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 43

Einführung in Algorithmen und Komplexität PowerPoint PPT Presentation


  • 126 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Einführung in Algorithmen und Komplexität

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


Einf hrung in algorithmen und komplexit t l.jpg

Einführung in Algorithmen und Komplexität

SS2004


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.


Nichtdeterministische turingmaschinen l.jpg

Nichtdeterministische Turingmaschinen


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


Laufzeit von ntms l.jpg

Laufzeit von NTMs


Nichtdeterministische komplexit tsklassen l.jpg

Nichtdeterministische Komplexitätsklassen


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.


  • Login