Optimierungsverfahren in der Transportlogistik Jakob Puchinger 1 1 Dynamic Transportation Systems, arsenal research Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 1 / 247
Organisatorisches Dienstags 17:30-19:00 Ausnahme 26.05: 18:00-19:30 3 Übungstermine mit Anwesenheitspflicht Übungsblätter und kurze Präsentationen Mündliche Prüfung: Stoff der Vorlesung und Übung Termin: Dienstag 23.06 und nach Vereinbarung Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 2 / 247
Organisatorisches Welche der folgende LVAs haben Sie besucht? Heuristische Optimierung Fortgeschrittene Algorithmen Algorithmen auf Graphen Operations Research Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 3 / 247
Teil I Einführung Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 4 / 247
Teil I: Einführung Logistik 1 Logistik 2 Lineare Programmierung Einführung Definitionen Simplexalgorithmus Netzwerkflussproblem 3 Ganzzahlige Lineare Programmierung Travelling Salesman Problem Definitionen Branch and Bound 4 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarshcaftssuche Evolutionäre Algorithmen Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 5 / 247
Logistik Logistik Definition Logistik (Wikipedia, 27.02.2009) Die Logistik ist die Lehre der ganzheitlichen Planung, Bereitstellung, Durchführung und Optimierung von Prozessen der Ortsveränderung von Gegenständen, Daten, Energie und Personen sowie der notwendigen Transportmittel selbst. Sie sichert den quantitativen und qualitativen Erfolg von Transportprozessen und die räumliche Mobilität der betrachteten Objekte. "Get the right things to the right place at the right time." Optimierung verschiedener Zielfunktionen. Einhaltung bestimmter Nebenbedingungen. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 6 / 247
Logistik Gütertransport - Zahlen und Fakten EU-15 plus Schweiz und Norwegen (2005): 738 Mrd. Euro 61,4 Mrd. Euro für die zwölf Beitrittsländer von 2006/2007. Insgesamt ca. 800 Mrd. Euro. Pro Kopf 1590 Euro. Insgesamt: 21 332 Mio. t Österreich 2007 Schiene: 115 Mio. t Straße: 354 Mio. t Donau: 12 Mio. t Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 7 / 247
Logistik Logistische Prozesse Transport Ausserbetrieblich: Beschaffung, Distribution Innerbetrieblich: Zwischen Produktionsstellen, Lagern, etc... Straße, Schiene, Wasser, Luft Umschlag Be- und Entladen, Sortieren, Ein- und Auslagern Verbinden von Transportabschnitten: Kombinierter Verkehr Schnittstelle Innerbetrieblicher/Ausserbetrieblicher Verkehr Kommissionierung Zusammenstellen von Lagerartikeln zu Aufträgen Lagerung Verpackung Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 8 / 247
Logistik Gestaltung der Transportnetze Festlegung der Anzahl, Standorte und Funktion der Knoten des Netzwerks. Facility location problem p-median problem Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 9 / 247
Logistik Planung der Transportwege und Transportmittel Transportation problem Minimum cost flow problem Multicommodity flow problems [ς,c] f 3 [3,4] v 1 v 2 3 [5,2] [3,2] 3 [2,6] s [1,1] t b(s)=5 2 [3,4] [7,3] 2 b(t)= 5 v 3 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 10 / 247
Logistik Planung des Fahrzeugeinsatzes und Tourenplanung Travelling salesman problem Vehicle routing problem Pick-up-and-delivery problem Dial-a-ride problem Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 11 / 247
Logistik Transportlogistik bei arsenal research Dynamic Transportation Systems: Multimodale Verkehrsströme Verkehrszustandserfassung: Fleet, GoSmart Verwendung der Verkehrsinformationen in der Transportlogistik Dynamische Tourenplanung Standortplanung Abweichungsmanagement Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 12 / 247
Logistik Transportlogistik bei arsenal research http://www.wien.at Verkehr Aktuelle Verkehrslage Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 13 / 247
Teil I: Einführung Lineare Programmierung 1 Logistik 2 Lineare Programmierung Einführung Definitionen Simplexalgorithmus Netzwerkflussproblem 3 Ganzzahlige Lineare Programmierung Travelling Salesman Problem Definitionen Branch and Bound 4 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarshcaftssuche Evolutionäre Algorithmen Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 14 / 247
Lineare Programmierung Einführung Lineare Programmierung Transportproblem Waren müssen von mehreren Ausgangspunkten (i = 1,..., n) zu mehreren Zielorten (j = 1,..., m) transportiert werden. An jedem der Ausgangspunkte gibt es ein fixes Angebot (a i ) und an den Zielorten einen fixen Bedarf (b j ). Die Summe der Angebote entspricht genau der Summe des Bedarfs: n i=1 a i = m j=1 b j. Transportkosten pro transportierter Einheit (c ij ). Die Transportkosten sollen minimiert werden. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 15 / 247
Lineare Programmierung Lineare Programmierung Einführung Transportproblem min Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 16 / 247
Lineare Programmierung Lineare Programmierung Einführung Transportproblem min c ij Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 16 / 247
Lineare Programmierung Lineare Programmierung Einführung Transportproblem min c ij x ij x ij 0, i = 1,... n, j = 1,..., m Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 16 / 247
Lineare Programmierung Lineare Programmierung Einführung Transportproblem min n m c ij x ij i=1 j=1 x ij 0, i = 1,... n, j = 1,..., m Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 16 / 247
Lineare Programmierung Lineare Programmierung Einführung Transportproblem min n m c ij x ij i=1 j=1 m x ij = a i, i = 1,..., n j=1 x ij 0, i = 1,... n, j = 1,..., m Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 16 / 247
Lineare Programmierung Lineare Programmierung Einführung Transportproblem min n m c ij x ij i=1 j=1 m x ij = a i, i = 1,..., n j=1 n x ij = b j, j = 1,..., m i=1 x ij 0, i = 1,... n, j = 1,..., m Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 16 / 247
Lineare Programmierung Definitionen Lineares Programm Definition Lineares Programm n min c i x i i=1 n a ij x i b j j = 1,..., m i=1 x i 0 i = 1,..., n Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 17 / 247
Lineare Programmierung Definitionen Lineares Programm Zulässigkeitsbereich Für den Zulässigkeitsbereich P = { n i=1 a ijx i b j j = 1,..., m} gilt: P = LP unlösbar, keine zulässige Lösung existiert. P, aber inf{c T x x P} existiert nicht LP ist lösbar, aber es gibt keine optimale Lösung. Das LP ist unbeschränkt. P und das min{c T x x P} existiert LP lösbar und endliche optimale Lösung x existiert. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 18 / 247
Lineare Programmierung Definitionen Lineares Programm Polyeder Definition Eine Teilmenge P R n heißt Polyeder, falls es eine Matrix A R (m n) und einen Vektor b R m gibt mit P = {x R n Ax b}. Halbräume sind Polyeder. Die leere Menge ist ein Polyeder = {x 0 T x 1}. Der gesamte Raum ist ein Polyeder R n = {x 0 T x 1}. Jedes Polyeder P R n ist der Durchschnitt von endlich vielen Halbräumen. Definition Ein Polytop ist ein beschränktes Polyeder: P {x R n x B} für ein B > 0. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 19 / 247
Polytop Beispiel Lineare Programmierung Definitionen Wir betrachten das Polytop P = {( ) 0, 1 ( ) 1, 0 ( )} 1 1 Die Darstellung durch Ungleichungen ist graphisch leicht ablesbar: {( ) } x P = R 2 x 1, y 1, x + y 1 y Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 20 / 247
Lineare Programmierung Definitionen Polyeder Seitenflächen Definition F P heißt Seitenfläche von P, falls es eine für P gültige Ungleichung a T x a 0 gibt, so dass F = {x P a T x = a 0 }. F ist echte Seitenfläche falls F P. Definition Eine Ecke eines Polyeders P ist eine einelementige Seitenfläche von P. Eine Facette von P ist eine maximale nicht leere echte Seitenfläche von P. Für jede Facette F von P gilt dim(f) = dim(p) 1. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 21 / 247
Lineare Programmierung Polyeder Seitenflächen Definitionen Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 22 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Simplexalgorithmus wurde 1947 von George Dantzig entwickelt. Heute ist es möglich, lineare Programme mit mehreren Millionen Variablen und Nebenbedingungen zu lösen. Das kommerzielle ILOG CPLEX benötigt z. B. zur Lösung eines LPs mit 1.584.000 Variablen und 401.640 Nebenbedingungen 59,1 Sekunden (2.0 GHz P4). Es existieren worst-case Beispiele, bei denen der Simplexalgorithmus nicht in polynomieller Zeit läuft. Diese sind selten, Simplexalgorithmus ist einer der am weitesten verwendeten Algorithmen in der Praxis. Es gibt auch Polynomialzeitalgorithmen z.b.: die Ellipsoidmethode. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 23 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Simplexalgorithmus Beispiel max 3x 1 + 2x 2 x 1 + 3x 2 12 x 1 + x 2 8 2x 1 x 2 10 x 1, x 2 0 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 24 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Simplexalgorithmus Schlupfvariablen max 3x 1 + 2x 2 x 1 + 3x 2 + x 3 = 12 x 1 + x 2 + x 4 = 8 2x 1 x 2 + x 5 = 10 x 1, x 2, x 3, x 4, x 5 0 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 25 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Simplexalgorithmus Simplextableau max z = 3x 1 + 2x 2 x 3 = 12 + x 1 3x 2 x 4 = 8 x 1 x 2 x 5 = 10 2x 1 + x 2 0 x 1, x 2, x 3, x 4, x 5 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 26 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Strategie der Simplexmethode Beginne an einer Ecke des Lösungspolyeders. Wandere von dieser entlang einer Kante zu einer nächsten Ecke, die den Zielfunktionswert auf jeden Fall verbessert. Wiederhole Vorgang so lange noch Verbesserung möglich ist. Simplexalgorithmus D. h. wir wandern von einer Lösung x 1, x 2, x 3, x 4, x 5 zu einer neuen Lösung x 1, x 2, x 3, x 4, x 5, so dass gilt 3 x 1 + 2 x 2 > 3x 1 + 2x 2. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 27 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus max z = 3x 1 + 2x 2 x 3 = 12 + x 1 3x 2 x 4 = 8 x 1 x 2 x 5 = 10 2x 1 + x 2 0 x 1, x 2, x 3, x 4, x 5 Simplexalgorithmus Startlösung Startlösung : x 1 = x 2 = 0. Werte der Schlupfvariablen: x 3 = 12, x 4 = 8, x 5 = 10 Zielfunktionswert z = 0 Wie erhalten wir die nächste, bessere Lösung? Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 28 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus max z = 3x 1 + 2x 2 x 3 = 12 + x 1 3x 2 x 4 = 8 x 1 x 2 x 5 = 10 2x 1 + x 2 0 x 1, x 2, x 3, x 4, x 5 Simplexalgorithmus Nächste bessere Lösung x 1 auf 1 erhöhen, ergäbe z = 3. x 1 auf 2 erhöhen, ergäbe z = 6. x 1 auf 6 erhöhen, würde x 5 = 2 erfordern: nicht erlaubt. Wie weit dürfen wir x 1 erhöhen ohne eine unzulässige Lösung zu erhalten? Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 29 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus max z = 3x 1 + 2x 2 x 3 = 12 + x 1 3x 2 x 4 = 8 x 1 x 2 x 5 = 10 2x 1 + x 2 0 x 1, x 2, x 3, x 4, x 5 Simplexalgorithmus Nächste bessere Lösung Erste Gleichung ergibt keine Einschränkung für x 1. Zweite Gleichung ergibt x 1 8. Dritte Gleichung ergibt x 1 5. Wir erhöhen x 1 auf den größtmöglichen Wert: 5. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 30 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus max z = 3x 1 + 2x 2 x 3 = 12 + x 1 3x 2 x 4 = 8 x 1 x 2 x 5 = 10 2x 1 + x 2 0 x 1, x 2, x 3, x 4, x 5 Simplexalgorithmus Nächste bessere Lösung Wir betrachten diejenige Gleichung für die die Schranke erreicht wurde. Diese lautet nach Umformung: x 1 = 5 + 1 2 x 2 1 2 x 5 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 31 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Simplexalgorithmus Erste Simplex-Iteration Ersetzen von x 1 in den anderen Gleichungen: z = 15 + 7 2 x 2 3 2 x 5 x 1 = 5 + 1 2 x 2 1 2 x 5 x 3 = 17 5 2 x 2 1 2 x 5 x 4 = 3 3 2 x 2 + 1 2 x 5 Lösungswerte einfach ablesen: x 1 = 5, x 2 = 0, x 3 = 17, x 4 = 3, x 5 = 0 mit z = 15. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 32 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus max z = 15 + 7 2 x 2 3 2 x5 x 1 = 5 + 1 2 x 2 1 2 x5 x 3 = 17 5 2 x 2 1 2 x5 x 4 = 3 3 2 x 2 + 1 2 x5 0 x 1, x 2, x 3, x 4, x 5 Simplexalgorithmus Zweite Iteration Nur eine Erhöhung von x 2 kann die Zielfunktion verbessern. Wie weit können wir x 2 nun erhöhen? Die Bedingung x 1 0 ergibt keine Einschränkung für x 2. Aus x 3 0 folgt x 2 34 5. Bedingung x 4 0 ergibt x 2 2. Erhöhen von x 2 auf 2, x 4 wird 0. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 33 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Simplexalgorithmus Zweite Iteration Wie vorher: System so umschreiben, dass sich alle positiven Variablen (die sogenannten Basisvariablen) auf der linken Seite befinden. Bei jedem Austausch wandert eine neue Variable, die vorher den Wert 0 hatte, in die Basis, während eine Variable, die vorher ungleich 0 war, den Wert 0 erhält, also zur Nicht-Basisvariable wird. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 34 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus max z = 15 + 7 2 x 2 3 2 x5 x 1 = 5 + 1 2 x 2 1 2 x5 x 3 = 17 5 2 x 2 1 2 x5 x 4 = 3 3 2 x 2 + 1 2 x5 0 x 1, x 2, x 3, x 4, x 5 Simplexalgorithmus Zweite Iteration Die dritte Gleichung gehört zur ausscheidenden Basisvariable, diese wird zu: x 2 = 2 2 3 x 4 + 1 3 x 5 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 35 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Simplexalgorithmus Zweite Simplex-Iteration Ersetzen von x 2 : z = 22 4 3 x 4 5 6 x 5 x 1 = 6 1 3 x 4 1 3 x 5 x 2 = 2 2 3 x 4 + 1 3 x 5 x 3 = 12 + 5 3 x 4 4 3 x 5 Nun können wir die Werte der Lösung wieder aus dem Tableau ablesen. Unsere neue Lösung sieht folgendermaßen aus: x 1 = 6, x 2 = 2, x 3 = 12, x 4 = 0, x 5 = 0, mit z = 22. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 36 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus max z = 22 4 3 x 4 5 6 x5 x 1 = 6 1 3 x 4 1 3 x5 x 2 = 2 2 3 x 4 + 1 3 x5 x 3 = 12 + 5 3 x 4 4 3 x5 Simplexalgorithmus Zweite Iteration Wieder Variable erhöhen, die zu einer Erhöhung der Zielfunktion führt? Jede Erhöhung einer Variable führt zu einer Verminderung des aktuellen Zielfunktionswertes. Die bisher erreichte Lösung mit Zielfunktionswert 22 ist optimal, da wir wissen, dass x 4 und x 5 nicht-negativ sein müssen. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 37 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Definition Die Variablen die auf der linken Seite unserer Gleichungssysteme auftreten werden Basisvariablen genannt, während die anderen Nicht-Basisvariablen heißen. Die Lösungen, die wir durch Null setzen der Nicht-Basisvariablen erhalten heißen Basislösungen, die auch den Ecken des Polyeders entsprechen. Generell: Der Simplexalgorithmus beginnt mit einer zulässigen Basislösung, und wandert von einer Basislösung zur nächsten die einen gleichen oder besseren Zielfunktionswert aufweist. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 38 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus 6 5 4 3 2 x 1 + x 2 = 8 x 1 + 3x 2 = 12 2x 1 x 2 = 10 1 0 0 1 2 3 4 5 6 3x 1 + 2x 2 = 22 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 39 / 247
Lineare Programmierung Simplexalgorithmus Einblick in den Simplexalgorithmus Mehr Details: VU Fortgeschrittene Algorithmen und Datenstrukturen R. Vanderbei. Linear Programming: Foundations and Extensions. Kluwer. 1998. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 40 / 247
Lineare Programmierung Netzwerkflussproblem Netzwerkflussproblem Verallgemeinerung des Transportproblems Angebotsknoten, Zwischenknoten, Bedarfsknoten Versandorte, Umschlagpunkte, Empfangsorte Fluss repräsentiert Menge der transportierten Waren Ziel: Kosten minimieren Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 41 / 247
Lineare Programmierung Netzwerkflussproblem Modell Netzwerkflussproblem Gegeben ein Graph G(V, E) mit Kantenkosten c ij und Kapazitäten d ij min c ij x ij (i,j) E x ij x ji = b i i V j:(i,j) E j:(j,i) E 0 x ij d ij (i, j) A Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 42 / 247
Lineare Programmierung Netzwerkflussproblem Lösungsverfahren Cycle Cancelling Algorithm Successive Shortest Path Algorithm Netzwerksimplex Primal/Dual Verfahren VU Algorithmen auf Graphen Ahuja, Magnanti, Orlin. Network Flows. 1993. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 43 / 247
Lineare Programmierung Netzwerkflussproblem Mehrgüter Netzwerkflussproblem Multi-commodity flow problems Darauf basierende Modelle werden in vielen Bereichen angewandt Im Gegensatz zum Transportproblem und zum Netzwerkflussproblem besitzen solche Modelle nicht die Ganzzahligkeitseigenschaft. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 44 / 247
Lineare Programmierung Netzwerkflussproblem Mehrgüter Netzwerkflussproblem - Modell Gegeben k = 1,..., K Güter. j:(i,j) E x k ij K k=1 j:(j,i) E min K k=1 (i,j) E c k ij x k ij x k ij d ij, (i, j) E x k ji = b k i, i V, k = 1,..., K 0 x k ij d k ij, (i, j) A k = 1,..., K Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 45 / 247
Teil I: Einführung Ganzzahlige Lineare Programmierung 1 Logistik 2 Lineare Programmierung Einführung Definitionen Simplexalgorithmus Netzwerkflussproblem 3 Ganzzahlige Lineare Programmierung Travelling Salesman Problem Definitionen Branch and Bound 4 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarshcaftssuche Evolutionäre Algorithmen Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 46 / 247
Ganzzahlige Lineare Programmierung Travelling Salesman Problem Travelling Salesman Problem Gegeben: Vollständiger Graph K n = (V, E) mit Kantengewichten c R E. Gesucht: Tour minimalen Gewichts. Zulässigen Lösungen: Menge aller Touren in K n. Variablen: Kanten in K n. Jeder Tour entspricht ein 0/1-Vektor x R E und umgekehrt. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 47 / 247
Ganzzahlige Lineare Programmierung Travelling Salesman Problem Travelling Salesman Problem Sei δ(v) die Menge aller zu v inzidenten Kanten und x(δ(v)) die Summe aller Werte x e, deren Kanten sich in δ(v) befinden. Touren besuchen jeden Knoten genau einmal: Anzahl der zu v inzidenten Kanten in einer Tour ist genau 2. Daraus folgen die Grad-Gleichungen: x(δ(v)) = 2 für alle v V Diese Gleichungen alleine genügen noch nicht, um Touren zu charakterisieren. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 48 / 247
Ganzzahlige Lineare Programmierung Travelling Salesman Problem Travelling Salesman Problem Eine Tour ist zusammenhängend. Sei beliebige Tour T, betrachte Knotenmenge W V und alle Kanten, die in W beginnen und außerhalb von W enden: Dann müssen davon mindestens zwei Kanten Teil von T sein. Dies führt zu Subtour-Eliminations-Ungleichungen: x(δ(w )) 2 für alle W V, W, W V Ein Schnitt δ(w ) einer Knotenmenge W V bezeichnet alle Kanten, die einen Endknoten in W, und einen Endknoten außerhalb von W besitzen. x(δ(w )) bezeichnet die Summe aller Werte x e, deren Kanten sich im Schnitt δ(w ) befinden. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 49 / 247
Ganzzahlige Lineare Programmierung Travelling Salesman Problem Travelling Salesman Problem n min c e x e e E x(δ(v)) = 2 für alle v V x(δ(w )) 2 für alle W V, W, W V 0 x e 1 für alle e E x e {0, 1} für alle e E Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 50 / 247
Ganzzahlige Lineare Programmierung Definitionen Ganzzahliges Lineares Programm Ganzzahliges Lineares Programm n min c i x i i=1 n a ij x i b j j = 1,..., m i=1 x i 0, x i ganzzahlig i = 1,..., n Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 51 / 247
LP Relaxierung Ganzzahlige Lineare Programmierung Definitionen Relaxierung (Weglassen) der Ganzzahligkeitsbedingung Lineare Programme sind effizient lösbar Untere Schranke für das Ganzzahlige Lineare Programm Lösungswerte der Relaxierung können auf Lösung des Originalproblems hinweisen Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 52 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound Aufzählungsverfahren: Lösungsbaum entsteht zum Beispiel durch Tiefensuche Berechnung von unteren und oberen Schranken um Teile des Lösungsbaums abzuschneiden. Untere Schranke: LP Relaxierung Obere Schranke: Zulässige ganzzahlige Lösung Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 53 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound Lösung der LP Relaxierung im Wurzelknoten Sei x i Variable mit fraktionalem Wert x i. Verzweigung des Suchbaums in: x i x i und x i x i Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 54 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung Beispiel Branch-and-Bound Wir betrachten das ganzzahlige Programm max 7x 1 3x 2 4x 3 x 1 + 2x 2 + 3x 3 x 4 = 8 3x 1 + x 2 + x 3 x 5 = 5 x 1, x 2, x 3, x 4, x 5 0 x 1, x 2, x 3, x 4, x 5 Z Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 55 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung Beispiel Branch-and-Bound Die LP-Relaxierung liefert optimale Lösung x 3 = x 4 = x 5 = 0, x 1 = 2 5, x 2 = 19 5 mit Zielfunktionswert c = 71 5 (= 14, 2). Wir erhalten als obere Schranke 15. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 56 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung P 0 U = c = 15 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 57 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung Beispiel Branch-and-Bound Verzweigen nach Variable x 2 : P 1 = P 0 {x x 2 3} P 2 = P 0 {x x 2 4} P 1 : Nächstes Problem. Die Optimallösung der LP-Relaxierung LP 1 ist und c = 29 2 x 4 = x 5 = 0, x 1 = 1 2, x 2 = 2, x 3 = 1 2 (obere Schranke -15). Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 58 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung U = c = 15 x 2 3 P 1 P 0 U = c = 15 x 2 4 P 2 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 59 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung Beispiel Branch-and-Bound P 1 muss weiter zerlegt werden: P 3 = P 1 {x x 1 0} P 4 = P 1 {x x 1 1} Die aktiven Probleme sind: K = {P 2, P 3, P 4 }. Lösung von LP 3 liefert x 1 = x 5 = 0, x 2 = 3, x 3 = 2, x 4 = 4 und c = 17. P 3 ist gelöst bisher beste Lösung hat Wert 17. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 60 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung U = c = 15 x 2 3 P 1 P 0 U = c = 15 x 2 4 P 2 x 1 0 x 1 1 U = 17 P 3 P 4 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 61 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung Beispiel Branch-and-Bound Lösung von LP 4 liefert: x 4 = 0, x 1 = 1, x 2 = 3, x 3 = 1 3, x 5 = 4 3 und c = 52 3 = 17 1 3. Obere Schranke ( 18) ist schlechter als die beste Lösung, damit ist auch P 4 gelöst. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 62 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung U = c = 15 x 2 3 P 1 P 0 U = c = 15 x 2 4 P 2 U = 17 x 1 0 x 1 1 U = 17 P 3 c = 18 P 4 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 63 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung Beispiel Branch-and-Bound Lösen von P 2 : LP-Relaxierung hat Optimum x 3 = x 5 = 0, x 1 = 1 3, x 2 = 4, x 4 = 1 3 und c = 43 3. P 2 ist noch nicht gelöst, verzweigen: P 5 = P 2 {x x 1 0} P 6 = P 2 {x x 1 1} Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 64 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung U = c = 15 x 2 3 P 1 P 0 U = c = 15 x 1 0 x 2 4 P 2 U = 17 c = 15 x 1 0 x 1 1 x 1 1 U = 17 P 3 c = 18 P 4 P 5 P 6 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 65 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung Beispiel Branch-and-Bound Die Lösung von LP 5 liefert x 1 = x 3 = x 5 = 0, x 2 = 5, x 4 = 2 und c = 15. Dies ist eine neue beste Lösung mit Wert 15. P 5 ist gelöst. P 6 braucht nicht mehr betrachtet zu werden, da wegen LP 0 keine bessere Lösung als 15 möglich ist. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 66 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound für Ganzzahlige Optimierung U = c = 15 x 2 3 P 1 P 0 U = c = 15 x 1 0 x 2 4 P 2 U = 17 c = 15 x 1 0 x 1 1 x 1 1 U = 17 P 3 c = 18 P 4 U = 15 P 5 c = 15 P 6 Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 67 / 247
Ganzzahlige Lineare Programmierung Branch and Bound Branch and Bound Verschiedene Varianten: Selektion des nächsten Knoten Variablenselektion Wie werden Knoten aufgespalten Mögliche Probleme: zu lange Laufzeiten, zu viel Speicherplatz... Mehr Details: VU Fortgeschrittene Algorithmen und Datenstrukturen L. Wolsey. Integer Programming. Wiley. 1998. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 68 / 247
Teil I: Einführung Lokale Suche und Metaheuristiken 1 Logistik 2 Lineare Programmierung Einführung Definitionen Simplexalgorithmus Netzwerkflussproblem 3 Ganzzahlige Lineare Programmierung Travelling Salesman Problem Definitionen Branch and Bound 4 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarshcaftssuche Evolutionäre Algorithmen Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 69 / 247
Lokale Suche und Metaheuristiken Heuristiken Wozu? Praktische Optimierungsprobleme sind oft sehr schwer zu lösen. Exakte Verfahren können viel Zeit und Speicher benötigen Oft ist es schon sehr aufwendig gute Startlösungen zu finden Heuristiken sind oft in der Lage in kurzer Zeit gute Lösungen für schwierige Problem zu finden Nachteile: Keine Optimialitätsgarantie Keine Gütegarantie Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 70 / 247
Heuristiken Lokale Suche und Metaheuristiken Man unterscheidet grundsätzlich: Konstruktionsheuristiken: meist sehr problemspezifisch, häufig schnell und einfach aufgebaut Verbesserungsheuristiken: setzen auf Konstruktionsheuristiken auf, versuchen Lösungen schrittweise durch Änderungen zu verbessern problemunabhängigere Prinzipien, oft langsamer aber bessere Ergebnisse TSP Demo Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 71 / 247
Lokale Suche und Metaheuristiken Metaheuristiken Verbesserungsheuristiken liefern meistens nur lokale Optima. Schwere Probleme haben aber meistens viele lokale Optima die nicht global optimal sind. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 72 / 247
Metaheuristiken Lokale Suche und Metaheuristiken Metaheuristiken sind Verfahren die lokalen Optima entwischen können. Einige Metaheuristiken: Variable Neighborhood Search Very Large Neighborhood Search Tabu Suche Ant Colony Optimization Evolutionäre Algorithmen Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 73 / 247
Lokale Suche und Metaheuristiken Einfache Lokale Suche Lokale Suche Lokale Suche begin x Ausgangslösung; repeat: wähle ein x N(x); if f (x ) f (x) then x x ; until Abbruchkriterium erfüllt; end N(x): Nachbarschaft von x (Wir gehen von Minimierung aus.) Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 74 / 247
Lokale Suche und Metaheuristiken Lokale Suche Bestandteile der lokalen Suche Definition der Lösungsrepräsentation und einer Zielfunktion f (x) Initialisierung der Anfangslösung Nachbarschaftsstruktur, d.h. welche Lösungen sind benachbart? Schrittfunktion, d.h. in welcher Reihenfolge wird die Nachbarschaft durchsucht bzw. welche Nachbarlösung wird gewählt? Abbruchbedingung Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 75 / 247
Lokale Suche und Metaheuristiken Nachbarschaftsstruktur Lokale Suche Definition (Nachbarschaftsstruktur) Eine Nachbarschaftsstruktur ist eine Funktion N : S 2 S, die jeder gültigen Lösung x S eine Menge von Nachbarn N(x) S zuweist. N(x) wird auch Nachbarschaft (von x) genannt. Die Nachbarschaft ist üblicherweise implizit durch mögliche Veränderungen (Züge, Moves) definiert Darstellung als Nachbarschaftsgraph möglich Größe der Nachbarschaft vs. Suchaufwand Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 76 / 247
Lokale Suche und Metaheuristiken Lokale Suche Schrittfunktion (Auswahl von x ) Random Neighbor: Generiere immer eine zufällige Nachbarlösung aus N(x). Next Improvement: Durchsuche N(x) in einer festen Reihenfolge, nimm erste Lösung, die besser als x ist. Best Improvement: Durchsuche N(x) vollständig und nimm die beste Nachbarlösung. Wahl kann starken Einfluss auf Performance haben, aber es gibt keine Strategie die immer besser ist als die anderen! Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 77 / 247
Lokale Suche und Metaheuristiken Variable Neighborhood Search Variable Nachbarshcaftssuche (Hansen und Mladenovic, 1997) Dieses Verfahren macht sich folgende Eigenschaften zu Nutze: 1 Ein lokales Optimum in Bezug auf eine Nachbarschaftsstruktur ist nicht unbedingt ein lokales Optimum in Bezug auf eine andere. 2 Ein globales Optimum ist ein lokales Optimum in Bezug auf alle möglichen Nachbarschaftsstrukturen. 3 Für viele Probleme liegen lokale Optima relativ nahe beieinander. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 78 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Variable Neighborhood Descent (VND) Nachbarschaftsstrukturen N 1,..., N lmax werden systematisch gewechselt. Variable Neighborhood Descent (x) begin l 1; repeat: finde ein x N l (x) mit f (x ) f (x ), x N l (x); if f (x ) < f (x) then x x ; l 1; else l l + 1; until l > l max ; return x; end Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 79 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Variable Neighborhood Descent (contd.) Es wird eine Lösung erreicht, die in allen Nachbarschaftsstrukturen lokal optimal ist. Ordnung der Nachbarschaftsstrukturen: meist nach Größe bzw. Komplexität der Auswertung oder zufällig Beispiel: Vehicle Routing Problem (VRP) N 1 (x): 2-exchange innerhalb der einzelnen Touren N 2 (x): Verschieben einer Stadt von einer Tour zu einer anderen N 3 (x): Austausch zweier Städte über Touren hinweg N 4 (x): 3-exchange innerhalb der einzelnen Touren... Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 80 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Variable Neighborhood Descent (contd.) Es wird eine Lösung erreicht, die in allen Nachbarschaftsstrukturen lokal optimal ist. Ordnung der Nachbarschaftsstrukturen: meist nach Größe bzw. Komplexität der Auswertung oder zufällig Beispiel: Vehicle Routing Problem (VRP) N 1 (x): 2-exchange innerhalb der einzelnen Touren N 2 (x): Verschieben einer Stadt von einer Tour zu einer anderen N 3 (x): Austausch zweier Städte über Touren hinweg N 4 (x): 3-exchange innerhalb der einzelnen Touren... Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 80 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Variable Neighborhood Descent (contd.) Es wird eine Lösung erreicht, die in allen Nachbarschaftsstrukturen lokal optimal ist. Ordnung der Nachbarschaftsstrukturen: meist nach Größe bzw. Komplexität der Auswertung oder zufällig Beispiel: Vehicle Routing Problem (VRP) N 1 (x): 2-exchange innerhalb der einzelnen Touren N 2 (x): Verschieben einer Stadt von einer Tour zu einer anderen N 3 (x): Austausch zweier Städte über Touren hinweg N 4 (x): 3-exchange innerhalb der einzelnen Touren... Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 80 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Variable Neighborhood Search (VNS) VNS ist ein Rahmenwerk, um lokalen Optima zu entkommen. Die Grundidee ist die zufällige Auswahl von Nachbarlösungen aus immer größer werdenden Nachbarschaften. Wiederum gibt es ein Pool unterschiedlicher Nachbarschaftsstrukturen N 1,..., N kmax, nun aber mit folgenden Eigenschaften: Es gibt auch wesentlich größere Nachbarschaftsstrukturen, die i.a. nicht vollständig durchsucht werden können. Die Nachbarschaftsstrukturen sind nach ihrer Größe bzw. der Entfernung Ihrer Lösungen von der Ausgangslösung nach sortiert. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 81 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Variable Neighborhood Search (VNS) VNS ist ein Rahmenwerk, um lokalen Optima zu entkommen. Die Grundidee ist die zufällige Auswahl von Nachbarlösungen aus immer größer werdenden Nachbarschaften. Wiederum gibt es ein Pool unterschiedlicher Nachbarschaftsstrukturen N 1,..., N kmax, nun aber mit folgenden Eigenschaften: Es gibt auch wesentlich größere Nachbarschaftsstrukturen, die i.a. nicht vollständig durchsucht werden können. Die Nachbarschaftsstrukturen sind nach ihrer Größe bzw. der Entfernung Ihrer Lösungen von der Ausgangslösung nach sortiert. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 81 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Variable Neighborhood Search (VNS) VNS (x) begin repeat: k 1; repeat: Shaking: generiere zufälliges x N k (x); x lokale Suche(x ); if f (x ) < f (x) then x x ; k 1; else k k + 1; until k > k max; until Abbruchkriterium erfüllt; return x; end Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 82 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Zu den Nachbarschaftsstrukturen N 1,..., N kmax Um das Hängenbleiben in einem lokalen Optimum zumindest theoretisch sicher zu vermeiden, sollte die Vereinigung aller N 1 (x),..., N kmax (x) den gesamten Raum S aller gültigen Lösungen beinhalten: S N 1 (x) N 2 (x) N kmax, x S Die einzelnen Nachbarschaften können, müssen aber nicht disjunkt sein. Oft sind geschachtelte Nachbarschaften die einfachste Wahl: N 1 (x) N 2 (x) N kmax, x S Dies kann beispielsweise erreicht werden, indem das Shaking in der Nachbarschaft N k durch k hintereinander ausgeführte Züge in der N 1 -Nachbarschaftsstruktur realisiert wird. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 83 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Zu den Nachbarschaftsstrukturen N 1,..., N kmax Um das Hängenbleiben in einem lokalen Optimum zumindest theoretisch sicher zu vermeiden, sollte die Vereinigung aller N 1 (x),..., N kmax (x) den gesamten Raum S aller gültigen Lösungen beinhalten: S N 1 (x) N 2 (x) N kmax, x S Die einzelnen Nachbarschaften können, müssen aber nicht disjunkt sein. Oft sind geschachtelte Nachbarschaften die einfachste Wahl: N 1 (x) N 2 (x) N kmax, x S Dies kann beispielsweise erreicht werden, indem das Shaking in der Nachbarschaft N k durch k hintereinander ausgeführte Züge in der N 1 -Nachbarschaftsstruktur realisiert wird. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 83 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche Zu den Nachbarschaftsstrukturen N 1,..., N kmax Um das Hängenbleiben in einem lokalen Optimum zumindest theoretisch sicher zu vermeiden, sollte die Vereinigung aller N 1 (x),..., N kmax (x) den gesamten Raum S aller gültigen Lösungen beinhalten: S N 1 (x) N 2 (x) N kmax, x S Die einzelnen Nachbarschaften können, müssen aber nicht disjunkt sein. Oft sind geschachtelte Nachbarschaften die einfachste Wahl: N 1 (x) N 2 (x) N kmax, x S Dies kann beispielsweise erreicht werden, indem das Shaking in der Nachbarschaft N k durch k hintereinander ausgeführte Züge in der N 1 -Nachbarschaftsstruktur realisiert wird. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 83 / 247
Lokale Suche und Metaheuristiken Variable Nachbarshcaftssuche General Variable Neighborhood Search (GVNS) Kombiniert VNS mit VND. Die Nachbarschaftsstrukturen der VNS (N 1,..., N kmax ) und des VND (N 1,..., N lmax ) sind nicht ident! Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 84 / 247
Lokale Suche und Metaheuristiken Evolutionäre Algorithmen Evolutionäre Algorithmen Computer-basierte Problemlösungssysteme, die berechenbare Modelle von natürlichen, evolutionären Prozessen als Schlüsselelemente verwenden Charles Darwin, 1859: Werk über den Ursprung der Arten Vererbung mit Veränderungen (Mutationen) Natürliche Auslese (Selektion) Gregor Johann Mendel, 1822 1884: Mendelsche Gesetze (Vererbung) Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 85 / 247
Lokale Suche und Metaheuristiken Prinzipieller Aufbau eines EAs Evolutionäre Algorithmen Evolutionärer Algorithmus begin P set of initial solutions; Evaluate(P); repeat: Q SelectSolutionsForVariation(P); Q GenerateNewSolutionsByVariation(Q); Evaluate(Q); P SelectSurvivingSolutions(P, Q); until termination condition end Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 86 / 247
Lokale Suche und Metaheuristiken Evolutionäre Algorithmen Evolutionäre Algorithmen Anstatt einer einzelnen aktuellen Lösung wird mit einer Population von Kandidatenlösungen gearbeitet Der Zufall spielt im allgemeinen eine große Rolle bei der Initialisierung, den Variationsoperatoren und der Selektion Repräsentation der Lösungen ist ein essentieller Bestandteil von EAs Initialisierung üblicherweise durch randomisierte Konstruktionsheuristiken Variationsoperatoren: Mutation, Rekombination Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 87 / 247
Lokale Suche und Metaheuristiken Evolutionäre Algorithmen Evolutionäre Algorithmen: Repräsentation Potentielle Lösungen müssen durch eine Datenstruktur repräsentiert werden. Genotyp: kodierte Form einer Lösung (=Chromosom) Phenotyp: dekodierte Form einer Lösung; der Genotyp kann als Baubeschreibung des Phenotypes aufgefaßt werden Der Genotyp kann zum Beispiel ein Binärstring oder eine Permutation sein. Bei einer direkten Repräsentation entspricht der Genotyp genau dem Phenotyp Bei einer indirekten Repräsentation muss der Genotyp mittels eines Algorithmus in einen Phenotyp dekodiert werden. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 88 / 247
Lokale Suche und Metaheuristiken Evolutionäre Algorithmen Evolutionäre Algorithmen: Selektion Meist zufallsgesteuerte Auswahl der Eltern zur Erzeugung der nächsten Generation Bessere Individuen eher (öfter) auswählen als schlechtere. Die Selektion treibt im GA die Population in Richtung besserer Lösungen. Fitness proportional selection (Roulette Wheel) Rank selection Tournament selection Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 89 / 247
Lokale Suche und Metaheuristiken Evolutionäre Algorithmen Evolutionäre Algorithmen: Variationsoperatoren Rekombination: Erzeugung von neuen Individuen aus selektierten Eltern. Ein neues Individuum soll möglichst aus Attributen aufgebaut werden, die bereits in den Eltern vorkommen (Vererbung). 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 Mutation: Kleine, zufällige Änderungen Dient dem Einbringen von neuem bzw. verlorengegangenem Genmaterial in die Population. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 90 / 247
Lokale Suche und Metaheuristiken Evolutionäre Algorithmen Hybride Algorithmen Existiert problemspezifisches Wissen ist es oft sinnvoll einen EA mit einer lokalen Optimierungsmethode zu kombinieren. EA: globale Sichtweise, findet hills Lokale Suche: hill climbing findet top of hills Beispiel: Lokale Optimierung vor Fitneßberechnung Vor der Fitneßberechnung für ein Individuum: einige Schritte einer lokalen Suche durchführen Derartige hybride Methoden werden auch memetische Algorithmen genannt. In der Praxis oft sehr erfolgreich! Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 91 / 247
Mehr Informationen Lokale Suche und Metaheuristiken Evolutionäre Algorithmen VU Heuristische Optimierungsverfahren F. W. Glover, G. A. Kochenberger: Handbook of Metaheuristics, Kluwer Academic Publishers, 2003 (Umfassendes, neueres Standardwerk zu Metaheuristiken) Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 92 / 247
Teil II Exakte Verfahren Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 93 / 247
Exakte Verfahren Im zweiten Teil der Vorlesung beschäftigen wir uns mit exakten Verfahren zum Lösen von Problemen aus der Transportlogistik Vor und Nachteile exakter Verfahren? Branch and Cut Branch and Price Travelling Salesman Problem Vehicle Routing Problem und verschiedene Varianten... Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 94 / 247
Travelling Salesman Problem Teil II: Exakte Verfahren 5 Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Kamm-Ungleichungen Kamm-Ungleichungen aus Blüten Gomory Mixed Integer Inequalities 6 Das Vehicle Routing Problem Capacitated Vehicle Routing Problem Branch-and-Cut für Capacitated Vehicle Routing 7 Vehicle Routing mit Zeitfenstern Modell Spaltengenereierung Branch-and-Price Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 95 / 247
Travelling Salesman Problem Travelling Salesman Problem Gegeben: Vollständiger Graph K n = (V, E) mit Kantengewichten c R E. Gesucht: Tour minimalen Gewichts. Sei δ(v) die Menge aller zu v inzidenten Kanten und x(δ(v)) die Summe aller Werte x e, deren Kanten sich in δ(v) befinden. Touren besuchen jeden Knoten genau einmal: Anzahl der zu v inzidenten Kanten in einer Tour ist genau 2. Daraus folgen die Grad-Gleichungen: x(δ(v)) = 2 für alle v V Diese Gleichungen alleine genügen noch nicht, um Touren zu charakterisieren. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 96 / 247
Travelling Salesman Problem Travelling Salesman Problem Eine Tour ist zusammenhängend. Sei beliebige Tour T, betrachte Knotenmenge W V und alle Kanten, die in W beginnen und außerhalb von W enden: Dann müssen davon mindestens zwei Kanten Teil von T sein. Dies führt zu Subtour-Eliminations-Ungleichungen: x(δ(w )) 2 für alle W V, W, W V Ein Schnitt δ(w ) einer Knotenmenge W V bezeichnet alle Kanten, die einen Endknoten in W, und einen Endknoten außerhalb von W besitzen. x(δ(w )) bezeichnet die Summe aller Werte x e, deren Kanten sich im Schnitt δ(w ) befinden. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 97 / 247
Travelling Salesman Problem Travelling Salesman Problem n min c e x e e E x(δ(v)) = 2 für alle v V x(δ(w )) 2 für alle W V, W, W V 0 x e 1 für alle e E x e {0, 1} für alle e E Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 98 / 247
Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Schnittebenenverfahren Cutting Plane Method Exponentiell viele Ungleichungen! Schnittebenenverfaren Grundidee Beginnne mit einer kleinen Teilmenge der Restriktionen und löse das resultierende LP. Prüfe ob Lösung für alle Restriktionen zulässig ist. Falls Ja : optimal Andernfalls finde Restriktion die von Lösung verletzt ist und füge sie zum LP hinzu. Iteriere bis keine Restriktionen mehr hinzugefügt werden müssen. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 99 / 247
Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Schnittebenenverfahren Cutting Plane Method Exponentiell viele Ungleichungen! Schnittebenenverfaren Grundidee Beginnne mit einer kleinen Teilmenge der Restriktionen und löse das resultierende LP. Prüfe ob Lösung für alle Restriktionen zulässig ist. Falls Ja : optimal Andernfalls finde Restriktion die von Lösung verletzt ist und füge sie zum LP hinzu. Iteriere bis keine Restriktionen mehr hinzugefügt werden müssen. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 99 / 247
Schnittebenverfahren Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 100 / 247
Travelling Salesman Problem Schnittebenenverfahren Schnittebenenverfahren und Branch-and-Cut Wir betrachten das allgemeine ganzzahliges Optimierungsproblem: min c T x unter der Nebenbedingung x S S ist eine endliche Teilmenge von R n und c R n. Schnittebenenverfahren Wähle Ax b gültig für alle x S P = {x Ax b} while P do Finde x P welches c T x minimiert if x S then return x else Finde Ungleichungen A x b so dass S {x A x b} und A x > b P = P {x A x b } return S = Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 101 / 247
Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Beschränktes Schnittebenenverfahren Beschränktes Schnittebenenverfahren Wähle Ax b gültig für alle x S P = {x Ax b} while P do Finde x P das c T x minimiert if x / S then if FINDCUTS(S, x ) findet Ungleichungen A x b then P = P {x A x b } else return P und x else return P und x return S = FINDCUTS(S, x ) findet nicht alle verletzten Schnittebenen. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 102 / 247
Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Branch-and-Cut Beschränktes Schnittebenenverfahren liefert Lösung für Relaxierung. Branch-and-Bound mit Schnittebeneverfahren kombinieren: Branch-and-Cut Die einzelnen Teilprobleme werden mittels beschränktem Schnittebenenverfahren gelöst. Wenn man dort nicht mehr weiterkommt teilt man die Probleme auf. Jedes der neuen Teilprobleme wird wieder mit dem beschränkten Schnittebenenverfahren gelöst. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 103 / 247
Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Branch-and-Cut Idealerweise gibt es bei Branch-and-Cut Verfahren einen relativ kleinen Branch-and-Bound Baum, während dieser bei Branch-and-Bound typischerweise groß ist. Der Erfolg von Branch-and-Cut Algorithmen beruht auf 1 der Verwendung guter LP-Relaxierungen 2 schnellen Separationsalgorithmen 3 zahlreichen strategischen und algorithmischen Tricks Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 104 / 247
Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Subtour-Eliminations-Ungleichungen Finden verletzter Subtour-Eliminations-Ungleichungen Gegeben eine Lösung x eines relaxierten TSP Suche einen minimalen Schnitt x (δ(s)) Wenn x (δ(s)) < 2 verletzte Ungleichung gefunden Ansonsten ist x optimale Lösung der LP-Relaxierung des TSP Beschränktes Schnittebenenverfahren. Warum? Subtour-Eliminations-Ungleichungen berücksichtigen Ganzzahligkeit nicht. Weitere Schnittebenen, die die Ganzzahligkeit erzwingen, müssten noch hinzugefügt werden. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 105 / 247
Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Subtour-Eliminations-Ungleichungen Finden verletzter Subtour-Eliminations-Ungleichungen Gegeben eine Lösung x eines relaxierten TSP Suche einen minimalen Schnitt x (δ(s)) Wenn x (δ(s)) < 2 verletzte Ungleichung gefunden Ansonsten ist x optimale Lösung der LP-Relaxierung des TSP Beschränktes Schnittebenenverfahren. Warum? Subtour-Eliminations-Ungleichungen berücksichtigen Ganzzahligkeit nicht. Weitere Schnittebenen, die die Ganzzahligkeit erzwingen, müssten noch hinzugefügt werden. Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 105 / 247