Übung 8 – Algorithmen II Moritz Kobitzsch, Dennis Schieferdecker – {kobitzsch,schieferdecker}@kit.edu http://algo2.iti.kit.edu/AlgorithmenII.php Institut für Theoretische Informatik - Algorithmik II 0 Schieferdecker: KIT –Kobitzsch, Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Übung 8 – Algorithmen II Institut für Theoretische Informatik www.kit.edu Algorithmik II Ankündigungen Vorlesung 17.1. - 26.1.: Johannes Fischer (String Algorithmen) → vermehrter Tafelanschrieb (für Beispiele) Vorlesung 31.1. - 9.2.: Nodari Sitchinava (Geometrie Algorithmen) → auf Englisch! (bitte melden, falls problematisch) Übung 9.2.: Wiederholung / Fragen zur Klausur → im Forum, per eMail Themenwünsche äußern Übungsblatt 7 (ab 24.1.): Strings + Geometrie → vor Vorlesung zu Geometrie! (sonst Übungsblatt in letzter Vorlesungswoche) 1 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Themenübersicht Approximationsalgorithmen (schwierige Probleme gut abschätzen) parametrisierte Algorithmen (schwierige Probleme in Spezialfällen exakt lösen) Online Algorithmen (Probleme mit beschränkter Information gut abschätzen) 2 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Grundlagen Warum Lösungen abschätzen? es gibt “schwierige” Probleme (z.B. TSP mit exponentieller Laufzeit) → exakte Berechnung nicht möglich zu unseren Lebzeiten vernünftige Näherungen effizient berechnen → exakte/optimale Ergebnisse nicht immer wichtig → “gute” Lösungen genügen oft → aber Abstand zur korrekten Lösung wissenswert Weglänge “lang” 3 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II √ Weglänge 8 + 16 2 Weglänge 24 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Gütemaß Ein Algorithmus ALG hat einen Approximationsfaktor ρ, wenn gilt w (ALG (I )) ≤ρ w (OPT (I )) f.a. Probleminstanzen I, OPT optimale Lösung, w Bewertungsfunktion (hier für Minimierungsprobleme, ρ > 0 ist obere Schranke) Beispiel: ALG schätzt Distanz von Strecke x auf nächste Zweierpotenz 2dlog |x |e OPT bestimmt korrekte Distanz |x | ⇒ 4 w (ALG ) w (OPT ) = 2dlog |x |e |x | ≤ (Zahlenbeispiel: |x | = Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 2log |x |+1 |x | 210 +1 = 2|x | |x | → =2=ρ 211 210 +1 = 2− 2 210 +1 ≈ 2) Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Klassen Approximationsprobleme klassifzierbar durch Laufzeit T (n, ε) Approximationsfaktor ρ(n, ε) Klassen an Approximationsproblemen APX (approximable) ρ = const ., T polynomiell in n PTAS (polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n FPTAS (fully polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n, 1ε NPO APX FPTAS PTAS Beispiele: 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 2 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 1 − ε ⇒ T (n, ε) = nε, ρ(n, ε) = 1 + 2ε 5 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Klassen Approximationsprobleme klassifzierbar durch Laufzeit T (n, ε) Approximationsfaktor ρ(n, ε) Klassen an Approximationsproblemen APX (approximable) ρ = const ., T polynomiell in n PTAS (polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n FPTAS (fully polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n, 1ε NPO APX FPTAS PTAS Beispiele: 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 2 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 1 − ε ⇒ T (n, ε) = nε, ρ(n, ε) = 1 + 2ε 5 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (APX) Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Klassen Approximationsprobleme klassifzierbar durch Laufzeit T (n, ε) Approximationsfaktor ρ(n, ε) Klassen an Approximationsproblemen APX (approximable) ρ = const ., T polynomiell in n PTAS (polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n FPTAS (fully polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n, 1ε NPO APX FPTAS PTAS Beispiele: 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 2 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 1 − ε ⇒ T (n, ε) = nε, ρ(n, ε) = 1 + 2ε 5 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (APX) (PTAS) Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Klassen Approximationsprobleme klassifzierbar durch Laufzeit T (n, ε) Approximationsfaktor ρ(n, ε) Klassen an Approximationsproblemen APX (approximable) ρ = const ., T polynomiell in n PTAS (polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n FPTAS (fully polynomial time approximation scheme) ρ = 1 ± ε, T polynomiell in n, 1ε NPO APX FPTAS PTAS Beispiele: 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 2 1 ⇒ T (n , ε ) = n ε , ρ (n , ε ) = 1 − ε ⇒ T (n, ε) = nε, ρ(n, ε) = 1 + 2ε 5 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (APX) (PTAS) (FPTAS) Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II V Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Länge 1 Länge 2 G(V, E) Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II T Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II T0 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) 3 Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T 5 1 verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 2 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 6 EK 4 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) 3 Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T 5 1 verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 2 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 6 HK 4 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) 3 Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T 5 1 verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 2 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 6 HK Weglänge 10 4 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP (NP-hart) Problemstellung Gegeben eine Menge an Punkten V in der Ebene Finde Kreis minimaler Länge der alle Punkte abläuft Wiederholung 2-Approximation (Algorithmus) 6 Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T 5 1 verdopple Kanten von T → T 0 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK 4 6 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 2 OP T optimale Weglänge 6 3 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP Wiederholung 2-Approximation (Beweis) Definitionen: w ((V , E )) = ˆ Summe aller Kantengewichte von E OPT = ˆ kürzester Hamiltonkreis auf G w (OPT ) > w (T ) w (T 0 ) ⇒ 2 · w (OPT ) ≥ ⇒ 2 · w (OPT ) ≥ w (EK ) ⇒ 2 · w (OPT ) ≥ w (HK ) (MST enthält alle Knoten und ist minimal) (Kantenverdopplung) (w (T 0 ) = w (EK ): gleiche Kanten) (w (EK ) ≥ w (HK ): Abkürzungen) ⇒ w (HK ) ≤ 2 · w (OPT ) T 7 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP Wiederholung 2-Approximation (Beweis) Definitionen: w ((V , E )) = ˆ Summe aller Kantengewichte von E OPT = ˆ kürzester Hamiltonkreis auf G w (OPT ) > w (T ) w (T 0 ) ⇒ 2 · w (OPT ) ≥ ⇒ 2 · w (OPT ) ≥ w (EK ) ⇒ 2 · w (OPT ) ≥ w (HK ) (MST enthält alle Knoten und ist minimal) (Kantenverdopplung) (w (T 0 ) = w (EK ): gleiche Kanten) (w (EK ) ≥ w (HK ): Abkürzungen) ⇒ w (HK ) ≤ 2 · w (OPT ) T 7 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP Wiederholung 2-Approximation (Beweis) Definitionen: w ((V , E )) = ˆ Summe aller Kantengewichte von E OPT = ˆ kürzester Hamiltonkreis auf G w (OPT ) > w (T ) w (T 0 ) ⇒ 2 · w (OPT ) ≥ ⇒ 2 · w (OPT ) ≥ w (EK ) ⇒ 2 · w (OPT ) ≥ w (HK ) (MST enthält alle Knoten und ist minimal) (Kantenverdopplung) (w (T 0 ) = w (EK ): gleiche Kanten) (w (EK ) ≥ w (HK ): Abkürzungen) ⇒ w (HK ) ≤ 2 · w (OPT ) T0 7 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP Wiederholung 2-Approximation (Beweis) Definitionen: w ((V , E )) = ˆ Summe aller Kantengewichte von E OPT = ˆ kürzester Hamiltonkreis auf G w (OPT ) > w (T ) w (T 0 ) ⇒ 2 · w (OPT ) ≥ ⇒ 2 · w (OPT ) ≥ w (EK ) ⇒ 2 · w (OPT ) ≥ w (HK ) ⇒ w (HK ) ≤ 2 · w (OPT ) (MST enthält alle Knoten und ist minimal) (Kantenverdopplung) (w (T 0 ) = w (EK ): gleiche Kanten) (w (EK ) ≥ w (HK ): Abkürzungen) 3 5 1 2 7 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 6 EK 4 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP Wiederholung 2-Approximation (Beweis) Definitionen: w ((V , E )) = ˆ Summe aller Kantengewichte von E OPT = ˆ kürzester Hamiltonkreis auf G w (OPT ) > w (T ) w (T 0 ) ⇒ 2 · w (OPT ) ≥ ⇒ 2 · w (OPT ) ≥ w (EK ) ⇒ 2 · w (OPT ) ≥ w (HK ) ⇒ w (HK ) ≤ 2 · w (OPT ) (MST enthält alle Knoten und ist minimal) (Kantenverdopplung) (w (T 0 ) = w (EK ): gleiche Kanten) (w (EK ) ≥ w (HK ): Abkürzungen) 3 5 1 2 7 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 6 HK 4 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP Wiederholung 2-Approximation (Beweis) Definitionen: w ((V , E )) = ˆ Summe aller Kantengewichte von E OPT = ˆ kürzester Hamiltonkreis auf G w (OPT ) > w (T ) w (T 0 ) ⇒ 2 · w (OPT ) ≥ ⇒ 2 · w (OPT ) ≥ w (EK ) ⇒ 2 · w (OPT ) ≥ w (HK ) ⇒ w (HK ) ≤ 2 · w (OPT ) (MST enthält alle Knoten und ist minimal) (Kantenverdopplung) (w (T 0 ) = w (EK ): gleiche Kanten) (w (EK ) ≥ w (HK ): Abkürzungen) 3 5 1 2 7 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 6 HK 4 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 bestimme Eulerkreis EK auf T 0 (alle Knoten haben geraden Grad) wandle EK zu Hamiltonkreis HK V (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 Länge 1 (alle Knoten haben geraden Grad) Länge 2 bestimme Eulerkreis EK auf T 0 wandle EK zu Hamiltonkreis HK (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 bestimme Eulerkreis EK auf T 0 (alle Knoten haben geraden Grad) wandle EK zu Hamiltonkreis HK T (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 bestimme Eulerkreis EK auf T 0 U (alle Knoten haben geraden Grad) wandle EK zu Hamiltonkreis HK T (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 bestimme Eulerkreis EK auf T 0 U (alle Knoten haben geraden Grad) wandle EK zu Hamiltonkreis HK M (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 bestimme Eulerkreis EK auf T 0 (alle Knoten haben geraden Grad) wandle EK zu Hamiltonkreis HK T0 (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 5 bestimme Eulerkreis EK auf T 0 (alle Knoten haben geraden Grad) 6 1 wandle EK zu Hamiltonkreis HK 2 4 EK 3 (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 5 bestimme Eulerkreis EK auf T 0 (alle Knoten haben geraden Grad) 6 1 wandle EK zu Hamiltonkreis HK 2 4 HK 3 (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Algorithmus) (Christofides-Heuristik) Graph G = (V , E ) (vollständig, ungerichtet) bestimme MST T bestimme Knoten U mit ungeradem Grad in T finde minimales perfektes Matching M auf (U , E ) (alle Knoten gematcht, Summe der Gewichte der Matchingkanten minimal) füge Kanten M zu T → T 0 5 bestimme Eulerkreis EK auf T 0 (alle Knoten haben geraden Grad) 6 1 wandle EK zu Hamiltonkreis HK 2 4 HK Weglänge 6 3 (Laufzeit durch Matching dominiert, O(n3 )) 8 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 5 6 1 3 2 w (OPT ) 2 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 4 HK 3 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 5 6 1 3 2 w (OPT ) 2 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II 4 EK 3 Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) T0 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) T ,M 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) T ,M 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) OP T 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) OP T 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) V \U ⇒ w (HK ) ≤ 32 w (OPT ) OP T 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) U HK 0 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) M1 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) M2 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) M2 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) M2 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) M2 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Minimum Metric TSP 3/2-Approximation (Beweis) (Christofides-Heuristik) Abschätzungen: (analog zu vorherigem Beweis) ⇒ w (HK ) ≤ w (EK ) = w (T 0 ) = w (T ) + w (M ) ≤ w (OPT ) + w (M ) Bestimmung von w (M ): sei HK 0 Hamiltonkreis auf U (erzeugt durch Überspringen aller Knoten V \ U in OPT ) definiere alternierende perfekte Matchings M1 , M2 auf HK 0 (existiert, da |U | gerade, HK 0 = M1 ∪ M2 ) ⇒ w (M ) ≤ w (M1 ), w (M ) ≤ w (M2 ) (M min. Matching!) ⇒ 2 · w (M ) ≤ w (M1 ) + w (M2 ) = w (HK 0 ) ≤ w (OPT ) ⇒ w (HK ) ≤ 32 w (OPT ) Existiert immer perfektes Matching M? M2 (Zeige, dass |U | immer gerade ist!) 9 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) |IS| = 4 optimal Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) |IS| = 4 optimal Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ IS G (berechnet offensichtlich ein Independent Set) Hat A einen Approximationsfaktor ρ = 2? 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ G (berechnet offensichtlich ein Independent Set) Hat A einen Approximationsfaktor ρ = 2? 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ G (berechnet offensichtlich ein Independent Set) Hat A einen Approximationsfaktor ρ = 2? 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ |IS| = 1 schlecht IS G (berechnet offensichtlich ein Independent Set) Hat A einen Approximationsfaktor ρ = 2? 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Maximum Independent Set (NP-hart) Problemstellung Gegeben ungerichteter Graph G = (V , E ) Bestimme maximale Menge IS ⊆ V , so dass keine 2 Knoten aus IS benachbart sind (IS ist dann Independent Set) Approximationsalgorithmus A Sei IS = ∅ Wähle Knoten K beliebig Füge K zu IS hinzu Entferne K und alle Nachbarn aus G Wiederhole bis V = ∅ |IS| = 1 schlecht IS G (berechnet offensichtlich ein Independent Set) Hat A einen Approximationsfaktor ρ = 2? 10 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (Nicht mal in APX !) Institut für Theoretische Informatik Algorithmik II Approximationsalgorithmen Zusammenfassung Wissenswert (nicht erschöpfend!) Approximationsfaktor ρ APX, PTAS, FPTAS, pseudopolynomiell es gibt nicht gut approximierbare Probleme (z.B. minimum TSP) Typische Fragestellungen Zu welcher Klasse gehört Algorithmus X mit T (n, ε), ρ(n, ε)? Zeigen/Widerlegen Sie Approximationsfaktor ρ für Algorithmus X . (Bestimmen Sie einen Algorithmus mit Approximationsfaktor ρ) 11 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen fixed parameter tractable (FPT) Warum Probleme parametrisieren? es gibt “schwierige” Probleme (z.B. Minimum Independent Set) → allgemeine Instanzen haben zu lange Berechnungszeit Kann man Spezialfälle eventuell effizient berechnen? → Identifizierung zusätzlicher Parameter k der Problemstellung → falls “Komplexität” in diesen Parametern k steckt, effiziente Lösungen für k = const . ! schwierig 12 finde min. Anzahl Leute, so dass alle Leute direkt finde max. k Leute, so dass alle Leute direkt oder über einen Freund erreicht werden können oder über einen Freund erreicht werden können Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II einfach Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Definition Ein Problem heisst fixed parameter tractable, wenn es eine Laufzeit T (n, k ) = O(f (k ) · p(n)) hat, mit f (·) berechenbar, p (·) Polynom. (f (·) darf nicht von n abhängen und p (·) nicht von k ; häufig Entscheidungsprobleme) Beispiele: f (n , k ) = (n + n 2 ) · e k f (n, k ) = k · log n f (n , j , k ) = k j · n 2 f (n , k ) = k n f (n , k ) = n + k 13 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Definition Ein Problem heisst fixed parameter tractable, wenn es eine Laufzeit T (n, k ) = O(f (k ) · p(n)) hat, mit f (·) berechenbar, p (·) Polynom. (f (·) darf nicht von n abhängen und p (·) nicht von k ; häufig Entscheidungsprobleme) Beispiele: f (n , k ) = (n + n 2 ) · e k f (n, k ) = k · log n f (n , j , k ) = k j · n 2 f (n , k ) = k n f (n , k ) = n + k 13 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (FPT) Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Definition Ein Problem heisst fixed parameter tractable, wenn es eine Laufzeit T (n, k ) = O(f (k ) · p(n)) hat, mit f (·) berechenbar, p (·) Polynom. (f (·) darf nicht von n abhängen und p (·) nicht von k ; häufig Entscheidungsprobleme) Beispiele: f (n , k ) = (n + n 2 ) · e k f (n, k ) = k · log n f (n , j , k ) = k j · n 2 f (n , k ) = k n f (n , k ) = n + k 13 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (FPT) (FPT) Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Definition Ein Problem heisst fixed parameter tractable, wenn es eine Laufzeit T (n, k ) = O(f (k ) · p(n)) hat, mit f (·) berechenbar, p (·) Polynom. (f (·) darf nicht von n abhängen und p (·) nicht von k ; häufig Entscheidungsprobleme) Beispiele: f (n , k ) = (n + n 2 ) · e k f (n, k ) = k · log n f (n , j , k ) = k j · n 2 f (n , k ) = k n f (n , k ) = n + k 13 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (FPT) (FPT) (FPT) Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Definition Ein Problem heisst fixed parameter tractable, wenn es eine Laufzeit T (n, k ) = O(f (k ) · p(n)) hat, mit f (·) berechenbar, p (·) Polynom. (f (·) darf nicht von n abhängen und p (·) nicht von k ; häufig Entscheidungsprobleme) Beispiele: f (n , k ) = (n + n 2 ) · e k f (n, k ) = k · log n f (n , j , k ) = k j · n 2 f (n , k ) = k n f (n , k ) = n + k 13 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (FPT) (FPT) (FPT) (nicht FPT) Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Definition Ein Problem heisst fixed parameter tractable, wenn es eine Laufzeit T (n, k ) = O(f (k ) · p(n)) hat, mit f (·) berechenbar, p (·) Polynom. (f (·) darf nicht von n abhängen und p (·) nicht von k ; häufig Entscheidungsprobleme) Beispiele: f (n , k ) = (n + n 2 ) · e k f (n, k ) = k · log n f (n , j , k ) = k j · n 2 f (n , k ) = k n f (n, k ) = n + k ∈ O(nk + k ) = O((n + 1)k ) 13 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II (FPT) (FPT) (FPT) (nicht FPT) (FPT) Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Techniken Tiefenbeschränkte Suche erschöpfendes Aufzählen und Testen aller Möglichkeiten → mit geeignetem Suchbaum beschränkter Tiefe (k gibt Hinweis, wie man in die Tiefe geht muss) Kernbildung Probleminstanz auf (schwierigen) Problemkern reduzieren Problemkern mit anderer Technik lösen K I Weitere Techniken Farbkodierung, induktive Kompression, Baumzerlegung, . . . 14 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Einschub Rekurrenzrelationen – Zusammenfassung T (n, k ) = a1 T (n, k − k1 ) + a2 T (n, k − k2 ) + . . . + aj T (n, k − kj ) {+f (n)} (ki ≤ kj , i < j) Verzweigungsvektor (ai = 1, ohne f (n)) hk1 , k2 , . . . , kj i ⇒ tabelliert, Basis α aus Tabelle ablesen ⇒ Lösung T (n, k ) = O(αk ) (= ˆ Größe des Ausführungsbaums) erzeugendes Polynom (ai beliebig, ohne f (n)) Ansatz: T (n, k ) = x k ⇒ x k − a1 x k −k1 − a2 x k −k2 − . . . − aj x k −kj = 0 (eingesetzt) ⇒ bestimme betragsmäßig größte Nullstelle α (mit Vielfachheit m) ⇒ Lösung T (n, k ) = O(k m−1 αk ) inhomogene Rekurrenzrelation (f (n) =ˆ Arbeit in jedem Knoten) 15 Löse homogene Rekurrenz (ohne f (n)) → T 0 (n, k ) = r (k ) ⇒ Lösung T (n, k ) = O(r (k ) · f (n)) Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Einschub Rekurrenzrelationen – Zusammenfassung T (n, k ) = a1 T (n, k − k1 ) + a2 T (n, k − k2 ) + . . . + aj T (n, k − kj ) {+f (n)} (ki ≤ kj , i < j) Verzweigungsvektor (ai = 1, ohne f (n)) hk1 , k2 , . . . , kj i ⇒ tabelliert, Basis α aus Tabelle ablesen ⇒ Lösung T (n, k ) = O(αk ) (= ˆ Größe des Ausführungsbaums) erzeugendes Polynom (ai beliebig, ohne f (n)) Ansatz: T (n, k ) = x k ⇒ x k − a1 x k −k1 − a2 x k −k2 − . . . − aj x k −kj = 0 (eingesetzt) ⇒ bestimme betragsmäßig größte Nullstelle α (mit Vielfachheit m) ⇒ Lösung T (n, k ) = O(k m−1 αk ) inhomogene Rekurrenzrelation (f (n) =ˆ Arbeit in jedem Knoten) 15 Löse homogene Rekurrenz (ohne f (n)) → T 0 (n, k ) = r (k ) ⇒ Lösung T (n, k ) = O(r (k ) · f (n)) Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Einschub Rekurrenzrelationen – Verzweigungsvektor T (n, k ) = a1 T (n, k − k1 ) + a2 T (n, k − k2 ) + . . . + aj T (n, k − kj ) (ki ≤ kj , i < j) Verzweigungsvektor (ai = 1) hk1 , k2 , . . . , kj i ⇒ tabelliert, Basis α aus Tabelle ablesen ⇒ Lösung T (n, k ) = O(αk ) (=ˆ Größe des Ausführungsbaums) Beispiel T (n , k ) = T (n , k − 1) + T (n , k − 1) ⇒ Verzweigungsvektor h1, 1i ⇒ nach Tabelle α = 2 ⇒ T (n, k ) = O(2k ) 16 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II k=3 Verzweigungsgrad α = 2 Institut für Theoretische Informatik Algorithmik II Einschub Rekurrenzrelationen – erzeugendes Polynom T (n, k ) = a1 T (n, k − k1 ) + a2 T (n, k − k2 ) + . . . + aj T (n, k − kj ) (ki ≤ kj , i < j) erzeugendes Polynom (ai beliebig) Ansatz: T (n, k ) = x k ⇒ x k − a1 x k −k1 − a2 x k −k2 − . . . − aj x k −kj = 0 (eingesetzt) ⇒ bestimme betragsmäßig größte Nullstelle α (mit Vielfachheit m) ⇒ Lösung T (n, k ) = O(k m−1 αk ) Beispiel T (n , k ) = T (n , k − 1) + T (n , k − 1) ⇒ x k = x k −1 + x k −1 ⇔ x k −1 (x − 2 ) = 0 ⇒ größte Nullstelle: x = 2 ⇒ T (n, k ) = O(2k ) 17 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II k=3 Verzweigungsgrad α = 2 Institut für Theoretische Informatik Algorithmik II Einschub Rekurrenzrelationen – Inhomogenität T (n, k ) = a1 T (n, k − k1 ) + a2 T (n, k − k2 ) + . . . + aj T (n, k − kj ) + f (n) (ki ≤ kj , i < j) inhomogene Rekurrenzrelation (f (n) =ˆ Arbeit in jedem Knoten) Löse homogene Rekurrenz (ohne f (n)) → T 0 (n, k ) = r (k ) ⇒ Lösung T (n, k ) = O(r (k ) · f (n)) Beispiel T (n , k ) = T (n , k − 1) + T (n , k − 1) + n ⇒ homogene Lösung T 0 (n, k ) = 2k ⇒ T (n, k ) = O(2k · n) Test: O(2k · n) = O(2k −1 · n + 2k −1 · n + n) (Lösung eingesetzt) ⇒ O(2k ) = O(2k −1 + 2k −1 + 1) (kürzen von n) ⇒ O(2k ) = O(2k −1 + 2k −1 ) (O Kalkül ausnützen) 18 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Schiebepuzzle Problemstellung gegeben n × n Schiebepuzzle, k ∈ N entscheide, ob das Puzzle in ≤ k Zügen gelöst werden kann das Puzzle ist gelöst, wenn die Teile sortiert sind Loch wird pro Zug eine Position horizontal oder vertikal verschoben Algorithmus A es gibt ≤ 4 Möglichkeiten in jedem Zug, k Züge baue Suchbaum (Höhe k , Verzweigungsgrad ≤ 4) → Baumgröße O(4k ) teste jeden Knoten auf korrekte Lösung → Aufwand O(poly (n)) ⇒ Gesamtaufwand: O(4k poly (n)) ⇒ FPT 24 8 13 12 20 11 2 17 21 7 15 14 19 5 6 10 3 9 1 4 23 11 18 22 (T (n, k ) = 4T (n, k − 1) + poly (n)) 19 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Schiebepuzzle Problemstellung gegeben n × n Schiebepuzzle, k ∈ N entscheide, ob das Puzzle in ≤ k Zügen gelöst werden kann das Puzzle ist gelöst, wenn die Teile sortiert sind Loch wird pro Zug eine Position horizontal oder vertikal verschoben Algorithmus A es gibt ≤ 4 Möglichkeiten in jedem Zug, k Züge baue Suchbaum (Höhe k , Verzweigungsgrad ≤ 4) → Baumgröße O(4k ) teste jeden Knoten auf korrekte Lösung → Aufwand O(poly (n)) ⇒ Gesamtaufwand: O(4k poly (n)) ⇒ FPT (T (n, k ) = 4T (n, k − 1) + poly (n)) 19 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II hoch runter hoch rechts runter rechts links hoch runter rechts links links hoch runter rechts links hoch runter rechts links Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Schiebepuzzle Beobachtung Loch bewegt sich maximal k in eine Richtung ⇒ Nur markierte Stellen können sich ändern ⇒ äußere Stellen bereits müssen korrekt sein! Algorithmus B Prüfe äußere Stellen auf Korrektheit falls nicht korrekt, gebe NEIN zurück sonst, entferne äußere Stellen, nenne innere passend um Wende Algorithmus A auf reduziertem Problem an (reduzierte Größe ist 2(k + 1) · 2(k + 1) = O(k 2 )) Laufzeit O(poly (n)) für Überprüfung und Umbenennung O(4k poly (k )) für Algorithmus A ⇒ Gesamtlaufzeit: O(4k poly (k ) + poly (n)) ⇒ FPT 20 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Schiebepuzzle Beobachtung Loch bewegt sich maximal k in eine Richtung k ⇒ Nur markierte Stellen können sich ändern ⇒ äußere Stellen bereits müssen korrekt sein! Algorithmus B Prüfe äußere Stellen auf Korrektheit falls nicht korrekt, gebe NEIN zurück sonst, entferne äußere Stellen, nenne innere passend um Wende Algorithmus A auf reduziertem Problem an (reduzierte Größe ist 2(k + 1) · 2(k + 1) = O(k 2 )) Laufzeit O(poly (n)) für Überprüfung und Umbenennung O(4k poly (k )) für Algorithmus A ⇒ Gesamtlaufzeit: O(4k poly (k ) + poly (n)) ⇒ FPT 20 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Schiebepuzzle Beobachtung Loch bewegt sich maximal k in eine Richtung k ⇒ Nur markierte Stellen können sich ändern ⇒ äußere Stellen bereits müssen korrekt sein! Algorithmus B Prüfe äußere Stellen auf Korrektheit falls nicht korrekt, gebe NEIN zurück sonst, entferne äußere Stellen, nenne innere passend um Wende Algorithmus A auf reduziertem Problem an (reduzierte Größe ist 2(k + 1) · 2(k + 1) = O(k 2 )) Laufzeit O(poly (n)) für Überprüfung und Umbenennung O(4k poly (k )) für Algorithmus A ⇒ Gesamtlaufzeit: O(4k poly (k ) + poly (n)) ⇒ FPT 20 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Schiebepuzzle Beobachtung Loch bewegt sich maximal k in eine Richtung k ⇒ Nur markierte Stellen können sich ändern ⇒ äußere Stellen bereits müssen korrekt sein! Algorithmus B Prüfe äußere Stellen auf Korrektheit falls nicht korrekt, gebe NEIN zurück sonst, entferne äußere Stellen, nenne innere passend um Wende Algorithmus A auf reduziertem Problem an (reduzierte Größe ist 2(k + 1) · 2(k + 1) = O(k 2 )) Laufzeit O(poly (n)) für Überprüfung und Umbenennung O(4k poly (k )) für Algorithmus A ⇒ Gesamtlaufzeit: O(4k poly (k ) + poly (n)) ⇒ FPT 20 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Problemstellung gegeben ungerichteter Graph G = (V , E ), k ∈ N existiert S ⊂ V , |S | ≤ k , so dass (V \ S , E ) einen Clustergraph ist? (Clustergraph = ˆ Graph bestehend aus isolierten Cliquen) Beobachtung Graph ist Clustergraph gdw. alle kürzesten Pfade 2 Knoten besitzen 21 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Problemstellung gegeben ungerichteter Graph G = (V , E ), k ∈ N existiert S ⊂ V , |S | ≤ k , so dass (V \ S , E ) einen Clustergraph ist? (Clustergraph = ˆ Graph bestehend aus isolierten Cliquen) Beobachtung Graph ist Clustergraph gdw. alle kürzesten Pfade 2 Knoten besitzen 21 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Problemstellung gegeben ungerichteter Graph G = (V , E ), k ∈ N existiert S ⊂ V , |S | ≤ k , so dass (V \ S , E ) einen Clustergraph ist? (Clustergraph = ˆ Graph bestehend aus isolierten Cliquen) Beobachtung Graph ist Clustergraph gdw. alle kürzesten Pfade 2 Knoten besitzen 21 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Problemstellung gegeben ungerichteter Graph G = (V , E ), k ∈ N existiert S ⊂ V , |S | ≤ k , so dass (V \ S , E ) einen Clustergraph ist? (Clustergraph = ˆ Graph bestehend aus isolierten Cliquen) Beobachtung Graph ist Clustergraph gdw. alle kürzesten Pfade 2 Knoten besitzen 21 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Problemstellung gegeben ungerichteter Graph G = (V , E ), k ∈ N existiert S ⊂ V , |S | ≤ k , so dass (V \ S , E ) einen Clustergraph ist? (Clustergraph = ˆ Graph bestehend aus isolierten Cliquen) Beobachtung Graph ist Clustergraph gdw. alle kürzesten Pfade 2 Knoten besitzen 21 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Problemstellung gegeben ungerichteter Graph G = (V , E ), k ∈ N existiert S ⊂ V , |S | ≤ k , so dass (V \ S , E ) einen Clustergraph ist? (Clustergraph = ˆ Graph bestehend aus isolierten Cliquen) Beobachtung Graph ist Clustergraph gdw. alle kürzesten Pfade 2 Knoten besitzen 21 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Problemstellung gegeben ungerichteter Graph G = (V , E ), k ∈ N existiert S ⊂ V , |S | ≤ k , so dass (V \ S , E ) einen Clustergraph ist? (Clustergraph = ˆ Graph bestehend aus isolierten Cliquen) Beobachtung Graph ist Clustergraph gdw. alle kürzesten Pfade 2 Knoten besitzen 21 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 k Laufzeit Baumgröße O(3k ) (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) P 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II G Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) k−1 (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) k−1 (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) k−1 (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) P k−1 (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) k−2 (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) k−2 (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) k−2 (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Parametrisierte Algorithmen Vertex Cluster Deletion Algorithmus Für k < 0, gebe NEIN zurück Suche in O(n3 ) nach kürzestem Pfad P mit 3 Knoten existiert keiner, gebe JA zurück sonst, verzweige 3× durch Löschen je eines Knotens von P aus G, wiederhole rekursiv mit k → k − 1 Laufzeit Baumgröße O(3k ) S (Suchbaum mit Höhe k , Verzweigungsgrad ≤ 3) Arbeit pro Knoten O(poly (n)) ⇒ Gesamtlaufzeit: O(3k poly (n)) ⇒ FPT (T (n, k ) = 3T (n, k − 1) + O(n3 )) G 22 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Einschub Hypergraphen Definition: Graph G = (V , E ) mit Knoten V , Kanten E E besteht aus 2-elementigen Teilmengen von V Definition: Hypergraph H = (V , E ) mit Knoten V , Hyperkanten E E besteht aus beliebigen Teilmengen von V e1 a e2 c e3 b (Vertex Cover, Hitting Set, . . . auch für Hypergraphen definiert) Beispiele für Hypergraphen: H = ({a, . . . , h}, {e1 , . . . , e5 }) mit e1 = { a , b , c } , e2 = { b , c , d } , e3 = { c , e , f } , e4 = { d , f } , e5 = { d , g } V= ˆ Liste and Autoren, E= ˆ Liste an Publikationen (definiert über Autoren) → H = (V , E ) = ˆ Hyper-Multigraph 23 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Einschub Hypergraphen Definition: Graph G = (V , E ) mit Knoten V , Kanten E E besteht aus 2-elementigen Teilmengen von V Definition: Hypergraph H = (V , E ) mit Knoten V , Hyperkanten E E besteht aus beliebigen Teilmengen von V a c e1 e2 e3 b (Vertex Cover, Hitting Set, . . . auch für Hypergraphen definiert) Beispiele für Hypergraphen: H = ({a, . . . , h}, {e1 , . . . , e5 }) mit e1 = { a , b , c } , e2 = { b , c , d } , e3 = { c , e , f } , e4 = { d , f } , e5 = { d , g } V= ˆ Liste and Autoren, E= ˆ Liste an Publikationen (definiert über Autoren) → H = (V , E ) = ˆ Hyper-Multigraph 23 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Einschub Hypergraphen Definition: Graph G = (V , E ) mit Knoten V , Kanten E E besteht aus 2-elementigen Teilmengen von V e1 Definition: Hypergraph H = (V , E ) mit Knoten V , Hyperkanten E E besteht aus beliebigen Teilmengen von V (Vertex Cover, Hitting Set, . . . auch für Hypergraphen definiert) h b e2 a c e e3 d f e4 e5 g Beispiele für Hypergraphen: H = ({a, . . . , h}, {e1 , . . . , e5 }) mit e1 = { a , b , c } , e2 = { b , c , d } , e3 = { c , e , f } , e4 = { d , f } , e5 = { d , g } V= ˆ Liste and Autoren, E= ˆ Liste an Publikationen (definiert über Autoren) → H = (V , E ) = ˆ Hyper-Multigraph 23 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Einschub Hypergraphen Definition: Graph G = (V , E ) mit Knoten V , Kanten E E besteht aus 2-elementigen Teilmengen von V h b Definition: Hypergraph H = (V , E ) mit Knoten V , Hyperkanten E E besteht aus beliebigen Teilmengen von V (Vertex Cover, Hitting Set, . . . auch für Hypergraphen definiert) e1 a e2 d c e e4 e3 f e5 g Beispiele für Hypergraphen: H = ({a, . . . , h}, {e1 , . . . , e5 }) mit e1 = { a , b , c } , e2 = { b , c , d } , e3 = { c , e , f } , e4 = { d , f } , e5 = { d , g } V= ˆ Liste and Autoren, E= ˆ Liste an Publikationen (definiert über Autoren) → H = (V , E ) = ˆ Hyper-Multigraph 23 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II parametrisierte Algorithmen Zusammenfassung Wissenswert (nicht erschöpfend!) fixed parameter tractable Lösungsansätze: Tiefenbeschränkte Suchbäume, Kernbildung Typische Fragestellungen Ist ein Algorithmus mit Laufzeit T FPT? Geben Sie einen FPT Algorithmus für Problem X an (meist reicht tiefenbeschränkte Suche) 24 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Grundlagen Information kommt nach und nach an Entscheidungen / Berechnungen mit beschränkter Information (bevor neue Information ankommen kann → Unterschied zu externen Algorithmen) → normalerweise supoptimale Lösungen Beispiele Ski Rental Problem Job-Scheduling / Memory-Paging Streaming Algorithmen (z.B. Clustering, k -median Problem) Suche in Labyrinthen / Routing in Kommunikationsnetzen ... 25 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Gütemaß Ein Online Algorithmus ALG hat einen kompetitiven Faktor c = sup I ALG (I ) OPT (I ) mit OPT optimaler Offline Algorithmus, I Probleminstanz (hier für Minimierungsprobleme; “Approximationsfaktor” c) Einige Eigenschaften c = ∞ möglich −→ Online Algorithmus beliebig schlecht c = const . (normal nicht von Problemgröße abhängig) aber ev. abhängig von weiteren Problemparametern 26 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Ski Rental Problem Generische Problembeschreibung kostenpflichtige Nutzung einer Leistung (alle Kosten > 0) einmalige Kosten K für unbeschränkte Nutzung oder Kosten k < K für jede Nutzung Anzahl Nutzungen n unbekannt ⇒ (Wann) Soll man K für unbeschränkte Nutzung zahlen? Nomenklatur Instanz I durch Anzahl Nutzungen n bestimmt OPT (I ), ALG (I ) = ˆ Gesamtkosten 27 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) ⇒ c= 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? Kosten nie K zahlen ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) sofort K zahlen K k 1 K/k n ⇒ c= 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? Kosten nie K zahlen ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) sofort K zahlen K OPT k 1 K/k n ⇒ c= 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? Kosten nie K zahlen ALG (n) allgemein gilt c = supn OPT (n) ALG, x = 2 n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) sofort K zahlen K OPT k 1 K/k n ⇒ c= 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? Kosten nie K zahlen ALG (n) allgemein gilt c = supn OPT (n) ALG, x = 2 n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) sofort K zahlen K OPT k 1 K/k n ⇒ c=? 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? ALG(n) OP T (n) ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) 1 n < x, nk < K n ⇒ c=? 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? ALG(n) OP T (n) ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (x−1)k K +1 (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) 1 n < x, nk < K n ≥ x, nk ≥ K n ⇒ c=? 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? K−k xk +1 ALG(n) OP T (n) ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (x−1)k K +1 (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) 1 x≤ n=x n= K k K k n ⇒ c=? 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? K−k xk +1 ALG(n) OP T (n) ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (x−1)k K +1 (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) 1 x> n= K k n=x K k n ⇒ c=? 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? K−k xk +1 ALG(n) OP T (n) ALG (n) allgemein gilt c = supn OPT (n) n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = (x−1)k K +1 (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) ( ⇒ c= 28 K −k xk + 1 (x −1)k +1 K Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II x≤ x≤ 1 x> n=x n= K k K k K k n K k sonst Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? c ALG (n) allgemein gilt c = supn OPT (n) K k n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = 2− k K (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) ( ⇒ c= 28 K −k xk + 1 (x −1)k +1 K Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II x≤ 1 K k x K k sonst Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie Strategie: Wähle direkt vor jeder Nutzung per Zufall, ob K bezahlt wird. Frage: Wie groß ist der kompetitive Faktor c? c ALG (n) allgemein gilt c = supn OPT (n) K k n·k n·k < K K sonst n·k n<x ALG (n) = (x − 1) · k + K sonst OPT (n) = 2− k K (zahle K vor x-ter Nutzung, Zufallsvariable x ≥ 1) ( ⇒ c= K −k xk + 1 (x −1)k +1 K x≤ K k sonst K k 1 x Sonderfall: Bezahle K , nutze nie! ⇒ ALG (n) = K ⇒ c=∞ (entspricht x = 0) 28 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie ( Es gilt c = K −k xk + 1 (x −1)k +1 K x≤ K k sonst Zufallsvariable x: x = ∑i∞=0 (1 − p )i · p · i = 1 p (mit p Wahrscheinlichkeit K zu bezahlen) Frage: Für welche Wahrscheinlichkeit p ist c minimal? ⇒ für x = ⇒ p = Kk K k ist c minimal mit c = 2 − k K Zahlenbeispiel: K = 100, k = 10 ⇒ c = 1.9, p = 90% 29 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie ( Es gilt c = K −k xk + 1 (x −1)k +1 K x≤ K k sonst Zufallsvariable x: x = ∑i∞=0 (1 − p )i · p · i = 1 p (mit p Wahrscheinlichkeit K zu bezahlen) Frage: Für welche Wahrscheinlichkeit p ist c minimal? ⇒ für x = ⇒ p = Kk K k ist c minimal mit c = 2 − k K Zahlenbeispiel: K = 100, k = 10 ⇒ c = 1.9, p = 90% 29 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie ( Es gilt c = K −k xk + 1 (x −1)k +1 K x≤ K k sonst Zufallsvariable x: x = ∑i∞=0 (1 − p )i · p · i = 1 p (mit p Wahrscheinlichkeit K zu bezahlen) Frage: Für welche Wahrscheinlichkeit p ist c minimal? ⇒ für x = ⇒ p = Kk K k ist c minimal mit c = 2 − k K Zahlenbeispiel: K = 100, k = 10 ⇒ c = 1.9, p = 90% 29 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Randomisierte Ski Rental Strategie ( Es gilt c = K −k xk + 1 (x −1)k +1 K x≤ K k sonst Zufallsvariable x: x = ∑i∞=0 (1 − p )i · p · i = 1 p (mit p Wahrscheinlichkeit K zu bezahlen) Frage: Für welche Wahrscheinlichkeit p ist c minimal? ⇒ für x = ⇒ p = Kk K k ist c minimal mit c = 2 − k K Zahlenbeispiel: K = 100, k = 10 ⇒ c = 1.9, p = 90% 29 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Doubling Strategie Doubling Strategie für Online/Offline Approximationsalgorithmen Idee schätze Lösung konservativ ab (eher zu kleine Schätzung) prüfe, ob Problem gelöst falls nicht erfolgreich, vergrößere Schätzung geometrisch (z.B. verdoppeln, verdreifachen, . . . ) 30 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Problembeschreibung Unbekannter ganzzahliger Zielwert U > 0 Bieter gibt eine Reihe an ganzzahligen Geboten (bi ) ab bis bk ≥ U Bieter muss Summe der Gebote ∑ki=0 bi bezahlen ⇒ Wie kann der Bieter möglichst geschickt vorgehen? Nomenklatur Instanz I durch Reihe (bi ) beschrieben OPT (I ), ALG (I ) = ˆ summierten Kosten 31 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Optimaler Offline Algorithmus kennt den Zielwert U folglich bietet er direkt b0 = U ⇒ OPT = U Kompetitiver Faktor b0 + b1 + · · · + bk : bk − 1 < U ≤ bk c = sup U k ,U Strategien sind z.B. (a) bi = i · x, (b) bi = a · x i 32 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x b0 +1 +1 ≈ U x +2 ·x U Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x +1 +1 ≈ U x +2 ·x U b1 x Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x +1 +1 ≈ U x +2 ·x U b2 2x Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x +1 +1 ≈ U x +2 ·x U b3 3x Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x +1 +1 ≈ U x +2 ·x U Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ b4 4x Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x +1 +1 ≈ U x +2 ·x Gebote U bk−1 (k − 1)x Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x +1 +1 ≈ U x +2 ·x U Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ bk kx Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x b0 +1 +1 ≈ U x +2 ·x U A bk kx Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x b0 +1 +1 ≈ U x +2 ·x U Fläche A ≈ 12 kx · (k + 1) A bk kx Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x b0 +1 +1 ≈ U x +2 ·x U Fläche A ≈ 12 kx · (k + 1) A bk kx Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (a) bi = i · x (x > 0) worst case: bk −1 = (k − 1) · x = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = Gebote ⇒ ALG = ALG ⇒ OPT = ⇒ c=∞ U −ε x ∑ki=0 i · x = 12 (k + 1)k 1 U U 2U ( x + 2)( x + 1) · x b0 +1 +1 ≈ U x +2 ·x (unabhängig von x schlecht) U Fläche A ≈ 12 kx · (k + 1) A bk kx Kosten 33 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U b0 a·(x k +1 −1) x −1 = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 U ax0 Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U a·(x k +1 −1) x −1 = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 U b1 ax1 Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U a·(x k +1 −1) x −1 = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 U b2 ax2 Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U a·(x k +1 −1) x −1 = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 U bk−1 axk−1 Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 − a (x −1)U = x −1 = +2 a·( Ua x 2 −1) x −1 U Gebote ⇒ c= = x2 x −1 a·(x k +1 −1) x −1 U a·(x logx a +2 −1) U a bk axk Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U a·(x k +1 −1) x −1 b0 bk = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 U A axk Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U a·(x k +1 −1) x −1 b0 bk = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 U Fläche A ≈ a · (xk − 1) · ln x A axk Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U a·(x k +1 −1) x −1 b0 bk = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 U Fläche A ≈ a · (xk − 1) · ln x A axk Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Analyse: (b) bi = a · x i (x > 1) worst case: bk −1 = a · x k −1 = U − ε (k > 0, ε → 0) ⇒ Anzahl Gebote: k + 1 = logx ( Ua−ε ) + 1 + 1 ≈ logx ⇒ ALG = ∑ki=0 a · x i = ⇒ ALG OPT x2 x −1 Gebote ⇒ c= = x2 x −1 − a (x −1)U a·(x k +1 −1) x −1 b0 bk = U a·(x logx a +2 −1) x −1 = U a +2 a·( Ua x 2 −1) x −1 (minimal für x = 2 ⇒ c = 4) U Fläche A ≈ a · (xk − 1) · ln x A axk Kosten 34 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Online Bidding Beweis, dass c = 4 untere Schranke ist Definiere: sk = ∑ki=0 bi s yk = ks+1 k Annahme: es existiert c < 4 mit sk U ⇒ sk +1 < c · bk = c (sk − sk −1 ) y ⇒ yk < c (1 − yk1−1 ) < c ( k4−1 ) = · yk −1 c 4 ⇒ yk < ( 4c )1 · yk −1 < · · · < ( 4c )k · y0 ⇒ yk < ( 4c )k · bs10 < ( 4c )k · c ⇒ sk +1 < ( 4c )k · c · sk < c f.a. k , U (U ≈ bk −1 ) (geteilt durch sk , mit 1 − (mit y0 = s1 s0 = s1 b0 1 x < x4 ) und Annahme) k ⇒ sk +1 < sk für c < 4 k +1 → 4 (k → ∞) Widerspruch! Annahme falsch. 35 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Online Algorithmen Zusammenfassung Wissenswert (nicht erschöpfend!) kompetitiver Faktor c Doubling Technik Ski Rental Problem Typische Fragestellungen Gegeben sei Algorithmus X . Wie groß ist sein kompetitiver Faktor? Geben Sie einen Algorithmus mit kompetitivem Faktor c an. Bestimme untere Schranke für kompetitiven Faktor c von Problem P. 36 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Ende! Feierabend! 37 Kobitzsch, Schieferdecker: Übung 8 – Algorithmen II Institut für Theoretische Informatik Algorithmik II