Upload
melusina-zaring
View
117
Download
1
Embed Size (px)
Citation preview
Very Large-Scale Neighborhood Search
Thorsten Krenek
Übersicht
Einleitung Kombinatorische Optimierungsprobleme Nachbarschafts-Suchalgorithmen Nachbarschaftsstrukturen
Very Large-Scale Neighborhood Search Cyclic-Exchange TSP
Halin-Graph Assignment
Kombinatorische Optimierungsprobleme Ziel, aus einer großen Menge von diskreten
Elementen eine Teilmenge konstruieren, die gewissen Nebenbedingungen erfüllt und bezüglich einer Kostenfunktion optimal ist.
Große Bedeutung in der Praxis (Routenplanung, Maschinenbelegung, ….)
Probleme meist NP-Schwer Exakte Lösungsansätze Heuristiken -> u.a. Nachbarschafts-
Suchalgorithmen
Nachbarschafts-Suchalgorithmen
Verbesserungsheuristiken Gültige Lösung als Input Schrittweise Verbesserung z.B. einfache Lokale Suche, SA, Tabu-Suche
Meist gut geeignet für Partitionierungsprobleme
Definition einer geeigneten Nachbarschaftsstruktur notwendig
Nachbarschaftssrukturen
Polynomielle Nachbarschaftsgröße
Exponentielle Nachbarschaftsgröße => Very Large-Scale Neighborhood Search
Very Large-Scale Neighborhood Search Wesentlich größere Nachbarschaften als bei
„gewöhnlichen“ Nachbarschaftsstrukturen Nachbar-Lösungen können nicht enumeriert
werden Neue Techniken notwendig um besseren
Nachbarn zu finden
Cyclic-Exchange Neighborhood
Verallgemeinerung der 2-Opt Nachbarschaft wurde erstmals 1989 von Thompson und Orlin vorgeschlagen Vergleich 2-Opt vs. Cyclic-Exchange
Nachbarschaft Anzahl der Nachbarn Beispiel für n=100 k=5 Two-Exchange 2n 10.000
Cyclic-Exchange kn 10.000.000.000
[Abb1]
Cyclic-Exchange Neighborhood
exponentielle Nachbarschaftsgröße effiziente Methode notwendig, die besseren
bzw. besten Nachbarn findet Improvement Graph G(S)
Es existiert eine gültige Partitionierung S Knoten: alle Elemente aus S Kanten:
gerichtet repräsentieren zyklischen Tausch
Improvement Graph
Gerichtete Kante (i,j) bedeutet
Daraus ergeben sich die Kosten
jj aaS ][a i
][][a i jjj aScaaSc
Improvement Graph
Es entsteht gerichteter Teilmengen disjunkter Zyklus W
Bedingung: alle Knoten aus W in unterschiedlichen Teilmengen von S (14,4) (4,18) (18,2) (2,14) [Abb1]
Improvement Graph
Ziel – Teilmengen disjunkter Zyklus mit negativen Kosten NP-Vollständig Heuristik notwendig Lösung: Modifizierter Dijkstra
Algorithmus
Dijkstra Algorithmus Findet den kürzesten Pfad von a nach b in
polynomieller Zeit d(x) gibt Distanz vom Startknoten a zu
Knoten x an p(x) gibt Vorgängerknoten von Knoten x
im Pfad an Schritt für Schritt werden Distanzwerte der
Knoten überschrieben wenn gilt d(x) > d(y) + a_xy
Dijkstra Algorithmus
[Abb2]
Adapted Dijkstra Algorithmus Anpassung an das Zyklus Problem
Der gerichtete Pfad P[j] von a zu jedem Knoten j muss ein Teilmengen-disjunkter Pfad sein
Es existieren Kanten mit negativen Kosten
Knoten die bereits aus der Liste entnommen wurden können im weiteren Verlauf wieder eingefügt werden
Adapted Dijkstra Algorithmus Wird ein Knoten i aus der Liste entfernt,
muss überprüft werden ob P[i] ein Teilmengen-disjunkter Pfad ist => Alle Knoten sind in unterschiedlichen Mengen Falls nicht
Knoten i wird nicht überprüft Falls schon
d(i) wird aktualisiert Ausgehende Kanten werden überprüft
Adapted Dijkstra Algorithmus Bei Überprüfung der Kante (i,j) wird
Distanz d(j) < d(i) + a_ij überprüft Falls Bedingung erfüllt -> nächste Kante Falls nicht gibt es 3 Fälle zu unterscheiden
j ist ein Ausgangsknoten j ist ein regulärer Knoten und Teilmengen-
disjunkt j ist ein regulärer Knoten und nicht
Teilmengen-disjunkt
Adapted Dijkstra Algorithmus Fall1: j ist Anfangsknoten
Kompletter Zyklus profitabler Tausch wenn Zyklus negative Kosten
hat
Fall2: j Teilmengen-disjunkt Erweiterung des Pfades um j Kosten Update d(j) Vorgänger p(j) = i setzen
Adapted Dijkstra Algorithmus Fall3: j nicht Teilmengen-disjunkt
Entweder Knoten j gehört zu Teilmenge aus der bereits ein Knoten von P[i] enthalten ist => ungültiger Zug
Oder Knoten j ist bereits selbst in P[i] enthalten => Neuer besserer Teilmengen-disjunkter
Zyklus gefunden
Adapted Dijkstra Algorithmus Akzeptanz besserer Lösungen
First-Improvement Best-Improvement
Gute Konstruktionsheuristik notwenig Wahl des Startknoten hat großen Einfluss
Cyclic-Exchange Anwendungen
Vehicle-Routing
Capacitated MST(Network Design)
Vehicle-Routing Vollständiger, (gerichteter) Graph G Knoten repräsentieren Kunden Jede Route startet und endet im Depot
( Knoten 0 ) Jeder Kunde wird genau einmal besucht Optional
Zu jedem Kunden/Knoten wird gespeichert: Anzahl der zu befördernden Güter Zeitfensterfunktion Penalty p(t) Zeit die zum Abladen benötigt wird
Fahrzeuge haben Beladungsgrenze
Vehicle-Routing Zu minimierende Kosten setzen sich
zusammen aus Distanz die insgesamt zurückgelegt wird Optional
Penalty Time (Time Window) Zusätzlich benötigte Kapazitäten
Gültiger Zug – Zwei oder mehr Kunden können getauscht werden, wenn diese verschiedenen Fahrzeugen zugeordnet sind.
Gute Ausgangslösung notwendig
Capacitated MST – Network Jeder Knoten i (Terminal) hat Bedarf di an
Netzwerk-Traffic Zentraler Knoten, mehrere Terminals Bandbreiteneinschränkung (Kante) Minimierung der Gesamtkosten
(Kantengewichte) mit Einhaltung der Einschränkungen
Gültiger Zug Knoten oder Teilbäume können getauscht werden, wenn
diese in unterschiedlichen Unterbäumen sind
VLSNS beim TSP Problem
Nachbarschaftsdurchsuchung mittels Assignment
Halin-Graph
Assignment Gültige Ausgangslösung Bipartiter Improvement Graph Entferne k-Knoten (P1) mit
dazugehörenden Kanten aus Ausgangslösung und verbinde die restlichen Knoten durch Kanten (P2)
Für jeden Knoten aus P1 trenne eine Kante aus P2, sodass Kosten minimal sind
k darf maximal Anzahl der (Knoten / 2)-1 betragen
Assignment Improvement Graph
Knotenmenge P1: gelöschte Knoten P2: Kanten der reduzierten Tour
Kantenmenge Kanten (a, (x,y) )
a є P1, (x,y) є P2 Kantenkosten
Änderung der Tourlänge wenn a zwischen x und y eingefügt wird
c(a , (x, y)) = d(x, a) + d(a , y) − d(x, y)
Ziel: Matching mit minimalen Gesamtkosten
Aufwand: O (n³)
Halin-Graph Planarer Graph Kein Knoten hat
Knotengrad 2 Blattknoten werden zu
Zyklus verbunden Exponentielle
Nachbarschaftsgröße Linearer Aufwand für TSP
Halin-Graph Allgemeines TSP Problem NP-schwer Erweiterung einer TSP Ausgangslösung um
Halin-Graph Eigenschaften zu erfüllen => Halin-Graph enthält Ursprungslösung
als Teilgraph Berechne neue Tour ( Aufwand O(n) )
Das wars…
Vielen Dank für ihre Aufmerksamkeit
Literatur [1] G. Raidl, LVA Heuristische Optimierungsverfahren WS08
http://www.ads.tuwien.ac.at/teaching/ws08/HeuOpt/HeuOptFolienWS08-4x4.pdf [2] R. Ahuja, J. Orlin, and D. Sharma. Very large-scale neighborhood search. [3] R. Ahuja, O. Ergun, J. Orlin, A. Punnen. A survey of very large-scale
neighborhood search techniques [4] Ravindra K. Ahuja, James B. Orlin, Dushyant Sharma, New Neighborhood
Search Structures for the Capacitated Minimum Spanning Tree Problem, 1998 [5] G. CORNUEJOLS, D. NADDEF, W.R. PULLEYBLANK, Halin Graphs and the
Travelling Salesman Problem, 1982
Abbildungen
[Abb1] Algodat 1 Übungblatt 4 Beispiel 31 http://www.ads.tuwien.ac.at
Alle weiteren Abbildungen entstammen G. Raidl, Heuristische Optimierungsverfahren WS08
http://www.ads.tuwien.ac.at/teaching/ws08/HeuOpt/HeuOptFolienWS08-4x4.pdf