Ganzzahlige Optimierung Ganzzahlige Lineare Optimierung Branch & Bound Verfahren TABU-Suche Genetische Algorithmen Prof. Dr. Dr. J. Hansohm Ganzzahlige Optimierung Mit Mi seien f, gj: Mn (j=1,...,m) (i=1,...,n) min f(x) u.d.N. gj (x) 0 (j=1,...,m) xi Mi a) Sind alle Mi = {0,1,...}: rein ganzzahliges Problem b) Sind einige Mi = {r 0 r } und die anderen wie unter a): gemischt ganzzahliges Problem c) Sind alle Mi = {0,1}: binäres Optimierungsproblem Prof. Dr. Dr. J. Hansohm Anwendungsbeispiele Produktionsproblem mit nichtteilbaren Gütern Versorgungsproblem mit Errichtung von Zwischenlagern Fixkostenproblematik Stundenplanproblem Verschnittproblem, Knapsack-Problem Maschinenbelegung Reihenfolgeprobleme, Zuordnungsprobleme Ablaufplanung Rundreiseproblem, Tourenplanung Clusteranalyse Prof. Dr. Dr. J. Hansohm Ganzzahlige lineare Optimierung max cTx Ax b x0 xi ganzzahlig (= 0,1,2 ...) (G) Relaxation: Problem ohne Ganzzahligkeitsbedingung (R) Satz: Ist Lösung von (R) ganzzahlig, so auch diese auch Lösung von (G). Hat (R) keine Lösung, hat auch (G) keine Lösung Lösung von (R) mit anschließender Rundung i.a. nicht Lösung von (G) Wenn A, b ganzzahlig, so ist u.U. Lösung von (R) ganzzahlig (bei unimodalen Problemen) Prof. Dr. Dr. J. Hansohm Ganzzahlige lineare Optimierung - Gomory (1) 1) Löse die Relaxation (R) des ganzzahligen Problems (G) Lösung ganzzahlig, optimale Lösung gefunden keine Lösung, Problem (G) nicht lösbar 2) Führe zusätzliche Restriktion ein, die die relaxierte Lösung verletzt aber keine zulässige Lösung von (G) 3) Löse das erweiterte Problem; d.h. Fortsetzung mit Schritt 1 Alternative Bezeichnung: Schnittebenenverfahren Prof. Dr. Dr. J. Hansohm Ganzzahlige lineare Optimierung - Gomory (2) x2 optimale Lösung (2, 3) mit z = 13 5 4 3 2 1 max 2x1 + 3x2 x1 + 2x2 8 2x1 + x2 9 x1, x2 {0, 1,...} relaxierte Lösung (3 1/3, 2 1/3) mit z = 13 2/3 gerunde Lösung (3, 2) mit z = 12 1 2 3 4 5 x1 Prof. Dr. Dr. J. Hansohm Ganzzahlige lineare Optimierung - Gomory (3) Im optimalen Tableau sei Lösung xi = bi - jaijwj mit wj ganzzahlig, bi nicht ganzzahlig Sei bi = [bi] + fi, aij = [aij] + rij ([a] = max {i = ganzzahlig, i a}) fi - jrijwj = xi - [bi] + j[aij]wj ganzzahlig fi - jrijwj fi < 1 fi - jrijwj 0 Schlupfvariable jrijwj - fi = Si 0 wegen wj = 0 (Nichtbasis) ist Si = -fi nicht zulässig aktuelle Lösung wird abgeschnitten, ganzzahlige zulässige Lösungen bleiben erhalten neues Problem durch Hinzufügen von -jrijwj + Si = -fi und der Variablen Si Iterationsvorgang bis Lösung ganzzahlig oder LP nicht lösbar Prof. Dr. Dr. J. Hansohm Ganzzahlige lineare Optimierung - Gomory (4) Probleme: Problem immer komplexer, ev. bis zu n + m neue Schnitte im Tableau (n = Anzahl variabler, m = Anzahl Nebenbedingungen) Aus Effizienzgründen nur dualer SimplexAlgorithmus sinnvoll Rundungsfehler durch die komplexeren Tableaus Lösung bleibt nicht zulässig (für das ganzzahlige Problem) bis optimale Lösung gefunden Im allgemeinen nur sehr kleine Schritte; deshalb viele Iterationen notwendig Prof. Dr. Dr. J. Hansohm Literatur: Neumann/Morlock: Operations Research München 1993, Hanser-Verlag, Kapitel 3 Abschnitt 3.1.3. Seite 386 ff Prof. Dr. Dr. J. Hansohm Knapsack-Problem (1) Gegeben seien n Gegenstände, beschrieben durch Gewicht gi und Wert wi (i=1,...,n). Welche Gegenstände sollen in einen Rucksack mit dem maximalen Fassungsvermögen von einem Gesamtgewicht G, damit der Gesamtwert W der mitgenommenen Gegenstände möglichst groß ist. Mit xi {0,1} und xi = 0, wenn der Gegenstand i nicht im Rucksack und xi =1, wenn der Gegenstand i im Rucksack folgt: max W = iwixi igixi G Binäres lineares Optimierungsproblem Prof. Dr. Dr. J. Hansohm Knapsack-Problem (2) Betriebswirtschaftliche Anwendungen Investitionsentscheidungen bei sich nicht ausschließenden Investitionsalternativen und einem max. Budget. Der Wert der Investitionsalternative i entspricht dem Kapitalwert. Verschnittproblem. Ein Stab mit einer Gesamtlänge G ist so in Teile der Länge gi zu zerschneiden, daß der Gesamtwert der Teile möglichst groß wird. Viele Auswahlprobleme lassen sich auf Knapsack-Probleme zurückführen Prof. Dr. Dr. J. Hansohm Knapsack-Problem - Beispiel Gewichtslimit G = 37 Gegenstände A Wert 8 Gewicht 8 B 7 12 C 14 16 D 11 17 E 16 21 max 8x1 + 7x2 + 14x3 + 11x4 + 16x5 (=W) 8x1 + 12x2 + 16x3 + 17x4 + 21x5 37 xi {0,1} Optimale Lösung: x1 = x2 = x4 = 0, x3 = x5 = 1, W = 30 (Gegenstände C, E in Rucksack und Gesamtgewicht 37) Prof. Dr. Dr. J. Hansohm Greedy-Algorithmus a) Starte mit einer beliebigen zulässigen Lösung b) Wähle unter den möglichen Alternative die jeweils beste und wiederhole b) solange noch eine mögliche Alternative vorhanden ist. Beispiel: Ausgangslösung: leerer Rucksack Einfüllen des Gegenstands mit höchstem Wert E, C = optimale Lösung (nicht immer: wi = 10, 10, 11 und gi = 9, 9, 12 bis G = 20) Einfüllen des Gegenstands mit dem höchsten spezifischen Wert Reihenfolge: A, C, E, D, B A, C, B mit W = 29 und Gesamtgewicht = 36 Prof. Dr. Dr. J. Hansohm Vollständige Enumeration Jede der 2n Möglichkeiten, xi = 0 oder = 1 zu setzen wird überprüft (i=1,...,n). Die beste zulässige ist die Optimallösung. Bei Problemen praktischer Größenordnung nicht rechenbar aufgrund der exponentiellen Steigerung. Methode, gewisse Möglichkeiten im Laufe der Enumeration auszuschließen, sei es, daß der bisher gefundene Zielfunktionswert durch diese Möglichkeiten nicht verbessert werden kann oder daß diese Möglichkeiten alle auf unzulässige Lösungen führen, führt zu den Branch & Bound-Verfahren Prof. Dr. Dr. J. Hansohm Backtracking Sub Durchsuche(I as Integer) If I <= GesamtAnzahl Then ‘packe Teil Nr. I in den Rucksack Durchsuche(I+1) ‘packe Teil Nr. I aus dem Rucksack wieder aus Durchsuche(I+1) End If End Sub Leer Durchsuche(1) Nr. 1 drin Leer Durchsuche(2) Durchsuche(2) Prof. Dr. Dr. J. Hansohm Knapsack-Baum Prof. Dr. Dr. J. Hansohm Branch & Bound Ermitteln einer zulässigen Lösung (z.B. durch Heuristik) Zerlegung in Teilprobleme, generieren des Baumes Ermittlung des Bound Durchlaufen des Baumes unter Abschneiden (Branch) von Teilbäumen aufgrund des Bound und gegebenenfalls Anpassen des Baumes Boundermittlung durch Relaxation und bisher gefundener Lösung Teilproblemgenerierung (problemspezifisch) Verzweigungsregeln (Backtracking, breath first search) Prof. Dr. Dr. J. Hansohm Durchlauf: Branch & Bound Verfahren Prof. Dr. Dr. J. Hansohm Literatur: Neumann/Morlock: Operations Research München 1993, Hanser-Verlag, Kapitel 3 Abschnitt 3.3. Seite 406 - 422 Domschke/Drexl: Einführung in Operations Research 3. erw. verb. Auflage, SpringerVerlag 1995, Kapitel 6 Abschnitt 6.5. Seiten 120-126 Prof. Dr. Dr. J. Hansohm Tabu - Suche (1) Idee: Bei der iterativen Lösungssuche auch Lösungen zulassen, die die Zielfunktion verschlechtern (Überwindung lokaler Optima), eine bisher schon gefundene Lösung aber durch sogenannte TabuListen verbieten (Verhinderung des Kreisens) Bezeichnungen: f : X , gesucht s* mit f(s*)= min {f(s) s X} Übergang von s zu s' durch Modifikation m : s' = m(s) Nachbarschaft N(s) = {s' = m(s) m ist akzeptable Modifikation} Prof. Dr. Dr. J. Hansohm Tabu-Suche (2) Start : s X (zulässige Lösung, T = {s}, s* = s) generiere V N (s) - T wähle s' mit f(s') = min { f(r) r V } aktualisiere T (z.B. T = T {s')} J f (s') < f (s*) ? N s* = s' s = s' wiederhole bis Abbruchkriterium erfüllt (z.B. V = Prof. Dr. Dr. J. Hansohm Tabu-Suche Beispiel (1) 6 1 18 9 3 2 2 0 4 8 5 6 7 Gesucht: Minimal aufspannender Baum bzgl. der Bewertung Zahlen in Kreisen = Kantennummer 12 Binäres Optimierungsproblem mit Binärvariablen x1, ..., x7 min 6x1 + 9x2 + 18x3 + 2x4 + 8x6+ 12x7 xi {0, 1} {xi xi = 1} bildet "spanning tree" x1 + x2 + x6 1 zusätzliche Bedingungen x1 x3 Prof. Dr. Dr. J. Hansohm Tabu-Suche Beispiel (2) Optimale Lösung ohne zusätzliche Bedingungen durch Greedy Algorithmus 6 2 0 Zielwert = 16 zusätzliche Bedingungen verletzt x1 + x2 + x6 - 1 = 1 x1 - x3 = 1 8 Berücksichtigung der zusätzlichen Bedingungen durch Penalty-Funktionen z = 6x1 + 9x2 + 18x3 + 2x4 + 8x6 + 12x7 + 50 (x1 + x2 + x6 - 1)+ + 50 (x1 - x3)+ Prof. Dr. Dr. J. Hansohm Tabu-Suche Beispiel (3) Modifikation: Wahl einer Variablen aus {xi xi = 0} und setzen dieser Variablen auf 1. Wahl einer Variablen aus {xi xi = 1 und xi bildet mit der auf 1 gesetzten Variablen einen Zyklus } und setzen dieser Variablen auf 0. akzeptable Modifikationen: Modifikationen, die zu Lösungen führen, die die zusätzlichen Bedingungen erfüllen. Prof. Dr. Dr. J. Hansohm Tabu-Suche Beispiel (4) x2 = 1 x1 = 0 z = 19 + 50 = x4 = 0 z = 23 + 150 = x3 = 1 x1 = 0 z = 28 + 0 = x4 = 0 z = 32 + 50 = x5 = 0 z = 34 + 50 = x7 = 1 x4 = 0 z = 26 + 100 = x5 = 0 z = 28 + 100 = x6 = 0 z = 20 + 50 = 69 173 28* 82 84 126 128 70 18 2 0 8 Tabuliste T = {(1, 0, 0, 1, 1, 1, 0), (0, 0, 1, 1, 1, 1, 0)} Prof. Dr. Dr. J. Hansohm Tabu-Suche Beispiel (5) x1 = 1 x3 = 0 z = 16 + 100 = 116 TABU x4 = 0 z = 32 + 50 = 82 x5 = 0 z = 34 + 50 = 84 2 x2 = 1 x3 = 0 z = 19 + 50 = 69 x5 = 0 z = 37 + 50 = 87 x7 = 1 x4 = 0 z = 38 + 0 = 38 x5 = 0 z = 40 + 0 = 40 x6 = 0 z = 32 + 0 = 32* 18 0 12 Tabuliste: T = {(1,0,0,1,1,1,0), (0,0,1,1,1,1,0),(0,0,1,1,1,0,1)} Prof. Dr. Dr. J. Hansohm Tabu-Suche Beispiel (6) x1 = 1 x3 = 0 x4 = 0 x5 = 0 x2 = 1 x3 = 0 x5 = 0 x6 = 1 x4 = 0 x5 = 0 x7 = 0 z = 20 + 50 = 70 z = 36 + 0 = 36 z = 38 + 0 = 38 z = 23 + 0 = 23* z = 41 + 0 = 41 z = 38 + 0 = 38 z = 40 + 0 = 40 z = 28 + 0 = 28 TABU 9 2 0 12 Tabuliste: T = {(1,0,0,1,1,1,0), (0,0,1,1,1,1,0),(0,0,1,1,1,0,1), (0,1,0,1,1,0,1)} Prof. Dr. Dr. J. Hansohm Tabu-Suche Beispiel (7) x1 = 1 x2 = 0 z = 20 + 50 = 70* x4 = 0 z = 27 + 50 = 77* x3 = 1 x2 = 0 z = 32 + 0 = 32 TABU x5 = 0 z = 41 + 0 = 41 unsinnig, da keine 0-Kante x6 = 1 x4 = 0 z = 29 + 50 = 79* x5 = 0 z = 31 + 50 = 81* x7 = 0 z = 19 + 50 = 69* *) unzulässige (nicht akzeptable) Modifikation Prof. Dr. Dr. J. Hansohm Tabu-Suche Probleme, Modifikationen Vollständige Tabuliste benötigt viel Speicherplatz Liste der letzten n Lösungen verhindert u.U. nicht das Kreisen min {f(r) r V N(s)-T} i.a. kein einfaches Problem Abhilfe durch Tabubedingungen (z.B. gewählte Verbindung darf nicht wieder entfernt werden) kann sinnvolle Lösungen verbieten bevor sie untersucht wurde letzteres wird abgemildert durch Einführung eines sogenannten "Aspiration level" zur Aufhebung das Tabustatus Prof. Dr. Dr. J. Hansohm Literatur: Domschke/Drexl: Einführung in Operations Research 3. erw. verb. Auflage, SpringerVerlag 1995, Kapitel 6 Seiten 119/120 Prof. Dr. Dr. J. Hansohm Genetische Algorithmen Versuch, die Evolutionsstrategie zur Problemlösung einzusetzen a) Generierung verschiedener "Lösungen" (Population), dargestellt durch einen Informationsvektor b) Bewertung jedes Individuums der Population durch eine Bewertungsfunktion und/oder Fitnessfunktion c) Selektiere Paare (oder größere Gruppen) per Heiratschema und erzeuge mittels Rekombination der Informationsvektoren (crossover) Nachkommen d) Mutiere die Nachkommen durch Veränderung des Informationsvektors (Mutation) e) Ersetze Individuen der aktuellen Generation durch die Nachkommen gemäß Ersetzungsschema und erzeuge so eine neue Generation f) Falls Abbruchbedingungen noch nicht erfüllt, fahre mit Schritt b) fort Prof. Dr. Dr. J. Hansohm Genetische Algorithmen - Fragestellungen Codierungsproblem des Informationsvektors Bewertung: Güte bzgl. des Problems Fitness: Güte bzgl. Nachkommenerzeugung Heiratsschema: Wer darf wieviel Nachkommen mit wem erzeugen? Crossover: Nachkomme möglichst besser als Eltern Mutation: Verhinderung von zu verengter Population Ersetzungsschema: Nur Nachkommen?, Nur die besten? Abbruchbedingung: Anzahl Generationen, Lösungsgüte Prof. Dr. Dr. J. Hansohm Genetische Algorithmen - Ersetzungsschema Generational Replacement: Population komplett ersetzt durch Nachkommen Elitismus: beste in der Population unverändert übernommen schwacher Elitismus: Elitismus mit Mutation delete-m: m zufällige Elemente der Population ersetzt durch Nachkommen delete-m mit Elitismus: delete-m, wobei die Elite ausgenommen ist Ersetzungsschemata mit „Altersheim“ und „Kindergarten“ „Altersheim“: Teil der zu ersetzenden Elemente in einem extra Pool „Kindergarten“: Teil der nicht in die Population aufgenommenen Elemente in einen extra Pool Extra Pool wird mit mutiert („Kindergarten“) oder reproduziert („Altersheim“), gegebenenfalls Übernahme in die Population Prof. Dr. Dr. J. Hansohm Genetische Algorithmen - Knapsack (1) Codierung: Binärvektor (x1, ..., xn) (n = Anzahl Elemente) mit xi = 1, wenn Element i im Rucksack, sonst = 0 Bewertung: iwixi, wenn igixi G, sonst = 0 Fitness: Bewertung + (G - igixi) * min {wi/gi i = 1, ..., n} Heiratsschema: Roulette-Wheel: Wahrscheinlichkeit einer Heirat = Fitness/Summe aller Fitness Werte Crossover: Eltern a und b, ganzzahlige Zufallszahl 1 j < n, Nachkommen c und d mit ci = ai (i j), = bi (i > j), di = bi (i j), = ai (i > j) Mutation: ganzzahlige Zufallszahl 1 j n, wenn vorher xi = 0, dann = 1, sonst = 0 Abbruchbedingung: Bewertung nah an relaxierter Lösung, in der dritten Generation unverändert Prof. Dr. Dr. J. Hansohm Genetische Algorithmen - Knapsack (2) Element Wert Gewicht A 8 8 B 7 12 C 14 16 D 11 17 E 16 21 Population I I 0 I 0 =a I 0 I 00 =b Bewertung (a) = 26, Gewicht (a) = 37, Fitness (a) = 26 Bewertung (b) = 22, Gewicht (b) = 24, Fitness (b) = 22 + 13 x 7/12 =29.58 crossover nach 2. Ziffer: Nachkommen I I I 0 0 = c I 0 0 I 0=d Bewertung (c) = 29, Gewicht (c) = 36, Fitness (c) = 29 7/12 Bewertung (d) = 19, Gewicht (d) = 25, Fitness (d) = 19 + 12 x 7/12 = 26 Übernahme der zwei fittesten aus {a, b, c, d} {b, c} Folge: 5. Ziffer = 0 in der ganzen Population Ohne Mutation E nie im Rucksack Prof. Dr. Dr. J. Hansohm