Algorithmen und Komplexität
description
Transcript of Algorithmen und Komplexität
Klaus Volbert 1
HEINZ NIXDORF INSTITUTUniversität Paderborn
Algorithmen und Komplexität
Algorithmen und Komplexität
Sommersemester 2004
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, …
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“)
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
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) !
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
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.
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
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}
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
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?
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
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).
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).
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
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