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