Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Wiederholung TSP: Kurz: TSP kann mit relativer Güte 3/2 1/n approximiert werden Kurz: PTAS für euklidisches TSP Nichtapproximierbarkeit mit konstanter relativer Güte Geglättete Analyse für 2-Opt-Heuristik (lokale Suche) 2 Henning Meyerhenke:
Vorlesung 18 Programm: Packungsprobleme und deren Approximation 3 Henning Meyerhenke:
Inhalt Approximation Packungsprobleme Greedy-Heuristiken Ein asymptotisches Approximationsschema 4 Henning Meyerhenke:
Modellierungsaufgabe Sie sollen für eine Tischlerei folgende Aufgabe modellieren (und lösen): Für einen Auftrag muss die Tischlerei viele kurze Balken mit vorgegebenen Längen < 10m liefern. Vom Großhandel kann man Holzbalken der Länge 10m zum Preis von 5 EUR pro Stück kaufen. Diese Balken werden für den Auftrag in kleinere Stücke gesägt. [http://www.muensterschezeitung.de/storage/pic/ mdhl/artikelbilder/lokales/mz-mlz-evz-gz/mslo/ms_ s/2849419_1_m3_bauspieltreff1.jpg?version= 1322759088] 5 Henning Meyerhenke:
Modellierungsaufgabe Sie sollen für eine Tischlerei folgende Aufgabe modellieren (und lösen): Für einen Auftrag muss die Tischlerei viele kurze Balken mit vorgegebenen Längen < 10m liefern. Vom Großhandel kann man Holzbalken der Länge 10m zum Preis von 5 EUR pro Stück kaufen. Diese Balken werden für den Auftrag in kleinere Stücke gesägt. Dabei soll möglichst wenig Verschnitt anfallen. Denn: Man will möglichst wenig lange Balken einkaufen müssen. [http://www.muensterschezeitung.de/storage/pic/ mdhl/artikelbilder/lokales/mz-mlz-evz-gz/mslo/ms_ s/2849419_1_m3_bauspieltreff1.jpg?version= 1322759088] 5 Henning Meyerhenke:
Bin-Packing (Behälterproblem) formal OBdA skalieren wir die langen Balken auf Länge 1 (in der Abbildung weiterhin 10). Instanz: Liste nichtnegativer Zahlen a 1,..., a n 1. Aufgabe: Bestimme k N und eine Zuordnung f : {1,..., n} {1,..., k} mit i:f (i)=j a i 1 für alle j {1,..., k}, die k minimiert. [http://maniyasblog.files.wordpress.com/2008/10/ binpacking.jpg?w=298&h=300] 6 Henning Meyerhenke:
Komplexität Theorem Das folgende Problem ist N P-vollständig: Entscheide für eine gegebene Instanz I von BIN-PACKING, ob es eine Lösung für I mit zwei Behältern gibt. Corollary Falls P = N P, dann gibt es keinen Approximationsalgorithmus für BIN-PACKING mit polynomieller Laufzeit und relativer Güte < 3/2. Frage: Warum? 1 oder: stark 7 Henning Meyerhenke:
Komplexität Theorem Das folgende Problem ist N P-vollständig: Entscheide für eine gegebene Instanz I von BIN-PACKING, ob es eine Lösung für I mit zwei Behältern gibt. Corollary Falls P = N P, dann gibt es keinen Approximationsalgorithmus für BIN-PACKING mit polynomieller Laufzeit und relativer Güte < 3/2. Frage: Warum? Theorem Das Entscheidungsproblem BIN-PACKING ist streng 1 N P-vollständig, d.h. das Problem bleibt auch bei unärer Kodierung N P-vollständig. 1 oder: stark 7 Henning Meyerhenke:
Greedy-Heuristiken Next-Fit-Algorithmus 1: function NEXTFIT(I = (a 1,..., a n )) 2: setze k := 1 Anzahl Behälter 3: setze S := 0 Füllstand des aktuellen Behälters 4: for i := 1 to n do 5: if S + a i > 1 then 6: setze k := k + 1 und S := 0 7: end if 8: setze f (i) := k und S := S + a i 9: end for 10: return (k, f ) Beispiel: Siehe Tafel! 8 Henning Meyerhenke:
Güte des Next-Fit-Algorithmus Theorem Der NEXTFIT-Algorithmus läuft in O(n) Zeit. Für jede Instanz I = (a 1,..., a n ) gilt: NF (I) 2 SUM(I) 1 2OPT (I) 1. Beweis. Laufzeit: Klar. Setze k := NF (I) und sei f die berechnete Zuordnung. Addieren zweier benachbarter Behälter: Für j = 1,..., k 2 folgt: i:f (i) {2j 1,2j} a i > 1... 9 Henning Meyerhenke:
Fortsetzung des Beweises Der NEXTFIT-Algorithmus läuft in O(n) Zeit. Für jede Instanz I = (a 1,..., a n ) gilt: NF (I) 2 SUM(I) 1 2OPT (I) 1. Beweis. Addieren aller Ungleichungen: k 2 < SUM(I). Linke Seite ganze Zahl k 1 2 k SUM(I) 1 2 Erste Ungleichung gezeigt, zweite ist trivial. 10 Henning Meyerhenke:
Diskussion NEXT-FIT garantiert relative Güte 2. Frage: Wann ist der Algorithmus besonders schlecht? 11 Henning Meyerhenke:
Diskussion NEXT-FIT garantiert relative Güte 2. Frage: Wann ist der Algorithmus besonders schlecht? Was passiert wohl mit der Güte, wenn alle Elemente klein sind? 11 Henning Meyerhenke:
Güte des Next-Fit-Algorithmus Proposition Sei 0 < γ < 1. Für jede Instanz I = (a 1,..., a n ) mit a i γ für alle i {1,..., n} gilt: SUM(I) NF (I). 1 γ Beweis. Ähnlich wie zuvor, Übung! 12 Henning Meyerhenke:
Diskussion NEXT-FIT hat relative Güte 2, bei kleinen Elementen sogar besser. Vorgehen des Algorithmus: Wenn Element nicht mehr passt, wird ein neuer Behälter verwendet. Frage: Fällt Ihnen direkt eine möglicherweise bessere Variante ein? 13 Henning Meyerhenke:
Greedy-Heuristiken First-Fit-Algorithmus 1: function FIRSTFIT(I = (a 1,..., a n )) 2: for i := 1 to n do { } 3: setze f (i) := min j N : h<i:f (h)=i a h + a i 1 4: end for 5: setze k := max i {1,...,n} f (i) 6: return (k, f ) Beispiel: Siehe Tafel! 14 Henning Meyerhenke:
Greedy-Heuristiken First-Fit-Algorithmus 1: function FIRSTFIT(I = (a 1,..., a n )) 2: for i := 1 to n do { } 3: setze f (i) := min j N : h<i:f (h)=i a h + a i 1 4: end for 5: setze k := max i {1,...,n} f (i) 6: return (k, f ) Beispiel: Siehe Tafel! Theorem FF (I) 17 10 OPT (I). 14 Henning Meyerhenke:
Greedy-Heuristiken First-Fit-Decreasing-Algorithmus 1: function FIRSTFITDECREASING(I = (a 1,..., a n )) 2: setze I := absteigend sortierte Permutation von I 3: return FIRSTFIT(I ) Beispiel: Siehe Tafel! 15 Henning Meyerhenke:
Greedy-Heuristiken First-Fit-Decreasing-Algorithmus 1: function FIRSTFITDECREASING(I = (a 1,..., a n )) 2: setze I := absteigend sortierte Permutation von I 3: return FIRSTFIT(I ) Beispiel: Siehe Tafel! Theorem (Simchi-Levi, 1994) Der FIRST-FIT-DECREASING-Algorithmus ist ein Approximationsalgorithmus mit relativer Güte 3/2 für das BIN-PACKING-Problem. 15 Henning Meyerhenke:
Beweis der Güte Beweis. Sei I eine Instanz, setze k := FFD(I) und j := 2 3 k. Fall 1: Behälter j enthält Objekt der Größe > 1/2: Jeder Behälter mit kleinerem Index hatte keinen Platz für dieses Objekt. Absteigende Sortierung Es gibt j Objekte der Größe > 1/2. OPT (I) j 2 3 k. 16 Henning Meyerhenke:
Beweis der Güte Beweis. Sei I eine Instanz, setze k := FFD(I) und j := 2 3 k. Fall 1: Behälter j enthält Objekt der Größe > 1/2: Jeder Behälter mit kleinerem Index hatte keinen Platz für dieses Objekt. Absteigende Sortierung Es gibt j Objekte der Größe > 1/2. OPT (I) j 2 3 k. Fall 2: Behälter j enthält kein Objekt der Größe > 1/2: Kein Behälter mit Index j enthält Objekt der Größe > 1/2. Behälter j bis k enthalten mindestens 2(k j) + 1 Objekte, von denen keins in die Behälter mit den Indizes 1,..., j 1 passt. 2(k j) + 1 2(k ( 2 3 k + 2 3 )) + 1 2 3 k 1 3 j 1 OPT (I) SUM(I) Tafel! > j 1 OPT (I) j 2 3 k. 16 Henning Meyerhenke:
Asymptotische Approximationsgüte Wegen Korollar auf Folie 18/7 ist relative Güte 3/2 bestmöglich. Allerdings geht es in einem etwas anderen Sinn noch besser: Definition (Asymptotische relative Güte) Sei Π ein Optimierungsproblem mit nichtnegativen Gewichten. A heißt Approximationsalgorithmus mit asymptotischer relativer Güte α, wenn es eine Konstante c gibt und A zu jeder Instanz I von Π eine zulässige Lösung berechnet mit: 1 α OPT (I) c A(I) αopt (I)+c. 17 Henning Meyerhenke:
Asymptotische Approximationsgüte Wegen Korollar auf Folie 18/7 ist relative Güte 3/2 bestmöglich. Allerdings geht es in einem etwas anderen Sinn noch besser: Definition (Asymptotische relative Güte) Sei Π ein Optimierungsproblem mit nichtnegativen Gewichten. A heißt Approximationsalgorithmus mit asymptotischer relativer Güte α, wenn es eine Konstante c gibt und A zu jeder Instanz I von Π eine zulässige Lösung berechnet mit: 1 α OPT (I) c A(I) αopt (I)+c. Theorem (Dósa, 2007) Für alle Instanzen I des BIN-PACKING-Problems gilt FFD(I) 11 9 OPT (I) + 2 3 und diese Schranke ist bestmöglich. 17 Henning Meyerhenke:
Asymptotisches Approximationsschema Definition (Asymptotisches Approximationsschema) Ein AAS für Π ist ein Algorithmenpaar (A, A ) mit: A ist Polyn.zeit-Alg., der aus Eingabe ɛ > 0 eine Zahl c ɛ berechnet. A erhält eine Instanz I von Π und ein ɛ > 0 und liefert eine zulässige Lösung für I mit 1 1+ɛ OPT (I) c ɛ A(I, ɛ) (1 + ɛ)opt (I) + c ɛ. Die Laufzeit von A ist polynomiell in der Größe von I. 18 Henning Meyerhenke:
Asymptotisches Approximationsschema Definition (Asymptotisches Approximationsschema) Ein AAS für Π ist ein Algorithmenpaar (A, A ) mit: A ist Polyn.zeit-Alg., der aus Eingabe ɛ > 0 eine Zahl c ɛ berechnet. A erhält eine Instanz I von Π und ein ɛ > 0 und liefert eine zulässige Lösung für I mit 1 1+ɛ OPT (I) c ɛ A(I, ɛ) (1 + ɛ)opt (I) + c ɛ. Die Laufzeit von A ist polynomiell in der Größe von I. Theorem (Fernandez de la Vega und Lueker, 1981) Für jedes 0 < ɛ 1/2 und jede Instanz I des BIN-PACKING-Problems kann eine Lösung mit höchstens (1 + ɛ)opt (I) + ɛ 2 Behältern berechnet werden. Die dazu benötigte Zeit ist polynomiell in n, aber exponentiell in 1/ɛ. 18 Henning Meyerhenke:
Beweisidee Beweisidee. Formuliere das Problem als ganzzahliges LP. Relaxiere das ILP zu einem LP. Bestimme geeignete BIN-PACKING-Lösung aus der LP-Lösung und schätze deren Qualität ab. 19 Henning Meyerhenke:
Beweisidee Beweisidee. Formuliere das Problem als ganzzahliges LP. Relaxiere das ILP zu einem LP. Bestimme geeignete BIN-PACKING-Lösung aus der LP-Lösung und schätze deren Qualität ab. Algorithmusskizze: Partitioniere die n Zahlen in m + 2 Gruppen, ihrer Größe entsprechend. Verpacken der Gruppe mit den größten Zahlen: Einen Behälter pro Zahl benutzen. Verpacken der m mittleren Gruppen: In jeder dieser Gruppen alle Zahlen der größten gleich setzen und dann obige Abschätzung verwenden. Verpacken der Gruppe mit den kleinsten Zahlen, u.a. mit NEXTFIT. 19 Henning Meyerhenke:
ILP- und IP-Formulierung Zahlen der Instanz I: a 1,..., a m. I enthält genau b i Kopien von a i {T 1,..., T N } ist die Menge der Packmöglichkeiten eines Behälters: ILP: {T 1,..., T N } := min udn N x j j=1 { (k 1,..., k m ) Z m + : m k i a i 1 i=1 } (1) N t ji x j b i (i = 1,..., m) (2) j=1 x j Z + (j = 1,..., N) (3) 20 Henning Meyerhenke:
ILP- und IP-Formulierung Zahlen der Instanz I: a 1,..., a m. I enthält genau b i Kopien von a i {T 1,..., T N } ist die Menge der Packmöglichkeiten eines Behälters: LP: {T 1,..., T N } := min udn N x j j=1 { (k 1,..., k m ) Z m + : m k i a i 1 i=1 } (1) N t ji x j b i (i = 1,..., m) (2) j=1 x j R 0 (j = 1,..., N) (3) 20 Henning Meyerhenke:
Hilfsresultat 1 Lemma (Fernandez de la Vega und Lueker, 1981) Sei I eine Instanz von BIN-PACKING mit nur m verschiedenen Zahlen. Sei x eine zulässige Lösung von (LP 1-3) mit höchstens m nichtverschwindenden Komponenten. Dann kann eine Lösung für I mit höchstens N j=1 x j + m 1 2 Behältern in der Zeit O( I ) gefunden werden. 21 Henning Meyerhenke:
Beweis des Lemmas Beweis. Vektor x verpackt I i.a. nicht vollständig. (Manche Zahlen verpackt er mglw. öfter als notwendig, kein Problem.) Übrige Objekte bilden Instanz I. SUM(I ) N j=1 (x j x j ) m i=1 t jia i N j=1 x j N j=1 x j 22 Henning Meyerhenke:
Beweis des Lemmas Beweis. Vektor x verpackt I i.a. nicht vollständig. (Manche Zahlen verpackt er mglw. öfter als notwendig, kein Problem.) Übrige Objekte bilden Instanz I. SUM(I ) N j=1 (x j x j ) m i=1 t jia i N j=1 x j N j=1 x j Genügt z.z.: I kann man in SUM(I ) + m 1 2 Grund: Dann gilt für Gesamtzahl: N j=1 Rest: Siehe Tafel! x j + SUM(I m 1 ) + 2 N j=1 Behälter packen. m 1 x j + 2 22 Henning Meyerhenke:
Hilfsresultat 2 Corollary (Fernandez de la Vega und Lueker, 1981) Seien m und γ > 0 fest Konstanten. Sei I eine Instanz von BIN-PACKING mit nur m verschiedenen Zahlen, alle γ. Dann können wir eine Lösung mit OPT(I) + m 1 2 Behältern in der Zeit O( I ) finden. 23 Henning Meyerhenke:
Beweis des Korollars Beweis. SIMPLEX liefert optimale Basislösung x von (LP 1-3). Da jede Ecke N NB mit Gleichheit erfüllt, hat x höchstens m nichtverschwindende Komponenten. 24 Henning Meyerhenke:
Beweis des Korollars Beweis. SIMPLEX liefert optimale Basislösung x von (LP 1-3). Da jede Ecke N NB mit Gleichheit erfüllt, hat x höchstens m nichtverschwindende Komponenten. Zeit zur Bestimmung von x hängt nur von m und N ab. In jedem Behälter sind höchstens 1/γ Objekte. N (m + 1) 1 γ 24 Henning Meyerhenke:
Beweis des Korollars Beweis. SIMPLEX liefert optimale Basislösung x von (LP 1-3). Da jede Ecke N NB mit Gleichheit erfüllt, hat x höchstens m nichtverschwindende Komponenten. Zeit zur Bestimmung von x hängt nur von m und N ab. In jedem Behälter sind höchstens 1/γ Objekte. N (m + 1) 1 γ Da N j=1 x j OPT (I), folgt der Beweis mit vorigem Lemma. 24 Henning Meyerhenke:
Ein streng polynomielles asymptot. Approximationsschema Definition Ein streng polynomielles AAS ist ein AAS, dessen Laufzeit polynomiell in der Größe der Eingabe und in 1/ɛ ist. Theorem (Karmarkar und Karp, 1982) Es gibt ein streng polynomielles asymptotisches Approximationsschema für das BIN-PACKING-Problem. 25 Henning Meyerhenke:
Zusammenfassung Packungsprobleme sind allgegenwärtig in Industrie, Handel, Logistik, etc. Wir können nun unser Sägeproblem mit Hilfe von BIN-PACKING lösen. 26 Henning Meyerhenke:
Zusammenfassung Packungsprobleme sind allgegenwärtig in Industrie, Handel, Logistik, etc. Wir können nun unser Sägeproblem mit Hilfe von BIN-PACKING lösen. BIN-PACKING ist streng N P-vollständig. Mehrere Greedy-Heuristiken garantieren bereits relative Güte 2. Es gibt sogar (strenges) asymptotisches Approximationsschema. Dieses benutzt u.a. LP-Relaxierung. Andere (Meta)Heuristiken sind für die Praxis denkbar. 26 Henning Meyerhenke: