Optimierungsverfahren in der Transportlogistik



Ähnliche Dokumente
Optimierungsverfahren in der Transportlogistik

Die Verbindung von Linearer Programmierung und Graphentheorie

3. Grundlagen der Linearen Programmierung

Bestimmung einer ersten

1 topologisches Sortieren

Schranken für zulässige Lösungen

Anmerkungen zur Übergangsprüfung

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Informatik-Sommercamp Mastermind mit dem Android SDK

OPERATIONS-RESEARCH (OR)

4. Dynamische Optimierung

Das Briefträgerproblem

Lineare Programmierung

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Grundlagen und Basisalgorithmus

Konzepte der Informatik

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Optimierung und Simulation ökonomischer Problemlagen privater Haushalte 3. Vorlesung

Grundlagen der Theoretischen Informatik, SoSe 2008

Algorithmen II Vorlesung am

Primzahlen und RSA-Verschlüsselung

Lineare Programmierung. Beispiel: Wahlkampf. Beispiel: Wahlkampf. Mathematische Schreibweise. Lineares Programm. Datenstrukturen & Algorithmen

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

Optimierung. Optimierung. Vorlesung 7 Lineare Programmierung II Thomas Brox, Fabian Kuhn

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

WS 2009/10. Diskrete Strukturen

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Theoretische Grundlagen der Informatik

Kapiteltests zum Leitprogramm Binäre Suchbäume

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Optimierung für Nichtmathematiker

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Erwin Grüner

Überblick. Lineares Suchen

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Lineare Gleichungssysteme

WS 2013/14. Diskrete Strukturen

7 Rechnen mit Polynomen

Grundbegriffe der Informatik

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah

15 Optimales Kodieren

1 Mathematische Grundlagen

Zeichen bei Zahlen entschlüsseln

LINGO: Eine kleine Einführung

Guide DynDNS und Portforwarding

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

3. LINEARE GLEICHUNGSSYSTEME

Teil II Optimierung. Peter Buchholz Modellgestützte Analyse und Optimierung Kap. 9 Einführung Optimierung

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Lineare Gleichungssysteme

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Binärdarstellung von Fliesskommazahlen

Algorithmentheorie Maximale Flüsse

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Rechnerische Komplexität

Anwendungen der Wirtschaftsmathematik und deren Einsatz im Schulunterricht

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Algorithmen und Datenstrukturen

Approximation in Batch and Multiprocessor Scheduling

3.4 Exakte Verfahren für (Gemischt-) Ganzzahlige Optimierung

Simplex-Umformung für Dummies

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Algorithmen & Datenstrukturen 1. Klausur

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Algorithmische Mathematik

Planen mit mathematischen Modellen 00844: Computergestützte Optimierung. Autor: Dr. Heinz Peter Reidmacher

6.2 Scan-Konvertierung (Scan Conversion)

Datenstrukturen und Algorithmen

Lineare Gleichungssysteme

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Professionelle Seminare im Bereich MS-Office

Algorithmische Methoden für schwere Optimierungsprobleme

Maximizing the Spread of Influence through a Social Network

Charakteristikenmethode im Beispiel

Beheben von verlorenen Verknüpfungen

Verbesserungsheuristiken

Alignment-Verfahren zum Vergleich biologischer Sequenzen

Datenstrukturen & Algorithmen

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Übungsklausur. Bitte wählen Sie fünf Aufgaben aus! Aufgabe 1. Übungsklausur zu Mathematik I für BWL und VWL (WS 2008/09) PD Dr.

Eine Logikschaltung zur Addition zweier Zahlen

Periodische Fahrpläne und Kreise in Graphen

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Kapitel 15. Lösung linearer Gleichungssysteme

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Informationsblatt Induktionsbeweis

Statistische Untersuchungen zu endlichen Funktionsgraphen

Abschnitt: Algorithmendesign und Laufzeitanalyse

Diskrete Optimierung

Transkript:

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