Overzicht Inleiding Modellering Insertie heuristieken Voorbeeld: CVV Local Search Meta heuristieken Vehicle Routing Problem 1
Inleiding Gegeven Depot-knoop 0 Klant-knopen i met vraag q i, i = 1,..., n Kosten c ij tussen knoop i en knoop j, 0 i, j n Wagens k met capaciteit Q k, k = 1,... m. Gevraagd Welke routes moeten de wagens rijden, beginnend en eindigend op het depot, zodat aan de vraag van alle klanten is voldaan, terwijl de reiskosten geminimaliseerd worden. Mogelijke uitbreidingen Tijdvensters Laad, los en lunchtijden Goederen ophalen en wegbrengen (met eventuele precedentie relaties) Stochastische elementen Meerdere depots/goederen/doelstellingen Vehicle Routing Problem 2
Modellering I: Fisher & Jaikumar Hieronder geldt: y ik = 1 als klant i bezocht wordt door wagen k en y ik = 0 anders. Tevens geldt x ijk = 1 als klant j direct na klant i door wagen k bezocht wordt en x ijk = 0 anders. m k=1 m k=1 n i=1 n j=0 n i=0 i S j S min n n m c ij x ijk i=0 j=0 k=1 y ik = 1 1 i n y ik = m i = 0 q i y ik Q k 1 k m x ijk = y ik 0 i n, 1 k m x ijk = y jk 0 j n, 1 k m x ijk S 1 S {1,... n}, S =,1 k m Vehicle Routing Problem 3
Modelering II: Christofides, Mingozzi & Toth Vind alle routes r = 1,..., R voor wagen 1. V r de vracht corresponderend met r c r de kosten van route r N i de routes die klant i bevatten Nummer de routes zdd: V 1 V 2... V R. Zij r k = min {r V r Q k }. Zij r m+1 = R + 1. Stel y r = 1 als route r gebruikt wordt en y r = 0 anders. min R r=1 c r y r r N i y r = 1 1 i n r k+1 1 r=1 y r k r k r k+1, 1 k m Rr=1 y r = m Vehicle Routing Problem 4
Modelering III: Christofides, Mingozzi & Toth Dynamische programmerings-formulering. N = {1,2,..., n} de verzameling klanten. f(k, T ) de minimale kosten voor bedienen v.d. klanten T N door wagen 1,..., k. v(t ) de oplossing van TSP op T {0}. q(t ) = i T q i. Initialisatie: f(1, T ) = v(t ), T. Recursie voor k 2: f(k, T ) = min(f(k 1, T \S) + v(s)) S T Inperken van de zoekactie: q(t ) k 1 i=1 Q i q(s) Q k 1 m k q(n \T ) q(s) 1 k q(t ) q(n) m i=k+1 Q i q(t ) k i=1 Q i Vehicle Routing Problem 5
Savingsalgoritme (Clark & Wright) 1. Bereken besparingen s ij = c i0 + c 0j c ij van route 0 i j 0 t.o.v. de twee routes 0 i 0 en 0 j 0. 2. Orden s ij in afnemende volgorde. 3. Startend aan de top van de lijst: Parallelle versie (a) Breidt zo mogelijk een bestaande route uit, of verwerp deze tak. (b) Herhaal stap 3a voor heel de lijst. Sequentiële versie (a) Breidt zo mogelijk de huidige route uit. (b) Als de huidige route vol is, begin met de (nu) bovenste tak uit de lijst als nieuwe route. (c) Herhaal 3a en 3b tot er geen takken meer kunnen worden toegevoegd. Vehicle Routing Problem 6
Sweep algoritme (Gillet & Miller) Dit is een zogenaamde 2 fase methode (eerst clusteren en dan routeren). Gegeven is een Euclidisch VRP met polaire coördinaten (r i, θ i ), waarbij r i de afstand tot het depot is. Orden de klanten zodanig dat θ 1 θ 2... θ n. 1. Fase I Kies een ongebruikte wagen k. 2. Kies de onbediende klant i met de kleinste θ i. Voeg daar de klanten i + 1, i + 2,... aan toe, tot de capaciteit van wagen k bereikt is. 3. Als alle klanten zijn toegekend aan een wagen ga dan naar stap 4, herhaal anders stap 1. 4. Fase II Los het TSP op voor elke verzameling klanten die is toegekend aan een wagen. Vehicle Routing Problem 7
Christofides, Mingozzi & Toth 1. Fase IA: Sequentieel Kies kiemklant i en wagen k. 2. Bereken insertiekosten δ j = c 0j +λc ji voor alle klanten j. Voeg klanten toe in volgorde van δ j tot de route vol is. 3. Herhaal stap 1 tot dat alle klanten geclusterd zijn. 4. Fase IB: Parallel Bewaar alleen de kiemklanten. 5. Bereken insertie kosten voor de overige klanten m.b.t. alle kiemklanten. Kies de laagste insertiekosten; voeg de betreffende klant aan het bijbehorende cluster toe. 6. Herhaal stap 5 totdat er geen inserties meer mogelijk zijn. 7. Fase II: Los de TSP s op voor zowel Fase IA en IB; kies de beste. Vehicle Routing Problem 8
Fisher & Jaikumar 1. Fase I: Clusteren Kies voor elke wagen k een kiemklant. 2. Bereken insertiekosten δ ik voor alle klanten i m.b.t. de kiemklant van k, 1 k m. 3. Los gegeneraliseerd toewijzingsprobleem op: m k=1 n i=1 min y ik = 4. Fase II: Routeren Los TSP op voor elk cluster. m n k=1 i=0 δ ik y ik { 1, 1 i n m, i = 0 q i y ik Q k, 1 k m Vehicle Routing Problem 9
Collectief Vraagafhankelijk Vervoer Je huurt een zitplaats, in plaats van een hele wagen. Vertrek en bestemming zijn vrij. Er is sprake van een vooraanmeldtijd. Er zijn bepaalde spelregels per contract. Het is goedkoop vervoer. Contract Tijdvenster Maximale omrijtijd Opbrengst Combinatie-mogelijkheden Vehicle Routing Problem 10
Ritten en wagens Rit Gewenste tijd (vertrek- of aankomsttijd) Vertrek- en bestemmingsadres Zitplaatsen/rolstoelen In- en uitstaptijd Contract/uitzonderingen Wagen Capaciteit (zitplaatsen/rolstoelen) Werkgebied Werktijden Contracten Kosten Vehicle Routing Problem 11
Insertie heuristiek Gegeven: N ritten en M wagens. Zij i = 1. 1. Zij v = 1. 2. Bepaal alle toelaatbare inserties van rit i in de route van wagen v. Noteer de kosten van de goedkoopste van deze inserties als COST v. 3. Zet v v + 1. Als v M ga dan naar 2. 4. Wijs rit i aan wagen v toe, waarvoor geldt: COST v COST v, v. 5. Zet i i + 1. Als i N ga dan naar 1. Implementatie vraagstukken Wanneer is een insertie toelaatbaar? Wat zijn de kosten van een insertie? Hoe maak je het algoritme real-time? Vehicle Routing Problem 12
Notatie Tijdvensters (EPT, LPT) (EDT, LDT) DRT MRT vertrek aankomst directe rijtijd a DRT + b DRT MRT EPT LPT EDT LDT Actieve periode tijd p k + m + m n + k n q + act. per. rust actieve periode rust actieve periode Vehicle Routing Problem 13
Schuifvariabelen UP α = min [ min 1 j α ( ATj ET j ), WTp ] DOWN α = min [ min α j d ( LTj AT j ), WTq ] WT p wachttijd voor de actieve periode WT q d wachttijd volgend op actieve periode aantal locaties in de actieve periode Vehicle Routing Problem 14
Snelle test op toelaatbaarheid i + insertie? i insertie? k + m + m k rust actieve periode rust Insertie van i + : Detour = T m +,i + + T i +,m T m +,m Detour UP 2 + DOWN 3 Definitieve controle Wanneer aan de snelle test op toelaatbaarheid is voldaan, moet het volgende nog gecontroleerd worden op: Omrijtijd Capaciteit Combinaties Vehicle Routing Problem 15
Kosten van een insertie De kosten bestaan uit de volgende aspecten: Kosten voor de rijtijd Kosten voor de afgelegde kilometers Kosten voor de wachttijd Service kosten voor de afwijking van de gewenste tijd Service kosten voor de omrijtijd Zij W de wachttijd die voorafgaat aan de actieve periode. De kosten met betrekking op rijtijd, afstand en de service kosten m.b.t. de omrijtijd zijn vast voor elke W. De kosten voor de wachttijd is een lineaire functie in W, terwijl de (service) kosten m.b.t. de gewenste tijd kwadratisch zijn in W. Conclusie Het gebruik van actieve perioden maakt het mogelijk om een kwadratische functie in één variable te minimaliseren. Vehicle Routing Problem 16
Local Search 2-optimalisatie Or-optimalisatie Relocate Exchange Cross over Push route Allerlei combinaties hiervan Vehicle Routing Problem 17
Meta heuristieken Simulated Annealing Slechtere resultaten toestaan om te ontsnappen aan een lokaal optimum, gebaseerd op een fysisch proces. Tabu Search Met behulp van geheugen sommige iteraties verbieden om cycling te voorkomen. Genetische algoritmes Vanuit een populatie van oplossingen ontstaat een nieuwe generatie. Kinderen in deze generatie ondergaan meestal nog een mutatie. Ant systems Maakt gebruik van feromoon-sporen. Een vorm van geheugen waarbij goede oplossingen onthouden worden. Diversificatie Kleine verstoringen op het gevonden (lokale) optimum toestaan. Vehicle Routing Problem 18