Optimierungsverfahren in der Transportlogistik

Größe: px
Ab Seite anzeigen:

Download "Optimierungsverfahren in der Transportlogistik"

Transkript

1 Optimierungsverfahren in der Transportlogistik Jakob Puchinger AIT - Mobility Department Jakob Puchinger AIT - Mobility Department 1 / 291

2 Organisatorisches Dienstags 17:30-19:00 3 Übungstermine mit Anwesenheitspflicht Übungsblätter bzw. kurze Präsentationen Mündliche Prüfung: Stoff der Vorlesung und Übung Termin: oder und nach Vereinbarung Jakob Puchinger AIT - Mobility Department 2 / 291

3 Organisatorisches Welche der folgende LVAs haben Sie besucht? Heuristische Optimierung Fortgeschrittene Algorithmen Algorithmen auf Graphen Operations Research Jakob Puchinger AIT - Mobility Department 3 / 291

4 Teil I Einführung Jakob Puchinger AIT - Mobility Department 4 / 291

5 Logistik Definition Logistik (Wikipedia, ) 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 AIT - Mobility Department 5 / 291

6 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: Mio. t Österreich 2007 Schiene: 115 Mio. t Straße: 354 Mio. t Donau: 12 Mio. t Jakob Puchinger AIT - Mobility Department 6 / 291

7 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 AIT - Mobility Department 7 / 291

8 Gestaltung der Transportnetze Festlegung der Anzahl, Standorte und Funktion der Knoten des Netzwerks. Facility location problem p-median problem Jakob Puchinger AIT - Mobility Department 8 / 291

9 Planung der Transportwege und Transportmittel Transportation problem Minimum cost flow problem Multicommodity flow problems [ς,c] f 3 [3,4] v1 3 [5,2] v2 [3,2] 3 [2,6] s [1,1] t b(s)=5 2 [3,4] [7,3] 2 b(t)= 5 v3 Jakob Puchinger AIT - Mobility Department 9 / 291

10 Planung des Fahrzeugeinsatzes und Tourenplanung Travelling salesman problem Vehicle routing problem Pick-up-and-delivery problem Dial-a-ride problem Jakob Puchinger AIT - Mobility Department 10 / 291

11 Transportlogistik am AIT Mobility Department Dynamic Transportation Systems: Multimodale Verkehrsströme Verkehrszustandserfassung: Fleet, GoSmart Verwendung der Verkehrsinformationen in der Transportlogistik Dynamische Tourenplanung Standortplanung Abweichungsmanagement Jakob Puchinger AIT - Mobility Department 11 / 291

12 Transportlogistik am AIT Mobility Department Verkehr Aktuelle Verkehrslage Jakob Puchinger AIT - Mobility Department 12 / 291

13 Transportlogistik am AIT Mobility Department Aktuelle Logistikprojekte am AIT HealthLog - Solutions for Health Logistics: Dynamic Stochastic Fleet Management Dynamische und stochastische Optimierung von Krankentransporten Kooperation mit: Universität Wien, Fluidtime Data Services, Samariterbund Wien CareLog - Optimierte intermodale Touren in der mobilen Pflege und Betreuung Tourenplanung im öffentlichen Verkehr + Individualverkehr Kooperation mit: Ilogs Mobile Software, ITS Vienna Region, Sozial Global I2Bau - Integrierte Intermodale Standort-, Netzwerk- und Routenplanung für die Schüttgutlogistik Optimierung intermodaler Transportnetze Kooperation mit: STRABAG BLT, HUBAUER heavy weight logistics Jakob Puchinger AIT - Mobility Department 13 / 291

14 Teil II Heuristische Verfahren Jakob Puchinger AIT - Mobility Department 14 / 291

15 Teil II: Heuristische Verfahren 1 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarschaftssuche Evolutionäre Algorithmen 2 Capacitated Vehicle Routing Konstruktionsheuristiken Zwei-Phasen Heuristiken Verbesserungsheuristiken Evolutionärer Algorithmus 3 Vehicle Routing mit Zeitfenstern Konstruktionsheuristiken Verbesserungsheuristiken Metaheuristiken 4 Das Multi-Depot VRP Ein Evolutionärer Algorithmus für das MDVRP 5 Pickup and Delivery Probleme Tabu Search Jakob Puchinger AIT - Mobility Department 15 / 291

16 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 AIT - Mobility Department 16 / 291

17 Heuristiken 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 AIT - Mobility Department 17 / 291

18 Metaheuristiken Verbesserungsheuristiken liefern meistens nur lokale Optima. Schwere Probleme haben aber meistens viele lokale Optima die nicht global optimal sind. Jakob Puchinger AIT - Mobility Department 18 / 291

19 Metaheuristiken Metaheuristiken sind Verfahren die lokalen Optima entwischen können. Einige Metaheuristiken: Variable Neighbourhood Search Very Large Neighbourhood Search Tabu Suche Ant Colony Optimization Evolutionäre Algorithmen Jakob Puchinger AIT - Mobility Department 19 / 291

20 Einfache 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 AIT - Mobility Department 20 / 291

21 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 AIT - Mobility Department 21 / 291

22 Nachbarschaftsstruktur 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 AIT - Mobility Department 22 / 291

23 Beispiel: Symmetrisches TSP Ausgangslösung ist eine beliebige Tour k-exchange (k-opt) Nachbarschaft: Touren, die sich in maximal k Kanten unterscheiden Nachbarschaftsgröße: O(n k ) Beispiel: 2-exchange für das TSP Jakob Puchinger AIT - Mobility Department 23 / 291

24 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 AIT - Mobility Department 24 / 291

25 Variable Neighbourhood Search (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 AIT - Mobility Department 25 / 291

26 Variable Neighbourhood Descent (VND) Variable Neighbourhood 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 AIT - Mobility Department 26 / 291

27 Variable Neighbourhood 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 AIT - Mobility Department 27 / 291

28 Variable Neighbourhood 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 AIT - Mobility Department 27 / 291

29 Variable Neighbourhood 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 AIT - Mobility Department 27 / 291

30 Variable Neighbourhood 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 AIT - Mobility Department 28 / 291

31 Variable Neighbourhood 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 AIT - Mobility Department 28 / 291

32 Variable Neighbourhood 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 AIT - Mobility Department 29 / 291

33 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 AIT - Mobility Department 30 / 291

34 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 AIT - Mobility Department 30 / 291

35 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 AIT - Mobility Department 30 / 291

36 General Variable Neighbourhood 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 AIT - Mobility Department 31 / 291

37 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, : Mendelsche Gesetze (Vererbung) Jakob Puchinger AIT - Mobility Department 32 / 291

38 Prinzipieller Aufbau eines EAs 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 AIT - Mobility Department 33 / 291

39 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 AIT - Mobility Department 34 / 291

40 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 AIT - Mobility Department 35 / 291

41 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 AIT - Mobility Department 36 / 291

42 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) Mutation: Kleine, zufällige Änderungen Dient dem Einbringen von neuem bzw. verlorengegangenem Genmaterial in die Population. Jakob Puchinger AIT - Mobility Department 37 / 291

43 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 Es können auch exakte Verfahren mit Metaheuristiken kombiniert werden z.b.: Branch and Bound verwendet Metaheuristik zum finden guter Lösungen. Relaxierungen leiten Metaheuristik in vielversprechende Regionen des Lösungsraums. Generierung von Cutting Planes mittels Metaheuristiken... Jakob Puchinger AIT - Mobility Department 38 / 291

44 Mehr Informationen VU Heuristische Optimierungsverfahren F. W. Glover, G. A. Kochenberger: Handbook of Metaheuristics, Kluwer Academic Publishers, 2003 (Umfassendes, neueres Standardwerk zu Metaheuristiken) Jakob Puchinger AIT - Mobility Department 39 / 291

45 Teil II: Heuristische Verfahren 1 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarschaftssuche Evolutionäre Algorithmen 2 Capacitated Vehicle Routing Konstruktionsheuristiken Zwei-Phasen Heuristiken Verbesserungsheuristiken Evolutionärer Algorithmus 3 Vehicle Routing mit Zeitfenstern Konstruktionsheuristiken Verbesserungsheuristiken Metaheuristiken 4 Das Multi-Depot VRP Ein Evolutionärer Algorithmus für das MDVRP 5 Pickup and Delivery Probleme Tabu Search Jakob Puchinger AIT - Mobility Department 40 / 291

46 Capacitated Vehicle Routing Ein zentrales Warenlager (Depot). Kunden mit Bedarf and Waren. Die Fahrzeuge sind alle gleich und können nur eine gewisse Menge an Waren transportieren (Kapazität) Das Ziel ist die Kosten zu minimieren (gewichtete Funktion bestehend aus der Anzahl Fahrzeuge und Länge/Dauer der Routen) Jakob Puchinger AIT - Mobility Department 41 / 291

47 Konstruktionsheuristiken für CVRP Zwei Arten von Konstruktionsheuristiken: Zusammenfügen von Routen unter Berücksichtigung eines savings Kriteriums. Einfüge von neuen Städten in bestehende Routen unter Berücksichtigung eines insertion Kriteriums. Jakob Puchinger AIT - Mobility Department 42 / 291

48 Der Savings Algorithmus von Clarke und Wright Savings Kriterium Gegeben zwei Routen: (0,..., i, 0) und (0, j,..., 0). Wenn diese beiden Routen unter Einhaltung der Kapazitätsnebenbedingung zu (0,..., i, j,..., 0) zusammengefügt werden können, entsteht die folgende Einsparung (saving) bei der Distanz: s ij = c i0 + c 0j c ij Jakob Puchinger AIT - Mobility Department 43 / 291

49 Der Savings Algorithmus von Clarke und Wright Der Savings Algorithmus - Schritt 1 Beginne mit einer Route für jeden Kunden i: (0, i, 0) Berechne savings s ij = c i0 + c 0j c ij für i, j = 1,..., n Ordne savings in absteigender Reihenfolge Jakob Puchinger AIT - Mobility Department 44 / 291

50 Der Savings Algorithmus von Clarke und Wright Der Savings Algorithmus - Schritt 2 (parallel) Durchlaufe savings Liste. Für jeden Wert s ij überprüfe ob zwei Routen existieren die jeweils eine Kante (0, j) und (i, 0) enthalten die unter Einhaltung der Nebenbedingungen zusammengefügt werden können. Wenn dies der Fall ist, lösche Kanten (0, j) und (i, 0) und füge Kante (i, j) ein. Jakob Puchinger AIT - Mobility Department 45 / 291

51 Der Savings Algorithmus von Clarke und Wright Der Savings Algorithmus - Schritt 2 (sequentiell) Durchlaufe alle Routen (0, i,..., j, 0) Bestimme den ersten savings Wert s ki oder s jl der ein gültiges Zusammenfügen der aktuellen Route mit einer anderen Route (die entweder Kante (k, 0) oder (0, l) enthält) erlaubt. Füge die beiden Routen zusammen und wiederhole den Vorgang bis keine Routen mehr Zusammengeführt werden können. Jakob Puchinger AIT - Mobility Department 46 / 291

52 Zwei-Phasen Heuristiken für CVRP Es gibt zwei Arten von Zwei-Phasen Heuristiken für das CVRP: Cluster-first, Route-second Route-fist, Cluster-second Jakob Puchinger AIT - Mobility Department 47 / 291

53 Cluster-first, Route-second Heuristiken Sweep-Algorithmus (1) Der Sweep-Algorithmus verwendet ein geometrisches Verfahren für das Erstellen der Cluster und kann deshalb nur auf planare Instanzen angewendet werden. Die Knoten werden durch Polarkoordinaten (θ i, ρ i ) beschrieben. θ i ist der Winkel und ρ i die direkte Entfernung zum Depot. Setze θ i = 0 für ein beliebiges i. Jakob Puchinger AIT - Mobility Department 48 / 291

54 Cluster-first, Route-second Heuristiken Sweep-Algorithmus (2) 1. Wähle ein unbenutztes Fahrzeug k 2. Beginne mit dem ungerouteten Knoten mit dem kleinsten Winkel. Füge solange Knoten zum Fahrzeug k hinzu, bis Kapazität oder maximale Routenlänge ausgeschöpft ist. Wenn ungeroutete Knoten übrig sind gehe zu Erzeuge Touren mittels TSP für jeden Cluster. Jakob Puchinger AIT - Mobility Department 49 / 291

55 Cluster-first, Route-second Heuristiken Fisher und Jaikumar Algorithmus Fixe Anzahl K Routen (Cluster) Initialisiere jeden Cluster k mit einem Knoten j k Berechne die Kosten d ik für das Hinzufügen von Kunden i zu Cluster k: d ik = min{c 0i + c ijk + c jk 0, c 0jk + c jk i + c i0 } (c 0jk + c jk 0) Löse Generalized Assignment Problem (GAP) mit Kosten d ik, Gewichten (Bedarf) q i und Kapazität Q Löse TSP für jeden Cluster aus der GAP Lösung. Jakob Puchinger AIT - Mobility Department 50 / 291

56 Cluster-first, Route-second Heuristiken Generalized Assignement Problem min X X d ik x ik (1) i V k K X q i x ik Q k K (2) i V X x ik = 1 i V (3) k K x ij {0, 1} i V, k K (4) Jakob Puchinger AIT - Mobility Department 51 / 291

57 Route-first, Cluster-second (Beasley 1983) In der ersten Phase wir eine große TSP Tour, ohne Rücksicht auf Nebenbedingungen, erzeugt. In der zweiten Phase wird die Tour in kleinere Touren aufgesplittet. Eine optimale Partition der Tour kann in polynomialer Zeit mittels eines kürzeste Wege Algorithmus berechnet werden. In der Praxis ist gibt diese Verfahren keine besonders guten Ergebnisse, aber es spielt in Kombination mit andere Verfahren eine wichtige Rolle. Jakob Puchinger AIT - Mobility Department 52 / 291

58 Bestimmt man nun den kürzesten Weg von 0 bis n im gerichteten Graphen mit Kosten c ij erhält man eine optimale Partition der Jakob Puchinger gerichteten AIT - Mobility Department Tour. 53 / 291 Route-first, Cluster-second (Beasley 1983) Kürzeste Wege zum Bestimmen einer optimalen Partition Weise der Tour eine Richtung zu und nummeriere die Knoten von 1 bis n in der Reihenfolge der Tour, wobei Knoten 1 der erste Knoten nach dem Depot ist. Sei d ij die Distanz zwischen zwei Knoten, dann definiere c ij als die Distanz die ein Fahrzeug benötigt um die Kunden (i + 1, i + 2,..., j) in dieser Reihenfolge zu besuchen, falls die Route (0, i + 1,..., j, 0) den Nebenbedingungen entspricht. Sonst setze c ij =. { d 0,i+1 + j 1 k=i+1 c ij = d k,k+1 + d j0 wenn (0, i + 1,..., j, 0) erlaubt sonst

59 Verbesserungsheuristiken für CVRP Einzelrouten werden verbessert (klassische TSP Verbesserungsheuristiken), z.b.: k-opt: Entfernen von k Kanten aus der Tour, die Übrig gebliebenen Segmente werden auf alle mögliche Arten wieder verbunden. Lin-Kernighan: Dynamische Modifikation von k im Laufe der Suche. Or-opt: Segmente von 3, 2 oder 1 hintereinander liegenden Knoten werden zwischen jedes Paar von aufeinander folgenden Städten eingefügt. Jakob Puchinger AIT - Mobility Department 54 / 291

60 Verbesserungsheuristiken für CVRP Routen übergreifende Verbesserungsverfahren Routen übergreifende Verbesserungsverfahren lassen sich in drei Kategorien einteilen: String Cross: Durchtrennen von zwei Routen. Durch Kreuzen werden die Knotenketten (strings) dann an die jeweils andere Route wieder angeschlossen. String Exchange: Zwei Knotenketten werden zwischen zwei Routen ausgetauscht. String Relocation: Ein Knotenkette wird von einer Route in eine andere Route verschoben. Jakob Puchinger AIT - Mobility Department 55 / 291

61 Evolutionärer Algorithmus für CVRP (Prins 2004) Einfache Grundidee: Enkodierung als Permutation entsprechend genaue jener Reihenfolge in der ein einzelnes Fahrzeug alle Knoten besuchen würde. Die Permutationsenkodierung definiert also eine große TSP Tour. Berechnung einer optimalen Partition mittels Algorithmus von Beasley. Prinzipiell kann die optimale Lösung mit solch einem Verfahren erreicht werden. Jakob Puchinger AIT - Mobility Department 56 / 291

62 Evolutionärer Algorithmus für CVRP (Prins 2004) Einfache Grundidee: Enkodierung als Permutation entsprechend genaue jener Reihenfolge in der ein einzelnes Fahrzeug alle Knoten besuchen würde. Die Permutationsenkodierung definiert also eine große TSP Tour. Berechnung einer optimalen Partition mittels Algorithmus von Beasley. Prinzipiell kann die optimale Lösung mit solch einem Verfahren erreicht werden. Jakob Puchinger AIT - Mobility Department 56 / 291

63 Evolutionärer Algorithmus für CVRP (Prins 2004) Order Crossover OX 1. Crossover-Bereich zufällig bestimmen: A = B = Gene im Crossover-Bereich von A in B löschen und umgekehrt: A = _ B = 8 _ _ 4 _ 3. Gene umordnen: 3.1 Gene des eigenen Crossover-Bereichs 3.2 freie Plätze 3.3 alle anderen Gene (hinter dem Crossover-Bereich beginnend) A = _ B = _ Freie Plätze mit Genen aus Crossover-Bereich des Partners auffüllen: A = B = Jakob Puchinger AIT - Mobility Department 57 / 291

64 Evolutionärer Algorithmus für CVRP (Prins 2004) Mutation - Lokale Suche Mit einer gewissen Wahrscheinlichkeit wird lokale Suche aufgerufen, dabei werden für jedes Knotenpaar (u, v) die folgenden Moves getestet: 1. Wenn u Kundenknoten, entferne u und füge ihn nach v ein. 2. Wenn u, x Kundenknoten, entferne u und füge (u, x) nach v ein. 3. Wenn u, x Kundenknoten, entferne u und füge (x, u) nach v ein. 4. Wenn u, v Kundenknoten, vertausche u und v. 5. Wenn u, x, v Kundenknoten, vertausche (u, x) und v. 6. Wenn u, x, v, y Kundenknoten, vertausche (u, x), (v, y). 7. Wenn T (u) = T (v) ersetze (u, x), (v, y) durch (u, v), (x, y). 8. Wenn T (u) T (v) ersetze (u, x), (v, y) durch (u, v), (x, y). 9. Wenn T (u) T (v) ersetze (u, x), (v, y) durch (u, y), (x, v). x und y sind die Nachfolger von u und v, T (u) ist die Route die u besucht. Jakob Puchinger AIT - Mobility Department 58 / 291

65 Evolutionärer Algorithmus für CVRP (Prins 2004) Der EA findet sehr gute Ergebnisse, für mehr Details siehe: Christian Prins. A simple and effective evolutionary algorithm for the vehicle routing problem. Computers & Operations Research, 31: , Jakob Puchinger AIT - Mobility Department 59 / 291

66 Andere Beispiele für Metaheuristiken für CVRP Marc Reimann, Karl Doerner, and Richard F. Hartl. D-Ants: Savings Based Ants divide and conquer the vehicle routing problem. Computers & Operations Research, 31: , Michel Gendreau, Alain Hertz and Gilbert Laporte. A tabu search heuristic for the vehicle routing problem. Management Science, 40: , Jakob Puchinger AIT - Mobility Department 60 / 291

67 Teil II: Heuristische Verfahren 1 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarschaftssuche Evolutionäre Algorithmen 2 Capacitated Vehicle Routing Konstruktionsheuristiken Zwei-Phasen Heuristiken Verbesserungsheuristiken Evolutionärer Algorithmus 3 Vehicle Routing mit Zeitfenstern Konstruktionsheuristiken Verbesserungsheuristiken Metaheuristiken 4 Das Multi-Depot VRP Ein Evolutionärer Algorithmus für das MDVRP 5 Pickup and Delivery Probleme Tabu Search Jakob Puchinger AIT - Mobility Department 61 / 291

68 Vehicle Routing mit Zeitfenstern Neben der Einhaltung der bisherigen Nebenbedingungen spielt jetzt auch die Zeit eine wichtige Rolle. Jeder Kunde i gibt ein Zeitfenster an, innerhalb dessen er beliefert werden muss [e i, l i ]. Jeder Knoten hat eine gewisse Servicezeit s i. Zeitfenster können hart (Nebenbedingungen) oder weich (Strafterm in der Zielfunktion) sein. Jakob Puchinger AIT - Mobility Department 62 / 291

69 Konstruktionsheuristiken für das VRPTW Route-first, Cluster-second (Solomon 1986). Eine große Route wird erzeugt, diese wird dann in Subrouten zerlegt, wobei das Einhalten der Zeitfenster geachtet wird. Savings-basierte Heuristik (Solomon 1987). Ähnlich zu savings-basierten verfahren für das CVRP. Es wird ein Limit auf die Wartezeiten der Route gesetzt. Sequentielle Einfügeheuristik (Solomon 1987). Eine Route wird zunächst mit einem Startkunden initialisiert. Es werden dann solange wie möglich ungeroutete Kundenkoten zur Route hinzugefügt. Es werden solange neue Routen initialisiert und gebildet bis keine ungerouteten Kundenknoten übrig sind. Jakob Puchinger AIT - Mobility Department 63 / 291

70 Konstruktionsheuristiken für das VRPTW Zeitorientierte Nearest-Neighbour Heuristik M.M. Solomon. Algorithms for the Vehicle Routing and Scheduling Problems with Time Window Constraints. Operations Research, Vol. 35, No. 2, pp , 1987 Die Heuristik beginnt jede Tour mit dem zum Depot am nächsten liegenden Kundenknoten. Bei jeder weiteren Iteration wird der am nächsten zum zuletzt hinzugefügten Knoten liegende Knoten hinzugefügt. Wobei dieser nur aus jenen Kunden ausgewählt wird die erlaubterweise hinzugefügt werden dürfen. Jakob Puchinger AIT - Mobility Department 64 / 291

71 Konstruktionsheuristiken für das VRPTW Zeitorientierte Nearest-Neighbour Heuristik Um den nächsten Kunden auszuwählen wird folgende Metrik definiert: c ij = δ 1 d ij + δ 2 T ij + δ 3 v ij mit d ij Entfernung zwischen zwei Kunden T ij = b j (b i + s i ) Differenz zwischen Ende des Service am Knoten i und Beginn des Service am Knoten j v ij = l j (b i + s i + t ij ) Dringlichkeit Knoten j zu beliefern δ 1 + δ 2 + δ 3 = 1 und δ 1, δ 2, δ 3 0 Jakob Puchinger AIT - Mobility Department 65 / 291

72 Verbesserungsheuristiken für das VRPTW 2-Opt Exchange (Zweieraustausch) Or-Opt Relocate Exchange Cross-Exchange GENI (Details siehe Tafel) Jakob Puchinger AIT - Mobility Department 66 / 291

73 Verbesserungsheuristiken für das VRPTW Effiziente Implementierung Martin Savelsbergh. The Vehicle Routing Problem with Time Windows: Minimizing Route Duration. ORSA Journal on Computing, 4(2), Jakob Puchinger AIT - Mobility Department 67 / 291

74 Verbesserungsheuristiken für das VRPTW 2-exchange beim TSP: Gegeben ein vollständiger Graph V mit Reisezeiten t ij für jede Kante {i, j} V V. Wir nehmen Knoten 0 als Start und Endpunkt der Tour an (Depot), t ij ist symmetrisch und es gilt die Dreiecksungleichung. Ein 2-exchange ist der Austausch von zwei Kanten {i, i + 1} und {j, j + 1} durch die Kanten {i, j} und {i + 1, j + 1}. Dadurch wird die Reihenfolge des Pfades (i + 1,..., j) umgekehrt. Solch ein Zweieraustausch ergibt eine lokale Verbesserung wenn t ij + t i+1,j+1 < t i,i+1 + t j,j+1. Eine mögliche Verbesserung lässt sich also durch ausschließlich lokale Informationen in konstanter Zeit berechnen. Jakob Puchinger AIT - Mobility Department 68 / 291

75 Verbesserungsheuristiken für das VRPTW 2-exchange für TSP mit Zeitfenstern: Das Hauptproblem bei Nebenbedingungen wie Zeitfenstern ist die Frage ob der 2-exchange erlaubt ist. Durch die Umkehrung des Pfades (i + 1,..., j) muss dies für jeden Knoten auf diesem Pfad überprüft werden. In einer naiven Implementierung würde dies für jeden 2-exchange O(n) Zeit benötigen. Dies würde zu O(n 3 ) für das Überprüfen der 2-optimality führen. Wenn man die 2-opt Nachbarschaft in einer spezifischen Reihenfolge durchsucht und gewisse Informationen über die Nebenbedingungen speichert, kann das Überprüfen der Zeitfenster in konstanter Zeit erfolgen. Jakob Puchinger AIT - Mobility Department 69 / 291

76 Verbesserungsheuristiken für das VRPTW Lexikographische Suche für 2-exchange Wähle Kanten {i, i + 1} in der Reihenfolge in der sie in der Tour vorkommen (äußere Schleife). Danach wähle Kante {j, j + 1} als {i + 2, i + 3}, {i + 3, i + 4},... (innere Schleife). Diese Ordnung führt dazu, dass in der inneren Schleife der Pfad des davor behandelten 2-exchange (i + 1,..., j 1) nur durch die Kante {j 1, j} erweitert wird. (Siehe Zeichnung Tafel). Jakob Puchinger AIT - Mobility Department 70 / 291

77 Verbesserungsheuristiken für das VRPTW Notation TSP mit Zeitfenstern: Zeitfenster in jedem Knoten i [e i, l i ] A i Ankunftszeit im Knoten i D i Abfahrtszeit Knoten i W i Wartezeit im Knoten i, falls Ankunft vor e i Jakob Puchinger AIT - Mobility Department 71 / 291

78 Verbesserungsheuristiken für das VRPTW Forward Time Slack: Nehmen wir die frühestmögliche Abfahrtszeit im Depot (D 0 = e 0 ) an. Der Forward Time Slack F i in jedem Knoten zeigt an, wie weit die Abfahrtszeit in diesem Knoten nach hinten geschoben werden kann ohne die Zeitfenster zu verletzen: F i = min {l k (D i + t p,p+1 )} i k n i p<k Allgemeiner kann man den Forward Slack F (i,...,j) i im Knoten i in Bezug auf einen Pfad (i,..., j) und Abfahrtszeiten D i,..., D j wie folgt definieren: F (i,...,j) i = min {l k (D i + t p,p+1 )} i k j i p<k Jakob Puchinger AIT - Mobility Department 72 / 291

79 Verbesserungsheuristiken für das VRPTW Theorem (Concatenation) Wenn man zwei erlaubte Pfade (i 1,..., j 1 ) und (i 2,..., j 2 ) mit Forward Time Slacks F (i 1,...,j 1 ) i 1 und F (i 2,...,j 2 ) i 2 hintereinander zusammenfügt, dann ergibt sich der Forward Time Slack des ersten Knotens des neuen Pfades als F (i 1,...,j 1,i 2,...,j 2 ) i 1 = min{f (i 1,...,j 1 ) i 1, F (i 2,...,j 2 ) i 2 + W k + D i2 (D j1 + t j1 j 2 )}. i 1 <k j 1 (Beweis siehe Tafel oder Paper) Jakob Puchinger AIT - Mobility Department 73 / 291

80 Verbesserungsheuristiken für das VRPTW Aus dem Theorem ergeben sich für eine gegeben Route (0, 1,..., n) zwei Möglichkeiten den Forward Time Slack im Depot zu berechnen. Vorwärts Rekursion: F (0,...,i,i+1) 0 = min{f (0,...,i) 0, l i+1 D i+1 + Rückwärts Rekursion: F (i,i+1,...,n) i 0<p i = min{l i D i, F (i+1,...,n) i+1 + W i+1 } W p + W i+1 } Jakob Puchinger AIT - Mobility Department 74 / 291

81 Verbesserungsheuristiken für das VRPTW Überprüfen der Einhaltung der Zeitfenster bei 2-exchange: Betrachte den 2-exchange der {i, i + 1} und {j, j + 1} mit {i, j} und {i + 1, j + 1} ersetzt. Die resultierende Route kann in die folgenden drei Pfade geteilt werden: (0,..., i), (j,..., i + 1) und (j + 1,..., n) Mit Hilfe der vorwärts und rückwärts Rekursion lassen sich, für alle i und j + 1 in 0... n, F (0,...,i) 0 und F (j+1,...,n) j+1 in O(n) berechnen. Weiters kann 0<k i W k auch im Vorhinein in O(n) berechnet werden. F (j,...,i+1) j und j<k i+1 W k können in konstanter Zeit initialisiert und aktualisiert werden. Es ist also möglich den Forward Time Slack im Depot in konstanter Zeit zu berechnen indem die drei Pfade zusammengefügt werden. Jakob Puchinger AIT - Mobility Department 75 / 291

82 Metaheuristiken für das VRPTW Tabu Suche Evolutionäre Algorithmen Andere Metaheuristiken Jakob Puchinger AIT - Mobility Department 76 / 291

83 Beispiel Metaheuristik: Two-Stage Local Search Russell Bent, Pascal Van Hentenryck. Two-Stage Hybrid Local Search for the Vehicle Routing Problem with Time Windows. TRANSPORTATION SCIENCE, Vol. 38, No. 4, November 2004, pp Im Gegensatz zu vielen anderen Arbeiten werden hier nicht direkt die Routenanztahl und Fahrtkosten in Kombination minimiert, sondern es wird ein zweistufiger Prozess angewendet: 1. Minimierung der Routenanzahl (mittels Simulated Annealing) 2. Minimierung der Reisekosten (mittels Large Neighborhood Search) Jakob Puchinger AIT - Mobility Department 77 / 291

84 Beispiel Metaheuristik: Two-Stage Local Search Problemdefinition und Notationen (1) Kunden Customers = V = {1,..., N} Knoten Sites = S = {0, 1,..., N} Fahrtkosten c ij, normalisiert: c ij = c ij /max ij S c ij Jeder Kunde hat Bedarf q i und Servicezeit s i Gegeben sind m identische Fahrzeuge mit Kapazität Q Eine Route r = 0, v 1,..., v n, 0 cust(r) ist die Menge {v 1,..., v n } der Kunden einer Route r Bedarf einer Route q(r) = c cust(r) q c Fahrtkosten einer Route t(r) = c 0v1 + c v1 v c vn0 Jakob Puchinger AIT - Mobility Department 78 / 291

85 Beispiel Metaheuristik: Two-Stage Local Search Problemdefinition und Notationen (2) Ein Routenplan ist eine Menge von Routen {r 1,..., r m } die jeden Kunden genau einmal besucht. Nachfolger und Vorgänger von i in einem Routenplan: i + und i. Zeitfenster [e i, l i ] Abfahrtszeit δ i bei einem Kunden i, rekursiv definiert als: δ 0 = 0, δ i = max(δ i + c i i, e i ) + s i i V Frühestmögliche Servicezeit für eine Kunden i: a i = max(δ i + c i i, e i ) i V Frühestmögliche Ankunftszeit einer Route r = 0, v 1,..., v n, 0 : a(r) = δ vn + c vn0 Jakob Puchinger AIT - Mobility Department 79 / 291

86 Beispiel Metaheuristik: Two-Stage Local Search Problemdefinition und Notationen (3) Spätestmögliche Ankunftszeit bei einem Kunden i: z 0 = l 0 z i = min(z i + c ii + s i, l i ) i V Eine Lösung für das VRPTW ist ein Routenplan σ = {r 1,..., r m } der die Kapazität und Zeitfenster einhält: q(r j ) Q 1 j m a(r j ) l 0 1 j m a i l i i V Größe eines Routenplans: σ = {r σ cust(r) } Zielfunktion: f (σ) = σ, r σ t(r) Jakob Puchinger AIT - Mobility Department 80 / 291

87 Beispiel Metaheuristik: Two-Stage Local Search Minimierung der Routenanzahl: Nachbarschaften 2-Opt Exchange Or-Opt Relocate Exchange CROSS-Exchange In jeder Iteration wird eine Subnachbarschaft zufällig bestimmt indem eine Nachbarschaft und ein Kundenknoten zufällig gewählt und alle möglichen Nachbarlösungen betrachtet werden. Jakob Puchinger AIT - Mobility Department 81 / 291

88 Beispiel Metaheuristik: Two-Stage Local Search Minimierung der Routenanzahl: Zielfunktion Anstatt der üblichen Zielfunktion σ, r σ t(r), wird hier: σ, r σ r 2, mdl(σ) minimiert. Die zweite Komponente maximiert r σ r 2 und bevorzugt Lösungen die Routen mit vielen Kunden und wenigen Kunden enthalten. (mdl(σ) minimal delay siehe nächste Folie) Jakob Puchinger AIT - Mobility Department 82 / 291

89 Beispiel Metaheuristik: Two-Stage Local Search Minimierung der Routenanzahl: Zielfunktion Der minimal delay mdl(σ) bevorzugt Lösungen wo Kunden aus kurzen Routen mit möglichst geringen Zeitfensterverletzungen zu langen Routen verschoben werden können. mdl(σ) = mdl(r, σ) mdl(r, σ) = i cust(r) (where) r = min r σ r mdl(i, r, σ) 0 if N (relocation, i, σ) mdl(i, r, σ) = if r r, q(r ) + q i > Q min j V \cust(r) mdl(i, j, r, σ) otherwise mdl(i, j, r, σ) = max(δ j + c ji l i, 0) + max(δ i + c ij z j +, 0) Jakob Puchinger AIT - Mobility Department 83 / 291

90 Beispiel Metaheuristik: Two-Stage Local Search Minimierung der Routenanzahl: Simulated Annealing (Bent and Van Hentenryck, 2004) Jakob Puchinger AIT - Mobility Department 84 / 291

91 Beispiel Metaheuristik: Two-Stage Local Search Minimierung der Fahrtkosten: Large Neighborhood Search Originale Zielfunktion wird jetzt minimiert: f (σ) = σ, r σ t(r) Nachbarschaft N R (σ, S) ist jene Lösungsmenge die von σ durch Umplatzierung (relocation) der Kunden in S erreicht werden kann. Gegeben eine Lösung σ mit Kunden aus V \ S, dann bezeichnet N I (σ, S) jene Lösungen die durch Einfügen der Kunden S in σ erreicht werden können. Jakob Puchinger AIT - Mobility Department 85 / 291

92 Beispiel Metaheuristik: Two-Stage Local Search Minimerung der Fahrtkosten: Large Neighbourhood Search (Bent and Van Hentenryck, 2004) Jakob Puchinger AIT - Mobility Department 86 / 291

93 Beispiel Metaheuristik: Two-Stage Local Search Large Neighbourhood Search: SelectCustomers(σ, n) (Bent and Van Hentenryck, 2004) Mit relatedness Maß: 1 relatedness(i, j) = c ij + v ij mit v ij = 1 wenn Kunden i und j in verschiedenen Routen auftreten und 0 sonst. Jakob Puchinger AIT - Mobility Department 87 / 291

94 Beispiel Metaheuristik: Two-Stage Local Search Durchsuchen der Nachbarschaft: DFSExplore(σ c, S, σ b ) (Bent and Van Hentenryck, 2004) Jakob Puchinger AIT - Mobility Department 88 / 291

95 Beispiel Metaheuristik: Two-Stage Local Search Durchsuchen der Nachbarschaft: Berechnen der unteren Schranken Für die untere Schranke muß gelten: BOUND(σ, S) min f σ N I (σ,s) (σ ) Die untere Schranke berechnet sich mittels eines minimum spanning k-tree auf dem Insertion Graph. Minimum spanning k-tree ist ein Spannbaum mit n + K Kanten. Insertion Graph besteht aus den drei Kantenmengen: Die Kanten in σ Die Kanten zwischen Kunden in S Die erlaubten Kanten die Kunden aus C = S r σ cust(r) mit Kunden in S verbinden. Jakob Puchinger AIT - Mobility Department 89 / 291

96 Beispiel Metaheuristik: Two-Stage Local Search Durchsuchen der Nachbarschaft: Limited Discrepancy Search LDSEXPLORE(σ c, S, σ b, d) (Bent and Van Hentenryck, 2004) Jakob Puchinger AIT - Mobility Department 90 / 291

97 Heuristiken und Metaheuristiken für das VRPTW Mehr Infos: O. Bräysy and M. Gendreau. Vehicle Routing Problem with Time Windows, Part I: Route Construction and Local Search Algorithms. Transportation Science. 39: O. Bräysy and M. Gendreau. Vehicle Routing Problem with Time Windows, Part II: Metaheuristics. Transportation Science. 39: Jakob Puchinger AIT - Mobility Department 91 / 291

98 Teil II: Heuristische Verfahren 1 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarschaftssuche Evolutionäre Algorithmen 2 Capacitated Vehicle Routing Konstruktionsheuristiken Zwei-Phasen Heuristiken Verbesserungsheuristiken Evolutionärer Algorithmus 3 Vehicle Routing mit Zeitfenstern Konstruktionsheuristiken Verbesserungsheuristiken Metaheuristiken 4 Das Multi-Depot VRP Ein Evolutionärer Algorithmus für das MDVRP 5 Pickup and Delivery Probleme Tabu Search Jakob Puchinger AIT - Mobility Department 92 / 291

99 Das Multi-Depot VRP Vehicle Routing Problem mit mehreren Depots Jedes Fahrzeug muss zu seinem Ausgangsdepot zurückkehren Sei G = (V, A) ein gerichteter Graph. V = V c V d wobei V c = {v 1,..., v n } die Menge der Kunden und V d = {v n+1,..., v n+p } die Menge der Depots. Jeder Kunde hat einen Bedarf d i und eine Servicezeit ρ i. Kosten c ij In jedem Depot können zwischen 0 und n Fahrzeuge stationiert werden. Jakob Puchinger AIT - Mobility Department 93 / 291

100 Das Multi-Depot VRP Ziel beim Multi-Depot VRP ist es die Anzahl der benötigten Fahrzeuge zu minimieren. Dabei sollen die Fahrtkosten (Distanz) möglichst gering gehalten werden Jeder Kunde soll genau einmal angefahren werden Jede Tour endet bei jenem Depot bei dem Sie begonnen hat Der Gesamtbedarf einer Tour darf die Fahrzeugkapazität nicht übersteigen Die gesamte Tourdauer (Fahrtzeit + Servicezeit) darf ein gewisses Limit nicht überschreiten. Jakob Puchinger AIT - Mobility Department 94 / 291

101 Ein Evolutionärer Algorithmus für das MDVRP Béatrice Ombuki-Berman and Franklin T. Hanshar. Using Genetic Algorithms for Multi-depot Vehicle Routing. F. B. Pereira and J. Tavares (Eds.). Bio-inspired Algorithms for the Vehicle Routing Problem. Springer Jakob Puchinger AIT - Mobility Department 95 / 291

102 Ein Evolutionärer Algorithmus für das MDVRP Initiale Depot-Clusterung Initiale Depot-Clusterung: Zu Beginn, wird jeder Kunde dem nächstliegenden (euklidische Distanz) Depot zugeordnet. Dabei werden auch Grenzfälle identifiziert, welche im weiteren Verlauf mittels inter-depot Mutation einem anderen Depot zugewiesen werden können. Repräsentation Es wird eine Permutationskodierung benutzt welche später zu einzelnen Routen dekodiert werden. Die Representation umfasst p Vektoren, für jedes Depot einen, die jeweils eine geordnete Teilmenge (Permutation) der Kunden enthalten. Jakob Puchinger AIT - Mobility Department 96 / 291

103 Ein Evolutionärer Algorithmus für das MDVRP Dekodierung Die Permutationen werden mittels eines zweiphasigen Verfahrens dekodiert. In der ersten Phase werden die Kunden in der Reihenfolge der Permutation zu einer Route hinzugefügt. Wenn der aktuelle Kunde nicht zur aktuellen Route hinzugefügt werden kann, wird eine Route begonnen. In der zweiten Phase wird noch eine lokale Optimierung vorgenommen, wo der letzte Kunde jeder Route r i vor dem ersten Kunden einer Route r i+1 eingefügt wird, wenn dies zu einer Verbesserung führt. Jakob Puchinger AIT - Mobility Department 97 / 291

104 Ein Evolutionärer Algorithmus für das MDVRP Gewichtete Fitness Berechnung F(x) = αk (x) + βc(x) mit K (x) der Anzahl der Fahrzeuge und C(x) der zurückgelegten Distanz. Jakob Puchinger AIT - Mobility Department 98 / 291

105 Ein Evolutionärer Algorithmus für das MDVRP Fitness Berechnung durch Pareto Ranking (Ombuki-Berman and Hanshar, 2009) Jakob Puchinger AIT - Mobility Department 99 / 291

106 Ein Evolutionärer Algorithmus für das MDVRP Best Route Crossover 1. Zufällige Selektion von zwei Elternpaaren p 1, p 2 aus der Population 2. Zufällige Auswahl eines Depots Φ 3. Zufällige Auswahl einer Route des ausgewählten Depots bei den jeweiligen Eltern r 1 p 1Φ, r 2 p 2Φ. 4. Entferne aller Kunden von r 1 aus p 2 und r 2 aus p 1 5. Für jeden Kunden c r 1 Berechnen der Einfügekosten und Zulässigkeit von c für jede Position in p 2Φ Entscheide zufällig (mit einer gewissen Wahrscheinlichkeit) zwischen zulässiger erstbester Position oder erstbester Position zum Einfügen. 6. Füge Elemente von r 2 in p 1Φ analog ein. Jakob Puchinger AIT - Mobility Department 100 / 291

107 Ein Evolutionärer Algorithmus für das MDVRP Intra-Depot Mutation: Mutation von Routen innerhalb eines Depots Inversion, Auswahl zweier Stellen im Chromosom Inversion der Reihenfolge zwischen den beiden Stellen: wird Single customer re-routing, ein Kunde wird zufällig aus einer Route entfernt und in die bestmögliche Position eingefügt. Swapping, Austausch zweier zufällig ausgewählter Kunden zwischen zwei Routen Inter-Depot Mutation: Austausch von Kunden zwischen mehreren Depots. Ein Kunde aus der bei der Initialisierung festgelegten Liste von austauschbaren Kunden wird mit einer gewissen Wahrscheinlichkeit einem anderen Depot zugeordnet. Jakob Puchinger AIT - Mobility Department 101 / 291

108 Teil II: Heuristische Verfahren 1 Lokale Suche und Metaheuristiken Lokale Suche Variable Nachbarschaftssuche Evolutionäre Algorithmen 2 Capacitated Vehicle Routing Konstruktionsheuristiken Zwei-Phasen Heuristiken Verbesserungsheuristiken Evolutionärer Algorithmus 3 Vehicle Routing mit Zeitfenstern Konstruktionsheuristiken Verbesserungsheuristiken Metaheuristiken 4 Das Multi-Depot VRP Ein Evolutionärer Algorithmus für das MDVRP 5 Pickup and Delivery Probleme Tabu Search Jakob Puchinger AIT - Mobility Department 102 / 291

109 Pickup and Delivery Probleme Güter werden nicht von einem oder mehreren zentralen Depots verteilt, sondern von Abholorten zu Auslieferungsdestinationen geliefert. Es wir unterschieden ob Abholorte und Destinationen zusammenhängen oder nicht (paired vs. unpaired). Beim klassischen Pickup and Delivery Problem geht es um die Verteilung von Gütern Beim Dial-a-Ride Problem werden Personen transportiert. Dies drückt sich üblicherweise in zusätzlichen Nebenbedingungen (Komfort) aus. Darüber hinaus können auch noch Zeitfenster hinzukommen, auch dynamische und stochastische Varianten sind sehr verbreitet. Jakob Puchinger AIT - Mobility Department 103 / 291

110 Das Dial-a-Ride Problem Gegeben ein gerichteter Graph G = (V, A). Die Knotenmenge besteht aus Pickup P und Delivery D Knoten und einem zentralen Depot {0, 2n + 1} an dem die Fahrzeuge stationiert sind. Ein Auftrag ist ein Knotenpaar (i, n + i), wobei i P und n + i D ist. In jedem Knoten gibt es eine gewisse Beladungsmenge q i wobei q 0 = q 2n+1 = 0, q i 0 für i = 1,..., n und q i = q i n für i = n + 1,..., 2n gilt. Weiters hat jede Kante Kosten c ij und eine Reisezeit t ij. Jakob Puchinger AIT - Mobility Department 104 / 291

111 Das Dial-a-Ride Problem Außerdem gibt es auch eine Zeitdauer für das Beladen und Entladen in jedem Knoten, d i 0 und d 0 = d 2n+1 = 0. Jedes Fahrzeug hat eine gewisse Kapazität Q k und eine maximale Routendauer T k. Die maximale Reisezeit jedes Kunden ist L und das Zeitfenster im Knoten i ist [e i, l i ].i Sie A i die Ankunftszeit eines Fahrzeuges im Knoten i. B i = max{a i, e i } der Anfang des Service im Knoten i, falls das Fahrzeug vor e i ankommt entsteht eine Wartezeit W i = B i A i. D i = B i + d i die Abfahrtszeit von Knoten i. Die Reisezeit eines Kunden ist L i = B i+n D i. Jakob Puchinger AIT - Mobility Department 105 / 291

112 Tabu Search für das Dial-a-Ride Problem Cordeau, J.-F. and Laporte, G. (2003). A tabu search heuristic for the static multi-vehicle dial-a-ride problem. Transport Res B, 37: Bei der Tabusuche werden auch ungültige Lösungen zugelassen, die Nebenbedingungen welche die Beladung Routendauer, Zeitfenster und Reisezeit einschränken dürfen Verletzt werden. Für eine Lösung s, seien c(s) die Gesamtkosten: Summe der c ij der befahrenen Kanten. Die Kapazitätsüberschreitung q(s) und die Überschreitung der maximalen Reisezeit d(s) erden pro Route berechnet und beziehen sich auf Q k und T k. Die Verletzung der Zeitfenster w(s) = 2n i=0 max{0, B i l i }. Verletzung der Reisezeit t(s) = i=1 n max{0, L i L}. Daraus ergibt sich die Evaluationsfunktion f (s) = c(s) + αq(s) + βd(s) + γw(s) + τt(s) Jakob Puchinger AIT - Mobility Department 106 / 291

113 Tabu Suche Basisalgorithmus begin TL ; // Tabu-Liste x Ausgangslösung; repeat: X Teilmenge von N(x) unter Berücksichtigung von TL; x beste Lösung von X ; füge x zu TL hinzu; lösche Elemente aus TL die älter sind als t L Iterationen; x x ; if x ist besser als bisher beste Lösung then merke x; until Abbruchkriterium erfüllt; end Jakob Puchinger AIT - Mobility Department 107 / 291

114 Tabu Search für das Dial-a-Ride Problem Eine Lösung s wird durch die Menge U(s) = {(i, k) : Auftrag i wird von Fahrzeug k durchgeführt} charakterisiert. Die Nachbarschaft N(s) enthält alle Lösungen welche durch die Anwendung eines einfachen Operators erreicht werden können: Ersetzen des Attributs (i, k) durch ein Attribut (i, k ), mit k k. Bei Entfernen des Attributs (i, k) werden die Knoten i und n + i aus der Route k entfernt wobei dann einfach Vorgänger und Nachfolger dieser Knoten direkt verbunden werden. Die Knoten i und n + i werden dann in Route k an jenen Positionen eingefügt welche die Gesamterhöhung von f (s) minimieren. Jakob Puchinger AIT - Mobility Department 108 / 291

115 Tabu Search für das Dial-a-Ride Problem Die Attribute werden auch dazu verwendet die Tabuliste zu kontrollieren, wenn ein Auftrag i aus einer Route k entfernt wurde, wird dessen Wiedereinfügen in k für θ Iterationen verboten. Aspirationskriterium: Verbotenes Attribut kann zu einer Nachbarlösung führen die besser als die bisher beste gefundene Lösung ist. Jakob Puchinger AIT - Mobility Department 109 / 291

116 Tabu Search für das Dial-a-Ride Problem Die Startlösung wird mit Hilfe einer randomisierten Konstruktionsheuristik erzeugt. Jedem Auftrag i wird ein zufällig ausgewähltes Fahrzeug zugewiesen und die zugehörigen Knoten i und n + i werden einfach am Ende der teilweise erzeugten Route dazugehängt. Diese Prozedur stellt sicher, dass die Kapazitätsnebenbedingungen eingehalten werden und jeder Kunde von seinem Ausgangsort zu seiner Destination gebracht wird. Die anderen Nebenbedingungen (d(s), w(s) und t(s)) können hingegen verletzt sein. Jakob Puchinger AIT - Mobility Department 110 / 291

117 Tabu Search für das Dial-a-Ride Problem Nach jeder Iteration der Tabusuche werden die Parameter der Evaluierungsfunktion dynamisch mittels eines Parameters 1 + δ δ > 0 adaptiert. Wenn die aktuelle Lösung die Kapazitätsnebenbedingungen erfüllt wird α wie folgt verändert α = α 1+δ und α = α (1 + δ) Die Parameter β, γ und τ werden analog behandelt. Alle κ Iterationen werden auf jeder Route Exchange Moves durchgeführt, diese werden auch immer dann durchgeführt wenn eine neue beste Lösung gefunden wurde. Jakob Puchinger AIT - Mobility Department 111 / 291

118 Tabu Search für das Dial-a-Ride Problem Um die Suche zu diversifizieren wird jede Lösung s N(s) mit f (s) f (s) bestraft. Sei ρ ik die Anzahl wie oft Attribut (i, k) zur Lösung während der Suche hinzugefügt worden ist. Sei (i, k) das Attribut das zu einer Lösung s hinzugefügt werden muss um Lösung s zu erreichen, wird eine Bestrafung p(s) = λc(s nmρ ik zu den Kosten von s hinzugefügt. Jakob Puchinger AIT - Mobility Department 112 / 291

119 Tabu Search für das Dial-a-Ride Problem Durchsuchen der Nachbarschaft kann sehr teuer sein, da die beiden Routen k und k ändern. Der Forward Time Slack (etwas umgeformt) entspricht der längstmöglichen Verzögerung im Knoten i die keine Zeitfenster verletzt: F i = min W p + (l i j q j B j ) i<p j Hier sind ungültige Lösungen erlaubt. Forward Time Slack wird modifiziert, dass er der längstmöglichen Verzögerung im Knoten i die keine Zeitfensterverletzungen verstärkt entspricht. Weiters sollen auch Reisezeitverletzungen nicht verstärkt werden, der modifizierte Forward Time Slack ist: F i = min W i j q p + max{0, min{l j B j, L P j }. i<p j Jakob Puchinger AIT - Mobility Department 113 / 291

120 Tabu Search für das Dial-a-Ride Problem Wenn man nun D 0 = e 0 + F 0 anstatt D 0 = e 0 setzt, erhält man eine Route minimaler Dauer mit gleich starken Zeitfensterverletzungen und gleich oder weniger starken Reisezeitverletzungen. Solange die Abfahrtszeit im Depot nicht um mehr als 0<p<q W p verzögert wird, beeinflusst dies nicht die Ankunftszeit A q. Eine längere Verzögerung würde diese jedoch um genauso viel verlängern. Die minimale Routendauer die keine Verletzungen von Nebenbedingungen erhöht ist also A q e 0 + min F 0, W p. 0<p<q Der Forward Time Slack kann auch dazu verwendet werden das Service bei den einzelnen Kunden zu verzögern um Reisezeiten zu verringern. Jakob Puchinger AIT - Mobility Department 114 / 291

121 Tabu Search für das Dial-a-Ride Problem Auswirkungen die das Löschen von zwei Knoten i und n + i einer Route k und Einfügen in Route k können wie folgt ermittelt werden. 1. Setze D 0 = e 0 2. Berechne A i, W i, B i und D i für alle Knoten i in der Route 3. Berechne F 0 4. Setze D 0 = e 0 + min{f 0, 0<p<q W p} 5. Aktualisiere A i, W i, B i und D i für alle Knoten i in der Route 6. Berechne L i für jeden Auftrag der Route 7. Für jeden Knoten j 7.1 Berechne F j 7.2 Setze B j = B j + min{f j, P 0<p<q Wp}; D j = B j + d j 7.3 Aktualisiere A i, W i, B i und D i für alle Knoten i die nach j der Route vorkommen 7.4 Aktualisiere Reisezeit L i für jeden Auftrag i mit Zielknoten nach j 8. Berechne Veränderungen in den Verletzungen der Nebenbedingungen Jakob Puchinger AIT - Mobility Department 115 / 291

122 Das Dial-a-Ride Problem Weitere Literatur: Parragh, S.N., Doerner, K.F., Hartl, R.F. (2010), Variable Neighborhood Search for the Dial-a-Ride Problem. Computers & Operations Research 37, Parragh, S.N., Doerner, K.F., Hartl, R.F. (2008), A survey on pickup and delivery problems. Part I: Transportation between customers and depot. Journal für Betriebswirtschaft 58, Parragh, S.N., Doerner, K.F., Hartl, R.F. (2008), A survey on pickup and delivery problems. Part II: Transportation between pickup and delivery locations. Journal für Betriebswirtschaft, 58, Jakob Puchinger AIT - Mobility Department 116 / 291

123 Teil III Exakte Verfahren Jakob Puchinger AIT - Mobility Department 117 / 291

124 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 AIT - Mobility Department 118 / 291

125 Teil III: Exakte Verfahren 6 Einführung 7 Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Kamm-Ungleichungen Kamm-Ungleichungen aus Blüten Gomory Mixed Integer Inequalities 8 Das Vehicle Routing Problem Capacitated Vehicle Routing Problem Branch-and-Cut für Capacitated Vehicle Routing 9 Vehicle Routing mit Zeitfenstern Modell Spaltengenereierung Branch-and-Price 10 Das Dial-a-Ride Problem Modell Branch-and-Cut Jakob Puchinger AIT - Mobility Department 119 / 291

126 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 AIT - Mobility Department 120 / 291

127 Lineare Programmierung Transportproblem min Jakob Puchinger AIT - Mobility Department 121 / 291

128 Lineare Programmierung Transportproblem min c ij Jakob Puchinger AIT - Mobility Department 121 / 291

129 Lineare Programmierung Transportproblem min c ij x ij x ij 0, i = 1,... n, j = 1,..., m Jakob Puchinger AIT - Mobility Department 121 / 291

130 Lineare Programmierung Transportproblem min n m c ij x ij i=1 j=1 x ij 0, i = 1,... n, j = 1,..., m Jakob Puchinger AIT - Mobility Department 121 / 291

131 Lineare Programmierung 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 AIT - Mobility Department 121 / 291

132 Lineare Programmierung 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 AIT - Mobility Department 121 / 291

133 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 AIT - Mobility Department 122 / 291

134 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 AIT - Mobility Department 123 / 291

135 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 AIT - Mobility Department 124 / 291

136 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 Variablen und 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 AIT - Mobility Department 125 / 291

137 Einblick in den Simplexalgorithmus x 1 + x 2 = 8 x 1 + 3x 2 = 12 2x 1 x 2 = x 1 + 2x 2 = 22 Jakob Puchinger AIT - Mobility Department 126 / 291

138 Einblick in den Simplexalgorithmus Mehr Details: VU Fortgeschrittene Algorithmen und Datenstrukturen R. Vanderbei. Linear Programming: Foundations and Extensions. Kluwer Jakob Puchinger AIT - Mobility Department 127 / 291

139 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 AIT - Mobility Department 128 / 291

140 LP Relaxierung 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 AIT - Mobility Department 129 / 291

141 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 AIT - Mobility Department 130 / 291

142 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 AIT - Mobility Department 131 / 291

143 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 AIT - Mobility Department 132 / 291

144 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 AIT - Mobility Department 133 / 291

145 Branch and Bound für Ganzzahlige Optimierung P 0 U = c = 15 Jakob Puchinger AIT - Mobility Department 134 / 291

146 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 x 4 = x 5 = 0, x 1 = 1 2, x 2 = 2, x 3 = 1 2 und c = 29 2 (obere Schranke -15). Jakob Puchinger AIT - Mobility Department 135 / 291

147 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 AIT - Mobility Department 136 / 291

148 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 AIT - Mobility Department 137 / 291

149 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 AIT - Mobility Department 138 / 291

150 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 = Obere Schranke ( 18) ist schlechter als die beste Lösung, damit ist auch P 4 gelöst. Jakob Puchinger AIT - Mobility Department 139 / 291

151 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 AIT - Mobility Department 140 / 291

152 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 = 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 AIT - Mobility Department 141 / 291

153 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 AIT - Mobility Department 142 / 291

154 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 AIT - Mobility Department 143 / 291

155 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 AIT - Mobility Department 144 / 291

156 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 Jakob Puchinger AIT - Mobility Department 145 / 291

157 Teil III: Exakte Verfahren 6 Einführung 7 Travelling Salesman Problem Schnittebenenverfahren und Branch-and-Cut Kamm-Ungleichungen Kamm-Ungleichungen aus Blüten Gomory Mixed Integer Inequalities 8 Das Vehicle Routing Problem Capacitated Vehicle Routing Problem Branch-and-Cut für Capacitated Vehicle Routing 9 Vehicle Routing mit Zeitfenstern Modell Spaltengenereierung Branch-and-Price 10 Das Dial-a-Ride Problem Modell Branch-and-Cut Jakob Puchinger AIT - Mobility Department 146 / 291

158 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 AIT - Mobility Department 147 / 291

159 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 AIT - Mobility Department 148 / 291

160 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 AIT - Mobility Department 149 / 291

161 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 AIT - Mobility Department 150 / 291

162 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 AIT - Mobility Department 150 / 291

163 Schnittebenverfahren Jakob Puchinger AIT - Mobility Department 151 / 291

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

6.2 Scan-Konvertierung (Scan Conversion)

6.2 Scan-Konvertierung (Scan Conversion) 6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

Stackelberg Scheduling Strategien

Stackelberg Scheduling Strategien Stackelberg Scheduling Strategien Von Tim Roughgarden Präsentiert von Matthias Ernst Inhaltsübersicht Einleitung Vorbetrachtungen Stackelberg Strategien Ergebnisse Seminar Algorithmische Spieltheorie:

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Wasserfall-Ansätze zur Bildsegmentierung

Wasserfall-Ansätze zur Bildsegmentierung Wasserfall-Ansätze zur Bildsegmentierung von Philipp Jester Seminar: Bildsegmentierung und Computer Vision 16.01.2006 Überblick 1. Problemstellung 2. Wiederholung: Wasserscheiden-Ansätze 3. Der Wasserfall-Ansatz

Mehr

Algorithmische Mathematik

Algorithmische Mathematik Algorithmische Mathematik Wintersemester 2013 Prof. Dr. Marc Alexander Schweitzer und Dr. Einar Smith Patrick Diehl und Daniel Wissel Übungsblatt 6. Abgabe am 02.12.2013. Aufgabe 1. (Netzwerke und Definitionen)

Mehr

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden bernhard.ganter@tu-dresden.de WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V

Mehr

Optimierungsverfahren in der Transportlogistik

Optimierungsverfahren in der Transportlogistik Optimierungsverfahren in der Transportlogistik Jakob Puchinger 1 1 Dynamic Transportation Systems, arsenal research Jakob Puchinger (arsenal research) Optimierungsverfahren in der Transportlogistik 1 /

Mehr

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

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

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

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual! Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual! 0kg 4000 Euro Luster 5,5 kg, 430.- Laptop 2,0 kg, 000.- Schatulle 3,2 kg, 800.- Uhr 3,5 kg, 70.- Schwert,5 kg, 850.- Bild 3,4 kg, 680.- Besteck

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 1 Programm des

Mehr

Grundlagen und Basisalgorithmus

Grundlagen und Basisalgorithmus Grundlagen und Basisalgorithmus Proseminar -Genetische Programmierung- Dezember 2001 David König Quelle: Kinnebrock W.: Optimierung mit genetischen und selektiven Algorithmen. München, Wien: Oldenbourg

Mehr

WinVetpro im Betriebsmodus Laptop

WinVetpro im Betriebsmodus Laptop WinVetpro im Betriebsmodus Laptop Um Unterwegs Daten auf einem mobilen Gerät mit WinVetpro zu erfassen, ohne den Betrieb in der Praxis während dieser Zeit zu unterbrechen und ohne eine ständige Online

Mehr

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

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

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Algorithmische Methoden für schwere Optimierungsprobleme

Algorithmische Methoden für schwere Optimierungsprobleme Algorithmische Methoden für schwere Optimierungsprobleme Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund

Mehr

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK

Informatik-Sommercamp 2012. Mastermind mit dem Android SDK Mastermind mit dem Android SDK Übersicht Einführungen Mastermind und Strategien (Stefan) Eclipse und das ADT Plugin (Jan) GUI-Programmierung (Dominik) Mastermind und Strategien - Übersicht Mastermind Spielregeln

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 22. Constraint-Satisfaction-Probleme: Kantenkonsistenz Malte Helmert Universität Basel 14. April 2014 Constraint-Satisfaction-Probleme: Überblick Kapitelüberblick

Mehr

Wir arbeiten mit Zufallszahlen

Wir arbeiten mit Zufallszahlen Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten

Mehr

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Steinerbäume

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Steinerbäume Paper Computer Science Experiment Great Principles of Computing Computation (NP-Vollständigkeit) Thema Steinerbäume Unterrichtsform Entdeckendes Lernen, Einzelarbeit, Lernen am Modell Voraussetzung Bäume

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

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

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte 50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle Seminare im Bereich MS-Office Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion

Mehr

Übung Theoretische Grundlagen

Übung Theoretische Grundlagen Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

Mehr

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung

1 Einleitung. 1.1 Motivation und Zielsetzung der Untersuchung 1 Einleitung 1.1 Motivation und Zielsetzung der Untersuchung Obgleich Tourenplanungsprobleme zu den am häufigsten untersuchten Problemstellungen des Operations Research zählen, konzentriert sich der Großteil

Mehr

Vektoren mit GeoGebra

Vektoren mit GeoGebra Vektoren mit GeoGebra Eine Kurzanleitung mit Beispielen Markus Hohenwarter, 2005 In GeoGebra kann mit Vektoren und Punkten konstruiert und gerechnet werden. Diese Kurzanleitung gibt einen Überblick über

Mehr

Musterlösungen zur Linearen Algebra II Blatt 5

Musterlösungen zur Linearen Algebra II Blatt 5 Musterlösungen zur Linearen Algebra II Blatt 5 Aufgabe. Man betrachte die Matrix A := über dem Körper R und über dem Körper F und bestimme jeweils die Jordan- Normalform. Beweis. Das charakteristische

Mehr

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

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!.

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!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Berechnung der Erhöhung der Durchschnittsprämien

Berechnung der Erhöhung der Durchschnittsprämien Wolfram Fischer Berechnung der Erhöhung der Durchschnittsprämien Oktober 2004 1 Zusammenfassung Zur Berechnung der Durchschnittsprämien wird das gesamte gemeldete Prämienvolumen Zusammenfassung durch die

Mehr

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit:

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit: Vorlesung 5.5. VERBINDUNGSNETZWERKE Kommunikation zwischen den einzelnen Komponenten eines arallelrechners wird i.d.r. über ein Netzwerk organisiert. Dabei unterscheidet man zwei Klassen der Rechner: TOOLOGIE:

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Kompetitive Analysen von Online-Algorithmen

Kompetitive Analysen von Online-Algorithmen Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen

Mehr

Einsatz Evolutionärer Algorithmen zur Optimierung der Tourenplanung eines Wachschutzunternehmens

Einsatz Evolutionärer Algorithmen zur Optimierung der Tourenplanung eines Wachschutzunternehmens Fachhochschule Brandenburg Fachbereich Informatik und Medien Kolloquium zur Diplomarbeit Einsatz Evolutionärer Algorithmen zur Optimierung der Tourenplanung eines Wachschutzunternehmens Übersicht Darstellung

Mehr

Feiertage in Marvin hinterlegen

Feiertage in Marvin hinterlegen von 6 Goecom GmbH & Co KG Marvin How to's Feiertage in Marvin hinterlegen Feiertage spielen in Marvin an einer Reihe von Stellen eine nicht unerhebliche Rolle. Daher ist es wichtig, zum Einen zu hinterlegen,

Mehr

Künstliche Intelligenz Maschinelles Lernen

Künstliche Intelligenz Maschinelles Lernen Künstliche Intelligenz Maschinelles Lernen Stephan Schwiebert Sommersemester 2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Maschinelles Lernen Überwachtes Lernen

Mehr

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

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Seite 1/7 Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.) Hier sehen Sie eine Anleitung wie man einen Serienbrief erstellt. Die Anleitung

Mehr

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

Statistische Untersuchungen zu endlichen Funktionsgraphen

Statistische Untersuchungen zu endlichen Funktionsgraphen C# Projekt 1 Name: Statistische Untersuchungen zu endlichen Funktionsgraphen Aufgabe: Basierend auf dem Abschnitt 2.1.6. Random mappings, Kap.2, S 54-55, in [1] sollen zunächst für eine beliebige Funktion

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Lizenzierung von SharePoint Server 2013

Lizenzierung von SharePoint Server 2013 Lizenzierung von SharePoint Server 2013 Das Lizenzmodell von SharePoint Server 2013 besteht aus zwei Komponenten: Serverlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung der Zugriffe

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Anwendertreffen 20./21. Juni

Anwendertreffen 20./21. Juni Anwendertreffen Verbindungsmittelachsen VBA Allgemein Die Verbindungsmittelachsen werden nun langsam erwachsen. Nach zwei Jahren Einführungszeit haben wir bereits viele Rückmeldungen mit Ergänzungswünschen

Mehr

Beweisbar sichere Verschlüsselung

Beweisbar sichere Verschlüsselung Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit bmoeller@crypto.rub.de 6

Mehr

Verbesserungsheuristiken

Verbesserungsheuristiken Verbesserungsheuristiken Bestandteile der Lokalen Suche Für schwierige Optimierungsaufgaben haben Verbesserungsheuristiken eine große praktische Bedeutung. Sie starten mit Ausgangslösungen, die von z.b.

Mehr

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

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1 Wenn der Name nicht gerade www.buch.de oder www.bmw.de heißt, sind Internetadressen oft schwer zu merken Deshalb ist es sinnvoll, die Adressen

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

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

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer

Algorithmen und Datenstrukturen. Große Übung vom 29.10.09 Nils Schweer Algorithmen und Datenstrukturen Große Übung vom 29.10.09 Nils Schweer Diese Folien Braucht man nicht abzuschreiben Stehen im Netz unter www.ibr.cs.tu-bs.de/courses/ws0910/aud/index.html Kleine Übungen

Mehr

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) 3.7 Erstellen einer Collage Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu]) Dann Größe des Dokuments festlegen beispielsweise A4 (weitere

Mehr

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

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29 1 29 Teil III: Routing - Inhalt I Literatur Compass & Face Routing Bounded & Adaptive Face Routing Nicht Ω(1) UDG E. Kranakis, H. Singh und Jorge Urrutia: Compass Routing on Geometric Networks. Canadian

Mehr

4. Dynamische Optimierung

4. Dynamische Optimierung 4. Dynamische Optimierung Allgemeine Form dynamischer Optimierungsprobleme 4. Dynamische Optimierung Die dynamische Optimierung (DO) betrachtet Entscheidungsprobleme als eine Folge voneinander abhängiger

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Beheben von verlorenen Verknüpfungen 20.06.2005

Beheben von verlorenen Verknüpfungen 20.06.2005 Vor folgender Situation ist sicher jeder Solid Edge-Anwender beim Öffnen von Baugruppen oder Drafts schon einmal gestanden: Die Ursache dafür kann sein: Die Dateien wurden über den Explorer umbenannt:

Mehr

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

Datenaufbereitung in SPSS. Daten zusammenfügen

Datenaufbereitung in SPSS. Daten zusammenfügen Daten zusammenfügen I. Fälle hinzufügen Diese Schritte müssen Sie unternehmen, wenn die Daten in unterschiedlichen Dateien sind; wenn also die Daten von unterschiedlichen Personen in unterschiedlichen

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

Plotten von Linien ( nach Jack Bresenham, 1962 )

Plotten von Linien ( nach Jack Bresenham, 1962 ) Plotten von Linien ( nach Jack Bresenham, 1962 ) Ac Eine auf dem Bildschirm darzustellende Linie sieht treppenförmig aus, weil der Computer Linien aus einzelnen (meist quadratischen) Bildpunkten, Pixels

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Abwesenheitsnotiz im Exchange Server 2010

Abwesenheitsnotiz im Exchange Server 2010 Abwesenheitsnotiz im Exchange Server 2010 1.) Richten Sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren Sie, an welche Absender diese gesendet werden soll. Klicken Sie dazu auf Datei -> Informationen

Mehr

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

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke Vorlesungsplan 17.10. Einleitung 24.10. Ein- und Ausgabe 31.10. Reformationstag, Einfache Regeln 7.11. Naïve Bayes, Entscheidungsbäume 14.11. Entscheidungsregeln, Assoziationsregeln 21.11. Lineare Modelle,

Mehr

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term

Mehr

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R

1 C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R C H R I S T O P H D R Ö S S E R D E R M A T H E M A T I K V E R F Ü H R E R L Ö S U N G E N Seite 7 n Wenn vier Menschen auf einem Quadratmeter stehen, dann hat jeder eine Fläche von 50 mal 50 Zentimeter

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle

Programmentwicklungen, Webseitenerstellung, Zeiterfassung, Zutrittskontrolle Version LG-TIME /Office A 8.3 und höher Inhalt 1. Allgemeines S. 1 2. Installation S. 1 3. Erweiterungen bei den Zeitplänen S. 1;2 4. Einrichtung eines Schichtplanes S. 2 5. Einrichtung einer Wechselschicht

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

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

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server.

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server. 1. Dynamic Host Configuration Protocol 1.1 Einleitung Im Folgenden wird die Konfiguration von DHCP beschrieben. Sie setzen den Bintec Router entweder als DHCP Server, DHCP Client oder als DHCP Relay Agent

Mehr

Alles zu seiner Zeit Projektplanung heute

Alles zu seiner Zeit Projektplanung heute Alles zu seiner Zeit Projektplanung heute Nicole Megow Matheon Überblick Projektplanung Planen mit Graphentheorie Maschinenscheduling Ein 1 Mio. $ Problem Schwere & leichte Probleme? Zeitplanungsprobleme?

Mehr

PROSEMINAR ONLINE ALGORITHMEN

PROSEMINAR ONLINE ALGORITHMEN PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines

Mehr

Windows Server 2012 RC2 konfigurieren

Windows Server 2012 RC2 konfigurieren Windows Server 2012 RC2 konfigurieren Kurzanleitung um einen Windows Server 2012 als Primären Domänencontroller einzurichten. Vorbereitung und Voraussetzungen In NT 4 Zeiten, konnte man bei der Installation

Mehr

PowerMover. Ein halbautomatischer Sortierer für Outlook-PowerUser. Ein Add-In für die Versionen 2007 und 2010

PowerMover. Ein halbautomatischer Sortierer für Outlook-PowerUser. Ein Add-In für die Versionen 2007 und 2010 PowerMover Ein halbautomatischer Sortierer für Outlook-PowerUser. Ein Add-In für die Versionen 2007 und 2010 Inhaltsverzeichnis: 1 Einleitung... 2 2 Bedienung... 3 2.1 Outlook-Menü-Leiste... 3 2.2 Den

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr