MaxKnapsack NP

Werbung
Fortsetzung: Komplexitätsklassen
Überblick über die Zugehörigkeit der bisher kennen gelernten Optimierungsprobleme zu den oben
denierten Komplexitätsklassen.
Quelle: Jansen, Klaus / Margraf, Marian: Approximative Algorithmen und Nichtapproximierbarkeit
Satz 1. Falls P
6= N P ist jede der folgenden Inklusionen echt:
P O ⊆ F P T AS ⊆ P T AS ⊆ AP X ⊆ N P O
Beweis 1.
• P O ( F P T AS , da MaxKnapsack NP-schwer
• F P T AS ( P T AS : Wird gezeigt mit euklidischem TSP
1
• P T AS ( AP X : Wird gezeigt mit MinBinPacking
• AP X ( N P O, da MinTSP ∈
/ AP X
Weitere Techniken
1. LP-Relaxierung
Das Problem wird zunächst auf ganzzahlige lineare Programmierung zurückgeführt (NP-schwer). Diese
wird dann nicht-ganzzahlig gelöst (in Polynomialzeit, siehe
Höhere Algorithmik I ). Anschlieÿend sucht
man nach einer guten ganzzahligen Lösung in der Nähe der optimalen Lösung.
Beispiel MinSetCover
Gegeben seien
S = {1, 2, . . . , n}
Gesucht ist das minimale
k,
Approximierbar mit Faktor
und
S1 , S2 , . . . , Si ⊆ S
sodass die Vereinigung von
O(log n)
k
der
Si
ganz
S
ergibt.
(damit nicht mehr in APX, die Approximation ist in der Praxis
aber dennoch interessant)
2. Semidenite Programmierung
Spezialfall von LP. Liefert Faktor
O(log 1 /),
z.B. für
MaxCut, Max2Sat
und
MaxSat
3. PCP-Theorem zum Beweis der Nichtapproximierbarkeit
Alternative Charakterisierung von NP mittels eines
Ein
f (n), g(n)
probabilistischen Polynomzeit-Verizierers :
beschränkter Polynomialzeit-Verizierer
Quelle: Jansen, Klaus / Margraf, Marian: Approximative Algorithmen und Nichtapproximierbarkeit
Einschränkungen
Es dürfen nur
g(n)
Bits des Beweises gelesen werden und es dürfen nur
f (n)
Zufallsbits gelesen werden
PCP (Probabilistic Checkable Proofs)
Klasse der Sprachen, die damit erkannt werden können:
P CP (f (n), g(n))
Damit lässt sich
NP
charakterisieren als
NP =
[
p P olynom
2
P CP (0, p(n))
PCP-Theorem
Liefert eine neue Charakterisierung von
NP
N P = P CP (O(log n), O(1))
Dabei wird nur eine konstante Anzahl an Bits des Beweises gelesen!
Anmerkung: Eine Eingabe wird mit Wahrscheinlichkeit
in der Sprache liegt, und mit Wahrscheinlichkeit
≥
1
akzeptiert, wenn das Wort tatsächlich
1
2 abgelehnt, wenn nicht.
4. FTP: xed parameter tractability
Ansatz zum Lösen schwerer Probelme. Die Eingabe vieler Probleme besteht aus 2 Teilen, z.B. bei dem
Problem
Beispiel ÜberdeckendeKnotenmenge
Gegeben sei ein Graph
G = (V, E)
(ÜK)
und eine Zahl
k∈N
k , d.h.
∀(u, v) ∈ E : u ∈ V ∨ v ∈ V 0 ?
Gibt es eine überdeckende Knotenmenge der Gröÿe
Kanten abdeckt, also
ÜberdeckendeKnotenmenge
Algorithmus 1 (naiv)
Betrachte alle Teilmengen
⇒
Polynomiell für festes
V0 ⊆V
k,
eine Menge
V0 ⊆V
aber
k
ist
if
|V 0 | = k und teste jeweils
n
Θ n2
= O n2 nk
k
mit
als Exponent von
n
unerwünscht.
k = 0 then
|E| = 0 then
return true
else
return false
end if
else
(u, v) = beliebige Kante aus E
G1 = G \ {u} { Entfernen von u und allen inzidenten
G2 = G \ {v} { analog }
return SÜK(G1 , k − 1) ∨ SÜK(G2 , k − 1)
Kanten }
end if
Laufzeit
Sei
Jede überdeckende Knotenmenge muss
G
die alle
die Kantenmenge durch. Laufzeit:
if
Korrektheit
|V 0 | = k ,
N P -vollständig.
Algorithmus 2 SÜK(G, k), G = (V, E), k ∈ N
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
mit
0
u
oder
v
enthalten!
in Adjazenzmatrixdarstellung gegeben (Eingabegröÿe
T (0, n) = cn2
3
n2 ):
denn das Prüfen, ob mindestens eine Kante vorhanden ist, geht linear in
n2 .
T (k, n) = 2 · T (k − 1, n − 1) + dn
= 2j · T (k − j, n − j) + d
j−1
X
2i (n − i)
i=0
j−1
X
≤ 2j · T (k − j, n − j) + dn
2i
i=0
k
≤ 2 · T (0, n − k) + dn · 2
k
= O(2k · n2 )
Die Laufzeit ist also linear in der Eingabegröÿe
n2
für festes
k.
Σ ein endliches, nicht leeres Alphabet. Dann heiÿt L ⊂ Σ∗ × Σ∗ FTP
genau dann wenn ein Agorithmus für das Entscheidungsproblem (x, y) ∈ L existiert mit Laufzeit
O (f (k) · p(n)), wobei |y| = k, |x| = n und p ist ein Polynom, f ist eine beliebige Funktion.
Denition 1
(FTP)
. Sei
4
Herunterladen