Cooperative Transport Planning Jonne Zutt ( J.Zutt@its.tudelft.nl ) TU Delft Parallel Gedestribueerde Systemen CABS Project
Inhoud Transport Planning Probleem (TPP) Twee fasen aanpak Simulatie Probleem instantie Architectuur Twee fasen aanpak Eerste fase Tweede fase Simulatie Conclusies Uitbreidingen
Transport Planning Probleem Infrastructuur Trucks (capaciteit, snelheid) Orders (bron, doel, opbrengst, volume, tijdvenster) Plannen (verzameling orders en een route) Kostenfunctie (afstand, aantal trucks, tijdvensters) Wat is een planningsprobleem? Acties zijn: rij van loc. A naar loc. B – laad pakket P in – laad pakket P uit.
Kostenfunctie C De tijd nodig om het hele plan uit te voeren en boetes voor het te laat bezorgen van een pakket (evt. ook het te vroeg aankomen in de bron locatie); Totale kosten: We willen de totale kosten minimaliseren. Het goedkoopst mogelijke plan noemen we het optimale plan. Voor grote instanties is het te moeilijk om deze in acceptabele tijd te vinden. Vergelijking met het Traveling Salesman Probleem. Een permutatie van steden en in TPP: Toekenning van orders aan trucks en vervolgens volgorde voor elke truck.
Architectuur Klant Makelaar Bedrijf 1 Bedrijf 2 Bedrijf 3 Dit is een overzicht van alle actoren in het systeem. We gaan ons richten op het gedeelte nadat de makelaar de orders heeft verdeeld over de bedrijven.
Twee fasen aanpak Elk bedrijf maakt een plan voor zijn trucks; Probleem Instantie Eerste Fase Initiële Plannen Tweede Fase Definitieve plannen Elk bedrijf maakt een plan voor zijn trucks; Insertion, Savings, Incremental Local Optimization. Samenwerking tussen trucks in dezelfde coalitie; Exchange By One, Simultaneous Exchange. 1e fase: pas een correct plan aan het einde. 2e fase: altijd een correct plan, deze wordt steeds beter.
Insertion (1e fase) Begin met een leeg plan voor elke truck; Stap voor stap worden alle binnenkomende orders ingepland. Zo’n stap noemen we een insertie; Het algoritme is klaar als alle orders zijn gepland.
Insertie stap Er komt een order o binnen: Bepaal voor elke truck de insertiekosten: dit zijn de minimale extra kosten nodig voor de truck om ook langs bron(o) en doel(o) te reizen. Kies de truck met minimale insertiekosten voor order o.
Insertion (voorbeeld) Alternatieven: T1 – pa – da T2 – pa – da Alternatieven: T1 – pb – db – pa – da T1 – pb – pa – db – da T1 – pb – pa – da – db T1 – pa – pb – db – da T1 – pa – pb – da – db T1 – pa – da – pb – db T2 – pb – db pa da pc dc T1 (2) pb db Lijkt op hoe mensen plannen. pd dd T2 (2)
Savings (1e fase) We beginnen nu niet met niets, maar we maken voor elk order een denkbeeldige (dummy) truck aan, die alleen dit order in zijn plan heeft; Vervolgens voegen we net zolang plannen samen, totdat het aantal plannen gelijk is aan het aantal (echte) trucks (merging); Tenslotte kennen we aan elke (echte) truck een plan toe.
Merging Voor elk paar van plannen bekijken we de kosten van het samenvoegen: voor beide plannen wordt geprobeerd deze in z’n geheel in te voegen op elke plek in het andere plan. De kosten van het goedkoopste plan van al deze samengevoegde plannen onthouden we; Voor elk paar van plannen weten we nu de beste manier om deze samen te voegen. Nu kiezen we het plan, dat de totale kosten minimaliseert.
Savings (voorbeeld) T1 – pa – da – pc – dc T2 – pa – da – pc – dc Merge A en BD Merge A en C Merge BD en C Merge A en B Merge A en C Merge A en D Merge B en C Merge B en D Merge C en D pa da pc dc T1 (2) pb db pd dd T2 (2)
Incremental Local Optimization (1e fase) Werkt hetzelfde als Insertion; Locale optimalisatie gebruikt een 2e fase (samenwerkings)algoritme op elk moment dat een insertie gedaan is en alleen tussen de betreffende truck met andere trucks in de coalitie.
Exchange By One (2e fase) stappen Een truck probeert al zijn orders één voor één aan de andere truck te geven; In elke stap moeten de gezamenlijke kosten lager worden. 2e fase heeft dus als invoer al correcte plannen (zouden in principe al uitgevoerd kunnen worden, nu verbeteren). Algoritme stopt als beide meteen na elkaar een keer geen order uitwisselen -> locaal optimum.
Simultaneous Exchange (2e fase) stappen Simultaneous Exchange n: Per stap mogen maximaal n orders van de ene truck met maximaal n orders van de andere truck gewisseld worden; Ook hier weer: in elke stap moeten de gezamenlijke kosten omlaag gaan. Algoritme stopt als er geen uitwisseling gevonden kan worden, zodat de gezamenlijke kosten omlaag gaan -> locaal optimum. Als n == |O| zelfs HET optimum.
MARS Multi-Agent Real-time Simulator gemaakt door TNO TPD; Met MARS kunnen we experimentele resultaten over de kwaliteit van de algoritmen verkrijgen; Geschreven in de taal Java; Geschikt voor grote simulatie werelden; Geschikt voor vele soorten simulaties, inclusief het transport domein. Geschreven in de taal Java – Platform onafhankelijk. Geschikt voor grote problemen.
Onderdelen MARS Experiment Entiteiten Infrastructuur Scenario Visueel Model Entiteiten: Trucks – Bedrijf – Makelaar – Klanten. Scenario: Initiële posities – Doel v.d. simulatie voor de entiteiten.
DEMO Entities, scenario, cover regions, nr_of_orders, on-line plannen van 100 random orders.
Kwaliteit van de algoritmen benaderingsalgoritme Totale kosten optimum ondergrens Probleem instanties
Voorbeeld Savings en Exchange By One Ook grafieken voor de berekeningstijd. Plannen gemiddeld ruim 6% beter na samenwerking; Na samenwerking zijn de kosten ongeveer 2x O.G.
Conclusies TPP is een interessant probleem. Het is belangrijk in de praktijk en het is moeilijk om goede oplossingen te vinden; Met MARS kunnen we een omgeving simuleren waarin we transportproblemen oplossen; We kunnen verschillende algoritmen testen op hun kwaliteit en snelheid.
Uitbreidingen Veiling mechanismen; Dynamische coalitie-vorming; Incidenten simuleren; Uitgebreider testen met realistische probleem instanties.
Vragen …
Transformatie T: KHP TPPD JA JA I1 T(I1) I2 T(I2) NEE NEE
Toepassing transformatie 1 TPPD KHP 1 K+1 pa da a 3 1 1 3 3 1 1 K+1 3 b c pb db pc dc K+1 1 1 3 d K+1 pd dd K = 5 a – b – c – d 1 + 1 + 3 = 5 K' = 5 • 6 = 30 T – pa – da – pb – db – pc – dc – pd – dd 1 + 6 + 1 + 6 + 1 + 6 + 3 + 6 = 30
Ondergrens functie P T D px dx Verbeteringen: Kies een locatie p_q in P niet, als volume(o_q) + volume(o_x) > c_truck. Bepaal efficient welke combinaties van pakketten niet tegelijk geladen kan worden en gebruik deze info om …. D