Algorithmen und Komplexität

16
Klaus Volbert 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Algorithmen und Komplexität Sommersemester 2004

description

Algorithmen und Komplexität. Sommersemester 2004. 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, …. - PowerPoint PPT Presentation

Transcript of Algorithmen und Komplexität

Page 1: Algorithmen und Komplexität

Klaus Volbert 1

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Algorithmen und Komplexität

Sommersemester 2004

Page 2: Algorithmen und Komplexität

2

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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, …

Page 3: Algorithmen und Komplexität

3

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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“)

Page 4: Algorithmen und Komplexität

4

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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

Page 5: Algorithmen und Komplexität

5

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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) !

Page 6: Algorithmen und Komplexität

6

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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

Page 7: Algorithmen und Komplexität

7

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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.

Page 8: Algorithmen und Komplexität

8

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

Das Erfüllbarkeitsproblem (Satisfiability, SAT)

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

SAT ist NP-vollständig

Page 9: Algorithmen und Komplexität

9

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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}

Page 10: Algorithmen und Komplexität

10

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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

Page 11: Algorithmen und Komplexität

11

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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?

Page 12: Algorithmen und Komplexität

12

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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

Page 13: Algorithmen und Komplexität

13

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

2-SAT liegt in P

„“ Ann. es ex. keine solche Variable, dannkonstruieren 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, soenthält er auch einen von : nach : (Definition).

Page 14: Algorithmen und Komplexität

14

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

2-SAT liegt in P

Satz: 2SAT liegt in P

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).

Page 15: Algorithmen und Komplexität

15

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

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

Page 16: Algorithmen und Komplexität

16

HEINZ NIXDORF INSTITUTUniversität Paderborn

Algorithmen und Komplexität

Klaus Volbert

Vorschau

• Heuristiken– Backtracking– Branch-and-Bound– Lokale Verbesserung

• Approximationsalgorithmen– Max-Cut Problem– Problem des Handlungsreisenden– Rucksackproblem