Vier Folien auf einer Seite - am Institut für Theoretische Informatik

Werbung
Sanders: Informatik III February 6, 2007
1
Sanders: Informatik III February 6, 2007
2
Terminologie und Konventionen
2 Komplexitätstheorie
n: bezeichnet die „Eingabegröße“
Wie schwierig ist es bestimmte Probleme zu lösen?
Einheit ist noch festzulegen. Bits, Bandsymbole,
Erlaubt ein Maschinenmodelle schnellere Lösungen als ein anderes?
RAM-Maschinenworte.
Beispiel: Geg. NEA A. Ist L(A) = Σ∗ ?
(Entscheidungs)„Problem“: Eine zu erkennende Sprache.
Wir reden hier nur von entscheidbaren Problemen
Sanders: Informatik III February 6, 2007
Komplexitätsmaße
Zeit. Hier die Hauptsache
Platz
Energieverbrauch
Kommunikationsvolumen
Plattenzugriffe
Chipfläche für Hardwareimplementierung
...
auch ziemlich abstrakte Sachen:
Zufallsbits, Richtungsänderungen einer TM, . . .
3
Sanders: Informatik III February 6, 2007
4
Beispiel Rucksackproblem
20
10
15
W
20
n Gegenstände mit Gewicht wi ∈ N und profit pi
Wähle eine Teilmenge x von Gegenständen
so dass ∑i∈x wi ≤ W und
maximiere den Profit ∑i∈x pi
Sanders: Informatik III February 6, 2007
5
Beispiel: Handlungsreisendenproblem
Sanders: Informatik III February 6, 2007
6
Hamiltonkreisproblem
[Der Handlungsreisende - wie er sein soll und was er zu thun hat, um
[Hamilton, William Rowan, Memorandum respecting a new system of
Auftraege zu erhalten und eines gluecklichen Erfolgs in seinen
roots of unity. Philosophical Magazine, 12 1856]
Geschaeften gewiss zu sein - Von einem alten Commis-Voyageur,
M := {G = (V, E) : ∃C ⊆ E : |C| = |V |,C ist einfacher Kreis}
1832].
∗
Codierung eines Graphen G = (V, E) als Wort aus {0, 1, #} :
⊆ {0, 1}⌈log |V |⌉
Codierung wG := ∏ u#v#
OBdA, V
(u,v)∈E
Gegeben ein Graph G = (V,V
×V ), finde einen einfachen Kreis
C = (v1 , v2 , . . . , vn , v1 ) so dass n = |V | und ∑(u,v)∈C d(u, v)
minimiert wird.
Formulierung als Entscheidungsproblem: wie gehabt
Sanders: Informatik III February 6, 2007
7
Steinerbäume
Sanders: Informatik III February 6, 2007
Obere Schranken
[C. F. Gauss 18??]
Gegeben graph G = (V, E), mit positiven Kantengewichten
c : E → R+
V = R ∪ F , i.e., Pflichtknoten and Steinerknoten
Algorithmus angeben und analysieren.
Probleme:
Ist die Analyse genau genug?
Gibt es bessere Algorithmen?
finde einen Baum T
⊆ E der mit minimalen Kosten alle Pflichtknoten
verbindet.
weight: 1 2
∀u, v ∈ R : T enthält u-v Pfad
DAS Netzwerkentwurfsproblem
8
Sanders: Informatik III February 6, 2007
9
Untere Schranken
Sanders: Informatik III February 6, 2007
10
Untere Schranken: Lösungsansätze
kein Algorithmus kann eine bessere Lösung erreichen.
Vergröberung: ignoriere kleinere Unterschiede
Triviale untere Schranke:
Klassifiziere: Eine Menge von Problemen ist
T = O(inputSize + outputSize)
„ungefähr gleich schwierig“.
Problem: Kaum bessere Schranken bekannt!
Wenn man für keins eine schnelle Lösung kennt, sind sie
Wir müssen Aussagen über alle Algorithmen machen!
wahrscheinlich alle schwierig.
Ausnahmen:
zusätzliche Annahmen: z.B. Ω (n log n) für vergleichsbasiertes
Sortieren von n Elementen
sehr eingeschränkte Modelle: z.B. Ω
n2 für EinbandTM-Akzeptor von
LP := w : w = wR . Kommunikationskomplexitätsargument
kollabiert bereits bei 2 Bändern
Sanders: Informatik III February 6, 2007
11
Sanders: Informatik III February 6, 2007
Eine Komplexitätsklasse
Polynom
timeM (w) = Anzahl der Rechenschritte einer TM M bei Eingabe von
Eine Funktion
w
TIME( f (n)) =
{L : ∃T M M : L(M) = L ∧ ∀w ∈ Σ∗M : timeM (w) ≤ f (|w|)}.
Hier i.allg. Mehrbandturingmaschinen.
p : N → N der Form
= ak nk + ak−1 nk−1 + · · · + a1 n + a0
p(n)
mit ai , k ∈ N
12
Sanders: Informatik III February 6, 2007
13
Komplexitätsklasse P
P:=
[
Sanders: Informatik III February 6, 2007
Komplexitätsklasse P
TIME(p(n))
P:=
Polynom p
[
TIME(p(n))
Polynom p
Analog definieren wir in polynomialer Zeit berechenbare Funktionen.
Sanders: Informatik III February 6, 2007
Interpretation/Vereinbarung: Probleme in P sind effizient lösbar
15
Register−M. unit cost
P für
verschiedene
Maschinenmodelle
14
NTM
m.
o
aut
r
a
l
g.
llu
Al
Ze
−
v
dim arko
−
k
M
Quantencomputer
DTM
Sanders: Informatik III February 6, 2007
16
Transformation
Optimierungsproblem→Entscheidungsproblem
Annahme: Zielfunktionswert ∈ 1..C , ganzzahlig.
Binäre Suche: ⌈logC⌉ Entscheidungsprobleme lösen.
Polynomiell in n, wenn logC polynomiell in n.
Also wenn C polynomiell viele Bits hat.
Das ist aber bereits die Ausgabekomplexität!
C++
RAM
kTape−TM
polynomiale
Emulation
1
Register−M. log cost
While
2. 4. 3.
Register−M. ++/−−
opt
1.
C
Sanders: Informatik III February 6, 2007
17
Noch eine Komplexitätsklasse
Sanders: Informatik III February 6, 2007
Komplexitätsklasse NP
Sei M eine nichtdeterministische Turingmaschine

min {|P| : P = (s)w ⊢ ∗ u( f )v, f ∈ F}
ntimeM (w):=
0
NTIME( f (n)):=
NP:=
sonst
{L : ∃NT M M : L(M) = L ∧ ∀w ∈ Σ∗M : ntimeM (w) ≤ f (|w|)}.
19
i
i
Procedure knapsack(hw1 , . . . , wn i, hp1 , . . . , pn i,W, P)
for i := 1 to n do nondeterministically guess xi ∈ {0, 1}
if ∑ xi wi > W then reject
if ∑ xi pi < P then reject
Knapsack∈ NP
Sanders: Informatik III February 6, 2007
20
Alternative Definition von NTIME: Orakel
// Is there x1 · · · xn ∈ {0, 1}n : ∑ xi wi ≤ W ∧ ∑ xi pi ≥ P?
accept
NTIME(p(n))
falls w ∈ L(M)
Beispiel: Rucksackproblem
i
[
Polynom p
Sanders: Informatik III February 6, 2007
i
18
Eine DTM M Orakel-akzeptiert w ∈ Σ∗ in Zeit t
= otimeM (w) gdw
∃o ∈ Γ∗
: M angesetzt auf o(s)w
hält nach t Zustandsübergängen
in einer Konfiguration x( f )y mit f ∈ F .
Falls w ∈ Σ∗ von M nicht Orakel-akzeptiert wird, gilt otimeM (w):= 0.
OTIME( f (n)):=
{L : ∃DT M M : L(M) = L ∧ ∀w ∈ Σ∗M : otimeM (w) ≤ f (|w|)}.
Sanders: Informatik III February 6, 2007
21
Sanders: Informatik III February 6, 2007
22
Die 1 000 000 $ Frage
Äquivalenz von NTIME und OTIME
P = NP?
NTM emuliert DTM mit Orakel:
Nichtdet. Vorberechnung „rät“ Orakel o
Eines von 7 mathematischen Problemen für die das
Orakel-TM emuliert NTM:
Clay Mathematics Institute
Orakel gibt die nichtdet. Entscheidungen vor.
einen Preis von
1 000 000 US$
ausgelobt hat.
Beobachtung: P ⊆ NP
Fragen wir das Publikum
100 Forscher wurden nach P = NP gefragt
61: Nein
09: Ja
22: weiss nicht
08: nicht beantwortbar
(unabhängig von gegenwärtig akzeptierten Axiomen.)
Warum ist diese Frage so wichtig?
23
Sanders: Informatik III February 6, 2007
24
Eine Komplexitätshierarchie
semientscheidbar H
entscheidbar
??? NP
primality
P
w=wR
linear
Presburger
Arithmetik
Sanders: Informatik III February 6, 2007
Sanders: Informatik III February 6, 2007
25
Sanders: Informatik III February 6, 2007
Presburger Arithmetik
Polynomiale Reduzierbarkeit
Entscheidbarkeit von prädikatenlogischen Formeln erster Stufe mit
Seien A ⊆ Σ∗ und B ⊆ Γ∗ Sprachen.
26
A≤ p B (A ist auf B polynomial reduzierbar)
⇔
∃ f : Σ∗ → Γ∗ : ∀w ∈ Σ∗ : w ∈ A ⇔ f (w) ∈ B
wobei f in polynomialer Zeit berechenbar ist.
folgenden Einschränkungen:
Konstanten 0, 1
Variablen xi ∈ Z
Funktionen +, −
Relationen <, =
logische Verknüpfungen ∧, ∨, ¬
Quantoren ∃, ∀
Sanders: Informatik III February 6, 2007
Beispiel
Satz: HamiltonCycle≤ p TSP
Beweis:
Sei G = (V, E) beliebiger ungerichteter Graph.

1
if (u, v) ∈ E
Definiere d(u, v) =
1 + α else
Dann und nur dann, wenn G einen Hamiltonkreis hat gilt
∃ TSP Tour mit Kosten n
(sonst optimale Kosten ≥ n + α )
27
Sanders: Informatik III February 6, 2007
Sei G = (V, E) beliebiger ungerichteter Graph.

1
if (u, v) ∈ E
d(u, v) =
1 + α else
∃ Rundtour C mit Gewicht n
−→ Keine Kante in C hat Gewicht > 1
−→ alle Kanten in C haben Gewicht 1
−→ alle Kanten in C sind Kanten in G
−→ C bildet Hamiltonkreis in G
28
Sanders: Informatik III February 6, 2007
29

1
if (u, v) ∈ E
d(u, v) =
1 + α else
G hat Hamiltonkreis C
−→ C ist Rundtour mit Gewicht n.
Lemma: A ≤ p B, B ∈ NP → A ∈ NP
Beweis: analog
30
Lemma: A ≤ p B, B ∈ P → A ∈ P
Beweis:
Es gelte A ≤ p B mittels Funktion f .
Sei M f eine TM, die f berechnet mit polynomialer Zeitschranke p.
Ferner sei B ∈ P mit polynomialer Zeitschranke q mittels TM MB .
Betrachte HintereinanderausführungsTM MA := (M f ; MB ).
MA entscheidet A.
Rechenzeit bei Eingabe von w:
p(|w|) + q(| f (w)|) ≤ p(|w|) + q(|w| + p(|w|))
Das ist polynomial in |w| = n
Sei G = (V, E) beliebiger ungerichteter Graph.
Sanders: Informatik III February 6, 2007
Sanders: Informatik III February 6, 2007
31
Sanders: Informatik III February 6, 2007
NP-harte und NP-vollständige Probleme
A ist NP-hart:⇔ ∀L ∈ NP : L ≤ p A
A ist NP-vollständig:⇔ A ist NP-hart und A ∈ NP.
NP−hart
NP−vollständig
NP
P
32
Sanders: Informatik III February 6, 2007
33
Ein einfacher Weg zu
gegeben: Formel F der Aussagenlogik
(∧ ∨ ¬ → (), Variablen)
Satz: Sei A NP-vollständig. Dann gilt: A ∈ P ⇔ P = NP
gefragt: ist F erfüllbar?, d.h.
Beweis:
Fall P = NP :
A ∈ NP = P also insbesondere A ∈ P
∃ Belegung der Var. mit {0, 1} so dass Wahrheitswert(F) = 1?
Formaler:
SAT :=
Fall A ∈ P :
Sei L ∈ NP beliebig.
Da A NP-hart ist gilt L ≤ p A
und wegen A ∈ P folgt L ∈ P
Also P = NP
Satz: [Cook 1971] und [Levin 1971] SAT ist NP-vollständig.
34
SAT: Das Erfüllbarkeitsproblem
Ruhm und Reichtum?
Sanders: Informatik III February 6, 2007
Sanders: Informatik III February 6, 2007
{code(F) ∈ Σ∗ : F ist erfüllbare Formel der Aussagenlogik},
code ist eine geeignete Codierung von Formeln als Zeichenkette.
35
Sanders: Informatik III February 6, 2007
Beweis von SAT∈ NP
Procedure satisfiable(F)
guess values ∈ {0, 1} for all variables in F
substitute variables by their values
evaluate the resulting truth value v of F
if v = 1 then accept
36
Sanders: Informatik III February 6, 2007
37
Beweis dass SAT NP-hart ist.
Sanders: Informatik III February 6, 2007
Variablen für F
Sei
zusttz = 1 ⇔ nach t Schritten ist M in Zustand z
L ∈ NP beliebig,
M = ({1, . . . , k} , Σ, {1, . . . , ℓ} , δ , 1, H) NTM mit L(M) = L,
(⊔ = ℓ)
p(n) poly. Zeitschranke für Akzeption von L durch M ,
w = w1 w2 · · · wn ∈ Σ∗ beliebige Eingabe.
posti = 1 ⇔ nach t Schritten ist M an Bandposition i
bandtia = 1 ⇔ nach t Schritten ist Bandposition i mit a beschriftet
Man beachte, dass
0 ≤ t ≤ p(n) sowie
Ansatz: Wir zeigen L ≤ p SAT,
indem wir eine Formel F polynomieller Größe angeben, so dass
−p(n) ≤ i ≤ p(n) + 1
Es gibt also nur O p(n)2 Variablen
w ∈ L ⇔ F ist erfüllbar
Sanders: Informatik III February 6, 2007
Die Architektur von F =
R∧ „Die Var. beschreiben stets eine Konfiguration“
A∧ „Die Var. beschreiben anfangs die Konfiguration (1)w“
Ü1 ∧ „An der Kopfposition entsprechen Änderungen δ “
Ü2 ∧ „An Nichtkopfpositionen ändert sich nie etwas“
E „M akzeptiert w nach ≤ p(n) Schritten“
38
39
Sanders: Informatik III February 6, 2007
Beweis w ∈ L → F ist erfüllbar
w∈L
→ ∃ Konfigurationsfolge P = (1)w ⊢ ∗ u(h)v mit h ∈ H von M ,
|P| = p(n)
P definiert Variablenbelegungen für die F den Wahrheitswert 1 erhält.
→ F ist erfüllbar.
40
Sanders: Informatik III February 6, 2007
41
Sanders: Informatik III February 6, 2007
42
Beweis F erfüllbar → w ∈ L
Es kann nur einen geben
F erfüllbar durch bestimmte Belegung der Variablen →
G(v1 , . . . , vm ) = 1 ⇔ Genau ein vi = 1.
Implementierung:
R wird erfüllt →
G(v1 , . . . , vm ) =
v1 ∧ ¬v2 ∧ ¬v3 ∧ · · · ∧ ¬vm ∨
¬v1 ∧ v2 ∧ ¬v3 ∧ · · · ∧ ¬vm ∨
¬v1 ∧ ¬v2 ∧ v3 ∧ · · · ∧ ¬vm ∨
···
¬v1 ∧ ¬v2 ∧ ¬v3 ∧ · · · ∧ vm
Größe: O m2
Die Var. beschreiben zu jedem Zeitpunkt eine Konfiguration
A wird erfüllt →
Die Var. beschreiben anfangs die Konfiguration (1)w
Ü1 , Ü2 erfüllt →
von t nach t + 1 geschieht jeweils ein von δ erlaubter
Konfigurationsübergang
E wird erfüllt →
die Rechnung endet in einem akzeptierenden Zustand.
→w∈L
Sanders: Informatik III February 6, 2007
43
Sanders: Informatik III February 6, 2007
44
Randbedingung
Anfangsbedingung
„Die Variablen beschreiben stets eine Konfiguration“
„Die Var. beschreiben anfangs die Konfiguration (1)w“
R=
^
A = zust01 ∧pos01 ∧
G(zustt1 , . . . , zusttk )∧
t
G(post,−p(n) , . . . , post p(n) )∧
^
G(bandti1 , . . . , bandtiℓ )
Größe O
=O
p(n)3
band0 jw j ∧
j=1
i
p(n)(k2 + p(n)2 + p(n)ℓ2 )
n
^
0
^
band0 j⊔ ∧
j=−p(n)
p(n)
^
band0 j⊔
j=n+1
Gesamt O(1 + 1 + n + p(n) + p(n) − n) = O(p(n))
Sanders: Informatik III February 6, 2007
45
Sanders: Informatik III February 6, 2007
46
Übergangsbedingung Ü1, t → t + 1
Übergangsbedingung Ü2, t → t + 1
„An der Kopfposition entsprechen Änderungen δ “
„An Nichtkopfpositionen ändert sich nie etwas“
^ Ü1 =
(zusttz ∧ posti ∧ bandtia )
Ü2
→
{(z′ ,a′ ,y)∈δ (z,a)}
^
((¬posti ∧ bandtia ) → (bandt+1,i,a ))
t,i,a
t,z,i,a
_
=
(zustt+1,z′ ∧ post+1,i+y ∧ bandt+1,ia′ )
Größe O((p(n) · p(n) · ℓ)) = O
p(n)2 = O p(n)2
wobei Kopfbeweungen als Zahlen interpretiert werden,
L = −1, N = 0, R = +1.
Größe O((p(n) · k · p(n) · ℓ) · (k · ℓ · 3)) = O
Sanders: Informatik III February 6, 2007
_
_
t≤p(n) z∈H
Gesamtgröße O(p(n))
Sanders: Informatik III February 6, 2007
48
Gesamtgröße von F
p(n) Schritten“
E=
47
Endebedingung E
„M akzeptiert w nach ≤
p(n)2
zustt,z
R Randbedingung
O p(n)3
A Anfangsbedingung
O(p(n))
O p(n)2
O p(n)2
Ü1 Übergangsbedingung 1
Ü2 Übergangsbedingung 2
E Endebedingung „M akzeptiert w nach ≤ p(n) Schritten“ O(p(n))
Insgesamt O p(n)3 .
Das ist wieder polynomiell
und kann in dieser Zeit automatisch „hingeschrieben“ werden.
Sanders: Informatik III February 6, 2007
Satz: NP ⊆
[
O(p(n))
TIME(2
49
Sanders: Informatik III February 6, 2007
50
Weitere NP-vollständige Probleme
)
p Polynom
Beweis:
Sei T = (Q, Σ, Γ, δ , s, F) NTM, die L mit Zeitschranke p(n) erkennt.
Beobachtung: ≤ p ist transitiv, d.h.,
∀L, L′ , L′′ : L ≤ p L′ ∧ L′ ≤ p L′′ −→ L ≤ p L′′ .
Man nehme einen deterministischen Algorithmus, der alle
Kombinationen der ≤
≤ p L −→ L is NP-vollständig.
Beweis:
∈ NP : L′ ≤ p L.
SAT ist NP-vollständig also L′ ≤ p SAT.
Also folgt wegen der Assoziativität von ≤ p ,
L′ ≤ p SAT ≤ p L.
Lemma A: L ∈ NP ∧ SAT
p(n) nichtdet. Entscheidungen systematisch
z.Z. ∀L′
durchprobiert.
Es gibt höchstens
(3 · |Q| · |Γ|) p(n) = 2log2 (3·|Q|·|Γ|)p(n) = 2O(p(n))
qed
solche Kombinationen.
Sanders: Informatik III February 6, 2007
Weitere NP-vollständige Probleme
Lemma A: L ∈ NP ∧ SAT
51
Sanders: Informatik III February 6, 2007
Weitere NP-vollständige Probleme
≤ p L −→ L is NP-vollständig.
Lemma A’:
L ∈ NP ∧ L′ ist NP vollst. ∧ L′ ≤ p L
−→ L is NP-vollständig.
Beweis: analog Beweis von Lemma A.
52
SAT
p
3SAT
COLORING
SET COVER CLIQUE SUBSET SUM DIRECTED HAM. CIRC.
VERTEX COVER PARTITION
HAMILTON CIRCLE
STEINER TREE BIN PACKING ILP
KNAPSACK
TSP
Sanders: Informatik III February 6, 2007
53
54
Satz: 3SAT ist NP-vollständig
3SAT (KNF)
Beweis:
Gegeben: Aussagenlogische Formel in konjunktiver Normalform,
Da SAT in NP ist, genügt es zu zeigen, dass 3SAT NP-hart ist.
max. 3 Literale pro Klausel
z.Z. SAT≤ p 3SAT
Gesucht: Ist F erfüllbar?
Falle: In KNF bringen hilft überhaupt nichts.
Beispiel: (x ∨ ¬y ∨ z)(¬u ∨ x ∨ z)(¬x)
Variable:
Sanders: Informatik III February 6, 2007
KNF kann exponentiell größer sein
x, y, z,. . .
Man kriegt nicht notwendig 3KNF
Literal: Variable, ¬Variable
Klausel: Literal∨ · · · ∨Literal
KNF Formel: (Klausel)· · · (Klausel)
Sanders: Informatik III February 6, 2007
Beweis „3SAT ist NP-hart“
55
Sanders: Informatik III February 6, 2007
56
Negationen in die Blätter drücken
Wir entwickeln einen polynomialen Alg.,
De Morgan
der 3KNF-Formel F in erfüllbarkeitsäquivalente Formel F ′ umformt,
d.h.,
C
C
A
A
C
C
C
C
F erfüllbar ⇔ F ′ erfüllbar
Ansatz: Folge von erfüllbarkeitsäquivalenten Transformationen.
A
B
A
B
A
B
A
Wir betrachten Formeln als Bäume mit max. Grad zwei.
Blätter: Variablen x (oder Literale x̄ = ¬x) Weitere Knoten: ∧, ∨, ¬
Mit Traversierung von oben nach unten geht das in linearer Zeit (RAM).
Nachbedingung: Formeln lassen sich als binäre Bäume mit inneren
Knoten ∨, ∧ und Literalen als Blättern auffassen.
B
Sanders: Informatik III February 6, 2007
57
Beispiel
Sanders: Informatik III February 6, 2007
58
Negationen in die Blätter drücken
normalize(¬x) return negNormalize(x)
normalize(x ∧ y) return normalize(x) ∧ normalize(y)
normalize(x ∨ y) return normalize(x) ∨ normalize(y)
x2
x2
x2
x2
x2
normalize(v) return v
negNormalize(¬x) return normalize(x)
x1
x1
x3
x1
x3
x1
x3
negNormalize(x ∧ y) return negNormalize(x) ∨ negNormalize(y)
x1
x3
Sanders: Informatik III February 6, 2007
negNormalize(x ∨ y) return negNormalize(x) ∧ negNormalize(y)
x3
negNormalize(v) return
59
Nichtblattknoten → Neue Variablen
¬v
Sanders: Informatik III February 6, 2007
60
Beispiel
Ordne jedem ∧, ∨ eine neue Variable zu.
y0
Sei y0 das Literal der Wurzel.
F1 := (y0 ) ∧
^
v
z}|{
y ∧ z
v ↔ (y ∧ z) ∧
^
v
z}|{
y ∨ z
v ↔ (y ∨ z)
x2
x2
y1
x1
x1
x3
x3
(y0)
(y0 (y1
(y1 (x1
x2))
x3))
Sanders: Informatik III February 6, 2007
61
Erfüllbarkeitsäquivalenz von F1
Sanders: Informatik III February 6, 2007
62
Beispiel
Beweis F erfüllbar → F1 erfüllbar:
y0
Betrachte erfüllende Variablenbelegung für F .
Übernehme diese als partielle Belegung für F1 .
y0
y0
1
1
y01
0
Werte die Formel nun bottom up aus.
x2
y1 0
Übernehme die sich ergebenden Wahrheitswerte des Teilbaum mit
Wurzelvariable v für die Belegung von v.
x1
0
Sanders: Informatik III February 6, 2007
Erfüllbarkeitsäquivalenz von F1
63
0
x1
0
x3 1
x2
y1 0
0
x3 1
0
x1
0
x2
y100
0
x1
0
0
x3 1
Sanders: Informatik III February 6, 2007
F1
Betrachte erfüllende Variablenbelegung für F1 .
3KNF
Übernehme die Belegungen der Blätter für F .
Nichtblattknoten von F haben die gleichen Wahrheitswerte wie die
entsprechenden Variablen in F1 .
y0 ist mit 1 belegt.
Also ist F insgesamt wahr.
a ↔ (b ∨ c)
a ↔ (b ∧ c)
(a ∨ ¬b)(¬a ∨ b ∨ c)(a ∨ ¬c)
(¬a ∨ b)(¬a ∨ c)(a ∨ ¬b ∨ ¬c)
a b c b ∨ c b ∧ c a ↔ (b ∨ c) a ↔ (b ∧ c)
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
x2
y100
0
x3 1
64
Baue KNF für jede Teilformel:
Beweis F1 erfüllbar → F erfüllbar:
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
Sanders: Informatik III February 6, 2007
65
Sanders: Informatik III February 6, 2007
Exkurs: 2SAT∈ P
SET COVER
Gegeben: Aussagenlogische Formel in konjunktiver Normalform,
Gegeben:
max. 2 Literale pro Klausel.
Grundmenge M
Gesucht: Ist F erfüllbar?
Mengensystem T
¬x, ¬x:=
¯ x.
Graph G = (V, E), V := {x, ¬x : x ∈ F},
E:= (Ā, B), (B̄, A) : (A ∨ B) ∈ F
Parameter n
Definiere x̄:=
66
Beispiel:
{1, 2, 3, 4, 5}
{{1, 3} , {1, 2} , {2, 4, 5}}
2
⊆ 2M
Frage:
Gibt es Auswahl von T1
∈ T , . . . , Tn ∈ T mit?
{1, 3} , {2, 4, 5}
T1 ∪ · · · ∪ Tn = M ?
Beobachtung: F erfüllbar gdw.
¬∃ Kreis C in G, Variable x : x ∈ C ∧ ¬x ∈ C.
Ja:
Diese Bedingung kann in linearer Zeit überprüft werden.
(Starke Zusammenhangskomponenten.)
Sanders: Informatik III February 6, 2007
Set Cover Beispiel
67
Sanders: Informatik III February 6, 2007
Satz: SET COVER ist NP-vollständig
Beweis von SET COVER ∈ NP:
Wähle nichtdet. n Mengen T1
Bilde Vereinigungsmenge M ′
Prüfe ob M = M ′
Kleinstes n: 3
∈ T , . . . , Tn ∈ T
= T1 ∪ · · · ∪ Tn
68
Sanders: Informatik III February 6, 2007
69
Sanders: Informatik III February 6, 2007
Beweis „SET COVER ist NP-hart“
Beispiel
Wir zeigen 3SAT≤ p SET COVER.
F = (x1 ∨ x2 ∨ x3 )(x2 ∨ ¬x3 ∨ x4 )(¬x3 ∨ ¬x4 ∨ ¬x1 )
n = 4, m = 3.
{3, 4} = T1′
T1 = {1, 4},
{5} = T2′
T2 = {1, 2, 5},
{2, 3, 6} = T3′
T3 = {1, 6},
{3, 7} = T4′
T4 = {2, 7},
= K1 ∧ · · · ∧ Km eine KNF-Formel mit Variablen x1 , . . . , xn .
Wähle M = {1, . . . , m + n}.
Ti := j : xi kommt in Klausel K j vor ∪ {m + i}
Ti′ := j : ¬xi kommt in Klausel K j vor ∪ {m + i}
Setze T := {T1 , . . . , Tn , T1′ , . . . , Tn′ }.
Parameter n.
Sei F
Zu zeigen: Die Set Cover Instanz (M, T
Beweis F erfüllbar −→ (M, T , n) lösbar.
= {1, . . . , m + n}.
Ti := j : xi kommt in Klausel K j vor ∪ {m + i}
Ti′ := j : ¬xi kommt in Klausel K j vor ∪ {m + i}
Wähle M
für i = 1..n
Wähle Ti falls xi
Wähle Ti′ falls xi
T1 ∪ T2 ∪ T3′ ∪ T4 = {1, 2, 3, 4, 5, 6, 7}
Also x1 = x2 = x4 = 1, x3 = 0
, n) ist lösbar gdw. F erfüllbar.
Sanders: Informatik III February 6, 2007
= 1.
= 0.
{m + 1, . . . , m + n} wird abgedeckt,
weil für jede Variable xi Ti oder Ti′ ausgewählt wurde.
j ∈ {1, . . . , m} wird abgedeckt:
Sei L ein erfülltes Literal in K j
Fall L = xi −→ xi = 1 −→ j ∈ Ti und Ti wird ausgewählt.
Fall L = ¬xi −→ xi = 0 −→ j ∈ Ti′ und Ti′ wird ausgewählt.
70
71
Sanders: Informatik III February 6, 2007
Beweis (M, T , n) lösbar −→ F erfüllbar
M = {1, . . . , m + n}.
Ti := j : xi kommt in Klausel K j vor ∪ {m + i}
Ti′ := j : ¬xi kommt in Klausel K j vor ∪ {m + i}
{m + 1, . . . , m + n} wird abgedeckt −→
für jede Variable xi wird entweder Ti oder Ti′ ausgewählt.
Ti setze xi = 1.
Ti′ setze xi = 0.
∀ j ∈ 1..m :
Fall 1, j ∈ Ti , Ti wird ausgewählt: xi ∈ K j macht K j wahr
(xi = 1)
′
′
Fall 1, j ∈ Ti , Ti wird ausgewählt: ¬xi ∈ K j macht K j wahr (xi = 0)
72
Sanders: Informatik III February 6, 2007
73
Sanders: Informatik III February 6, 2007
CLIQUE
Beweis Clique∈ NP
Gegeben: ungerichteter Graph G = (V, E),
Parameter k ∈ N.
Frage:
Enthält G eine Clique der Größe k?
D.h. ∃V ′ ⊆ V : |V ′ | = k ∧ ∀u 6= v ∈ V ′ : {u, v} ∈ E
Rate die k Knoten von V ′
Sanders: Informatik III February 6, 2007
74
prüfe ob sie eine Clique bilden.
Gegeben: ungerichteter Graph G = (V, E),
Parameter k ∈ N.
Frage:
Enthält G eine Clique der Größe k?
D.h. ∃V ′ ⊆ V : |V ′ | = k ∧ ∀u 6= v ∈ V ′ : {u, v} ∈ E
75
Sanders: Informatik III February 6, 2007
76
Beweis von „CLIQUE ist NP-hart“
Beispiel:
Wir zeigen 3SAT≤ p CLIQUE.
F = (x1 ∨ x2 ∨ x3 )(x2 ∨ ¬x3 ∨ x4 )(¬x3 ∨ ¬x4 ∨ ¬x1 )
= (z11 ∨ z12 ∨ z13 ) ∧ · · · ∧ (zm1 ∨ zm2 ∨ zm3 ) mit
Literalen zi j ∈ {x1 , . . . , xn } ∪ {¬x1 , . . . ¬xn }.
Abbildung auf Graph G = (V, E):
V = {(1, 1), (1, 2), (1, 3), . . . , (m, 1), (m, 2), (m, 3)},
E = {(i, j), (p, q)} : i 6= p, zi j 6= z pq
¯ .
Parameter k = m.
OBdA sei F
11 x1
12 x2
13 x3
x2 21
x3 22
x4 23
x3 31
x4 32
x1 33
Idee: wähle in jeder Klausel ein zu erfüllendes Literal.
Kanten verbinden „kompatible“ Literale
Sanders: Informatik III February 6, 2007
77
Sanders: Informatik III February 6, 2007
F = (z11 ∨ z12 ∨ z13 ) ∧ · · · ∧ (zm1 ∨ zm2 ∨ zm3 ).
V = {(1, 1), (1, 2), (1, 3), . . . , (m, 1), (m, 2), (m, 3)},
E = {(i, j), (p, q)} : i 6= p, zi j 6= z pq
¯ .
F = (z11 ∨ z12 ∨ z13 ) ∧ · · · ∧ (zm1 ∨ zm2 ∨ zm3 ).
V = {(1, 1), (1, 2), (1, 3), . . . , (m, 1), (m, 2), (m, 3)},
¯ .
E = {(i, j), (p, q)} : i 6= p, zi j 6= z pq
F erfüllbar −→ G = (V, E) hat m-Clique
G = (V, E) hat m-Clique −→ F erfüllbar
F erfüllbar durch Variablenbelegung B : {x1 , . . . , xn } → {0, 1}
−→ ∀ j ∈ 1..m : ∃z j,k j : B macht z jk j wahr
( j1 , k1 ), . . . ( jm , km ) sei m-Clique mit zug. Literalen z ji ,ki .
Nur Kanten zwischen verschiedenen ji .
−→ die ji sind paarweise verschieden.
−→OBda j1 , . . . , jm = 1, . . . , m
Diese Literale sind paarweise nicht komplementär
und stammen aus verschiedenen Klauseln.
−→ (1, k1 ), . . . , (m, km ) sind paarweise verbunden.
Sie bilden also eine m-Clique
Nur Kanten bei nichtkomplementären Literalen.
−→die zug. Literale sind paarweise nichtkomplementär.
−→ ∃ Belegung B : ∀ j ∈ 1..m : z jk j [B] = 1
−→ F erfüllbar durch B
qed
Sanders: Informatik III February 6, 2007
78
79
Sanders: Informatik III February 6, 2007
VERTEX COVER (Knotenüberdeckung)
Beweis VERTEX COVER ∈ NP
Gegeben: ungerichteter Graph G = (V, E),
Parameter k ∈ N.
Frage: ∃V ′ ⊆ V : |V ′ | = k ∧ ∀ {u, v} ∈ E : u ∈ V ′ ∨ v ∈ V ′
. . . wie gehabt. . .
qed
80
Sanders: Informatik III February 6, 2007
81
Beweis von „VERTEX COVER ist NP-hart“
Sanders: Informatik III February 6, 2007
82
Gesehene Reduktionen
Wir zeigen CLIQUE≤ p VERTEX COVER.
SAT
Betrachte Komplementgraphen
p
Ḡ = (V, Ē) mit Ē = {u 6= v ∈ V : {u, v} 6∈ E}.
G hat Vertex Cover V ′ der Größe k
∃V ′ ⊆ V : |V ′ | = k ∧ ∀u 6= v : {u, v} ∈ E
COLORING
SET COVER CLIQUE SUBSET SUM DIRECTED HAM. CIRC.
⇔
→ (u
⇔
′
′
′
′
∃V ⊆ V : |V | = k ∧ ∀u 6= v : {u, v} ∈E∨(u
/
∈V ∨v ∈V )
⇔
′
′
′
′
/ V ∧v ∈
/V ) ⇔
∃V ⊆ V : |V | = k ∧ ∀u 6= v : {u, v} ∈
/ E ∨ ¬(u ∈
′
′
′
′
/E ⇔
∃V ⊆ V : |V | = k ∧ ∀u 6= v : (u ∈
/ V ∧v ∈
/ V )→ {u, v} ∈
′
′
′
∃V ⊆ V : |V | = k ∧ ∀u 6= v : {u, v} ∈ V \V → {u, v} ∈ Ē
⇔
′
′
′
∃V̄ ⊆ V : |V̄ | = |V | − k ∧ ∀u 6= v : {u, v} ∈ V̄ → {u, v} ∈ Ē ⇔
Ḡ enthält eine Clique der Größe |V | − k
∈ V ′ ∨ v ∈ V ′)
Sanders: Informatik III February 6, 2007
3SAT
VERTEX COVER PARTITION
HAMILTON CIRCLE
STEINER TREE BIN PACKING ILP
TSP
KNAPSACK
83
Sanders: Informatik III February 6, 2007
Beweistechniken für A ≤ p B:
Spezialfälle
Beweistechniken für A ≤ p B:
Uminterpretation
Zeige, dass A ein Spezialfall (im weitesten Sinne) von B ist.
Zeige, dass A ein Spezialfall (im weitesten Sinne) von B ist.
Jedes elem. Objekt in der Problemformulierung von A entspricht einem
Jedes elem. Objekt in der Problemformulierung von A entspricht einem
elementaren Objekt in der Problemformulierung in B.
elementaren Objekt in der Problemformulierung in B.
Beispiel: HAMILTON KREIS≤ p TSP.
Beispiel: VERTEX COVER≤ p CLIQUE.
Beispiel: SUBSET SUM≤ p KNAPSACK.
Beispiel: CLIQUE≤ p VERTEX COVER.
84
Sanders: Informatik III February 6, 2007
85
Sanders: Informatik III February 6, 2007
Beweistechniken für A ≤ p B:
Gadgets
Beweistechniken für A ≤ p B:
Randbedingungen
Jedes elementare Objekt in der Problemformulierung von A wird auf
Erzwinge bestimmte Eigenschaften durch zusätzliche Konstrukte.
mehrere zusammengehörige Objekte in B abgebildet.
Beispiel: L ≤ p SAT; R, Ü2 .
Beispiel: 3SAT≤ p SET COVER; xi
Ti , Ti′ .
Beispiel: SAT≤ p 3SAT; Knoten von F
86
Beispiel: SAT≤ p 3SAT; (y0 ).
Beispiel: 3SAT≤ p COLORING
drei Klauseln.
Beispiel: L ≤ p SAT;
Zustände, Kopfpositionen, Bandsymbole
Anfangskonfiguration
δ
viele Variablen.
Formel A
Übergangsbedingung Ü1
Endzustände
Endebedingung E
Sanders: Informatik III February 6, 2007
87
Sanders: Informatik III February 6, 2007
COLORING (Färbbarkeit)
Anwendungen von Färbbarkeit
Gegeben: ungerichteter Graph G = (V, E),
Parameter k ∈ N.
Frage:
Gibt es eine Knotenfärbung c : V → {1, . . . , k}
mit ∀ {u, v} ∈ E : c(u) 6= c(v).
Landkarten färben (4 sind genug !)
Knotenmenge in independent sets faktorisieren.
Zum Beispiel für Parallelisierung.
Registerallokation.
Knoten=In einer Prozedur berechnete Werte,
Kanten=Werte können nicht im gleichen Register liegen.
...
Verwandtes Problem: Frequenzzuteilung an Radiosender
88
Sanders: Informatik III February 6, 2007
89
Sanders: Informatik III February 6, 2007
90
Beweis COLORING ∈ NP
Beweis von „COLORING ist NP-hart“
. . . wie gehabt. . .
Wir zeigen 3SAT≤ p 3-COLORING (d.h. k = 3).
= K1 ∧ · · · ∧ Km mit Literalen aus
{x1 , . . . xn } ∪ {¬x1 , . . . , ¬xn }.
Sei F
OBdA: Genau 3 Literale pro Klausel.
Idee:
Baue Graphen G = (V, E) mit 2n + 5m + 2 Knoten, so dass
G 3-färbbar ⇔ F erfüllbar.
Sanders: Informatik III February 6, 2007
91
Randbedingung erzwingt
konsistente Wahrheitswerte für Literale
Sanders: Informatik III February 6, 2007
92
Gadget für Klausel K j = (a j ∨ b j ∨ c j )
Ein Teil von G:
aj
x1 x2
...
xn
a j , b j , c j : Eigene Knoten für jede Klausel.
Vorsicht: Farbe a j
...
x1 x2
yj
zj
v
Kanten zu entsprechenden Literalknoten.
...
u
v: Überall gleich. (u, v) ∈ E
xn
OBda Farben 0 = wahr, 1 = falsch, 2 = rot = c(u).
6=Wahrheitswert a j ,. . . !
bj
cj
Sanders: Informatik III February 6, 2007
93
Beispiel: Gadget für Klausel K3 = (x1 ∨ x̄2 ∨ x5 )
Sanders: Informatik III February 6, 2007
94
Beweis: F erfüllbar−→ G 3-färbbar
x1 x2 x3 x4 x5
c(u):= rot, c(v):= falsch,
wähle c(xi ) = ¬c(x̄i ) entsprechend einer erfüllbaren Belegung.
Einfache Fallunterscheidung für Klausel-Gadget j:
u
x1 x2 x3 x4 x5
aj
yj
a3
aj
zj
yj
zj
v
y3
z3
bj
v
b3
aj
yj
zj
v
cj
bj
aj
yj
zj
v
cj
v
bj
cj
bj
cj
c3
Sanders: Informatik III February 6, 2007
95
Beweis: G 3-färbbar−→ F erfüllbar
Nenne die Farbe von u
falsch.
[· · · ] Alle Literalnachbarn von K j sind falsch
oder
−→ c(b j ) =rot
c(b j ) =wahr
wahr.
Nenne die 3. Farbe
Der Randbedingungsteilgraph erzwingt
konsistente Wahrheitswerte für Literalknoten
96
Beweis: G 3-färbbar−→ F erfüllbar
rot.
Nenne die Farbe c(v) 6= c(u)
Sanders: Informatik III February 6, 2007
aj
xi , x̄i ∈ {wahr, falsch}.
yj
zj
?
yj
aj
aj
zj
yj
aj
zj
zj
?
yj
Zu zeigen:
Die entsprechende Belegung B macht F wahr—
Beweis durch Widerspruch.
Annahme
−→ ∃ j :
−→ Alle Literalnachbarn von K j sind falsch.
v
F[B] = wahr
bj
v
cj
bj
F[B] = falsch?
K j [B] = falsch.
Offenbar ist also F[B] wahr.
qed
v
cj
bj
v
cj
cj
bj
Sanders: Informatik III February 6, 2007
97
Sanders: Informatik III February 6, 2007
98
Exkurs: 2-Färbbarkeit∈ P
Exkurs: 2-Färbbarkeit∈ P
2-färbbare Graphen heißen bipartit.
Betrachte eine beliebige Zusammenhangskomponente C ⊆ V .
Betrachte einen beliebigen spannenden Baum T von C .
Beobachtung: Bäume sind 2-färbbar.
Betrachte 2-Färbung c von T .
Beobachtung: Ungerade Kreise sind nicht 2-färbbar. Das gleiche gilt
∃ {u, v} ∈ E : c(u) = c(v)?
−→ {u, v} ∪ { Pfad von u nach v in T } bilden ungeraden Kreis (*).
−→ G ist nicht 2-färbbar.
Sonst: c ist legale 2-Färbung von G.
für Graphen, die ungerade Kreise als Teilgraph enthalten.
(*):Übung: zeige durch Induktion über die Pfadlänge, dass zwei
gleichgefärbte Knoten in T geraden Abstand haben.
Sanders: Informatik III February 6, 2007
SUBSET SUM
Gegeben: n Gegenstände mit Gewicht wi ∈ N
Parameter W ∈ N.
Frage:
Gibt es eine Teilmenge M von {1, . . . , n},
so dass ∑ wi =W
i∈M
≈Spezialfall von Rucksack mit identischen Profiten.
Vorsicht! [Schöning] nennt SUBSET SUM RUCKSACK.
99
Sanders: Informatik III February 6, 2007
Schöning
3KNF-SAT
100
Sanders
3SAT
MENGENÜBERDECKUNG
SET COVERING
KNOTENÜBERDECKUNG
VERTEX COVER
RUCKSACK
—
FÄRBBARKEIT
SUBSET SUM
KNAPSACK (RUCKSACK)
COLORING
Sanders: Informatik III February 6, 2007
101
Sanders: Informatik III February 6, 2007
102
Beweis SUBSET SUM ∈ NP
Beweis „SUBSET SUM ist NP-hart“
. . . wie gehabt. . .
Wir zeigen 3SAT≤ p SUBSET SUM.
OBdA sei
F = K1 ∧ · · · ∧ Km = (z11 ∨ z12 ∨ z13 ) ∧ · · · ∧ (zm1 ∨ zm2 ∨ zm3 ) mit
Literalen zi j ∈ {x1 , . . . , xn } ∪ {¬x1 , . . . , ¬xn }.
Wir definieren eine SUBSET SUM Instanz mit Gewichten
(v1 , . . . , vn , v′1 , . . . v′n , c1 , . . . , cm , d1 , . . . , dm )
und Summe W
Sanders: Informatik III February 6, 2007
103
Sanders: Informatik III February 6, 2007
104
Die SUBSET SUM Instanz
Beispiel
(v1 , . . . , vn , v′1 , . . . v′n , c1 , . . . , cm , d1 , . . . , dm ),W
F = (x1 ∨ ¬x3 ∨ x5 ) ∧ (¬x1 ∨ x5 ∨ x4 ) ∧ (¬x2 ∨ ¬x2 ∨ ¬x5 )
m = 3, n = 5
m + n stellige Dezimalzahlen (Wörter über {0, . . . , 9})
Sei vi j := Anzahl Vorkommen von xi in Klausel j.
(Dezimalziffer)
′
Sei v i j := Anzahl Vorkommen von ¬xi in Klausel j.
(Dezimalziffer)
i−1
n−i
vi = vi1 vi2 · · · vim 0 10 ,
v′i = v′i1v′i2 · · · v′im 0i−1 10n−i
v1 = 100 10000
v′1 = 010 10000
v2 = 000 01000
v′2 = 002 01000
v3 = 000 00100
v′3 = 100 00100
v4 = 010 00010
c j := 0 j−1 10m− j 0n
d j := 0 j−1 20m− j 0n
v′4 = 000 00010
v5 = 110 00001
v′5 = 001 00001
c1 = 100 00000
d1 = 200 00000
W := 4| ·{z
· · 4} |1 ·{z
· · 1}
c2 = 010 00000
d1 = 020 00000
c3 = 001 00000
d1 = 002 00000
m
n
W = 444 11111
Sanders: Informatik III February 6, 2007
105
Sanders: Informatik III February 6, 2007
106
Beweisidee
F erfüllbar−→ Instanz lösbar
Beobachtung:
Betrachte Belegung B mit F[B] = 1.
bei Dezimaladdition der Gewichte treten nie Überläufe auf.
Wähle für M , vi wenn xi [B] = 1 und v′i wenn xi [B] = 0.
Bisher gilt
W = 444 11111
i∈M
mit t j
Der rechte Einerblock kann nur entstehen, indem für jede Variable xi
entweder xi
∈ {1, 2, 3} (jede Klausel hat 1–3 erfüllte Literale).
for j := 1 to m do
if t j = 1 then wähle c j und d j
if t j = 2 then wähle d j
if t j = 3 then wähle c j
≡ vi oder ¬xi ≡ v′i ausgewählt wird.
j im linken Block steht für Klausel j.
Die ausgewählten vi , v′i = zählen die erfüllten Literale:
Position
1,2 oder 3 für erfüllte Klauseln.
Nun ist
Die c j , d j sind Slack-Variablen, die Position
j von erfüllten Klauseln
Sanders: Informatik III February 6, 2007
∑ wi = 4m 1n = W .
i∈M
107
Instanz lösbar −→ F erfüllbar
Sanders: Informatik III February 6, 2007
20
i∈M
Für jede Variable i wurde entweder vi oder v′i ausgewählt.
sonst wäre Position i im rechten Block 6= 1.
= 1 falls vi ausgewällt, xi = 0 sonst.
Behauptung: F[B] = 1 (Widerspruchsbeweis)
Widerspruch.
Also ist F[B] = 1
qed.
10
15
W
20
n Gegenstände mit Gewicht wi ∈ N und profit pi
Wähle eine Teilmenge x von Gegenständen
so dass ∑i∈x wi ≤ W und
Annahme: F[B] = 0 also ∃ j : K j [B] = 0.
−→ ∑ d. ausgewählten vi , v′i ist 0
−→ ∑ d. ausgewählten ci , di ist ≤ 3 6= 4
108
Beispiel Rucksackproblem
∑ wi = W = 4m 1n .
Wähle Belegung B mit xi
// 1 + 1 + 2 = 4
// 2 + 2 = 4
// 3 + 1 = 4
qed.
auf den Wert 4 auffüllen können.
Betrachte M mit
∑ wi = t1t2 · · ·tm 1n
j
an Position j
an Position
maximiere den Profit ∑i∈x pi
Sanders: Informatik III February 6, 2007
109
Rucksackproblem
Sanders: Informatik III February 6, 2007
110
Reduktionen
∈ NP: wissen wir schon.
SAT
NP-hart: wir zeigen SUBSET SUM≤ p RUCKSACK
p
Offensichtlich ist die SUBSET SUM Instanz
COLORING
SET COVER CLIQUE SUBSET SUM DIRECTED HAM. CIRC.
(w1 , . . . , wn ) mit Zielgewicht = W
äquivalent zur RUCKSACK-Instanz
VERTEX COVER PARTITION
(w , . . . , w ), (w , . . . , w ) mit
| 1 {z n} | 1 {z n}
Gewichte
3SAT
HAMILTON CIRCLE
STEINER TREE BIN PACKING ILP
TSP
Profite
Gewichtsschranke ≤ W und
KNAPSACK
Profitschranke ≥ W .
Sanders: Informatik III February 6, 2007
111
Sanders: Informatik III February 6, 2007
PARTITION
Beweis SUBSET SUM≤ p PARTITION
Gegeben: n Gegenstände mit Gewicht wi ∈ N
Gegeben eine SUBSET SUM Instanz S = (w1 , . . . , wk ),W .
Sei M:=
Betrachte PARTITION Instanz P = (w1 , . . . , wk , M −W
Frage:
Gibt es eine Teilmenge M von {1, . . . , n},
so dass
Σki=1 wi .
∑ wi = ∑ wi ?
i∈M
i6∈M
in NP, weil . . .
Anwendung: Können wir Geschenke für die Zwillinge aufteilen, ohne
dass es Streit gibt?
+ 1,W + 1).
Gesamtgewicht: M + M −W + 1 +W + 1 = 2(M + 1).
Zu Zeigen: P hat Lösung ⇔ S hat Lösung.
112
Sanders: Informatik III February 6, 2007
113
Σki=1 wi .
PARTITION Instanz P = (w1 , . . . , wk , M −W + 1,W + 1). (Σ = 2(M + 1)).
SUBSET SUM Instanz S = (w1 , . . . , wk ),W . M:=
+ 1,W + 1).
Fall S hat Lösung −→ P hat Lösung:
Sei I Lösung von S, d.h., ∑i∈I wi = W .
Dann ist J:= I ∪ {k + 1} eine Lösung von P, denn
∑ P[ j] = ∑ wi + M −W + 1 = W + M −W + 1 = M + 1
j∈J
i∈I
Sanders: Informatik III February 6, 2007
116
BIN PACKING ist NP-vollständig
Offensichtlich ist BIN PACKING in NP.
Gegeben:
Andererseits ist PARTITION≤ p BIN PACKING (Spezialfall):
Plätzchendosengröße b ∈ N.
Plätzchen der Größe w1 ,. . . ,wn
M:= Σki=1 wi .
Gesamtgewicht: 2(M + 1).
115
BIN PACKING
114
SUBSET SUM Instanz S = (w1 , . . . , wk ),W .
PARTITION Instanz P = (w1 , . . . , wk , M −W
Fall P hat Lösung −→ S hat Lösung:
Sei J Lösung von P, d.h., ∑ j∈J P[ j] = M + 1.
Entweder M −W + 1 oder W + 1 wird ausgewählt:
M −W + 1 +W + 1 = M + 2> M + 1, Σki=1 wi = M< M + 1
Fall M −W + 1 wird ausgewählt:
Dann ist ∑ j∈J∩{1,...,k} P[ j] = M + 1 − (M −W + 1) = W .
Also ist J ∩ {1, . . . , k} Lösung von S.
Fall W + 1 wird ausgewählt:
Dann ist ∑ j∈J∩{1,...,k} P[ j] = M + 1 − (W + 1) = M −W .
Also ist {1, . . . , k} \ J Lösung von S.
Sanders: Informatik III February 6, 2007
Sanders: Informatik III February 6, 2007
∈N
Anzahl Plätzchendosen k.
Frage:
Passen alle Plätzchen irgendwie in die Dosen?, d.h.,
∃ f : 1..n −→ 1..k : ∀ j ∈ 1..k : ∑ {wi : f (i) = j} ≤ b
(w1 , . . . , wk ) 7→



Dosengröße:



b = 21 ∑ki=1 wi
Anzahl:
k=2
Plätzchengrößen:
w1 , . . . , wk
Sanders: Informatik III February 6, 2007
117
Sanders: Informatik III February 6, 2007
Integer Linear Programming (ILP)
Beweis von „ILP ist NP-hart“
Gegeben: Variablenvekor x = (x1 , . . . , xn ),
wir zeigen SUBSET SUM≤ p ILP
Menge von Bedingungen (constraints) der Form a · xRb mit
Betrachte SUBSET SUM Instanz (w1 , . . . , wn ),W .
R ∈ {≤, ≥, =}, b ∈ Z, a ∈ Zn .
Diese ist offensichtlich äquivalent zur ILP Instanz
{x · (w1 , . . . , wn ) = W } ∪
{x1 ≥ 0, . . . , xn ≥ 0} ∪
{x1 ≤ 1, . . . , xn ≤ 1}
Frage:
Gibt es Belegung für x
aus Zn , so dass alle Bedingungen erfüllt sind?
Sanders: Informatik III February 6, 2007
119
Sanders: Informatik III February 6, 2007
Beweis ILP∈ NP?
DIRECTED HAMILTON CYCLE
Rate n Variablenwerte.
(DHC) ∈ NP
Prüfe ob Bedingungen erfüllt.
Problem: Genügen polynomiell viele bits für die erfüllenden
Variablenwerte?
[Papadimitriou 1981] Ja.
M :=
{G = (V, E ⊆ V ×V ) : ∃C ⊆ E : |C| = |V |,C ist einfacher Kreis}
Rate C
überprüfe ob jeder Knoten genau einmal besucht wird.
Kern des Beweises: Cramers Regel sagt einem wie groß die Zahlen
werden können.
118
120
Sanders: Informatik III February 6, 2007
121
Beweis von „DHC ist NP-hart“
Sanders: Informatik III February 6, 2007
122
Ein Knoten pro Variable
x2
x1
Wir zeigen 3SAT≤ p HAMILTON-KREIS.
xn
...
= (z11 ∨ z12 ∨ z13 ) ∧ · · · ∧ (zm1 ∨ zm2 ∨ zm3 ) mit
Literalen zi j ∈ {x1 , . . . , xn } ∪ {¬x1 , . . . , ¬xn }.
Abbildung auf Graph G = (V, E) mit n + 6m Knoten.
OBdA sei F
x2
x1
xn
Ein Knoten pro Variable
Gadget mit 6 Knoten je Klausel.
Sanders: Informatik III February 6, 2007
123
Gadget K j mit 6 Knoten je Klausel
Kj
Literal 1
Literal 2
l1j L1j
l2j L2j
Literal 1
124
„Vorgesehene“ Hamiltonkreise
Kj
Kj
l3j L3j
Idee: Hamiltonkreise betreten ein Gadget 1–3×.
1
1
Literal 2 0
0
1
Literal 3 1
0
1
Literal 1 0
1
Literal 2 1
0
Literal 3 0
1
Literal 1 0
1
Literal 2 1
1
Literal 3 1
0
1× für jedes erfüllte Literal.
Betreten und Verlassen jeweils in der gleichen Zeile.
Kj
Literal 1 0
Literal 2
Literal 3
Literal 3
Sanders: Informatik III February 6, 2007
Sanders: Informatik III February 6, 2007
125
Unmögliche Hamiltonkreise
Kj?
Literal 1 0
Sanders: Informatik III February 6, 2007
126
Verbindungen der Gadgets
?
Kj
Literal 1 0
Literal 2 0
Literal 2 0
Sei { j1 , . . . , jk } die Menge der Klauselindizes in denen Literal zi
vorkommt (zi = xi oder zi = ¬xi ).
Literal 3 1
Literal 3 1
Seien {p1 , . . . , pk } die entsprechenden Positionen an denen zi
Kj
Literal 1 0
Literal 2 0
Literal 3 1
?
?
vorkommt.
Kj
Literal 1 0
Dann ist der Pfad
Literal 2 0
xi → ℓ p1 j1 → L p1 j1 → ℓ p2 j2 → L p2 j2 → · · · → ℓ pk jk → L pk jk → xi+1 mod n
|
{z
} |
{z
}
{z
}
|
Literal 3 1
K j1
?
vorhanden.
Kj
Gadgets werden immer
Literal 1 0
In der gleichen Zeile
Literal 2 0
verlassen, in der sie
K j2
Literal 1
Literal 2
?
K jk
l1j L1j
l2j L2j
Literal 2
l3j L3j
?
Sanders: Informatik III February 6, 2007
Literal 1
Literal 3
Literal 3
Literal 3 1
betreten werden.
Kj
127
Sanders: Informatik III February 6, 2007
Beispiel
F erfüllbar−→ Instanz lösbar
F = (x1 ∨ ¬x3 ∨ x5 ) ∧ (¬x1 ∨ x5 ∨ x4 ) ∧ (¬x2 ∨ ¬x2 ∨ ¬x5 )
Betrachte Belegung B mit F[B] = 1.
xi = 1: Zwischen Knoten xi und xi + 1 mod n durchlaufe Gadgets
K j : xi ∈ Klausel j .
xi = 0: Zwischen Knoten xi und xi + 1 mod n durchlaufe Gadgets
K j : ¬xi ∈ Klausel j .
Jedes Gadget wird mindestens einmal durchlaufen.
Wir wissen wie jeder Gadgetknoten genau einmal durchlaufen
erfüllende Belegung: x1
= x2 = 0, x3 = x4 = x5 = 1
wird.
Jeder Variablenknoten wird genau einmal durchlaufen.
128
Sanders: Informatik III February 6, 2007
129
Sanders: Informatik III February 6, 2007
130
Instanz lösbar −→ F erfüllbar
DHC≤ p HAMILTON CIRCLE
Betrachte Hamiltonkreis C .
Knotengadget:
G
Zwischen xi und xi+1 durchläuft C nur Gadgets so dass in den
entsprechenden Klauseln entweder nur xi oder nur ¬xi vorkommt.
G’
Wähle xi so dass alle diese Klauseln erfüllt werden.
Jedes Gadget wird mindestens einmal besucht.
G hat HC −→ G′ hat HC (klar).
Alle Klauseln werden also erfüllt.
G′ hat HC −→ G hat HC:
Angenommen HC durch Gadget ist nicht übersetzbar:
?
Sanders: Informatik III February 6, 2007
131
Exkurs: Euler-Tour∈ P
Sanders: Informatik III February 6, 2007
132
Gesehene Reduktionen
SAT
p
3SAT
COLORING
SET COVER CLIQUE SUBSET SUM DIRECTED HAM. CIRC.
VERTEX COVER PARTITION
HAMILTON CIRCLE
STEINER TREE BIN PACKING ILP
M :=
{G = (V, E) : ∃C ⊆ E : C ist Kreis der jede Kante genau einmal besucht}
Satz:[Euler 1736] G hat Euler-Tour ⇔
G ist zusammenhängend und jeder Knoten hat geraden Grad.
KNAPSACK
TSP
Sanders: Informatik III February 6, 2007
133
Sanders: Informatik III February 6, 2007
134
Optimierungsprobleme
Umgang mit NP-harten Problemen
Definition 1. Ein Minimierungsproblem wird durch ein Paar
(L , f ) definiert. Dabei ist
L eine Menge zulässiger (feasible) Lösungen and
f : L → R is die Kostenfunktion
x∗ ∈ L ist eine optimale Lösung wenn f (x∗ ) ≤ f (x) für alle
x∈L.
[Mehr: Vorlesung Approximations- und Onlinealgorithmen]
Beobachtung:
Fast alle interessanten Optimierungsprobleme sind NP-hart
Auswege:
Trotzdem optimale Lösungen suchen und riskieren, dass der
Algorithmus nicht fertig wird
Manchmal betrachten wir (natürlich) auch Maximierungsprobleme
Ad-hoc Heuristiken. Man kriegt eine Lösung aber wie gut ist die?
Durch binäre Suche lassen sich Optimierungsprobleme auf
Approximationsalgorithmen:
Entscheidungsprobleme reduzieren.
Polynomielle Ausführungszeit.
Lösungen garantiert „nah“ am Optimum.
Problem so umdefinieren, dass es polynomial lösbar wird.
Sanders: Informatik III February 6, 2007
NP vollständig
Ein Entscheidungsproblem ist NP-vollständig falls ein Polynomialzeit
Algorithmus für dieses Problem implizieren würde, dass P = NP.
Sind also alle NP-vollständigen Probleme gleich schwer?
Nur wenn
135
Sanders: Informatik III February 6, 2007
136
Scheduling unabhängiger gewichteter Jobs
auf parallelen Machinen
x( j): Maschhine auf der
Job j ausgeführt wird
1
2
3
4
5
n
...
Li : ∑x( j)=i t j , Last
ti
...
von Maschine i
Wir auf exakten Lösungen bestehen
?
? ...
?
Zielfunktion: Minimiere Makespan
Wir uns nur für den schlechtesten Fall interessieren
Lmax = maxi Li
Schlussfolgerung: Wenn es um exakte Lösungen und worst case
...
Eingaben geht, sind alle NP-vollständigen Probleme gleich schwer.
1
2
Details: Identische Machinen, unabhängige Jobs, bekannte
Ausführungszeiten, offline
m
Sanders: Informatik III February 6, 2007
137
Sanders: Informatik III February 6, 2007
Beweis(skizze) der NP-Härte
List Scheduling
Das Partition-Problem lässt sich reduzieren auf
ListScheduling(n, m, t)
J := {1, . . . , n}
array L[1..m] = [0, . . . , 0]
while J 6= 0/ do
pick any j ∈ J
J := J \ { j}
// Shortest Queue:
pick i such that L[i] is minimized
x( j) := i
L[i] := L[i] + t j
return x
das Scheduling-Problem mit m = 2.
Sanders: Informatik III February 6, 2007
139
Sanders: Informatik III February 6, 2007
Viele Kleine Jobs
Untere Schranken
Lemma 1. Falls ℓ der zuletzt beendete Job ist, dann
Lemma 2. Lmax ≥ ∑
j
tj m−1
Lmax ≤ ∑ +
tℓ
m
j m
Beweis
tj
tj m−1
Lmax = t + tℓ ≤ ∑ + tℓ = ∑ +
tℓ
m
j m
j6=ℓ m
138
tj
m
Lemma 3. Lmax ≥ max t j
j
tl
t
= t * m <= all − t l
140
Sanders: Informatik III February 6, 2007
141
Sanders: Informatik III February 6, 2007
142
Der Approximationsfaktor
Satz 4. ListScheduling erzielt Approximationsfaktor 2 −
Definition:
Ein Minimierungsalgorithmus erzielt Approximationsfaktor ρ falls er für
Beweis:
f (x)
f (x∗ )
alle Eingaben I , eine Lösung x(I) findet, so dass
∑ j t j /m m − 1
tℓ
+
·
∗
f (x )
m
f (x∗ )
m−1
tℓ
≤1 +
·
m
f (x∗ )
m−1
1
≤1 +
= 2−
m
m
f (x(I))
≤ρ
f (x∗ (I))
≤
wobei x∗ (I) die optimale Lösung für Eingabe I bezeichnet.
Sanders: Informatik III February 6, 2007
143
Diese Schranke is bestmöglich
1
.
m
(obere Schranke Lemma 1)
(untere Schranke Lemma 2)
(lower bound Lemma 3)
Sanders: Informatik III February 6, 2007
Mehr zu Scheduling (siehe Approx-Vorlesung)
Eingabe: m(m − 1) Jobs der Größe 1 und ein Job der Größe m.
4/3-Approximation: Sortiere die Jobs nach absteigender Größe.
Dann List-Scheduling. Zeit O(n log n).
Schnelle 7/6 Approximation: Rate Makespan (Binäre suche).
Dann Best Fit Decreasing.
PTAS . . . später . . .
Uniform machines: Maschine i hat Geschwindigkeit vi job j
braucht Zeit t j /vi auf Maschine j.
relative einfache
Verallgemeinerung
List Scheduling: 2m−1
OPT: m
Also ist der Approximationsfaktor ≥ 2 − 1/m.
Unrelated Machines Job j braucht Zeit t ji auf Maschine j.
2-Approximation. Ganz anderer Algorithmus.
uvam: Andere Zielfunktionen, Reihenfolgebeschränkungen, . . .
144
Sanders: Informatik III February 6, 2007
145
Sanders: Informatik III February 6, 2007
146
HamiltonCycle≤ p a-Approximation von TSP
Nichtapproximierbarkeit des
Handlungsreisendenproblems (TSP)
Sei G = (V, E) beliebiger ungerichteter Graph.
wird.

1
if (u, v) ∈ E
Definiere d(u, v) =
1 + an else
Dann und nur dann, wenn G einen Hamiltonkreis hat gilt
∃ TSP Tour mit Kosten n
(sonst optimale Kosten ≥ n + an − 1 > an)
Satz: Es ist NP-hart das TSP innerhalb irgendeines Faktors a zu
Entscheidungsalgorithmus: Führe a-approx TSP auf G aus.
approximieren.
Lösung hat Gewicht ≤ an −→ ∃ Hamiltonpfad
Beweisansatz: Es genügt zu zeigen, dass
HamiltonCycle≤ p a-Approximation von TSP
sonst 6 ∃ Hamiltonpfad
Gegeben ein Graph G = (V,V
×V ), finde einen einfachen Kreis
C = (v1 , v2 , . . . , vn , v1 ) so dass n = |V | und ∑ d(u, v) minimiert
(u,v)∈C
Sanders: Informatik III February 6, 2007
147
Sanders: Informatik III February 6, 2007
148
TSP mit Dreiecksungleichung
Minimaler Spannbaum (MST)
G (ungerichtet) erfüllt die Dreiecksungleichung
∀u, v, w ∈ V : d(u, w) ≤ d(u, v) + d(v, w)
Betrachte beliebigen unger. Graph G = (V, E) mit Gewichstsfunktion
c : E → R+ .
T ⊆ E ist ein spannender Baum von G falls (V, T ) ein Baum ist.
Ein spannender Baum T minimalen Gewichts
Metrische Vervollständigung
Betrachte beliebigen unger. Graph G = (V, E) mit Gewichstsfunktion
c : E → R+ . Definiere
d(u, v) := Länge des kürzesten Pfades von u nach v
Beispiel: (ungerichteter) Strassengraph −→ Abstandstabelle
∑ c(e) ist ein MST.
e∈T
Sanders: Informatik III February 6, 2007
Sanders: Informatik III February 6, 2007
149
Euler-Tour
2-Approximation durch MST
Betrachte beliebigen unger. (Multi-)Graph G = (V, E) mit |E| = m.
(Jede Kante wird genau einmal besucht)
Lemma 5.
Gesamtgewicht eines MST ≤
Gesamtgewicht jeder TSP tour
Satz: G hat Euler-Tour gdw. ∀v ∈ V :Grad(v) ist gerade.
Algorithmus:
Euler Touren lassen sich in Zeit O(|E| + |V |) finden.
T := MST(G)
T ′ := T with every edge doubled
T ′′ := EulerTour(T ′ )
output removeDuplicates(T ′′ )
Ein Pfad P = he1 , . . . , em i ist eine Euler-Tour falls {e1 , . . . , em } = E .
Sanders: Informatik III February 6, 2007
Beispiel
input
150
// weight(T ) ≤opt
// weight(T ′ ) ≤2opt
// weight(T ′′ ) ≤ 2opt
// shortcutting
Sanders: Informatik III February 6, 2007
151
152
Beweis von Gewicht MST≤ Gewicht TSP-Tour
weight: 1 2 doubled MST
3
6
5
1
output
3
5
1
Sei T die optimale TSP tour
6
entferne eine T
macht T leichter
nun ist T ein Spannbaum
2
3
4
5
2
MST
1
2
6
4
Euler tour
12131415161
optimal weight: 6
4
weight
10
der nicht leichter sein kann als der
MST
Allgemeine Technik: Relaxation
hier: ein TSP-Pfad ist ein Spezialfall eines Spannbaums
Sanders: Informatik III February 6, 2007
153
Sanders: Informatik III February 6, 2007
Mehr TSP
Pseudopolynomielle Algorithmen
Praktisch bessere 2-Approximationen, z.B. lightest edge first
A ist pseudopolynomieller Algorithmus falls
Relativ einfacher aber unpraktische 3/2-Approximation
154
TimeA (n) ∈ P(n)
PTAS for Euclidean TSP
wobei n die Anzahl Eingabebits ist,
wenn alle Zahlen unär codiert werden (k ≡ 1k ).
Versuchskanichen für praktisch jede Optimierungsheuristik
Optimale Lösungen für praktische Eingaben. Faustregel:
Falls es in den Speicher passt, läßt sichs lösen.
[http://www.tsp.gatech.edu/concorde.html]
sechsstellige Anzahl Codezeilen.
TSP-artige Anwendungen sind meist komplizierter
Sanders: Informatik III February 6, 2007
155
Beispiel Rucksackproblem
20
10
Sanders: Informatik III February 6, 2007
Dynamische Programmierung
Optimalitätsprinzip
15
W
20
n Gegenstände mit Gewicht wi ∈ N und profit pi
Wähle eine Teilmenge x von Gegenständen
so dass ∑i∈x wi ≤ W und
maximiere den Profit ∑i∈x pi
Eine (optimale) Lösung läßt sich so auffassen, dass sie aus
(optimalen) Lösungen für kleinere Teilprobleme aufgebaut ist.
Lösungen mit dem gleichen Zielfunktionswert sind austauschbar.
Beispiel: CYK-Parsingalgorithmus
156
Sanders: Informatik III February 6, 2007
157
Sanders: Informatik III February 6, 2007
158
Dynamische Programmierung nach Kapazität
Proof
P(i,C) ≥ P(i − 1,C): Set xi = 0, use optimal subsolution.
P(i,C):= optimaler Profit für Gegenstände 1,. . . ,i unter Benutzung
von Kapatzität ≤ C .
P(i,C) ≥ P(i − 1,C − wi ) + pi : Set xi = 1 . . .
P(i,C) ≤ max(P(i − 1,C), P(i − 1,C − wi ) + pi )
Assume the contrary −→
∃x that is optimal for the subproblem such that
Lemma 6.
∀1 ≤ i ≤ n : P(i,C) = max(P(i − 1,C),
P(i − 1,C − wi ) + pi )
P(i − 1,C)
< p·x ∧
P(i − 1,C − wi ) + pi
< p·x
Case xi = 0: x is also feasible for P(i − 1,C). Hence,
P(i − 1,C) ≥ p · x. Contradiction
= 1: Setting xi = 0 we get a feasible solution x′ for
P(i − 1,C − wi ) with profit p · x′ = p · x − pi . Hence,
P(i − 1,C − wi ) + pi ≥ p · x. Contradiction
Case xi
Sanders: Informatik III February 6, 2007
159
Sanders: Informatik III February 6, 2007
Berechung von P(i,C) elementweise:
Rekonstruktion der Lösung
Procedure knapsack(p, c, n, W )
array P[0 . . .W ] = [0, . . . , 0]
bitarray decision[1 . . . n, 0 . . .W ] = [(0, . . . , 0), . . . , (0, . . . , 0)]
for i := 1 to n do
// invariant: ∀C ∈ {1, . . . ,W } : P[C] = P(i − 1,C)
for C := W downto wi do
if P[C − wi ] + pi > P[C] then
P[C] := P[C − wi ] + pi
decision[i,C] := 1
C := W
array x[1 . . . n]
for i := n downto 1 do
x[i] := decision[i,C]
if x[i] = 1 then C := C − wi
endfor
return x
Analyse:
Zeit:
O(nW ) pseudopolynomiell
Space:
W + O(n) Maschinenwörter plus W n bits.
160
Sanders: Informatik III February 6, 2007
161
Sanders: Informatik III February 6, 2007
Beispiel
Beispiel
maximize (10, 20, 15, 20) · x
maximize (10, 20, 15, 20) · x
subject to (1, 3, 2, 4) · x ≤ 5
subject to (1, 3, 2, 4) · x ≤ 5
P(i,C), (decision[i,C])
P(i,C), (decision[i,C])
162
i \C
0
1
2
3
4
5
i \C
0
1
2
3
4
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0, (0)
10, (1)
10, (1)
10, (1)
10, (1)
10, (1)
1
0, (0)
10, (1)
10, (1)
10, (1)
10, (1)
10, (1)
2
2
0, (0)
10, (0)
10, (0)
20, (1)
30, (1)
30, (1)
3
3
4
4
Sanders: Informatik III February 6, 2007
163
Sanders: Informatik III February 6, 2007
Beispiel
Beispiel
maximize (10, 20, 15, 20) · x
maximize (10, 20, 15, 20) · x
subject to (1, 3, 2, 4) · x ≤ 5
subject to (1, 3, 2, 4) · x ≤ 5
P(i,C), (decision[i,C])
P(i,C), (decision[i,C])
164
i \C
0
1
2
3
4
5
i \C
0
1
2
3
4
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0, (0)
10, (1)
10, (1)
10, (1)
10, (1)
10, (1)
1
0, (0)
10, (1)
10, (1)
10, (1)
10, (1)
10, (1)
2
0, (0)
10, (0)
10, (0)
20, (1)
30, (1)
30, (1)
2
0, (0)
10, (0)
10, (0)
20, (1)
30, (1)
30, (1)
3
0, (0)
10, (0)
15, (1)
25, (1)
30, (0)
35, (1)
3
0, (0)
10, (0)
15, (1)
25, (1)
30, (0)
35, (1)
4
0, (0)
10, (0)
15, (0)
25, (0)
30, (0)
35, (0)
4
Sanders: Informatik III February 6, 2007
165
Sanders: Informatik III February 6, 2007
166
Dynamische Prgrammierung nach Profit
Dynamische Prgrammierung nach Profit
C(i, P):= kleinste Kapazität für Gegenstände 1,. . . ,i die Profit ≥ P
Sei P̂ obere Schranke für den Profit (z.B. ∑i pi ).
ergeben.
Time:
Lemma 7.
O nP̂ pseudo-polynomiell
Space:
P̂ + O(n) Maschinenworte plus P̂n bits.
∀1 ≤ i ≤ n : C(i, P) = min(C(i − 1, P),
C(i − 1, P − pi ) + wi )
Sanders: Informatik III February 6, 2007
Fully Polynomial Time Approximation Scheme
167
Sanders: Informatik III February 6, 2007
168
Beispielschranken
(dt. voll polynomielles Approximationsschema)
PTAS
FPTAS
Algorithmus A ist
n + 21/ε
n2 +
(Fully) Polynomial Time Approximation Scheme
1
nlog ε
für problem Π if:
1
n/ε
nε
Eingabe: Instanz I , Fehlerparameter ε
Ausgabequalität:
f (x)≤(1 + ε )opt
Time: polynomiell in |I| (und 1/ε )
n42/ε
3
1000/ε
n + 22
..
.
1
ε
1
n+ 4
ε
..
.
..
.
..
.
Sanders: Informatik III February 6, 2007
169
Sanders: Informatik III February 6, 2007
Lemma 8. p · x′ ≥ (1 − ε )opt.
FPTAS für Knapsack
P:= maxi pi
εP
K:=
n p′i := Kpi
x′ := dynamicProgrammingByProfit(p′ , w,C)
gib x′ aus
Beweis. Betrachte die optimale Lösung x∗ .
j p k
i
∗
′ ∗
p · x − Kp · x = ∑ pi − K
K
i∈x∗
p
i
− 1 = |x∗ |K≤ nK,
≤ ∑ pi − K
K
i∈x∗
// maximaler Profit
// Skalierungsfaktor
// skaliere Profite
i.e., Kp′ · x∗ ≥ p · x∗ − nK. Weiterhin,
jp k
pi
i
≤ ∑ K = p · x′ . Hence,
Kp′ · x∗ ≤ Kp′ · x′ = ∑ K
K
K
i
i
p · x′ ≥Kp′ · x∗ ≥ p · x∗ − nK = opt − ε P ≥ (1 − ε )opt
Sanders: Informatik III February 6, 2007
171
Lemma 9. Laufzeit O n3 /ε .
Beweis. Die Laufzeit O nP̂′ der dynamischen programming
dominiert:
n3
n
′
2 P
2 Pn
′
nP̂ ≤n · (n · max pi ) = n
=n
≤ .
i=1
K
εP
ε
170
Herunterladen