Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Algorithmen und Komplexität

Ähnliche Präsentationen


Präsentation zum Thema: "Algorithmen und Komplexität"—  Präsentation transkript:

1 Algorithmen und Komplexität
Sommersemester 2004

2 NP-vollständige Probleme
SAT und 3-SAT (Masterreduktionen) CLIQUE KNOTENÜBERDECKUNG SUBSETSUM RUCKSACK (einfach: rationaler Rucksack!) HAMILTONKREIS TSP Übungen: PARTITION, BIN PROGRAMMING, COLOR, INDEPENDENT SET, 1in3SAT, …

3 NP-vollständig – Was nun?
Spezialfälle Ist wirklich die Lösung des allgemeinen Problems verlangt? Heuristiken Im worst-case: exponentielle Laufzeit Für „manche“ Eingaben: polynomielle Laufzeit Approximationsalgorithmen Ziel: für jede Eingabe polynomielle Laufzeit Lösung ist nicht optimal, aber wir können etwas über die Qualität sagen (z.B. „Wert der Ausgabe ist höchstens doppelt so schlecht wie der Wert einer opt. Lösung“)

4 Weiteres Beispiel: 2SAT liegt in P
Spezialfälle Ist wirklich die Lösung des allgemeinen Problems verlangt oder liegt ein (einfacher) Spezialfall vor? Beispiele auf Bäumen: CLIQUE HAMILTONKREIS HAMILTONPFAD UNABHÄNGIGE MENGE Weiteres Beispiel: 2SAT liegt in P

5 Unabhängige Menge auf Bäumen
Eingabe: G=(V,E),r (Baum mit Wurzel r) Ausgabe: Max. unabhängige Menge I  V, so dass keine zwei Knoten in I verbunden sind Dynamische Programmierung: Laufzeit: O(n) !

6 Weiteres Beispiel: 2SAT liegt in P
Spezialfälle Ist wirklich die Lösung des allgemeinen Problems verlangt oder liegt ein (einfacher) Spezialfall vor? Beispiele auf Bäumen: CLIQUE HAMILTONKREIS HAMILTONPFAD UNABHÄNGIGE MENGE Weiteres Beispiel: 2SAT liegt in P

7 Das Erfüllbarkeitsproblem (Satisfiability, 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.

8 Das Erfüllbarkeitsproblem (Satisfiability, SAT)
SAT = { <> |  ist erfüllbare Boole‘sche Formel} SAT ist NP-vollständig

9 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 genau k Literalen besteht. k-SAT= { <> |  ist erfüllbare Boole‘sche k- SAT Formel}

10 2-SAT= { <> |  ist erfüllbare Boole‘sche 2-SAT Formel}
2-SAT liegt in P 2-SAT= { <> |  ist erfüllbare Boole‘sche 2-SAT Formel} = K1 Æ … Æ Kl , Ki: Disjunktion zweier Literale Menge der Variablen: x1,…,xn B sei Belegung der Variablen: B(xi)=1 falls B die Variable xi auf wahr setzt B(xi)=0 sonst B()=1 | 0 allgemein für ein Literal Da 2-SAT: Ki = i  i Beobachtung: B(i)=0, dann muss B(i)=1

11 Gerichteter Graph G=(V,E):
2-SAT liegt in P Gerichteter Graph G=(V,E): V := {x1,:x1,…,xn,:xn} E := { (,) |  enthält :   oder   : } := { (:, ),(:,) |  enthält    } denn:     (:  )  (:  ) Beispiel:  := (:x1  x2)  (:x2  x3)  (x1  :x3)  (x3  x2) Woran ist zu erkennen, ob  erfüllbar ist?

12 2KNF Formel  ist unerfüllbar   Variable xi:
2-SAT liegt in P Satz: 2KNF Formel  ist unerfüllbar   Variable xi: 1. es existiert in G ein Weg von xi nach :xi 2. es existiert in G ein Weg von :xi nach xi Beweis: „“ Führe Belegung für xi zum Widerspruch. „“ Ann. es ex. keine solche Variable, dann konstruieren wir eine erfüllende Belegung

13 „“ Ann. es ex. keine solche Variable, dann
2-SAT liegt in P „“ Ann. es ex. keine solche Variable, dann konstruieren wir eine erfüllende Belegung: Solange noch nicht alle Variablen belegt sind: Wähle bel. Variable xi, die noch nicht belegt ist Falls Pfad von xi nach :xi existiert, setze a=0 sonst a=1 Setze alle von xi aus erreichbaren Literale auf a Setze die entsprechenden Negationen auf :a Beobachtung: Falls der Graph einen Weg von  nach  enthält, so enthält er auch einen von : nach : (Definition).

14 Satz: 2SAT liegt in P Algorithmus für 2SAT: Laufzeit: poly(n).
Nach Satz 2.2.2: Path={ <G,s,t> | G=(V,E) ist ein gerichteter Graph mit s, t  V und einem gerichteten Weg von s nach t}  P Algorithmus für 2SAT: Konstruiere G Prüfe für jede Variable xi, ob es einen Pfad von xi nach :xi gibt und umgekehrt Verwerfe, falls Variable xi gefunden wurde, für die beide Pfade in G existieren. Ansonsten akzeptiere. Laufzeit: poly(n).

15 Max2SAT ist NP-vollständig
Max2SAT= { <,k> |  ist Boole‘sche 2-SAT Formel, für die es eine Belegung gibt, die mindestens k Klauseln erfüllt} Bemerkung: Max2SAT ist NP-vollständig! Beweisidee: 1) Max2SAT liegt in NP 2) 3SAT p Max2SAT

16 Approximationsalgorithmen
Vorschau Heuristiken Backtracking Branch-and-Bound Lokale Verbesserung Approximationsalgorithmen Max-Cut Problem Problem des Handlungsreisenden Rucksackproblem


Herunterladen ppt "Algorithmen und Komplexität"

Ähnliche Präsentationen


Google-Anzeigen