Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Titelseite Universität Karlsruhe (TH)

Ähnliche Präsentationen


Präsentation zum Thema: "Titelseite Universität Karlsruhe (TH)"—  Präsentation transkript:

1 Titelseite Universität Karlsruhe (TH) Institut für Anwendungen des Operations Research (ANDOR) Seminar: Heuristische Verfahren SS2004 „A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem “ von Opher Dubrovsky, Gregory Levitin and Michael Penn; Faculty of Industrial Engineering and Management, Technion, Haifa, 32000, Israel Aus: Journal of Heuristics, 8: , 2002 22. Juni 2004 Jens Schulte A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

2 Gliederung Einleitung Problemstellung Lösungsansätze
Kodieren des Genetischen Algorithmus Formaler Ablauf des Genetischen Algorithmus mit Compact Encoding Testläufe Zusätzliche Nebenbedingung Fazit Anhang Backup A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

3 Einleitung Warum Containerschiffverkehr?
Containerschiffverkehr nimmt immer weiter zu In den Jahren von 1995 bis 2003 im Schnitt um 9,9% in Hamburg Warum Containerschiffverkehr? Bisher konventioneller Schiffverkehr  alles irgendwie in irgendwelchen Verpackungen und Behältern je nach Frachtart verladen Mit Containern  mehr Waren (Warenvielfalt)  Standardisierung  effizienter und billiger TEU = Twenty-Feet Equivalent Hamburg 2003 : 6,2 Millionen A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

4 Einleitung Containerschiffe
Ein Schiff kann bis zu Container laden Während eines Turns kann ein Schiff 10 bis 25 Häfen anlaufen und jeweils ent- und beladen Jetzt ein paar Fakten zu Containerschiffen. Die großen Containerschiffe können bis zu 5000 Container laden … und bei einem Turn zwischen 10 und 25 Häfen anlaufen.  Ein Beispiel zu einem Turn habe ich hier auf der nächsten Folie dargestellt. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

5 Einleitung Containerschiffe – Beispiele für Turns
Kann man das erkennen? Der Nordatlantik Dienst der Hapag-Lloyd fährt Hamburg Bremerhafen Rotterdam Antwerpen LeHavre Southampton Halifax New York Philadelphia Baltimore Norfolk dann über New York, Halifax und Greenock zurück nach Hamburg A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

6 Einleitung Kosten eines Containerschiffes im Hafen
setzt sich zusammen aus Liegezeit (Raumentgelt) gelöschten/geladenen Gütern (Gewichtsentgelt) Mietkosten für Umschlagsgerät und Personal Umschlagsentgelte Die Umschlagsentgelte werden durch die Anzahl der Containeraus- und einladevorgänge bestimmt Zum Beispiel wird das Löschen/Laden eines Container von 91,20€ bis 500€ und mehr beziffert (Quelle EUROGATE Container Terminal Hamburg GmbH) Anmerkung zum letzten Punkt: die differierenden Kosten für Löschen/Laden eines Containers hängen mit der Ladung zusammen, wie strahlende Ladung kostet mehr genauso wie gefahrengut, etc WICHTIG: Die einzige Größe die variabel ist, ist die Anzahl der Umstauvorgänge, da das Gewicht sich z.Bsp. nicht reduzieren lässt. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

7 Einleitung Die Anzahl der Umstauvorgänge ist entscheidend für die Kosten des Schiffes mitverantwortlich. Definition von Umstauvorgängen: necessary shift ≡ notwendiger Umstauvorgang voluntary shift ≡ freiwilliger Umstauvorgang  Kurz ansprechen: Eine Einschränkung bei Be- und Entladen der Schiffe ist, dass ein Container nur entladen werden kann wenn über ihm keiner mehr steht. Ist dies nicht der Fall müssen zuerst alle darüber lagernden entladen werden. Necessary shift: wenn ein Container in seinem Zielhafen vom Schiff entladen wird, oder wenn ein Container einen zu entladenen Container blockiert und deshalb entladen werden muß (Anm. blocking container) Voluntary shift – ist ein freiwilliger Umstauvorgang.  findet statt wenn das Umsetzten eines Containers vorzeitig geschieht. Wenn ein Container umgesetzt werden muß, weil der sich unter ihm befinden Container vor ihm ausgeladen wird. Dann kann das Umsetzen des blockierenden Containers vorzeitig in einem Hafen geschehen, in dem der Umstauvorgang nicht so teuer ist wie im finalen Hafen, wo der blockierende Container spätestens umgesetzt werden muß. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

8 Problemstellung (1) Das Ziel der Studie
Der Schlüssel zu einer guten Stauraumplanung ist die Minimierung der Anzahl der Containerumstauvorgänge mit der daraus resultierenden Minimierung der Betriebskosten. „Einen Plan zu entwerfen, um die Anzahl der unnötigen Umstauvorgänge so weit wie möglich zu reduzieren“ Anmerkung: Um die Ausstattung der Häfen geht es nicht, sondern nur darum die Anzahl der unnötigen Bewegungen so weit wie möglich zu reduzieren. Wie das in den jeweiligen Häfen umgesetzt wird, ist in der Studie nicht behandelt. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

9 Problemstellung (2) Vereinfachende Annahmen
Das Schiff startet komplett leer in Hafen 1 und wird im letzten Hafen N wieder komplett entladen Die Transportmatrix Tij ist vorgegeben und bekannt Nur eine Standard-Container-Größe Keine Luken Das Schiff hat nur eine Bay Transportmatrix: i bezeichnet den Ursprungshafen und j den Zielhafen des zu transportierenden Containers (Bay = Ladebucht: Wenn die Anzahl der Säulen groß genug ist, dann kann man die Bay verkürzen und die so entstandenen bays hintereinander verteilen). Standardcontainergröße und nicht Unterscheidung in strahlende, kühlende und übergroße Container Keine Luken!! Wenn nämlich mit Luken müßten alle Container welche sich auf der Luke befinden, herausgeholt werden um die Luke öffnen zu können und an die darunter liegenden Container heranzukommen. Zur Bay: Wie ein Ladeplan genau aussieht, wurde ja schon in einer der vorherigen Präsentationen gezeigt, hier nur noch einmal wie man sich das vorstellen kann, warum es nur um eine Bay geht. sondern A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

10 Problemstellung (3) Definitionen Die Bay des Schiffes besteht aus:
- Reihen r = 1, …, R - Säulen c = 1, …, C Reihen R . 4 3 2 1 Säulen C A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

11 Lösungsansätze Binäres lineares Programm
Whole Column Heuristic Procedure Suspensory Heuristic Procedure Genetischer Algorithmus A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

12 Lösungsansätze – Binäres lineares Programm
Binär lineares Programm Avriel und Penn (1993), Botter und Brinati (1992) Kritik: Die Möglichkeiten eine optimale Lösung zu finden, sind begrenzt, da eine sehr große Anzahl an binären Variablen und Nebenbedingungen benötigt werden. Das „Minimum Overstowage Problem“ ist NP-vollständig (Avriel, Penn, Shpirer (2000)) Fazit: Das binäre lineare Programm ist nicht sinnvoll für die Lösung dieses Problems. ANWEISUNG: 1. KLICK LINKS UNTEN 2. KLICK irgendwo Dieses binäre lineare Programm ist allerdings sehr groß. Für den Fall eines vereinfachten Containerschiffes mit 2 Reihen (R = 2) und 6 Säulen (C = 5) das 5 Häfen anläuft (N=5) ergeben sich 240 Variablen und 106 Nebenbedingen. (Quelle: Avriel, M., Penn, M., Shpirer, N. and Witteboon, S.; Stowage Planning for Container Ships to Reduce the Number of Shifts; Annuals of Operations Research 76 (1998); 55-71) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

13 Lösungsansätze – Heuristiken
Whole Column Heuristic Procedure Avriel und Penn (1993) Kritik: Die Heuristik ist nicht für die Lösung des Problems geeignet, da binäre lineare Programmierung erforderlich ist. Ablauf: Container aus dem gleichen Hafen werden zu Gruppen zusammengefasst und als Gruppe in die Säulen des Schiffes gestapelt. Der Vorteil ist, dass man nicht mehr jeden Container, sondern nur noch Gruppen (weniger) bewegen muss. Das binäre lineare Programm ist zwar wesentlich kleiner als das ursprüngliche Model, kann aber trotzdem einfach zu groß zum Lösen sein. Prinzip: Container aus dem gleichen Hafen mit identischem Zielhafen werden als Säulen betrachtet und bewegt. Falls eine Säule des Schiffes schon vollständig aufgefüllt ist, werden die übrig gebliebenen Container mittels des Binären Linearen Programms auf die übrigen Säulen verteilt. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

14 Lösungsansätze – Heuristiken
Suspensory Heuristic Procedure Avriel et al. (1998) Ergebnis: die bisher besten Lösungen Kritik: Löst nur stark vereinfachte Version des Problems (in Bezug auf Nebenbedingungen). Keine technischen Restriktionen Löst nur kleine Probleme Funktionsweise: Seminararbeit von Tianshu Zhu, Sommersemester 2003. Kritik – Ergänzung: Inflexibilität resultierend daraus, dass Probleme ohne vereinfachende Aussagen nicht gelöst werden können. Besten Lösungen in Bezug auf Zeit und Qualität des Ergebnisses. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

15 Genetischer Algorithmus
Lösungsansätze – GA Genetischer Algorithmus A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

16 Lösungsansätze – GA Genetische Algorithmen – Eine allgemeiner Ablauf
Zielfunktion festlegen Abbruchkriterium festlegen Genetische Kodierung vornehmen Festlegen der genetischen Operatoren Anfangsbelegung vornehmen Rekombination Qualität bestimmen Selektion Abbruchkriterium testen ( falls kein Abbruch, dann wieder 6. Rekombination) Terminierung Quelle: „J.Heistermann, Genetische Algorithmen“ (Ein allgemeiner Ablauf ohne Mutation). Der hier gezeigte Ablauf eines Genetischen Algorithmus‘ ist der Standardalgorithmus wie er sich in den USA durchgesetzt hat (Zusätzliche Information: In Deutschland hat sich die Evolutionsstrategie nach Rechenberg und Schwefel durchgesetzt). 8. SELEKTION: Wenn bestimmte Qualität mit der Lösung erreicht, diese zur Lösungsmenge hinzufügen. BEISPIEL: Autofahrt von Karlsruhe nach Stuttgart A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

17 Lösungsansätze – GA Genetische Algorithmen – Ablauf des untersuchten GA ANFANGSBELEGUNG: Population von 200 zufällig generierten Stauplänen REKOMBINATION: Aus Population wird ein neuer Stauplan mittels „bitwise crossover“ generiert QUALITÄT BESTIMMEN: Stauplan bewerten ( „fittness value“) SELEKTION: Verwerfen oder Hinzufügen des neuen Stauplans ABBRUCHKRITERIUM 1 TESTEN: Falls „fittness value“ der Population länger als Nc Zyklen unverändert bleibt, erfolgt ein Cataclysm, dann weiter bei 2. Rekombination Sonst weiter bei 2. Rekombination ABBRUCHKRITERIUM 2 TESTEN: Falls „fittness value“ nach Nb Cataclysm nicht verbessert  Terminierung des GA Sonst Cataclysm und weiter bei 2. Rekombination Ergebnis: Die Population enthält die beste ermittelte Lösung. PUNKT: „Funktionsweise des „crossover operator“:  extra Folie Zu Punkt 4: Die neue Lösung wird nur hinzugefügt, falls sie einen besseren fittness value als die schlechteste Lösung in der Population hat. Falls die neue Lösung schlechter oder nur genauso gut wie die schlechteste ist, wird sie verworfen. ( die Größe der Population bleibt also immer konstant) ( weiterhin folgt daraus, daß die gesamte fittness value der Population immer gleich bleibt oder steigt aber nie sinkt. Zu Punkt 6 – CATACLYSM – die meisten Lösungen der Population werden verworfen und die frei gewordenen Plätze wieder mit zufällig generierten Lösungen aufgefüllt. Punkt 9: Die Population enthält auch Suboptimale Lösungen, welche nahe der optimalsten/besten Lösung liegen und in Hinblick auf die praktische Umsetzung auch interessant für den Entscheidungsprozess sein können. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

18 Kodieren des GA Kodierungen – Complete Encoding Funktionsweise:
Lösung wird durch einen Vektor mit N Sektionen repräsentiert, je Hafen eine Sektion. Jede Sektion besteht aus Vektoren der Größe P, wobei P der totalen Anzahl an Plätzen auf dem Schiff entspricht. Diese Vektoren geben des Zielhafen des Containers an, der den jeweiligen Platz im jeweiligen Hafen besetzt hält. In jedem Hafen wird der Platz jedes Containers neu berechnet. Nachteile: Sehr lange Vektoren, daraus resultierend Speicherplatz intensiv Zeitintensiv bei Auswerten der Lösungsqualität Es müssen eventuell gar nicht alle Container in jedem Hafen bewegt werden, trotzdem wird bei dieser Methode die Information für jeden Platz in jedem Hafen neu berechnet. Wichtiger Punkt des Lösungsansatz  Kodierung Die Autoren stellen zwei Kodierungsmöglichkeiten vor, zuerst das Complete Encoding. Beispiel für lange Vektoren: Ein Schiff, welches Platz für 1500 Container bietet und auf einer Fahrt 15 Häfen anfährt, hat einen Lösungsvektor mit Stellen/Ziffern. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

19 Kodieren des GA Kodierungen – Compact Encoding (1)
Unterschied zur Complete Encoding Technik: Nur die Änderungen im Layout, welche durch das Ein- und Ausladen geschehen, werden dokumentiert. Nicht alle Containerplätze, sondern nur die Veränderungen, welche durch Ein- und Ausladen geschehen A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

20 Kodieren des GA Kodierungen – Compact Encoding (2)
Formaler Aufbau des Lösungsvektors: Die Lösung wird durch einen Integer-String mit N Sektionen repräsentiert, hierbei ist N die Anzahl der Häfen Für jeden Hafen k enthält die Sektion 4 Teile: n, q, f und g n ist eine Liste von Säulen, in die Container am Hafen k eingeladen werden q ist eine Liste von Säule, aus denen Container aufgrund von voluntary shifts ausgeladen werden sollen f ist eine Liste von Säulen, in die Container eingeladen werden sollen, welche aufgrund von necessary shifts entladen wurden g ist eine Liste der Säulen auf die Container geladen werden sollen, welche aufgrund von voluntary shifts ausgeladen wurden q und g beziehen sich jeweils auf denselben Container A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

21 Formaler Ablauf des GA mit Compact Encoding
Das Be- und Entladen 2 zusätzliche Vektoren: Wp : Port Waiting List Wpr : Column Waiting List Ablauf nach Ankunft in Hafen p: Entladen aller p Container, also der Container deren Zielhafen p ist. Dadurch bedingt ist das Ent-laden aller h Container. h Container (h>p) sind blockierende Container (necessary shift). Die h Container werden nach dem Entladen an Wp angehängt (Wp  h). Durchführen der voluntary shifts. Die Container auf der Wp werden nach den entsprechenden Positionen der n- und f-Teile der Sektion des Hafens auf die Wpr verteilt. Nach dem verteilen der Container auf die Wpr werden die Container so geladen, daß die zeitlich früher zu entladenen Container über den zeitlich später zu entladenen Containern stehen. Was passiert formal im Hafen: Um das Entladen und Beladen in einem Hafen durchführen zu können, werden noch zwei zusätzliche Vektoren benötigt Definition „Port Waiting List“ : enthält die Zielhäfen der Container, welche in Hafen P eingeladen werden sollen {Anmerkung, diese Ziele gehen aus der Transportmatrix hervor} Definition „Column Waiting List“ : enthält die Ziele der Container welche in Hafen p auf Säule r zugeladen werden sollen. {Anmerkung: Diese Liste wird nach dem Solution Representation String erstellt} Blockierende Container (h-Container) sind Container welche nicht entladen werden müßten aber unter sich zu entladene Container stehen haben. h>p bedeutet hierbei, daß der hafen h nach Hafen p angelaufen wird. VOLUNTARY SHIFTS: Entladen der obersten Container der Säulen, welche durch den q-Teil der Sektion festgelegt sind und verschieben der Container auf die Wpr nach dem g-Teil Anmerkung: Sollte ein Säule schon komplett gefüllt sein, werden die eigentlich in diese Säule einzuordnenden Container auf die nächst mögliche Säule mit einem höheren Index bewegt. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

22 Beispiel für Be- und Entladevorgang
1. Schritt: Einfahrt des Schiffes in Hafen 2 2 3 5 1 Port Waiting List: Wp = (4, 5, 5) Column Waiting Lists: w21 = Ø w22 = Ø w23 = Ø Das Schiff ist so beladen wie auf der Skizze angezeigt. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

23 Beispiel für Be- und Entladevorgang
2. Schritt: Entladen der für Hafen 2 bestimmten Container 2 3 5 1 2 3 5 1 2 3 5 1 3 5 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = Ø w22 = Ø w23 = Ø Port Waiting List: Wp = (4, 5, 5) Column Waiting Lists: w21 = Ø w22 = Ø w23 = Ø A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

24 Beispiel für Be- und Entladevorgang
3. Schritt: Durchführen der voluntary shifts 3 5 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = Ø w22 = Ø w23 = Ø A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

25 Beispiel für Be- und Entladevorgang
3. Schritt: Durchführen der voluntary shifts 3 5 2 1 3 5 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = Ø w22 = Ø w23 = Ø Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = Ø w23 = Ø A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

26 Beispiel für Be- und Entladevorgang
3. Schritt: Durchführen der voluntary shifts 5 3 2 1 3 5 2 1 3 5 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = Ø w23 = Ø Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = Ø w23 = (3) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

27 Beispiel für Be- und Entladevorgang
3. Schritt: Durchführen der voluntary shifts 5 3 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = Ø w23 = (3) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

28 Beispiel für Be- und Entladevorgang
4. Schritt: Verteilen der Container aus Wp auf die Wpr 5 3 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = Ø w23 = (3, 4) Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = Ø w23 = (3) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

29 Beispiel für Be- und Entladevorgang
4. Schritt: Verteilen der Container aus Wp auf die Wpr 5 3 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = (5) w23 = (3, 4) Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = Ø w23 = (3, 4) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

30 Beispiel für Be- und Entladevorgang
4. Schritt: Verteilen der Container aus Wp auf die Wpr 5 3 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5, 5) w22 = (5) w23 = (3, 4) Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5) w22 = (5) w23 = (3, 4) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

31 Beispiel für Be- und Entladevorgang
4. Schritt: Verteilen der Container aus Wp auf die Wpr 5 3 2 1 Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5, 5, 3) w22 = (5) w23 = (3, 4) Port Waiting List: Wp = (4, 5, 5, 3) Column Waiting Lists: w21 = (5, 5) w22 = (5) w23 = (3, 4) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

32 Beispiel für Be- und Entladevorgang
4. Schritt: Verteilen der Container aus Wp auf die Wpr 5 3 2 1 Column Waiting Lists: w21 = (5, 5, 3) w22 = (5) w23 = (3, 4) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

33 Beispiel für Be- und Entladevorgang
4. Schritt: Ordnen der Container in der Wpr nach Zielhafen 5 3 2 1 Column Waiting Lists: w21 = (5, 5, 3) w22 = (5) w23 = (4, 3) Column Waiting Lists: w21 = (5, 5, 3) w22 = (5) w23 = (3, 4) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

34 Beispiel für Be- und Entladevorgang
5. Schritt: Verladen der Container gemäß Wpr Dies ist der Beladungsplan des Schiffes nachdem alle Umstauvorgänge abgeschlossen sind. 3 5 4 2 1 5 3 2 1 3 5 2 1 3 5 2 1 Column Waiting Lists: w21 = (5, 5, 3) w22 = (5) w23 = (4, 3) Nun werden die Container der Port Waiting List W2 gemäß der Einträge in n und f verteilt. Das heisst der erste Container in W2 kommt nach w23, der zweite nach w22 usw. Dieser Stauplan ist auch gleichzeitig der Stauplan, mit dem das Schiff den Hafen veläßt.  So kann man sich den tatsächlichen Ablauf des Be- und Entladen im Hafen vorstellen  A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

35 Formaler Ablauf des GA mit Compact Encoding
Anpassen des Genetischen Algorithmus und Wahl seiner Parameter Festlegen der GA Parameter Population size: Crossover rate: Cataclysm rate: Festlegen der Rahmenbedingungen Transportmatrix Beschaffenheit des Schiffes Anzahl der Reihen R Anzahl der Säulen C Anzahl der Häfen N Es ist anzumerken, daß der GA mit diesen Parametern die besten Ergebnisse der verschiedenen Testläufe immer mit der geringsten Standardabweichung erzielt hat unabhängig sowohl von der Transportmatrix als auch von der Anzahl der Reihen und Säulen des Schiffes. 200 p = 0,4 0,5 WIE GUT IST DER PARAMETER IM VERGLEICH? Die GA Parameter (unter 1.) Hier wurden 1.1 , 1.2 und 1.3 so gewählt, daß die sich die beste Lösungsqualität und Konvergenzrate ergibt. 2. Crossover rate: Wieviel Prozent eines Elternteils geht in die neue Lösung ein. 3. Cataclysmn rate: %-Zahl von ausgetauschten und wieder zufällig aufgefüllten Lösungen. Mit diesem Parametern: besten Ergebnisse mit geringster Standardabweichung, unabhängig von Anzahl der Reihen, Säulen und Häfen. Schiff: Auf 2 Arten von Schiffen wurden getestet eines mit R = 10 und C = 50 und eines mit R = 10 und C = 100 Häfen: Anzahl zwischen 5 Häfen (N = 5) und 14 Häfen (N = 14) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

36 Testläufe Ergebnisse Um die Leistung des GA zu überprüfen wurde seine Ergebnisse mit den Ergebnissen der „Suspensory Heuristic Procedure“ verglichen. Es wurden 91 Läufe durchgeführt mit dem Ergebnis, daß die Ergebnisse des GA ähnlich denen der Heuristiken sind. Schiffsgröße Ergebnis genauso gut oder besser als beste Heuristik Max Unterschied von 5 Umstauvorgängen (%) Durchschn. Differenz Anzahl der runs (%) 10 x 50 50 38 66 3,4 10 x 100 41 68 5,8 1. Absatz dann, … verglichen, welche bisher die besten Ergebnisse erbrachte. „Wie man sieht, liegen die Ergebnisse des GA und der besten Heuristischen Lösung mit großer Wahrscheinlichkeit innerhalb weniger Shifts beieinander.“ Der Vergleich wurde nicht nur mit Suspensory sondern auch mit der primitiven und der multiplication heuristiken angestellt. Der große Vorteil von GA: einfacher Einbau von zusätzlichen Nebenbedingungen  ABSCHLUß: Wird der GA mit zusätzlicher NB ausprobiert. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

37 Testläufe Zusätzliche Nebenbedingung - Stabilität
Abb1 Mitschiffsquerschnitt in aufrechter Lage Abb2 Mittschiffsquerschnitt in gekrängter Lage ERKLÄRUNG ABB1 und ABB2 Hier Tilt= Krängung erläutern: je weiter ein Container rechts oder links von der Mittelachse Achse ist, desto größer ist der vom Container verursachte Tilt. Container mit demselben Abstand zur Symmetrieachse aber rechts und linkes davon gleichen sich aus wenn sie dasselbe gewicht haben (  Tilt der beiden zusammen = 0 ). Der Gesamte Tilt kalkuliert sich dann aus der Summe aller Tilts der Container. (wobei natürlich „rechts“ und „links“ gegeneinander aufgerechnet werden). Abb. 1 Abb. 2 (Quelle: Schott, Rainer; Stauplanung für Containerschiffe; Vandenhoeck & Ruprecht in Göttingen (1989)) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

38 Testläufe Zusätzliche Nebenbedingung (2)
Straffunktion: penalty * max[0,(abs(tilt)-threshold)] Ergebnis: Alle finalen 21 Lösungen waren konform mit dem Schwellwert und dies nur auf Kosten einiger weniger zusätzlicher Umstauvorgänge. Der GA brachte auch mit einschränkender Nebenbedingung gute Ergebnisse. Test GA -- Flexibilität auf zusätzliche NB nämlich Stabilität Die Penalty rate repräsentiert den Betrag, den man bereit ist für jeden Container über dem Treshold level zu zahlen. Threshold = Schwellwert zu dem ein gewisser Tilt des Schiffes mit Ballasttanks ausgeglichen werden kann. Wenn der Tilt also größer als der Threshold/Schwellwert ist dann kentert das Schiff. Penalty Wert auf 20 da nach einigen Testläufen festgestellt wurde, daß ab 20 keine Lösung mehr auftaucht, wo Tilt > Treshold ist (das schiff also kentern würde). (Bei verschiedenen Testläufen festgestellt, daß Penalty value nicht sensitiv zu kleinen Veränderungen ist). Dann haben sie 21 Testläufe ohne penalty funktion durchgeführt und dann Testläufe mit identischen Rahmenbedingungen (gleiche Transportmatrix, 11 Häfen und Schiff mit 10 Reihen und 100 Säulen, 5 Säulen nach jeder Seite) und diesmal mit penalty wert. Test mit: Häfen N = 11 Reihen R = 10 Säulen C = 100 Schiffsbreite = 5 Säulen nebeneinander penalty-Wert = 20 threshold-Wert = 20 Gewicht je Container = 1; Ergebnis: Die Lösungen mit penalty Wert waren immer konform mit dem Treshold auf kosten von einigen wenigen zusätzlichen Umstauvorgängen. Der große Unterschied war, daß ohne penalty wert nur Iterationen benötigt wurden gegenüber Iterationen mit penalty Wert. Die Berechnung dieses Problems mit penalty Wert dauerte auf 300MHz Pentium II ungefähr 30 Minuten. Darin sehen die Autorin die Flexibilität des Algorithmus bestätigt. FAZIT : FLEXIBILITÄT BESTÄTIGT!!!! A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

39 FAZIT Bei der Implementierung von grosszahligen Problemen waren die Ergebnisse des Genetischen Algorithmus ähnlich denen der besten bekannten Heuristik (Suspensory Heuristic Procedure). Der Genetische Algorithmus bietet die Möglichkeit einschränkende Nebenbedingungen hinzuzufügen und trotzdem auf realisierbare/durchführbare Ergebnisse zu kommen. Der „Genetic Algorithm with a Compact Solution Encoding“ eignet sich wesentlich besser als andere Heuristiken für die Behandlung/Berechnung von „real life container ship stowage Problems“ Feasible =realisierbare durchführbare Ausblick: Weitere Erforschung und Einbindung von weiteren Einschränkungen und Nebenbedingungen! Meine Meinung: gut da zeitlich steuerbar – aber keine gute Lösung sicher. FALLS KEINE FRAGEN MEHR SIND MÖCHTE ICH ZUM SCHLUß KOMMEN UND BEDANKE MICH FÜR IHRE AUFMERKSAMKEIT! {schnell klicken} A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

40 Vielen Dank für Ihre Aufmerksamkeit!
„A Genetic Algorithm with a Compact Encoding Algorithm for the Container Ship Stowage Problem “ von Opher Dubrovsky, Gregory Levitin and Michael Penn; Faculty of Industrial Engineering and Management, Technion, Haifa, 32000, Israel Aus: Journal of Heuristics, 8: , 2002 Vielen Dank für Ihre Aufmerksamkeit! ENDE A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

41 Anhang Literaturverzeichnis Zusatzfolien Binäres lineares Programm
Funktionsweise des Crossover Backup A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

42 Anhang - Literaturverzeichnis
Heistermann, Jochen; Genetische Algorithmen: Theorie und Praxis evolutionäre Optimierung; B.G. Teubner Vertragsgesellschaft Leipzig (1994) Dyckhoff, Harald und Finke, Ute; Cutting and Packing in Production and Distribution – A Typology and Bibliography; Physica-Verlag Heidelberg (1992) Schott, Rainer; Stauplanung für Containerschiffe; Vandenhoeck & Ruprecht in Göttingen (1989) M. Sc. Buyang, Cao; Operations Research in der Container-Stellplatz-Verwaltung; Dissertation an der Universität der Bundeswehr Hamburg – Fachbereich Wirtschafts- und Organisationswissenschaften; Hamburg 1991 Avriel, M and Penn, M; Exact and Approximate Solutions of the Container Ship Stowage Problem; Computers and Industrial Engineering 25 (1993), Avriel, M., Penn, M., Shpirer, N. and Witteboon, S.; Stowage Planning for Container Ships to Reduce the Number of Shifts; Annals of Operations Research 76 (1998); 55-71 Avriel, M., Penn, M. and Shpirer, N.; Container Ship Stowage Problem: Complexity and Connection to the Coloring of Circle Graphs; Discrete Applied Mathematics 103 (2000); A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

43 Binäres lineares Programm
Erklärung: Die Zielfunktion des linearen Programms zählt die Umstapelungen, die durch Überstaute Container hervorgerufen werden. Shipquant = Verschiffungsmenge, gibt an daß alle Container entladen werden Slot = Stellplatz. Erzwingt, daß in einem Stauplan an einem Hafen nur ein Container an einem Stellplatz steht. On top = Obenauf. Erzwingt, daß die Container einer Spalte aufeinander stehen. Shift = Überstauung. Definiert Umstapelungen (Quelle: Avriel, M., Penn, M., Shpirer, N. and Witteboon, S.; Stowage Planning for Container Ships to Reduce the Number of Shifts; Annuals of Operations Research 76 (1998); 57-58) A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

44 Funktionsweise des Crossover
zufällige Auswahl der Eltern (-lösungen) bitweise Kombination der beiden Elternlösungen 1. Lösung: (3,2,1,|1,2,3|3,2,|1,3) 2. Lösung: (3,2,1,|2,3,1,|1,2,|2,1) 1. Lösung: (3,2,1,|1,2,3|3,2,|1,3) 2. Lösung: (3,2,1,|2,3,1,|1,2,|2,1) Kind – (Lösung): (3,2,1,|2,2,3,|3,2,|2,1) Lösung 2 entspricht dem Teil der Gesamtlösung für einen Hafen. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

45 Backup Verzeichnis des Backups
1 Folie zum binären linearen Programm – Vorraussetzungen Beschreibung voluntary shift Lokale Optimierung Abkürzungsverzeichnis für Tageslichtprojektor A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

46 Binäres lineares Programm
Vorraussetzungen Reihen r = 1, …, R (Reihe 1 ist die unterste Reihe) Säulen c = 1, …, C (Säule 1 ist die erste Säule auf der linken Seite) Es sind rechtwinklige bays, d.h. ein jeder Säule können R Container Platz nehmen. Transportmatrix Tij ist bekannt bevor das Schiff startet. Anzahl der anzulaufenden Häfen ist N die Transportmatrix ist durchführbar, d.h. es werden in keinem Hafen mehr Container geladen als das Schiff transportieren kann Dieses binäre lineare Programm ist allerdings sehr groß. Für den Fall eines vereinfachten Containerschiffes mit 2 Reihen (R = 2) und 6 Säulen (C = 5) das 5 Häfen anläuft (N=5) ergeben sich 240 Variablen und 106 Nebenbedingen. A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

47 Kodieren des GA Kodierungen – Beispiel für voluntary shift
Der voluntary shift wird festgelegt durch die jeweiligen q und g der Sektion. Der Container welcher sich auf der obersten Stelle der Säule, angegeben durch die Position j in q, wird auf die Säule geladen, welche an der Position j von g angegeben wird. Ein Beispiel um zu zeigen, wie sich der Lösungsvektor mit welchen Schritten wie ändert A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem

48 Testläufe Lokale Optimierung
Gründe für lokale Optimierung sind Überlegungen sind eine Einschränkung des Suchraumes und die Verbesserung der Konvergenz des GA Sort: Sortieren vor dem Einladen Group: Zusammenfassen zu Gruppen von Containern mit den selben Zielhäfen Resultat: Benutzen von „local optimization rules“ brachte keine signifikanten Lösungsverbesserungen Lokale Verbesserungen reduzieren nicht den Suchraum sondern erzeugen nur mehr Lösungsvektoren mit demselben Fittness - Wert A Genetic Algorithm with a Compact Solution Encoding for the Container Ship Stowage Problem


Herunterladen ppt "Titelseite Universität Karlsruhe (TH)"

Ähnliche Präsentationen


Google-Anzeigen