Very Large-Scale Neighborhood Search Thorsten Krenek
Übersicht Einleitung Very Large-Scale Neighborhood Search 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 [Abb1] Verallgemeinerung der 2-Opt Nachbarschaft wurde erstmals 1989 von Thompson und Orlin vorgeschlagen Vergleich 2-Opt vs. Cyclic-Exchange
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
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 Ziel: Matching mit minimalen Gesamtkosten 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) )
Vielen Dank für ihre Aufmerksamkeit 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