Metaheuristiken zur Lösung von Standardproblemen des
Cutting and Packing
Inauguraldissertation
zur Erlangung des Grades eines
Doktors der Wirtschaftswissenschaft (Dr. rer. pol.)
der Fakultät für Wirtschaftswissenschaft
der FernUniversität in Hagen
vorgelegt von Dipl.-Kaufmann Daniel Mack
Hagen, den 31.12.2010
Erstgutachter: Dr. habil. Andreas Bortfeldt
Zweitgutachter: Prof. Dr. Dr. h.c. Günter Fandel
Drittgutachter: Prof. Dr. Hermann Singer
Vorsitzender des Promotionsausschusses: Dr. habil. Andreas Bortfeldt
Tag der Disputation: 04. Oktober 2011
Inhaltsverzeichnis III
Inhaltsverzeichnis
Abstract.......................................................................................................................... IX
Abbildungsverzeichnis..................................................................................................XI
Tabellenverzeichnis ...................................................................................................XIII
Algorithmenverzeichnis...............................................................................................XV
Abkürzungsverzeichnis ........................................................................................... XVII
1 Einleitung................................................................................................................... 1
1.1 Überblick ............................................................................................................ 1
1.2 Problemstellung und -einordnung....................................................................... 2
1.2.1 Logische Struktur des Cutting and Packing ............................................ 2
1.2.2 Klassifizierung der C&P-Probleme......................................................... 3
1.2.3 Eingrenzung auf drei Standardprobleme................................................. 5
Containerbeladeproblem (CLP) .............................................................. 6
Strip Packing-Problem (SPP) .................................................................. 6
Bin Packing-Problem (BPP).................................................................... 7
1.2.4 Restriktionen ........................................................................................... 7
1.3 Beispiele und Relevanz von C&P-Problemen im engeren Sinn....................... 14
1.4 Allgemeine Lösungsansätze zum C&P ............................................................ 17
1.4.1 Exakte enumerative Verfahren.............................................................. 17
1.4.2 Heuristiken ............................................................................................ 17
1.4.3 Metaheuristiken..................................................................................... 18
1.4.4 Graphensuchverfahren als Spezialfall ................................................... 19
IV Inhaltsverzeichnis
1.5 Literaturüberblick..............................................................................................20
1.5.1 Veröffentlichungen zum Containerbeladeproblem................................20
1.5.2 Literatur zum Strip Packing-Problem....................................................24
1.5.3 Literaturübersicht zum Bin Packing-Problem .......................................25
1.5.4 Benchmarkinstanzen aus der Literatur und deren Erzeugung ...............26
1.6 Zielsetzung der Dissertation..............................................................................29
2 Ein verteilt paralleles Tabu Search-Verfahren für das CLP ..............................35
2.1 Zielsetzung und Vorgehensweise......................................................................35
2.2 Basisheuristik ....................................................................................................35
2.2.1 Erzeugung lokaler Anordnungen...........................................................37
2.2.2 Erzeugung von Nachfolgepackräumen..................................................39
2.2.3 Bewertung von Zerlegungsvarianten.....................................................40
2.2.4 Bewertung lokaler Anordnungen...........................................................41
2.3 Sequentieller Tabu Search-Algorithmus...........................................................42
2.3.1 Kodierung zulässiger Lösungen ............................................................43
2.3.2 Ausgestalten der Basiskomponenten des TSA ......................................44
2.3.3 Ausgestaltung des TSA..........................................................................46
2.4 Paralleler Tabu Search-Algorithmus.................................................................47
2.4.1 Gliederung der Suche und Formen der Kommunikation.......................47
Kommunikationsmodell ........................................................................48
Austausch von Lösungen.......................................................................49
Weitere Details ......................................................................................50
2.5 Verfahrenstest ...................................................................................................51
2.5.1 Verwendete Testinstanzen .....................................................................51
2.5.2 Vortests zur Konfigurierung des TSA ...................................................52
2.5.3 Vergleichstests .......................................................................................53
2.6 Zusammenfassung der Ergebnisse ....................................................................56
Inhaltsverzeichnis V
3 Ein parallel-hybrides Local Search-Verfahren für das CLP.............................. 58
3.1 Zielsetzung und Vorgehensweise ..................................................................... 58
3.2 Problemspezifische Aspekte des Simulated Annealing.................................... 59
3.2.1 Erzeugen einzelner Lösungen für das CLP ........................................... 60
3.2.2 Darstellung zulässiger Lösungen .......................................................... 62
3.2.3 Nachbarschaftsstruktur..........................................................................63
3.2.4 Zielfunktion........................................................................................... 64
3.2.5 Diversifizierungskonzept ...................................................................... 64
3.3 Generische Aspekte des Simulated Annealing................................................. 64
3.3.1 Ausgangslösung .................................................................................... 66
3.3.2 Zufällige Wahl der Nachbarlösung ....................................................... 66
3.3.3 Akzeptieren von Nachbarlösungen ....................................................... 67
3.3.4 Kühlplan ................................................................................................ 67
3.3.5 Diversifizierung des Suchprozesses ...................................................... 68
3.3.6 Änderungen des Standardmodells von SA............................................ 69
3.4 Hybride lokale Suche........................................................................................ 70
3.4.1 Allgemeine Überlegungen..................................................................... 70
3.4.2 Hybrider Ansatz und Diversifizierungskonzept .................................... 71
3.5 Parallelisierung ................................................................................................. 72
3.5.1 Allgemeine Erörterungen zur Parallelisierung...................................... 72
3.5.2 Parallelisierungskonzepte für SA-Algorithmen .................................... 73
3.5.3 Kommunikation paralleler Instanzen .................................................... 74
3.6 Numerische Tests.............................................................................................. 75
3.6.1 Vortests zur Konfigurierung des Verfahrens ........................................ 76
3.6.2 Resultate für alle Varianten der vorgestellten Metaheuristiken ............ 78
3.6.3 Vergleich zwischen SA und TS ............................................................ 80
3.6.4 Hybridisierung und Parallelisierung...................................................... 81
3.6.5 Vergleich mit den Resultaten anderer Autoren ..................................... 81
3.6.6 Anheben der Anzahl an parallelen Prozessoren.................................... 82
3.7 Zusammenfassung der Ergebnisse....................................................................83
VI Inhaltsverzeichnis
4 Ein Verfahren zum Erzeugen von C&P-Instanzen ..............................................85
4.1 Zielsetzung und Vorgehensweise......................................................................85
4.2 Parameter und Datenstrukturen.........................................................................87
4.3 Überblick über das Verfahrens CPGH..............................................................91
4.4 Basisheuristik zum Erzeugen einer Ausgangslösung (CPHK) .........................93
4.4.1 Module von CPHK ................................................................................93
4.4.2 Zerlegen des Containers in Packräume (Modul CutPr).........................95
4.4.3 Erzeugen der Kistentypen (Modul FindAllTypes)..............................100
4.4.4 Zulässigkeitsprüfung (Modul CheckValid) .........................................100
4.4.5 Auswahl der Kistentypen (Modul FixAllTypes) .................................101
4.4.6 Auflösen unzulässiger Packräume (Modul RemoveAllBads) .............102
4.4.7 Testen der Zulässigkeit einer Lösung (Modul TestSol) ......................104
4.5 Iteratives Verbesserungsverfahren (CPHI) .....................................................105
4.5.1 Module von CPHI................................................................................105
4.5.2 Auswahl eines Mutterpackraums (Modul SelectParent) .....................108
4.5.3 Neuzerlegung des Mutterpackraums (Modul SplitParent) ..................109
4.5.4 Vervollständigen einer Lösung (Modul FinishSol) .............................112
4.6 Einmalige Nachbearbeitung der Bestlösung (CPHP).....................................113
4.6.1 Module von CPHP...............................................................................113
4.6.2 Anpassung des Kistenvorrats (Modul AdaptTypes)............................113
4.6.3 Hinzufügen von Zusatzbedingungen (Modul AddConstraints)...........114
4.7 Anpassung von CPGH an das Strip Packing-Problem....................................119
4.8 Anpassung von CPGH an das Bin Packing-Problem......................................120
4.9 Numerische Tests ............................................................................................121
4.9.1 Mit CPGH erzeugte CLP-Instanzen ....................................................121
Konfiguration von CPGH....................................................................121
Testresultate.........................................................................................123
4.9.2 Mit CPGH erzeugte SPP-Instanzen .....................................................126
4.10 Zusammenfassung der Ergebnisse ..................................................................127
Inhaltsverzeichnis VII
5 Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems .. 129
5.1 Zielsetzung und Vorgehensweise ................................................................... 129
5.2 Die Heuristik von Pisinger für das Containerbeladeproblem......................... 129
5.3 Anpassung an das Strip Packing-Problem...................................................... 132
5.3.1 Adaptation mit offenem Container...................................................... 132
5.3.2 Adaptation mit geschlossenem Container ........................................... 133
5.4 Verfahrenstest ................................................................................................. 137
5.4.1 Benchmarkinstanzen für das SPP........................................................ 137
5.4.2 Konfiguration der Heuristik ................................................................ 140
5.4.3 Numerische Resultate.......................................................................... 141
Vergleich der verschiedenen Varianten von SPBBL .......................... 141
Berechnung von Instanzen mit bekanntem Bestwert .......................... 144
Vergleich von SPBBL mit anderen Verfahren.................................... 145
5.5 Zusammenfassung der Ergebnisse.................................................................. 147
6 Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems... 149
6.1 Zielsetzung und Vorgehensweise ................................................................... 149
6.2 Lower Bounds für das Bin Packing-Problem ................................................. 150
6.2.1 Vorbemerkungen................................................................................. 150
6.2.2 Der Continuous Lower Bound L0........................................................ 151
6.2.3 Verallgemeinerung des Lower Bound L1 ............................................ 152
6.2.4 Verallgemeinerung des Lower Bound L2 ............................................ 156
6.3 Module des BPP-Verfahrens und ihre Interaktion ......................................... 160
6.4 Beschreibung der Teilverfahren ..................................................................... 161
6.4.1 Das CLP-Verfahren (Modul 3CLH) ................................................... 161
6.4.2 Das 1D-BPP-Verfahren (Modul 1BPH).............................................. 162
6.4.3 Erzeugung einzelner Lösungen für das 3D-BPP (Modul 3BP1S) ...... 162
6.4.4 Hauptmodul der 3D-BPP-Heuristik (Modul BPHL)........................... 164
6.4.5 Nachoptimierung einer Lösung (Modul 3BPPO)................................ 165
6.5 Numerischer Test............................................................................................ 168
6.5.1 Probleminstanzen ................................................................................168
VIII Inhaltsverzeichnis
6.5.2 Testresultate.........................................................................................170
6.6 Zusammenfassung der Ergebnisse ..................................................................178
7 Zusammenfassung und Ausblick .........................................................................179
7.1 Zusammenstellung der Ergebnisse für die einzelnen Verfahren.....................179
7.2 Zusammenhang der Erkenntnisse und Ausblick .............................................181
Literaturverzeichnis....................................................................................................187
Abstract IX
Abstract
Mehrdimensionale Cutting and Packing- (C&P-) Probleme gelten als besonders schwierige kombinatorische Optimierungsprobleme. Im Rahmen dieser Dissertation werden fünf Verfahren für Problemstellungen des C&P mit quaderförmigen Packstücken (Items) vorgestellt. Die Ergebnisse der vorliegenden Arbeit können wie folgt zusammengefasst werden.
In der Literatur werden bevorzugt Metaheuristiken zur Lösung von C&P-Problemen verwendet. Allerdings sind bisher nur wenige Versuche bekannt, die Metaheuristik Simulated Annealing (SA) einzusetzen. In einem Verfahren dieser Arbeit wird SA neben Tabu Search (TS) als Nachbarschaftsverfahren angewendet. Die Integration von SA und TS zu einem neuen hybriden Ansatz und dessen anschließende Parallelisierung führt zudem zu sehr guten Resultaten, wie umfangreiche Tests belegen.
Die Fragestellungen des Container Loading, Strip Packing und Bin Packing stehen in einem engen inneren Zusammenhang. Im Rahmen dieser Arbeit wird dies gezeigt, indem ein bestehendes Branch and Bound-Verfahren für das Containerbeladeproblem schrittweise zunächst zu einem Strip Packing-Verfahren und anschließend zu einem Bin Packing-Verfahren ausgebaut wird. Der verwendete Erweiterungsansatz lässt sich auf beliebige schichtbildende Verfahren verallgemeinern, bei denen ein Container mit separaten, vertikalen Schichten aus je einigen Stücken gefüllt wird.
Die für mehrdimensionale C&P-Probleme in der Literatur angebotenen Benchmarkinstanzen sind meist von bescheidener Größe und umfassen im dreidimensionalen (3D) Fall meist nicht mehr als 200 Items. Zudem ist das Optimum meist unbekannt, was die Bewertung von Verfahren zusätzlich erschwert. Im Rahmen dieser Dissertation wird daher ein Instanzgenerator für mehrdimensionale C&P-Probleme beliebiger Größe mit bekanntem Optimum entworfen und angewendet.
Neue zwei- und dreidimensionale Benchmarkinstanzen von bisher nicht gekannter Größe und teilweise mit bekanntem Optimum werden eingeführt und gelöst. So werden unter anderem 600 neue Testinstanzen mit bekanntem Optimum und 200 Items für das Strip Packing-Problem (SPP) verwendet, neben größeren neuen SPP-Instanzen mit 1.000 Items, welche aus den Packproblemen von BISCHOFF und RATCLIFF (1995) abgeleitet werden. Außerdem werden 1800 neue Instanzen für das Bin Packing-Problem mit durchschnittlich mehr als 1500 Packstücken eingeführt. Neben der Dimensionalität werden dabei auch die relative Packstückgröße sowie die Heterogenität der Packstückmenge systematisch variiert.
Alle fünf Verfahren wurden in den Jahren 2003 bis 2009 entworfen. Insbesondere das bereits 2004 vorgestellte parallel-hybride Verfahren für das Containerbeladeproblem blieb bis zum Jahre 2008 ungeschlagen für schwach heterogene Benchmarkinstanzen.
(217 Seiten, 57 346 Wörter, 12/10/2011 11:19)
Abbildungsverzeichnis XI
Abbildungsverzeichnis
Abb. 1. Guillotinierbare und nichtguillotinierbare Anordnung.............................. 13
Abb. 2. Zulässige Anordnungstypen innerhalb eines Packraums (Draufsicht)...... 38
Abb. 3. Restraumaufteilung ohne Überhang bei 1-AO. ......................................... 39
Abb. 4. Zusätzliche Aufteilungsvarianten mit Überhängen bei 1-AO. .................. 40
Abb. 5. Ring-Kommunikationsmodell. .................................................................. 49
Abb. 6. Blackboard-Kommunikationsmodell......................................................... 49
Abb. 7. Überblick der Verfahren und ihrer Wechselbeziehungen. ........................ 58
Abb. 8. Komponenten der Basisheuristik: Packraum, lokale AO, Blöcke............. 61
Abb. 9. Vermeiden instabiler Platzierungen mit Überhang. .................................. 62
Abb. 10. Transformation einer Packsequenz in eine zulässige Lösung. .................. 63
Abb. 11. Zwei Varianten der Hybridisierung........................................................... 72
Abb. 12. Mittlere Volumenauslastung für 7 BR-Testfälle. ...................................... 79
Abb. 13. Verbesserung der Auslastung bei Hybridisierung und Parallelisierung.... 81
Abb. 14. Mittlere Volumenauslastung bei Anheben der Prozesszahl. ..................... 83
Abb. 15. Listenelemente von PrList, ArrList und TypList. ..................................... 89
Abb. 16. Schematische Darstellung der Teilverfahren von CPGH.......................... 91
Abb. 17. Auswahlprobleme bei der Packraumzerlegung mit CutPr. ....................... 97
Abb. 18. Schnittpunkte und Nachfolgepackräume beim NG-Schnitt. ..................... 99
Abb. 19. Zerschneiden und Verschmelzen von Packräumen in PrList. ................. 104
Abb. 20. Vorgehensweise des Verbesserungsmoduls CPHI. ................................. 105
Abb. 21. Unterteilung des Mutterpackraums prpar im 3D-Fall (Teilschritt 3). ..... 107
Abb. 22. Anpassen von CPGH an das SPP. ........................................................... 119
Abb. 23. Zwei Adaptationsvarianten zur Erzeugung von BPP-Instanzen.............. 121
Abb. 24. Schichtartige Struktur eines Stauplans bei PISINGER (2002). .................. 130
Abb. 25. Vorläufige SPP-Lösung einer Testinstanz mit 8 Kistentypen. ................ 137
XII Abbildungsverzeichnis
Abb. 26. Drei Zerlegungsvarianten für den Container (Draufsicht).......................140
Abb. 27. Suchverlauf der konkurrierenden SPP-Verfahren (SP-BR5-007). ..........143
Abb. 28. Sechs Orientierungsvarianten eines Packstücks im Container. ...............152
Abb. 29. Bereiche für Teilmengen bei gegebenem Wertepaar (p, q). ....................156
Abb. 30. Modularer Aufbau der 3D-BPP-Heuristik. ..............................................160
Abb. 31. Vier Schritte der Nachoptimierung mit Modul 3BPPO...........................166
Abb. 32. Suchverlauf von BPHL am Beispiel der Testinstanz MB06_015............176
Tabellenverzeichnis XIII
Tabellenverzeichnis
Tab. 1. Intermediäre Problemtypen der Outputmaximierung.................................. 4
Tab. 2. Intermediäre Problemtypen der Inputminimierung. .................................... 5
Tab. 3. Auswahl wichtiger C&P-Restriktionen....................................................... 8
Tab. 4. Codierung der Orientierungsvarianten (OV)............................................... 9
Tab. 5. Vier Subtypen für C&P-Probleme nach LODI et al. (1999a). .................... 14
Tab. 6. Verfahren für das mehrdimensionale BPP mit rechteckigen Items........... 26
Tab. 7. Benchmarkinstanzen für Cutting and Packing Probleme. ......................... 28
Tab. 8. Kapitel der Dissertation und Bezug zu bisherigen Veröffentlichungen. ... 31
Tab. 9. Bewertungsmodi zur Packraumzerlegung. ................................................ 41
Tab. 10. Parametersätze für den sequentiellen TSA................................................ 52
Tab. 11. Aufteilung der Parametersätze auf drei TSA-Prozesse von PTS. ............. 53
Tab. 12. Ergebnisse für die 15 Testprobleme von LOH und NEE. ........................... 54
Tab. 13. Ergebnisse für die 700 Testprobleme von BISCHOFF und RATCLIFF. ........ 55
Tab. 14. Phasenparametersets für SA und hybride Suche. ...................................... 76
Tab. 15. Testparameter zu SA und TS..................................................................... 77
Tab. 16. Resultate der TS-, SA- und Hybridvarianten für BR-Testinstanzen. ........ 78
Tab. 17. Vergleich mit den Verfahren anderer Autoren. ......................................... 82
Tab. 18. Parameter von CPGH. ............................................................................... 87
Tab. 19. Eigenschaften der Listenelemente. ............................................................90
Tab. 20. Zusätzliche Instanzvariablen für Restriktionen. ...................................... 118
Tab. 21. Heterogenität H der erzeugten CLP-Instanzen........................................ 122
Tab. 22. Parameterwerte zur Erzeugung von CLP-Instanzen................................ 123
Tab. 23. Heterogenität und Kistenzahlen pro Typ für die CLP-Instanzen. ........... 123
Tab. 24. Charakteristiken der erzeugten CLP-Instanzen. ...................................... 124
Tab. 25. Zeit bis zum Ermitteln der Bestlösung (der Ausgangslösung). ............... 125
XIV Tabellenverzeichnis
Tab. 26. Anzahl der berechneten vollständigen Zwischenlösungen. .....................125
Tab. 27. Parameter für die Struktur der Optimallösung der SPP-Instanzen. .........126
Tab. 28. Auslegung der Parametergruppen 1-3 für die SPP-Instanzen..................126
Tab. 29. Kenndaten der Testfälle SP-BR1 bis SP-BR10. ......................................138
Tab. 30. Resultate für die Testfälle SP-BRi. ..........................................................141
Tab. 31. Resultate für die Testfälle SP-BRi-XL. ...................................................144
Tab. 32. Berechnung mit SPBBL-CC4 von Instanzen mit bekanntem Optimum. 145
Tab. 33. Resultat des Vergleichstests mit den Verfahren anderer Autoren. ..........147
Tab. 34. Systematik und Bezeichnungen der 12 BPP-Testfälle.............................170
Tab. 35. Testresultate für 500 2D-Benchmarkprobleme........................................171
Tab. 36. Testresultate für 240 3D-Benchmarkprobleme........................................172
Tab. 37. BPHL Testresultate für 1800 Probleminstanzen......................................173
Algorithmenverzeichnis XV
Algorithmenverzeichnis
Alg. 1. Grobalgorithmus der Basisheuristik. ......................................................... 36
Alg. 2. Tabu Search-Algorithmus für ein Maximumproblem............................... 42
Alg. 3. Simulated Annealing-Algorithmus für ein Maximierungsproblem........... 65
Alg. 4. Grobalgorithmus des Verfahrens CPGH. .................................................. 92
Alg. 5. Grobalgorithmus der Basisheuristik CPHK. ............................................. 93
Alg. 6. Algorithmus von Modul CutPr zum Zerlegen von Packräumen. .............. 96
Alg. 7. Modul CheckValid: Zulässigkeitstest von Typen und Anordnungen. .... 101
Alg. 8. Modul MergePr: Verschmelzen eines Packraums pr. ............................. 103
Alg. 9. Modul RemoveAllChilds: rekursives Desaktivieren aller Packräume. ... 103
Alg. 11. Modul SplitParent: Zerlegen von Packraum prpar. ................................. 110
Alg. 12. Steuerheuristik der SPP-Variante mit geschlossenem Container. ........... 134
Alg. 13. Berechnung einer zugeordneten CLP-Instanz......................................... 136
Alg. 14. Algorithmus der Heuristik 3BP1S........................................................... 163
Alg. 15. Algorithmus des Hauptmoduls BPHL..................................................... 164
Alg. 16. Algorithmus der Heuristik 3BPPO.......................................................... 167
Abkürzungsverzeichnis XVII
Abkürzungsverzeichnis
1-AO – Kompakte Anordnung von Packstücken innerhalb eines Containers, welche aus einem Block mit Kisten eines Typs in identischer räumlicher Orientierung besteht
1BPH – ein Verfahren zur Lösung des 1D-BPP (1D-Bin Packing, Heuristik)
2-AO – Anordnung von Packstücken innerhalb eines Containers, welche aus zwei Blöcken besteht
2D – zweidimensional
3BP1S – eine Heuristik zur Erzeugung einer Lösung für das 3D-BPP (3D-Bin Packing, 1 Solution)
3BPPO – eine Heuristik zur Nachoptimierung einer mit 3BP1S erzeugten Lösung (3D-Bin Packing Problem, Optimisation)
3CLH – ein Verfahren zur Lösung des CLP (3D-Container Loading, Heuristik)
3D – dreidimensional
AO – Anordnung von Packstücken innerhalb eines Containers
B&B – Branch and Bound
B&C – Branch and Cut
BL – Bottom-Left
BPHL – eine auf dem schichtbildenden Ansatz basierende Heuristik für das BPP (Bin Packing, Heuristik, Layers)
BPP – Bin Packing-Problem
BR1 – BR7 – Bezeichnung der Testfälle von BISCHOFF und RATCLIFF (1995)
bzw. – beziehungsweise
C&P – Cutting and Packing
ca. – circa
CP – Constrained Programming
CPGH – ein Verfahren zur Erzeugung von C&P-Testinstanzen (Cutting and Packing Generator, Heuristik)
CH – Konstruktive Heuristik
CLP – Containerbeladeproblem (Container Loading-Problem)
d.h. – das heißt
ggf. – gegebenenfalls
FFD – First Fit Decreasing
FIFO – First In, First Out
XVIII Abkürzungsverzeichnis
G-cut, G-Schnitt – Guillotineschnitt
GA – Genetischer Algorithmus
GAP – relative Abweichung vom theoretischen SPP Optimum
GLS – Guided Local Search
GRASP – Greedy Randomized Adaptive Search Procedure
HYB – ein hybrides TS/SA-Verfahren für das 3D-CLP
HYB.XL – ein massiv verteilt-paralleles hybrides Verfahren für das CLP
i.A. – im Allgemeinen
i.d.R. – in der Regel
IH – Verbesserungsheuristik
IIPP – Identical Item Placement Problem (WÄSCHER et al., 2004)
IPT – Intermediate Problem Type(s) (WÄSCHER et al., 2004)
LAN – Lokales Netzwerk (Local Area Network)
LB – Lower Bound
LIFO – Last In, First Out
MBSBPP – Multiple Bin Size Bin Packing Problem (WÄSCHER et al., 2004)
MIKP – Multiple Identical Knapsack Problem (WÄSCHER et al., 2004)
MILOPP – Multiple Identical Large Objects Placement Problem (WÄSCHER et al., 2004)
MMP – Massenmittelpunkt einer Ladung
MSSCSP – Multiple Stock Size Cutting Stock Problem (WÄSCHER et al., 2004)
NBS – Anzahl der ermittelten Bestlösungen im Suchverlauf (Number of Best Solutions)
NG, NG-cut – Nichtguillotineschnitt
NP – Non-Deterministic Polynomial
o.B.d.A. – ohne Beschränkung der Allgemeinheit
ODP – Open Dimension-Problem
OF – Subtyp von C&P-Problemen nach LODI et al. (1999a): Orientierung der Items ist vorgegeben (O), Guillotineschnitte sind frei (F)
OG – Subtyp von C&P-Problemen nach LODI et al. (1999a): Orientierung der Items ist vorgegeben (O), Guillotineschnittbedingung ist vorgeschrieben (G)
OR – Operations Research
OV – Orientierungsvariante eines mehrdimensionalen Packstücks im Container
Abkürzungsverzeichnis XIX
PHYB – paralleles Hybridverfahren
PC – Personal Computer
PR – Packraum
PTS – ein paralleles Tabu Search-Verfahren
PSA – ein paralleles Simulated Annealing-Verfahren
q. e. d. – quod erat demonstrandum (was zu beweisen war)
RBPP – Residual Bin Packing-Problem (WÄSCHER et al., 2004)
RCSP – Residual Cutting Stock-Problem (WÄSCHER et al., 2004)
RF – Subtyp von C&P-Problemen nach LODI et al. (1999a): Items dürfen gedreht werden (R = Rotation), Guillotineschnitt ist nicht vorgeschrieben (F = Frei)
RG – Subtyp von C&P-Problemen nach LODI et al. (1999a): Items dürfen gedreht werden (R = Rotation), Guillotineschnittbedingung ist vorgeschrieben (G)
RPT – Refined Problem Type(s) (WÄSCHER et al., 2004)
SA – Simulated Annealing
SAA – Simulated Annealing-Algorithmus
SBSBPP – Single Bin Size Bin Packing-Problem (WÄSCHER et al., 2004)
SKP – Single Knapsack-Problem (WÄSCHER et al., 2004)
SLOPP – Single Large Object Placement-Problem (WÄSCHER et al., 2004)
SPBBL – ein Verfahren zur Lösung des Strip Packing-Problems (Strip Packing, Branch and Bound, Layer-Ansatz)
SPBBL-CC – ein Verfahren zur Lösung des Strip Packing-Problems, Variante mit geschlossenem Container (Closed Container)
SPBBL-OC – ein Verfahren zur Lösung des Strip Packing-Problems, Variante mit offenem Container (Open Container)
SP-BRi – aus den CLP-Instanzen von BISCHOFF und RATCLIFF (1995) abgeleitete SPP-Instanzen (durch Ignorieren der Containerlänge)
SP-BRi-XL – von den CLP-Instanzen von BISCHOFF und RATCLIFF (1995) abgeleitete SPP-Instanzen (mit erhöhter Kistenzahl)
SPP – Strip Packing-Problem
SSSCSP – Single Stock Size Cutting Stock-Problem (WÄSCHER et al., 2004)
TA – Threshold Accepting
TTB – Time To Best (Rechenzeit bis zur Ermittlung der Bestlösung)
TRS – Tree Search
TS – Tabu Search
TSA – Tabu Search-Algorithmus
XX Abkürzungsverzeichnis
TSP – Travelling Salesman-Problem
UB – Upper Bound
vgl. – vergleiche
VRP – Vehicle Routing-Problem
VU – Volume Utilization (Volumenauslastung)
Kapitel 1 : Einleitung 1
1 Einleitung
1.1 Überblick
Das Promotionsvorhaben „Metaheuristiken zur Lösung von Standardproblemen des Cutting
and Packing“ reiht sich nahtlos in die Forschungsaktivitäten des Lehrstuhls
Wirtschaftsinformatik der Fakultät Wirtschaftswissenschaft der FernUniversität Hagen ein.
Einen Schwerpunkt der Forschung am Lehrstuhl bildet die Entwicklung
entscheidungsunterstützender Systeme auf der Grundlage moderner heuristischer
Suchstrategien der Künstlichen Intelligenz und des Operations Research1. Die vorliegende
Dissertation behandelt das Themengebiet der Containerstauplanung und
Verschnittoptimierung (allgemein auch als „Cutting and Packing“ bezeichnet, abgekürzt
C&P), welches dem Bereich der kombinatorischen Optimierung zuzuordnen ist.
Schwerpunkt der Arbeit ist die Entwicklung neuer Verfahren für verschiedene
Problemstellungen des C&P unter Berücksichtigung industrieller Erfordernisse wie z.B.
praktisch relevanter Problemgrößen und Restriktionen, Aufwandsbeschränkung und
Verwendung allgemein verfügbarer Hard- und Software. Besondere Aufmerksamkeit wird
dem Thema des Einflusses von Problemgröße und Heterogenität der ausschließlich
quaderförmigen Packstücke auf die Lösungsqualität gewidmet. Dazu sollen Verfahren
entwickelt werden, welche in der Lage sind, für Problemgrößen jenseits von 500 bis 1.000
Packstücken gute Ergebnisse zu erzielen.
Das vorliegende Kapitel 1 führt in die Problematik des Cutting and Packing ein und erläutert
die Motivation für das Promotionsvorhaben. Das Kapitel ist wie folgt gegliedert: in
Abschnitt 1.2 wird die Problematik des C&P vorgestellt und systematisch eingeordnet.
Außerdem werden drei wichtige C&P-Standardprobleme näher beschrieben. In Punkt 1.3
wird auf die ökonomische Relevanz des Cutting and Packing im engeren Sinne eingegangen.
Kapitel 1.4 stellt die möglichen Strategien zur Lösung von C&P-Problemen vor. Ein
Überblick über den aktuellen Stand der Forschung findet sich in Abschnitt 1.5. Schließlich
beschreibt Abschnitt 1.6 die Motivation der vorliegenden Dissertation.
1 zum Forschungsprofil vgl. http://www.fernuni-hagen.de/WINF/inhfrm/forprof.htm
2 Kapitel 1 : Einleitung
1.2 Problemstellung und -einordnung
1.2.1 Logische Struktur des Cutting and Packing
Cutting and Packing-Probleme lassen sich auf eine gemeinsame Fragestellung zurückführen
(siehe WÄSCHER et al., 2004): Gegeben sind eine Menge großer Objekte (Container) und eine
Menge kleiner Objekte (Items). Container und Items sind Punktmengen eines
d-dimensionalen Raumes (d > 1); wähle einige oder alle kleinen Objekte, gruppiere diese in
einer oder mehreren Teilmengen und ordne diese den großen Objekten zu, so dass:
(a) alle kleinen Objekte der Teilmenge jeweils vollständig in dem großen Objekt liegen;
(b) je zwei kleine Objekte überschneidungsfrei platziert sind;
(c) eine gegebene Zielfunktion optimiert wird.
Die Forderungen (a) und (b) stellen hierbei grundlegende Zulässigkeitsbedingungen dar. Man
beachte, dass in der gesuchten Optimallösung weder alle gegebenen großen noch alle kleinen
Objekte vorkommen müssen. Aus der obigen Problembeschreibung lassen sich folgende fünf
Teilprobleme ableiten:
(P1) Auswahl einiger kleiner Objekte;
(P2) Gruppierung dieser Objekte in Teilmengen;
(P3) Auswahl einiger großer Objekte;
(P4) Zuordnung der Teilmengen kleiner Objekte zu einzelnen großen Objekten;
(P5) Platzierung der kleinen Objekte im jeweils zugeordneten großen Objekt unter
Berücksichtigung der Bedingungen (a) und (b).
Die Komplexität des Problems liegt nicht allein in der Lösung dieser fünf Teilprobleme. Alle
Teilprobleme sind in der Tat simultan zu lösen und können somit in der Regel nicht
unabhängig voneinander sequentiell abgearbeitet werden. Bei bestimmten Ausprägungen des
C&P-Problems kommen nicht alle fünf Teilprobleme vor. So besteht beispielsweise beim
Beladeproblem mit einem Container offensichtlich kein Auswahlproblem (P3).
C&P-Probleme treten in verschiedenartigen Dimensionen auf. Bei räumlichen Dimensionen
wird zwischen ein-, zwei- und dreidimensionalen Problemen unterschieden. Große und
kleine Objekte entsprechen dann konkreten materiellen Gegenständen. Demgegenüber stehen
Probleme in nichträumlichen Dimensionen. Man spricht dann von C&P „im weiteren Sinne“
oder auch von abstraktem C&P, vgl. DYCKHOFF und FINKE (1992) sowie
Kapitel 1 : Einleitung 3
DYCKHOFF et al. (1997). Nachfolgend werden drei Beispiele für abstrakte C&P beschrieben.
Beim klassischen Rucksackproblem (Knapsackproblem) tritt als einzige Dimension das
Gewicht an die Stelle der räumlichen Dimensionen: aus einer Menge an Gegenständen ist
eine Auswahl zu treffen, so dass die Summe der Gewichte der ausgewählten Objekte ein
bestimmtes Maximalgewicht nicht überschreitet, während gleichzeitig der Gesamtnutzen der
Auswahl maximiert wird. Beim Bandabgleichproblem (SALBP1) sind Arbeitsvorgänge
bestimmter Dauer und mit gewissen Abhängigkeitsbeziehungen derart an Stationen mit
einheitlicher Zykluszeit zu verteilen, dass die Summe der Vorgangsdauern an keiner Station
die Zykluszeit überschreitet und zugleich die Anzahl der Stationen möglichst gering ist. Die
räumliche Dimension wird demnach beim SALBP1 durch die Dimension Zeit ersetzt. Ein
weiteres Beispiel eines nicht räumlichen C&P-Problems ist das Capital Budgeting-Problem,
bei dem einige Projekte ausgewählt werden sollen, welche unter Berücksichtigung eines
Maximalbudgets den erzielten Gewinn maximieren. Die räumliche Dimension wird hier
durch eine pekuniäre Dimension ersetzt.
Neben reinen C&P-Problemen werden in der Literatur vermehrt Probleme bearbeitet, bei
denen ein C&P-Problem als Teilproblem auftritt, beispielsweise neben einem
Tourenplanungsproblem.
In der vorliegenden Arbeit werden ausschließlich reine C&P-Probleme mit räumlicher
Dimension behandelt. Diese werden auch als C&P-Probleme „im engeren Sinne“ bezeichnet.
1.2.2 Klassifizierung der C&P-Probleme
WÄSCHER et al. (2004 bzw. 2007) stellen eine Typologie für C&P-Probleme vor, welche auf
der Systematik von DYCKHOFF (1990) aufbaut und letztere in einigen Aspekten verbessert.
Hauptziel von WÄSCHER et al. (2004, S.6) ist die Identifizierung von Standardproblemen
zwecks eindeutiger Zuordnung von Forschungsarbeiten zu diesen Problemtypen. Dieses Ziel
wird in drei Schritten erreicht. Dabei werden ebenfalls nur reine C&P-Probleme betrachtet;
andere Probleme des Operations Research, bei denen C&P als Teilproblem vorkommt,
bleiben unberücksichtigt.
Im ersten Schritt wird nach zwei Kriterien unterschieden. Es geht um den Typ der
Zielfunktion und die Art des Sortiments der kleinen Objekte.
4 Kapitel 1 : Einleitung
• Bei der Zielfunktion wird zwischen zwei Basistypen „Outputmaximierung“ und
„Inputminimierung“ unterschieden. Ersterer liegt immer dann vor, falls nicht
ausreichend viele große Objekte vorhanden sind, um alle kleinen Objekte zu verstauen.
Im Fall der Inputminimierung können dagegen alle kleinen Objekte platziert werden
und es geht allein um die Verwendung möglichst weniger großer Objekte bzw. die
Minimierung der Kosten der großen Objekte. Ein Spezialfall ist außerdem durch das
ODP (Open Dimension-Problem) gegeben, bei dem eine oder mehrere Ausdehnungen
des (einzigen) großen Objekts variabel ausgelegt sind. Hier liegt ein Spezialfall der
Inputminimierung vor, wobei ein variables Maß des großen Objekts zu minimieren ist.
• Für das Sortiment an kleinen Objekten wird unterschieden zwischen „homogen“ (alle
Objekte sind identisch), „schwach heterogen“ (es gibt relativ wenige Objekttypen im
Vergleich zu der Gesamtobjektzahl) und „stark heterogen“ (es gibt relativ viele
Objekttypen und nur wenige Objekte pro Typ). Dabei ist ein Objekttyp durch seine
Gestalt und Größe (Maße) gegeben.
Im zweiten Schritt werden nun diese 2 · 3 = 6 Basistypen in 14 so genannte intermediäre
Typen (Intermediate Problem Types, IPT) weiter aufgefächert. Kriterien hierbei sind Anzahl
und Heterogenitätsgrad der großen Objekte. Die Tabellen 1 und 2 stellen die je sieben IPT
für Inputminimierung und Outputmaximierung mit ihrer Bezeichnung und Abkürzung nach
WÄSCHER et al. (2004) vor.
Tab. 1. Intermediäre Problemtypen der Outputmaximierung.
Merkmale der großen Objekte Sortiment der kleinen Ob jekte
Maße Sortiment identisch schwach heterogen stark heteroge n
ein großes Objekt IIPP
Identical Item Placement Problem
SLOPP Single Large Object Placement Problem
SKP Single
Knapsack-Problem
mehrere identische Objekte
MILOPP Multiple Identical
Large Objects Placement Problem
MIKP Multiple Identical
Knapsack Problem
vorgegeben (fix)
mehrere unterschiedliche
Objekte
MHLOPP Multiple Heterogeneous
Large Objects Placement Problem
MHKP Multiple Heterogeneous
Knapsack Problem
Kapitel 1 : Einleitung 5
Tab. 2. Intermediäre Problemtypen der Inputminimierung.
Sortiment der großen Objekte Sortiment der kleinen Ob jekte
Maße Sortiment identisch schwach heterogen stark het erogen
identisch SSSCSP
Single Stock Size Cutting Stock Problem
SBSBPP Single Bin Size
Bin Packing Problem
schwach heterogen
MSSCSP
Multiple Stock Size Cutting Stock Problem
MBSBPP Multiple Bin Size
Bin Packing Problem
vorgegeben (fix)
stark heterogen
RCSP Residual
Cutting Stock Problem
RBPP Residual
Bin Packing Problem
ein oder mehrere
variable Maße ein Objekt
ODP Open Dimension Problem
Im dritten Schritt der Klassifizierung schließlich werden dem intermediären Problemtyp die
Dimensionalität sowie die Gestalt der Objekte (rechteckig, kreisförmig, zylindrisch,
irregulär etc.) hinzugefügt. Diese zusätzlichen Ausprägungen führen zur Bestimmung von so
genannten verfeinerten Problemtypen (RPT = Refined Problem Types). Hierbei werden der
Bezeichnung des IPT zusätzliche Informationen vorangestellt. Das zweidimensionale
Bin Packing-Problem mit unterschiedlichen Containern und rechteckigem Kistenvorrat wird
beispielsweise als 2R-MBSBPP bezeichnet.
Die Klassifikation nach WÄSCHER et al. (2007) bietet den Vorteil, dass ein beliebiger
Lösungsansatz für das C&P einem bestimmten RPT eindeutig zugeordnet werden kann. Sie
räumt gewisse Schwächen der früheren Klassifikation nach DYCKHOFF überzeugend aus.
Andererseits sind die Bezeichnungen recht kompliziert und haben sich in der C&P-Literatur
bislang noch nicht in vollem Umfang durchgesetzt. Für die im folgenden Abschnitt als
Gegenstand dieser Arbeit abgegrenzten drei C&P-Problemtypen werden daher hier
vorwiegend gebräuchlichere Bezeichnungen und entsprechende Kürzel verwendet.
1.2.3 Eingrenzung auf drei Standardprobleme
Im Rahmen der vorliegenden Arbeit werden ausschließlich C&P-Probleme mit rechteckigen
(2D-Fall) bzw. quaderförmigen (3D-Fall) kleinen und großen Objekten behandelt. Den
Gegenstand der Arbeit bilden die nachfolgend definierten Problemtypen.
6 Kapitel 1 : Einleitung
Containerbeladeproblem (CLP)
Das Problem der Outputmaximierung (bei Wäscher je nach Objektsortiment als „Placement
Problem“ oder „Knapsackproblem“ bezeichnet, siehe Tab. 1) mit quaderförmigen kleinen
Objekten und einem einzelnen zu beladenden Objekt soll im Folgenden einheitlich, d.h. für
den 2D-Fall wie für den 3D-Fall, als „Containerbeladeproblem“ (Container
Loading-Problem, CLP) bezeichnet werden. Die Items werden als „Packstücke“ oder
„Kisten“ bezeichnet, das große Objekt als „Container“. Das Problem lässt sich wie folgt
formulieren:
Gegeben ist eine Menge quaderförmiger Packstücke (Kisten) sowie ein einzelner Container
mit bekannten Abmessungen. Gesucht wird eine zulässige Anordnung einer Teilmenge der
Kisten in dem Container, welche das verstaute Volumen maximiert und zusätzliche
Restriktionen berücksichtigt.
Eine Anordnung gilt als zulässig, wenn alle platzierten Kisten vollständig im jeweiligen
Container liegen und es keine Überlappungen der Kisten gibt. Ferner wird wie üblich
verlangt, dass jedes kleine Objekt orthogonal platziert wird. Im 3D-Fall bedeutet das, dass
jede Seitenfläche einer Kiste parallel zu einer Seitenfläche des Containers liegen muss; im
2D-Fall gilt eine analoge Anforderung. Die vorstehend genannten Bedingungen werden auch
als allgemeine Zulässigkeitsbedingungen bezeichnet.
Da ausschließlich quaderförmige (rechteckige) Objekte Verwendung finden, ist die genaue
Bezeichnung des 3D-CLP nach Wäscher: 3R-SLOPP bzw. 3R-SKP. Es sei erwähnt, dass ein
Algorithmus für das 3D-Problem auch das 2D-Problem löst. Es ist hierzu ausreichend, für
alle 2D-Container und 2D-Objekte eine fiktive einheitliche kleinstmögliche Höhe „1“
einzuführen.
Trotz der Bezeichnung als „Beladeproblem“ ist die obige Definition analog auf die
Zuschnittproblematik anwendbar. Der erwünschten Maximierung des verstauten Volumens
beim Beladeproblem entspricht die Minimierung des Verschnitts bei der Cuttingvariante.
Strip Packing-Problem (SPP)
In der Literatur wird das ODP (Open Dimension-Problem, siehe vorige Tab. 2) mit
quaderförmigen Objekten meist als Strip Packing-Problem bezeichnet. Das Problem sei wie
folgt definiert:
Kapitel 1 : Einleitung 7
Gegeben ist eine Menge von quaderförmigen Packstücken (Kisten) sowie ein in
Längsrichtung offener Container. Gesucht wird eine zulässige Anordnung aller Kisten in dem
Container, die die benötigte Containerlänge minimiert und gegebenenfalls zusätzliche
Restriktionen berücksichtigt.
Es gelten dieselben allgemeinen Zulässigkeitsbedingungen wie beim CLP.
Bin Packing-Problem (BPP)
Die Inputminimierungsprobleme SSSCSP und SBSBPP aus Tab. 2 mit quaderförmigen
Objekten werden hier einheitlich (in der 2D- und 3D-Variante) als Bin Packing-Problem
(BPP) bezeichnet, welches wie folgt definiert wird:
Gegeben ist eine Menge von quaderförmigen Packstücken (Kisten) sowie eine unbegrenzte
Zahl identischer Container (Bins) mit bekannten Abmessungen. Gesucht wird eine zulässige
Anordnung aller Kisten in einer minimalen Anzahl an Bins.
Es gelten wiederum dieselben allgemeinen Zulässigkeitsbedingungen wie beim CLP. Alle
drei vorgestellten Probleme wurden hier als Packprobleme formuliert. Auf die Dualität
zwischen der Lade- und Zuschnittproblematik wird in Abschnitt 1.3 hingewiesen. Alle drei
vorgestellten Standardprobleme sind C&P-Probleme im engeren (räumlichen) Sinn.
Weiterhin wird bei der Problemdefinition anders als bei WÄSCHER et al. (2007) nicht
unterschieden zwischen schwach und stark heterogenen kleinen Objekten. Alle im Rahmen
dieser Dissertation entwickelten Algorithmen sollen allerdings sowohl für Probleme mit
schwach als auch mit stark heterogener Kistenmenge getestet werden.
1.2.4 Restriktionen
In der Praxis treten bei C&P-Problemen zusätzliche Restriktionen auf, die spezielle
Beschränkungen für die Platzierung der Items im Container (oder das Zuschneiden von
Items) vorgeben. Eine Übersicht praxisrelevanter Nebenbedingungen kann der Arbeit von
BISCHOFF und RATCLIFF (1995) entnommen werden. Weitere weniger übliche und besonders
problemspezifische Restriktionen sind denkbar, wie beispielsweise die Beschränkung der
Beladehöhe der Packstücke in einem Lieferwagen bei einem Home Delivery Service
Problem von LIU et al. (2010). Hier wird gefordert, dass die jeweils nächste zu entladende
8 Kapitel 1 : Einleitung
Kiste nicht zu hoch und nicht zu tief im Lieferwagen verstaut wird, so dass die Größe und
Armlänge des Fahrers ausreichen, um diese Kiste zu erreichen.
Tab. 3 enthält eine Auswahl häufig vorkommender C&P-Restriktionen sowie zugehöriger
Varianten. Die Auswahl entstammt BORTFELDT und GEHRING (1999b). Ein Vergleich mit
dem diesbezüglich maßgeblichen Beitrag von BISCHOFF und RATCLIFF (1995) zeigt, dass die
Auswahl einen großen Teil praxisrelevanter Restriktionen abdeckt. Die Nebenbedingungen
werden anschließend näher beschrieben, wobei der 3D-Fall zugrunde gelegt wird.
Tab. 3. Auswahl wichtiger C&P-Restriktionen.
ID Restriktion Varianten
(C1) Orientierungsrestriktion (C1a) Höhenrestriktion (C1b) Orientierungsvariantenrestriktion
(C2) Überstapelungsrestriktion
(C2a) unbedingte Überstapelungsrestriktion (C2b) Überstapelungsanzahlrestriktion (C2c) Überstapelungsgewichtsrestriktion (C2d) Überstapelungsdruckrestriktion
(C3) Stabilitätsrestriktion (C3a) Stabilitätsflächenrestriktion (C3b) Stabilitätsanzahlrestriktion
(C4) Positionsrestriktion (C4a) harte Positionsrestriktion (C4b) weiche Positionsrestriktion
(C5) Prioritätsrestriktion (C5a) harte Prioritätsrestriktion (Muss-Restriktion) (C5b) weiche Prioritätsrestriktion (Soll-Restriktion) (C5c) Prioritäts-Mischrestriktion
(C6) Gewichtsrestriktion
(C7) Gleichgewichtsrestriktion (C7a) harte Gleichgewichtsrestriktion (C7b) weiche Gleichgewichtsrestriktion
(C8) Gruppenrestriktion (C8a) Nachbarschaftsrestriktion (C8b) Entladefolgerestriktion (C8c) Containertrennungsrestriktion
(C9) Guillotineschnittrestriktion
(C1) Orientierungsrestriktion
Orientierungsrestriktionen beschränken die möglichen räumlichen Orientierungen bzw.
Orientierungsvarianten von Kisten in einem Container. Orientierungsrestriktionen dienen der
Vermeidung von Beschädigungen von Gütern und Verpackungen, sowie der Stabilität der
Beladung. Sie können in zwei Varianten gefordert werden:
(C1a) Höhenrestriktion: Jede Seitenlänge einer Kiste kann prinzipiell als Höhenmaß
verwendet werden, um diese Kiste entsprechend den allgemeinen Zulässigkeitsbedingungen
in dem gegebenen Container zu verstauen. Bei einer Höhenrestriktion werden für gewisse
Kapitel 1 : Einleitung 9
Kisten jeweils kistentypabhängig ein oder zwei Seitenmaße als Höhenmaß ausgeschlossen.
Höhenrestriktionen realisieren daher Kippverbote.
(C1b) Orientierungsvariantenrestriktion: Für jede Kiste kommen zunächst alle (maximal 6)
Orientierungsvarianten in Frage, mit denen die Kiste entsprechend den allgemeinen
Zulässigkeitsbedingungen in einem gegebenen Container platziert werden kann. Bei einer
Orientierungsvariantenrestriktion werden jedoch für gewisse Kisten jeweils
kistentypabhängig bis zu 5 Orientierungsvarianten ausgeschlossen. Dabei kann im
Unterschied zur Höhenrestriktion der Fall eintreten, dass bei zwei Orientierungsvarianten zu
demselben Höhenmaß die eine verboten und die andere zugelassen wird. Folgende Tab. 4
definiert die verwendeten Codierungen für alle 6 Orientierungsvarianten. Dabei bezeichnen
d_max, d_med und d_min das maximale, mittlere und kleinste Kistenmaß. Vorausgesetzt
wird die folgende Einbettung des betrachteten Containers in ein 3D-Koordinatensystem. Die
Containerlänge liegt parallel zur x-Achse, die Containerbreite verläuft parallel zur y-Achse,
die Containerhöhe parallel zur z-Achse.
Tab. 4. Codierung der Orientierungsvarianten (OV).
OV-Index
Maß in x-Richtung (parallel zur
Containerlänge)
Maß in y-Richtung (parallel zur
Containerbreite)
Maß in z-Richtung (parallel zur
Containerhöhe)
0 d_max d_min d_med
1 d_max d_med d_min
2 d_med d_min d_max
3 d_med d_max d_min
4 d_min d_med d_max
5 d_min d_max d_med
(C2) Überstapelungsrestriktion
Überstapelungsrestriktionen beschränken die Überstapelung von Kisten. Sie dienen ebenfalls
meist der Vermeidung von Beschädigungen an Gütern oder Verpackungen und können in
drei Varianten gefordert werden:
(C2a) Unbedingte Überstapelungsrestriktion: Für gewisse Kisten wird ausgeschlossen, dass
auf ihren Deckflächen weitere Kisten (ganz oder teilweise) platziert werden, so dass eine
Lastübertragung auf die Deckflächen ausgeschlossen wird.
(C2b) Überstapelungsanzahlrestriktion: Für gewisse Kisten wird die Gesamtanzahl der
darüberliegenden und lastübertragenden Kisten begrenzt.
10 Kapitel 1 : Einleitung
(C2c) Überstapelungsgewichtsrestriktion: Für gewisse Kisten wird das auf den Kisten
ruhende Gesamtgewicht darüberliegender und lastübertragender Kisten begrenzt.
(C2d) Überstapelungsdruckrestriktion: Für gewisse Kisten wird der auf einen beliebigen Teil
der Deckfläche maximal ausgeübte Druck durch darüberliegende und lastübertragende
Kisten begrenzt.
(C3) Stabilitätsrestriktion
Stabilitätsrestriktionen sollen die Stabilität von Kistenanordnungen gewährleisten. Dabei
werden zwei verschiedene Stabilitätsaspekte berücksichtigt: einerseits die Kippsicherheit,
d.h. die Sicherheit verstauter Güter gegen ein vertikales Abkippen, andererseits die
Rutschfestigkeit verstauter Kisten, welche die Sicherheit von Kistenplatzierungen gegen
horizontale Bewegungen angibt.
(C3a) Stabilitätsflächenrestriktion: Für alle verstauten Kisten wird gefordert, dass die durch
den Containerboden bzw. weitere Kisten unterstützte Grundfläche mindestens einen
vorgegebenen minimalen Prozentsatz min_support der gesamten Grundfläche erreicht.
(C3b) Stabilitätsanzahlrestriktion: Für die nicht auf dem Containerboden verstauten Kisten
wird gefordert, dass die mittlere Anzahl der unterstützenden Kisten einen vorgegebenen
minimalen Wert erreicht.
(C4) Positionsrestriktion
Positionsrestriktionen beschränken die Stellpositionen für die zu verpackenden Kisten.
Danach kann z.B. für temperaturempfindliche Güter gefordert werden, dass diese in der
Mitte eines Containers platziert werden, wo die Temperaturschwankungen i. a. geringer sind
als an den Containerfrontwänden. Ebenso kann für besonders schwere Güter gefordert
werden, dass diese auf dem Containerboden platziert werden. Positionsrestriktionen können
in zwei Varianten gestellt werden:
(C4a) Harte Positionsrestriktion: Die Kisten einer gewissen Teilmenge des zu verstauenden
Kistenvorrats sind zwingend in gewissen Staubereichen eines Containers zu platzieren,
beispielsweise auf dem Containerboden, der Containermitte, nahe der Containertür oder der
Containerhinterwand.
Kapitel 1 : Einleitung 11
(C4b) Weiche Positionsrestriktion: Die Berücksichtigung der Restriktion wird durch die Rate
der Fehlpositionierung gemessen. Diese ist definiert durch den Prozentsatz der nicht gemäß
der Positionsrestriktion verstauten Kisten bezogen auf die Anzahl aller verstauten Kisten mit
Positionsbeschränkung.
(C5) Prioritätsrestriktion
Eine gewisse Teilmenge des zu verstauenden Kistenvorrats ist bei der Stauplanung mit
Priorität zu berücksichtigen. Dabei können drei Prioritätsstufen von Kisten auftreten, je
nachdem, ob Kisten zwingend (harte „Muss“-Restriktion) oder vorrangig (weiche
„Soll“-Restriktion) verladen werden.
(C5a) (Harte) Prioritäts-Mussrestriktion: Neben Kisten ohne Priorität treten nur Muss-
Kisten auf. Alle Kisten mit Priorität müssen in einer erzeugten Problemlösung komplett
verstaut werden; andernfalls gilt die Problemlösung nicht als zulässig.
(C5b) (Weiche) Prioritäts-Sollrestriktion: Neben Kisten ohne Priorität treten nur Soll-Kisten
auf. Kisten mit Priorität sollten in einer erzeugten Problemlösung verstaut werden; doch wird
eine Problemlösung auch akzeptiert, wenn nicht alle Kisten mit Priorität verstaut wurden. Die
Berücksichtigung der Restriktion wird durch die Rate der Prioritätsverletzung gemessen.
Diese ist definiert durch den Prozentsatz der mit Priorität zu verstauenden, aber nicht
verstauten Kisten bezogen auf die Anzahl aller mit Priorität zu verstauenden Kisten.
(C5c) Prioritäts-Mischrestriktion: Neben Kisten ohne Priorität treten sowohl Muss-Kisten
als auch Soll-Kisten auf. Für die Muss-Kisten bzw. Soll-Kisten gelten die unter (C5a)
bzw. (C5b) genannten Bedingungen, so dass die Restriktion bzgl. der Muss-Kisten hart und
bezüglich der Soll-Kisten weich ist. Die Berücksichtigung der Restriktion wird analog
zu (C5b) durch die Rate der Prioritätsverletzung gemessen. Bei deren Berechnung werden
jeweils Muss- und Soll-Kisten in die Anzahlermittlung einbezogen.
(C6) Gewichtsrestriktion
Gewichtsrestriktionen für die verstaute Ladung ergeben sich z.B. aus der technischen
Konstruktion von Containern. Das Gewicht aller in einem Container verstauten Kisten darf,
abhängig vom Containertyp, eine gewisse Obergrenze (maximales Nettogewicht, maximale
Zuladung) nicht überschreiten. Die Gewichtsrestriktion greift nur dann, falls die maximale
Zuladung geringer ist als die Summe der Gewichte aller zu verstauenden Kisten.
12 Kapitel 1 : Einleitung
(C7) Gleichgewichtsrestriktion
Ausbalancierte Ladungen in Containern dienen der Verminderung von Risiken beim
Containertransport, etwa beim Verladen mit Kränen oder beim Straßentransport.
Gleichgewichtsrestriktionen verlangen, dass der Schwerpunkt (Massenmittelpunkt) der
Ladung eines Containers bezüglich beider horizontaler Richtungen nicht allzu stark von der
Containermitte abweicht. Gleichgewichtsrestriktionen können in zwei Varianten gestellt
werden:
Seien lC und bC die Länge bzw. die Breite eines Containers. Seien ferner x_mmp sowie
y_mmp die x- bzw. y- Koordinate des Massenmittelpunkts (MMP) der Ladung. Dann wird
die prozentuale (horizontale) Schwerpunktabweichung qdmmp wie folgt berechnet:
qdmmp := max ( |lC / 2 - x_mmp| / lC, |bC/2 - y_mmp| / bC) * 100.
Die harte Gleichgewichtsrestriktion (C7a) fordert nun, dass die prozentuale (horizontale)
Schwerpunktabweichung qdmmp einen vorgegebenen Maximalwert, die maximale
prozentuale horizontale Abweichung des MMP von der Containermitte max_qdmmp nicht
überschreitet. Besteht eine Problemlösung aus mehreren Packmustern, so ist eine
entsprechende Vorgabe für jedes Packmuster bzw. jeden verwendeten Containertyp (ggf. mit
spezifischer Obergrenze max_qdmmp) einzuhalten. Anders als bei der harten
Gleichgewichtsrestriktion wird bei der weichen Bedingung (C7b) eine Überschreitung der
vorgegebenen maximalen Schwerpunktabweichung max_qdmmp toleriert. Die
Berücksichtigung der Gleichgewichtsrestriktion wird durch die maximale
Schwerpunktabweichung max_qdmmp_real über alle benutzten Container der Problemlösung
gemessen.
(C8) Gruppenrestriktion
Bei einer Gruppenrestriktion werden die zu verpackenden Kisten in zwei oder mehr disjunkte
Gruppen gegliedert. Eine Gruppenrestriktion erlaubt die gruppenweise räumliche Aufteilung
der zu verpackenden Kisten innerhalb der verwendeten Container. Im Wesentlichen werden
drei Varianten unterschieden:
(C8a) Nachbarschaftsrestriktion: Bei der Nachbarschaftsrestriktion wird die räumlich
benachbarte Verstauung der Kisten einer Kistengruppe gefordert.
Kapitel 1 : Einleitung 13
(C8b) Entladereihenfolgerestriktion: Es wird gefordert, dass die verschiedenen
Kistengruppen in einer gewissen Reihenfolge innerhalb der verwendeten Container platziert
werden. Hiermit wird im Interesse effizienter Entladevorgänge gewährleistet, dass früher zu
entladende Kisten weiter vorne (nahe der Containertür) bzw. später zu entladende Kisten
weiter hinten in einem Container platziert werden.
(C8c) Containertrennungsrestriktion: In einem Container dürfen nur Kisten einer
Kistengruppe verstaut werden. Dies kann z.B. im Interesse der Aufteilung von Gütern nach
Bestimmungsorten oder aus Sicherheitsgründen (z.B. Explosionsgefahr bei gefährlichen
Stoffen) erforderlich sein.
(C9) Guillotineschnittrestriktion
Eine besondere Rolle nimmt die Guillotineschnittrestriktion ein. Während die
Restriktionen (C2) - (C8) gemeinhin ausschließlich bei Packproblemen auftauchen, gilt die
Guillotineschnittbedingung üblicherweise nur bei Zuschnittproblemen. Ein Guillotineschnitt
teilt einen Quader mittels eines durchgehenden Schnitts in zwei neue Quader, wobei die
Schnittrichtung parallel zur Ebene einer der Quaderseiten verläuft. Demgegenüber stehen
Nichtguillotineschnitte. In Abb. 1 sind Beispiele von Guillotineschnitten und
Nichtguillotineschnitten gegenübergestellt. Gelingt es in Abb. 1a, den Block durch eine
sukzessive Anwendung von Guillotineschnitten in die eingezeichneten Quader zu zerlegen,
ist dies in Abb. 1b nicht möglich. Eine solche Anordnung wird auch als „nichtguillotinierbar“
bezeichnet.
GuillotineSchnitt 1
Guillotine-Schnitt 2 GuillotineSchnitt 3
GuillotineSchnitt 4
a) Guillotinierbare Anordnung b) Nichtguillotinierbare Anordnung
GuillotineSchnitt 1
Guillotine-Schnitt 2 GuillotineSchnitt 3
GuillotineSchnitt 4
a) Guillotinierbare Anordnung b) Nichtguillotinierbare Anordnung
Abb. 1. Guillotinierbare und nichtguillotinierbare Anordnung.
14 Kapitel 1 : Einleitung
Die Guillotineschnittbedingung fordert, dass alle Items einer Anordnung durch eine Folge
von Guillotineschnitten reproduzierbar sind (vgl. auch SCHEITHAUER und TERNO, 1996).
LODI et al. (1999a) führen vier Subtypen für 2D-C&P-Probleme ein, welche sich aus den
möglichen Varianten bezüglich der Berücksichtigung der Restriktionen (C1) und (C9)
ergeben und in folgender Tab. 5 dargestellt sind.
Tab. 5. Vier Subtypen für C&P-Probleme nach LODI et al. (1999a).
Bezeichnung Rotation der Items Guillotinierbarkeit
RF R = frei drehbar F = frei
RG R = frei drehbar G = zwingend guillotinierbar
OF O = Orientierung fixiert F = frei
OG O = Orientierung fixiert G = zwingend guillotinierbar
Offensichtlich ist eine zulässige Lösung für den Typ OG auch zulässig für die anderen
Subtypen. Eine Lösung für Subtyp OF oder RG ist ebenso zulässig für den Typ RF.
1.3 Beispiele und Relevanz von C&P-Problemen im engeren Sinn
Probleme des C&P im engeren Sinne (vgl. Abschnitt 1.2.1) treten in der betrieblichen Praxis
als Zuschnitt- (Cutting) und Packprobleme (Packing) auf.
Bei Zuschnittproblemen sind materielle Objekte in kleinere Stücke zu zerlegen. Obwohl die
zugehörigen Objekte prinzipiell dreidimensional sind, lassen sie sich in vielen Fällen durch
Angabe einer oder zweier Abmessungen eindeutig beschreiben. In solchen Fällen spricht
man von ein- bzw. zweidimensionalen C&P-Problemen. Als dreidimensionale
Zuschnittobjekte sind Stahlblöcke oder Holz denkbar. In der zweidimensionalen Variante
treten Stahl-, Glas- oder Steinplatten auf. Man denke beispielsweise an das Zuschneiden von
Arbeitsplatten aus Granit im Küchenbereich oder das Ausstanzen von Metallplatten.
Eindimensionale Zuschnittprobleme entstehen beim Zersägen von Holzstangen oder
Stahldrähten.
Bei Packproblemen sind materielle Gegenstände einzelnen Behältern zuzuordnen. Hierzu
zählen Standardcontainer, Ladeflächen von Fahrzeugen oder Flugzeugen. Die Behälter
müssen nicht zwangsläufig begrenzende Wände an den Seiten haben, man denke etwa an
Paletten.
Kapitel 1 : Einleitung 15
Zuschnitt- und Packprobleme sind duale Problemstellungen, d.h. jedes Zuschnittproblem
kann als Packproblem formuliert werden und umgekehrt. Dies wird klar, wenn man sich
verdeutlicht, dass gewisse Objekte nur aus einem Block herausgeschnitten werden können,
falls sich diese Objekte vollständig und überlappungsfrei in einem leeren Raum gleicher
Größe anordnen lassen. Die Dualität der beiden Fragestellungen bildet die Grundlage für ihre
einheitliche Behandlung im Bereich C&P.
Bei der Zuschnittproblematik treten oft spezielle Nebenbedingungen auf, die bei
Packproblemen nicht anzutreffen sind. Diese hängen beispielsweise mit den Eigenschaften
der bearbeiteten Materialien zusammen, etwa beim Sägen von Holz, wo die Schnittrichtung
nicht unabhängig von der Holzmaserung gewählt werden kann. Die eingesetzte Technik ist
ein weiterer beschränkender Faktor: so sind bei vielen Zuschnittproblemen
Nichtguillotineschnitte nicht erlaubt, da nur durchgehende Schnitte realisiert werden können.
Bei Packproblemen, etwa im Transport, treten andere Restriktionen auf, so etwa
Orientierungsgebote (Kippverbote) für besonders empfindliche Ladungsstücke sowie
Stabilitäts- und Gewichtsrestriktionen. Für eine ausführliche Beschreibung der üblichen
Nebenbedingungen sei auf das vorherige Kapitel verwiesen.
Strip Packing-Probleme treten ebenfalls als Zuschnitt- oder Packprobleme auf. Bei vielen
industriellen Herstellungsprozessen entstehen in einer Richtung offene Streifen. Als
2D-Problem sei das Strip Packing-Problem erwähnt, welches beim Ausstanzen von
Metallformen im Walzwerk oder bei der Papierherstellung aus quasi endlosen Papierrollen
anfällt. Im Transport kann das Lösen eines 3D-Strip Packing-Problems dazu beitragen, die
Art der eingesetzten Container zu optimieren oder eine möglichst effiziente Transportflotte
zusammenzustellen.
Das im Rahmen dieser Arbeit behandelte 3D-Bin Packing-Problem kommt in der
betrieblichen Praxis vor, wenn quaderförmige Packstücke in Standardcontainern, LKW oder
Bahnwaggons verladen werden sollen und das Volumen der zu verstauenden Packstücke die
Kapazität eines Containers um ein Vielfaches übersteigt. Mehrere praktische Beispiele für
2D-BPP werden in LODI et al (1999a) erwähnt. In der Cuttingvariante des BPP sind meist die
Orientierungs- und Guillotineschnittrestriktion zu beachten.
Nachfolgend sei auf die besondere ökonomische Relevanz der C&P-Problematik
eingegangen. C&P-Probleme treten regelmäßig in der betriebswirtschaftlichen Praxis der
16 Kapitel 1 : Einleitung
Produktion und Distribution auf. Bedenkt man die Größenordnung der Fertigungs-, Lager-
und Transportprozesse auf volkswirtschaftlicher Ebene, so wird die Tragweite der effizienten
Nutzung der Kapazitäten klar. Selbst geringe Material- und Raumeinsparungen können im
volkswirtschaftlichen Maßstab zu enormen Effekten führen. Allerdings erscheint die
effiziente Nutzung der Kapazitäten heute zunächst eher zweitrangig angesichts der aktuellen
globalen Wirtschaftskrise, die sich Ende 2008 nach dem Zusammenbruch der
Investmentbank Lehman Brothers und der daraus folgenden Finanzkrise entwickelte. In der
Tat sieht man sich in fast allen Bereichen Überkapazitäten gegenüber, die seither sukzessive
abgebaut wurden. Containerschiffe, Frachtflugzeuge und LKW bleiben vielfach ungenutzt
oder fahren aufgrund der schlechten Auftragslage mit geringer Auslastung.
Produktionsanlagen sind nicht ausgelastet oder stehen vollständig still. Dabei ist gerade in
solchen Krisenzeiten absehbar, dass bei einem Aufschwung der Konjunktur wegen dem
Zurückstellen der Investitionen und Abbau der Kapazitäten die dann benötigten
Transportmittel fehlen dürften, um die Nachfrage zu befriedigen. Der optimalen Nutzung der
verbleibenden Transport-, aber auch der Produktionskapazitäten, kommt in den Phasen des
wirtschaftlichen Aufschwungs demnach eine umso wichtigere Rolle zu.
Über die angeführten ökonomischen Argumente hinweg gibt es wichtige ökologische
Gesichtspunkte, die für die Relevanz des C&P sprechen. Die Abhängigkeit der
Transportmittel von fossilen Brennstoffen und deren endliche Verfügbarkeit gebieten einen
schonenden Umgang mit Ressourcen. Die jüngste Umweltkatastrophe im Golf von Mexiko
und die möglicherweise zukünftig strengeren Regelungen für die Rohölförderung auf hoher
See könnten das Problem womöglich weiter verschärfen und den Rohstoff zusätzlich
verteuern. Der Ausstoß von CO2 als Hauptfaktor der Klimaerwärmung kann ebenfalls als
Argument ins Feld geführt werden. Bei Zuschnittproblemen steht ebenfalls der sparsame
Umgang mit Rohstoffen durch eine Vermeidung von Verschnitt im Vordergrund.
Abschließend sei bemerkt, dass komplexe C&P-Algorithmen heute überall Anwendung
finden könnten dank der großen Verbreitung von Rechnern mit ausreichendem
Leistungspotential und Mehrkernprozessoren. War früher die Beschaffung der
entsprechenden Hardware besonders für mittelständische Unternehmen ein nicht
unbedeutender Kostenfaktor, so ist heute ausreichende Rechenleistung wesentlich günstiger
zu haben und bereits bei handelsüblichen Standard-PCs gegeben.
Kapitel 1 : Einleitung 17
1.4 Allgemeine Lösungsansätze zum C&P
1.4.1 Exakte enumerative Verfahren
Prinzipiell ist es möglich, ein C&P-Problem optimal mittels Totalenumeration zu lösen. Die
kombinatorischen Varianten bei endlichen Objektmengen sind in der Tat endlich (unter der
Voraussetzung der Bottom-Left-Bedingung, siehe unten). Allerdings handelt es sich bei
C&P-Problemen um typische kombinatorische Optimierungsprobleme, deren Lösungsvielfalt
(Umfang des Lösungsraums) mit zunehmender Objektzahl exponentiell steigt. Ist ein
Problem mit wenigen Objekten noch im Sekundenbereich per Totalenumeration zu lösen,
kann es bei nur etwas mehr Objekten bereits Jahre dauern, alle Möglichkeiten
„durchzurechnen“. Daher kommen enumerative Verfahren nur bis zu einer begrenzten
Problemgröße in Frage. Anders ausgedrückt, existiert für jedes exakte Verfahren eine
Problemgröße, ab der die Anwendung des Verfahrens nicht mehr praxisgerecht scheint.
Zum Umfang des Lösungsraums bei C&P-Problemen sei ergänzend Folgendes bemerkt.
Zunächst ist der Suchraum unendlich groß, lässt man das beliebige Verschieben von Items in
Containern zu. Erst mit Einführung der so genannten Bottom-Left-Bedingung
(BL-Bedingung) wird der Lösungsraum endlich. Die BL-Forderung sei hier für den 2D-Fall
und einen rechteckigen Container mit den Seiten „Höhe“ und „Breite“ skizziert. Sie fordert,
dass jedes zusätzliche Rechteck soweit unten und (mit zweiter Priorität) soweit links wie
möglich platziert wird. Bei dem 2D-SPP ergeben sich, da jedes Rechteck sich in zwei
Orientierungsvarianten platzieren lässt, bei n unterschiedlichen Rechtecken bereits 2n · n!
Möglichkeiten, die Rechtecke zu verstauen. Dies erklärt die kombinatorische Explosion bei
wachsender Anzahl der Packstücke.
Erste exakte Verfahren für C&P-Probleme stammen aus den 1940er Jahren. Aus den 1960er
Jahren stammen Lösungsverfahren der dynamischen Programmierung für ein- und
mehrdimensionale Knapsackprobleme.
1.4.2 Heuristiken
Anders als exakte Verfahren berechnen Heuristiken nicht sämtliche Lösungen, sondern
reduzieren die Anzahl der in Betracht zu ziehenden Möglichkeiten, indem aussichtslose oder
weniger aussichtsreich erscheinende Varianten von vornherein ausgeschlossen werden. Oft
sind Heuristiken auf einen ganz speziellen Anwendungsbereich oder eine besondere
18 Kapitel 1 : Einleitung
Fragestellung zugeschnitten. Herkömmliche heuristische Ansätze sind z.B. Greedy-
Heuristiken (aus dem Bereich der Konstruktionsheuristiken) sowie Hillclimbing-Verfahren
(als Verbesserungsverfahren).
Historisch betrachtet kamen Heuristiken zur Zeit des Zweiten Weltkriegs in Mode, um die
anfallenden umfangreichen logistischen Probleme möglichst gut zu lösen. Der heute als
„Operations Research“ bekannte Begriff stammt aus dieser Zeit, wo Heuristiken vielfach zur
Lösung militärischer Probleme herangezogen wurden. Beispiele für militärische
Problemstellungen dieser Zeit sind etwa die Abdeckung der Radarüberwachung, die Suche
nach der optimalen Größe des Begleitschutzes für Schiffskonvois, das Organisieren von
Nachschub an die Front. Eine frühe Arbeit zum zweidimensionalen Knapsackproblem
stammt von BROOKS et al. (1940).
Heuristiken wurden in Wissenschaftskreisen allerdings erst akzeptiert, nachdem sich in den
1940-50er Jahren die damals noch vorhandene Hoffnung nicht erfüllte, bald in der Lage zu
sein, auch größere Instanzen von kombinatorischen Optimierungsproblemen (darunter
C&P-Probleme) exakt-optimal zu lösen. Diese Erkenntnisse wurden erst durch die in den
1970er Jahren gewonnenen Erkenntnisse der Komplexitätstheorie untermauert. Für viele
kombinatorische Probleme, die so genannten NP-harten Probleme, kann nicht erwartet
werden, dass zu ihrer Lösung exakt-optimierende Algorithmen mit für praktische Zwecke
annehmbarem Zeitbedarf gefunden werden (vgl. GAREY und JOHNSON, 1979). Die meisten
C&P-Probleme erwiesen sich als NP-hart. Da sich mit entwickelten exakten Verfahren große
Instanzen bisher kaum in praktisch akzeptabler Rechenzeit berechnen lassen, stehen
Entwicklung und Einsatz von Heuristiken weiterhin auf der Tagesordnung.
1.4.3 Metaheuristiken
Seit den 1980er Jahren wurden neuartige Lösungsansätze, so genannte Metaheuristiken
entwickelt, mit deren Hilfe für viele NP-harte Problemstellungen (Travelling Salesman
Problem, Vehicle Routing Problem, Scheduling Probleme) hochwertige bzw. nahoptimale
Lösungen bei akzeptablem Zeitaufwand gefunden werden können. Für einen breiten
Überblick entwickelter Metaheuristiken sei auf GLOVER und KOCHENBERGER (2003) sowie
REEVES (1993) verwiesen. Zu den ersten und nach wie vor wichtigsten Metaheuristiken
gehören genetische Algorithmen (GA), Tabu Search (TS) und Simulated Annealing (SA).
Kapitel 1 : Einleitung 19
Da viele Metaheuristiken Prozesse der belebten und unbelebten Natur nachbilden, spricht
man auch von naturanalogen Verfahren. Während genetische Algorithmen zur Gruppe der
populationsbasierten Metaheuristiken zählen, gehören Tabu Search und Simulated Annealing
zu einer weiteren Gruppe von Metaheuristiken, nämlich den Strategien der fortgeschrittenen
Nachbarschaftssuche.
Metaheuristiken sind nicht problemspezifische, sondern allgemeine Suchstrategien und
grundsätzlich für beliebige kombinatorische oder diskrete Optimierungsprobleme
verwendbar. Ursprünglich stammt der Ausdruck aus dem Altgriechischen: „heuriskein“
bedeutet „finden“, die Präposition „meta“ weist auf die übergeordnete Stellung der
Metaheuristik hin bzw. auf den Charakter eines problemspezifisch zu füllenden
Rahmenverfahrens.
Anders als herkömmliche Heuristiken sind Metaheuristiken keine fertigen Verfahren, sie
müssen jeweils erst für die konkrete Problemstellung zu einem einsatzfähigen Verfahren
spezialisiert werden. Dies geschieht in zwei Schritten. Einerseits müssen passende
Komponenten aus einem generischen Werkzeugkasten ausgewählt werden. Andererseits sind
problemspezifische Entscheidungen zu treffen. Metaheuristiken sind also nicht „ready to
use“ (FALKENAUER 1998, S.108), sondern müssen jeweils an die konkrete Fragestellung
angepasst werden, um gute Ergebnisse zu erzielen. Metaheuristiken werden auch als
„intelligente“ Suchstrategien bezeichnet, da sie einerseits Komponenten mitbringen, die ein
Steckenbleiben in lokalen Optima verhindern können und andererseits zusätzliches
problemspezifisches Wissen integrieren. Damit sind sie einfachen Heuristiken üblicherweise
überlegen. Charakteristisch für Metaheuristiken ist der Umstand, dass ermittelte
Bestlösungen aus einer Vielzahl erzeugter Lösungen quasi abgefiltert werden.
1.4.4 Graphensuchverfahren als Spezialfall
Das Dilemma zwischen mangelnder Anwendbarkeit von exakten Verfahren einerseits und
unzureichender Lösungsgüte konventioneller Heuristiken andererseits wurde indessen nicht
nur mit Hilfe von Metaheuristiken aufgelöst. Einen wesentlichen Beitrag beim Entwurf
leistungsfähiger Verfahren für kombinatorische Probleme erbringen auch Ansätze zur
Graphensuche bzw. Baumsuche sowie weitere Ansätze der impliziten Enumeration. Diese im
Operations Research und im Gebiet der Künstlichen Intelligenz entwickelten ursprünglich
exakt-optimierenden Verfahrensansätze wurden in den vergangenen Jahrzehnten mit Hilfe
geeigneter Konzepte und Zusatzkomponenten in leistungsfähige heuristische Ansätze (ohne
20 Kapitel 1 : Einleitung
Optimalitätsgarantie) transformiert und vielfach erfolgreich umgesetzt. Beispiele aus dem
C&P-Bereich selbst stellen das AND/OR-Graphensuchverfahren von MORABITO und
ARENALES (1994) sowie das jüngere Branch and Bound-Verfahren (B&B) von
PISINGER (2002) dar.
Es gibt sicherlich tiefgreifende Unterschiede zwischen Metaheuristiken einerseits und
heuristischen Ansätzen der Graphensuche andererseits. Erwähnt sei hier nur, dass es sich bei
den ersteren Verfahrenstypen regelmäßig um Verbesserungsverfahren, bei den
Graphensuchverfahren dagegen um Konstruktionsverfahren handelt, die eine Suche in einem
Raum von Teillösungen durchführen. Jedoch passt die oben gegebene Charakterisierung der
Metaheuristiken auch auf die heuristischen Graphensuchverfahren: es handelt sich ebenfalls
um allgemeine Suchstrategien, die jeweils problemspezifisch zu konkretisieren sind. Auch
die oben angesprochene Eigenschaft des Abfilterns der Bestlösungen aus einer Vielzahl an
Lösungen trifft auf Graphensuchverfahren, insbesondere auf B&B-Verfahren, zu. Durch die
Auswahl geeigneter Bounds werden weniger attraktive Zweige bei der Baumsuche nicht
weiter expandiert. Wenn demnach im Folgenden von Metaheuristiken im weiteren Sinne die
Rede ist, sind heuristische Graphensuchverfahren eingeschlossen.
1.5 Literaturüberblick
In den zurückliegenden Jahren wurden zahlreiche Verfahren zur Lösung von
C&P-Problemen entwickelt. Die folgende Literaturübersicht ist einerseits nach den
Problemtypen aus Kapitel 1.2.3, andererseits nach den Verfahrenstypen aus Kapitel 1.4
eingeteilt. Zusätzlich enthält Abschnitt 1.5.4 eine Übersicht von C&P-Benchmarkinstanzen.
Für eine weitere, umfassendere Übersicht der zwischen 1995 und 2004 veröffentlichten C&P
Artikel sei auf WÄSCHER et al. (2007) verwiesen. Entsprechend dem Gegenstand der
vorliegenden Arbeit wird lediglich auf die Literatur zu den zwei- und dreidimensionalen
Varianten der in Kapitel 1.2.3 abgegrenzten C&P-Probleme eingegangen.
1.5.1 Veröffentlichungen zum Containerbeladeproblem
Ein Großteil der Veröffentlichungen zur C&P-Problematik behandelt das
Containerbeladeproblem. Das CLP ist bekanntlich NP-hart (vgl. SCHEITHAUER, 1992) und es
werden nur wenige exakte Lösungsverfahren vorgeschlagen. FEKETE und SCHEPERS (1997)
stellen ein allgemeines Rahmenverfahren zum exakten Lösen von mehrdimensionalen
Packproblemen vor. MARTELLO et al. (2000) entwickelten ein exaktes Verfahren für das
Kapitel 1 : Einleitung 21
3D-CLP, welches in ein Verfahren für das BPP eingebettet wurde. Dieses übergeordnete
BPP-Verfahren teilt jeweils eine weitere Kiste einem bereits teilweise gefüllten Container zu,
während das integrierte CLP-Verfahren diese Kiste in einem Eckpunkt der sogenannten
„envelope“ der bisherigen Teillösung verstaut. Die Suche wird durch geeignete Bounds
beschränkt. Eine vollständige Lösung wurde ermittelt, falls keiner der Eckpunkte eine
weitere Kiste aufnehmen kann oder alle Kisten verstaut wurden. Wie bei exakten Verfahren
allgemein üblich werden auch hier nur sehr kleine Probleme behandelt und exakt gelöst. Bei
dem besagten BPP-Verfahren werden Instanzen mit weniger als 90 Items betrachtet.
CAPRARA und MONACI (2004) stellen vier exakte Lösungsverfahren für das 2D-CLP vor,
welche auf einer Relaxation des 2D-CLP zu einem 1D-Knapsackproblem aufbauen, wobei
geeignete Upper Bounds zum Einsatz kommen. CLAUTIAUX et al. (2007) stellen ebenfalls ein
exaktes Verfahren für das 2D-CLP vor, indem es vorrangig darum geht zu bestimmen, ob
sämtliche kleinen Objekte im Container verstaut werden können oder nicht. FEKETE und
SCHEPERS (2007) stellen ein zweistufiges Baumsuchverfahren zur exakten Lösung
mehrdimensionaler Packprobleme vor.
Die Gruppe der einfachen Heuristiken für das CLP beinhaltet sowohl konstruktive Verfahren
(wie Greedy-Algorithmen) als auch Verbesserungsheuristiken (beispielsweise Hillclimbing-
Verfahren). Herkömmliche Heuristiken für das 3D-CLP stammen von BISCHOFF
et al. (1995), BISCHOFF und RATCLIFF (1995) sowie LIM et al. (2003). Weitere
problemspezifische Heuristiken werden u.a. von LOH und NEE (1992) sowie
NGOI et al. (1994) vorgeschlagen.
Metaheuristiken stellen aktuell die bevorzugten Strategien zum Lösen von CLP-Problemen
dar, wie die große Zahl an Veröffentlichungen in den vergangenen Jahren belegt. Genetische
Algorithmen (GA) wurden von HEMMINKI (1994), GEHRING und BORTFELDT (1997, 2002)
und BORTFELDT und GEHRING (2001) vorgestellt. Tabu Search-Algorithmen (TSA) stammen
von SIXT (1996) sowie BORTFELDT und GEHRING (1997), Simulated Annealing-Algorithmen
(SAA) von SIXT (1996) und DOWSLAND (1993a bzw. 1993b). Ein weiteres Local Search-
Verfahren stammt von BISCHOFF (2004). Baumsuch- und Graphensuchverfahren wurden
ebenfalls erfolgreich auf CLP-Probleme angewendet. Erwähnenswert in diesem
Zusammenhang sind das AND/OR-Verfahren von MORABITO und ARENALES (1994), die
Tree Search-Verfahren von ELEY (2002) und HIFI (2002) sowie die B&B-Algorithmen von
TERNO et al. (2000) und von PISINGER (2002). Neuere Arbeiten von
MOURA und OLIVEIRA (2005) sowie PARREÑO et al. (2008) führen einen GRASP-Ansatz ein.
22 Kapitel 1 : Einleitung
Neben der Einteilung der Algorithmen nach Verfahrenstypen kann eine Unterscheidung nach
der Struktur der erzeugten Packpläne (vgl. PISINGER, 2002) erfolgen:
• Beim so genannten Wall Building- (oder Vertical Layer-) Ansatz wird der Container
sukzessive durch vertikale quaderförmige Schichten („Mauern“) gefüllt, die in
Längsrichtung des Containers aneinandergereiht sind. Vertreter dieses Ansatzes sind
die Verfahren von BORTFELDT und GEHRING (2001) sowie PISINGER (2002). Eine frühe
Arbeit diesbezüglich stammt von GEORGE und ROBINSON (1980).
• Beim Stack Building-Ansatz werden die einzelnen Items in Stapeln übereinander
angeordnet und auf dem Containerboden platziert. Dieses Prinzip wird in BISCHOFF und
RATCLIFF (1995) und im GA von GEHRING und BORTFELDT (1997) verwendet.
• Beim Horizontal Layer-Ansatz wird der Container von unten nach oben mit
horizontalen, jeweils übereinander angeordneten Schichten gefüllt. Ziel ist hierbei das
Bilden jeweils einer Schicht mit möglichst großer Grundfläche. Dieses Prinzip wird in
den Verfahren von BISCHOFF et al. (1995) und TERNO et al. (2000) angewendet.
• Beim Block Building-Ansatz werden Blöcke gebildet, die meist aus identischen Items
in identischer räumlicher Orientierung bestehen. Dieses Prinzip ist vergleichbar mit
dem vorigen Ansatz, allerdings besteht hier das Ziel im Bilden möglichst großer Blöcke
ohne inneren Verlust. Vertreter dieses Ansatzes sind insbesondere das TS-Verfahren
von BORTFELDT und GEHRING (1998) sowie das TS-Verfahren von ELEY (2002).
• Beim Guillotine Cutting-Ansatz wird der Container sukzessive durch Guillotineschnitte
in kleinere Packräume unterteilt und gefüllt. Dieses Vorgehen kommt beispielsweise
beim AND/OR-Graphensuchverfahren von MORABITO und ARENALES (1994) zum
Einsatz.
• Ein weiterer Ansatz ist die Verwendung von nichtguillotinierbaren Mustern bzw.
Teilanordnungen. In SCHEITHAUER und TERNO (1996) beispielsweise werden
nichtguillotinierbare, so genannte G4-Strukturen, zum Lösen des 2D-CLP verwendet.
Diese Muster erlauben die Anordnung von vier i.d.R. unterschiedlichen Rechtecken
innerhalb eines möglichst kleinen Rechtecks, d.h. mit möglichst geringem innerem
Verlust.
Kapitel 1 : Einleitung 23
Alle beschriebenen Ansätze müssen nicht zwingend isoliert in einem Verfahren verwendet
werden. Üblicherweise führt die Kombination aus mehreren Ansätzen zu besseren
Resultaten. So wird bei PISINGER (2002) der „wall building“ Ansatz mit einem „stack
building“ Ansatz innerhalb der Schichten kombiniert. Bei SCHEITHAUER und TERNO (1996)
können neben den G4-Patterns auch guillotinierbare Muster auftreten. Bei HIFI (2002) enthält
eine Lösung sowohl horizontale als auch vertikale Schichten, die mit Streifen in orthogonaler
Richtung (x-Stacks, y-Stacks) gefüllt werden. Bei allen Verfahren entspricht üblicherweise
die Schichttiefe (d.h. das Schichtmaß in Längsrichtung des Containers) genau dem
Außenmaß eines oder mehrerer Items. BRUNETTA und GRÉGOIRE (2005) verbinden ein
blockbildendes Verfahren von MORABITO und MORALES (1998) mit einem Verfahren von
PISINGER (1998).
Die Forschung zum 3D-CLP konzentriert sich vor allem auf dessen Ausprägung als
Packproblem, seltener werden gezielt Algorithmen für Zuschnittprobleme entwickelt. Ein
Großteil der Verfahren beachtet die Orientierungsrestriktion (C1) und die
Stabilitätsrestriktion (C3). Viele Verfahren beachten noch weitere Packrestriktionen,
beispielsweise die Gewichtsrestriktion in TERNO et al. (2000), BORTFELDT und
GEHRING (2001) sowie ELEY (2002). Die Heuristik von BISCHOFF et al. (1995) und das
GRASP-Verfahren von MOURA und OLIVEIRA (2005) sind besonders erfolgversprechend im
Bezug auf die Erzeugung stabiler Beladungen. In BISCHOFF (2004) werden Lösungen
erzeugt, welche die Überstapelungsrestriktion mit einer Beschränkung des Drucks auf
Kistendeckflächen einhalten. Nur wenige Artikel nehmen direkten Bezug auf die
Zuschnittproblematik, so z.B. HIFI (2002). Einige Algorithmen erzeugen aber ausschließlich
guillotinierbare Lösungen und sind daher auch für die Zuschnittproblematik geeignet. Als
Beispiel seien die Verfahren von MORABITO und ARENALES (1994), BORTFELDT und
GEHRING (2001) sowie PISINGER (2002) genannt.
Ein weiteres Unterscheidungsmerkmal für Packverfahren ist deren Parallelisierung. Alle
bisher angeführten Verfahren sind sequentielle (nicht parallele) Verfahren. Parallele
Algorithmen sind bisher eher selten. Ein paralleler GA für das 3D-CLP wurde von GEHRING
und BORTFELDT (2002) vorgeschlagen. Weitere parallele genetische Algorithmen stammen
von KRÖGER (1993); diese dienen allerdings der Lösung des 2D-SPP.
24 Kapitel 1 : Einleitung
1.5.2 Literatur zum Strip Packing-Problem
Das Strip Packing-Problem ist NP-hart und gehört als mehrdimensionales C&P-Problem
ebenfalls zur Klasse besonders schwer zu lösender kombinatorischer Probleme. Im
Gegensatz zum CLP und BPP existiert für das SPP keine eindimensionale Variante.
Strip Packing-Probleme stellen neben dem CLP und BPP einen wichtigen Basistyp der
C&P-Problematik dar, siehe hierzu auch COFFMAN und SHOR (1990) sowie
MARTELLO et al. (2000).
Einen detaillierten Überblick über zahlreiche metaheuristische Ansätze für verschiedene
Ausprägungen des 2D-SPP findet sich in HOPPER und TURTON (2000, 2001).
BORTFELDT (2006) stellt tabellarisch eine Literaturübersicht zum 2D-SPP für rechteckige
Packstücke zusammen und untersucht dabei systematisch die Eignung der Verfahren für die
Subtypen nach LODI et al. (1999a) bezüglich Orientierungsrestriktion und Guillotinierbarkeit
(siehe Abschnitt 1.2) sowie den Verfahrenstyp. Beispielhaft seien der GA von
MUMFORD-VALENZUELA et al. (2003) sowie die Hybridverfahren von IORI et al. (2002) und
MONACI (2001) erwähnt, welche die Suchstrategien GA und TS kombinieren.
KRÖGER (1993, 1995) sowie SCHNECKE (1996) stellen parallele GA vor. Ein Verfahren zur
exakten Lösung des 2D-SPP stammt von MARTELLO et al. (2003).
Anders als bei der zweidimensionalen Ausprägung wurden bisher nur wenige Verfahren für
das dreidimensionale SPP vorgestellt. Wie bereits in Abschnitt 1.5.1 erwähnt, stellen
FEKETE und SCHEPERS (1997) ein allgemeines Rahmenverfahren zur exakten Lösung
mehrdimensionaler Packprobleme vor, welches auch für SPP anwendbar ist. Heuristische
Ansätze stammen von BISCHOFF und MARRIOTT (1990). Diese stellen verschiedene
Heuristiken vor, welche eine 2D-Packheuristik mit der schichtbildenden Heuristik von
GEORGE und ROBINSON (1980) kombinieren. Die Autoren berichten, dass die Lösungsqualität
hauptsächlich von der Wahl der Schichttiefe abhängt.
Mehrere Heuristiken für das 3D-SPP werden in der Arbeit von SIXT (1996) vorgestellt,
darunter hat sich ein Tabu Search-Algorithmus (TSA) besonders bewährt. Dieser TSA basiert
auf der Codierung einer Lösung als Ladesequenz aller Kisten bei gegebener räumlicher
Orientierung aller Kisten. Nachbarlösungen werden durch den Austausch zweier Kisten der
Ladesequenz oder durch Ändern der Orientierung einer einzelnen Kiste erreicht. Eine
elementare Heuristik, welche jedes Packstück in maximalem Umfang in Richtung der
Kapitel 1 : Einleitung 25
hinteren, unteren Ecke des Containers verschiebt, sorgt dafür, dass die codierte Lösung
eindeutig in einen kompletten Packplan überführt wird.
BORTFELDT und GEHRING (1999a) stellen einen TSA und einen GA für das 3D-SPP vor.
Beide Verfahren sind aus eigenen CLP-Algorithmen abgeleitet, vergleiche BORTFELDT und
GEHRING (1998 bzw. 2001). Pro 3D-SPP-Verfahren werden zwei Adaptationsansätze
analysiert. Der erste Ansatz basiert auf einem einzelnen Container mit praktisch unendlicher
Länge, während der zweite Ansatz eine Sequenz von CLP-Instanzen mit stetig fallenden
Containerlängen löst. Beide Algorithmen, TSA und GA, wurden parallelisiert, wobei alle
parallelen Prozesse jeweils eine komplette Probleminstanz lösen.
1.5.3 Literaturübersicht zum Bin Packing-Problem
Das Bin Packing-Problem ist wie die vorher betrachteten C&P-Probleme (unabhängig von
der Dimensionalität) NP-hart. Daher werden in der Literatur für das BPP ebenfalls
hauptsächlich heuristische Verfahren zu seiner Lösung vorgeschlagen. Es handelt sich zum
Teil um Konstruktionsheuristiken (CH) oder Verbesserungsheuristiken (IH), in wachsendem
Maße jedoch um Metaheuristiken wie Simulated Annealing (SA), Tabu Search, Guided
Local Search (GLS), sowie Genetische Algorithmen und Constrained Programming (CP).
Daneben werden Branch and Bound (B&B), Branch and Cut (B&C) und verwandte Ansätze
der Baumsuche (Tree Search, kurz: TRS) in exakten, aber auch in heuristischen Verfahren
angewendet. Tab. 6 stellt eine Auswahl der für mehrdimensionale Bin Packing-Probleme
entwickelten Verfahren vor.
Für jeden Algorithmus aus Tab. 6 werden die Problemvariante (gegeben durch die
Dimensionalität des betrachteten Problems), die Anzahl unterschiedlicher Containertypen
(1 oder „M“, „M“ steht für mehrere Containertypen) und der bearbeitete Subtyp
(vgl. Kapitel 1.2.4, Tab. 5) angegeben. Im Fall mehrerer Containertypen ist das Ziel nicht die
Minimierung der eingesetzten Container, sondern vielmehr die Minimierung der gesamten
Containerkosten. Der Verfahrenstyp wird angegeben, wobei exakte Lösungsverfahren als
solche gekennzeichnet sind. In der letzten Spalte der Tabelle wird die maximale
Problemgröße (d.h. Stückzahl n) angegeben, die in dokumentierten Testrechnungen des
betreffenden Artikels bearbeitet wird. Für eine umfangreichere Bibliographie der Arbeiten
zum BPP sei auf COFFMAN et al. (2004) verwiesen.
26 Kapitel 1 : Einleitung
Tab. 6. Verfahren für das mehrdimensionale BPP mit rechteckigen Items.
Autoren, Quelle Dim. #Cont.-Typen Subtyp
Verfahrens typ
Max. Größe
n
Bengtsson (1982) 2 1 RF ICH 200
Berkey und Wang (1987) 2 1 OF CH 100
Ivancic et al. (1989) 3 M RF CH 180
El Bouri et al.(1994) 2 1 RF TRS 200
Bischoff und Ratcliff (1995) 3 1 RF CH 180
Martello und Vigo (1998) 2 1 OF B&B, exakt 100
Lodi et al. (1998) 2 1 RG TS 164
Lodi et al. (1999a) 2 1 alle TS 100
Lodi et al. (1999b) 2 1 OG TS 100
Martello et al. (2000) 3 1 OF B&B, exakt 90
Terno et al. (2000) 3 1 RF B&B -
Bortfeldt (2000) 3 M RF CH, IH 180
Dell'Amico et al. (2002) 2 1 RF B&B, exakt 100
Lodi et al.(2002) 3 1 OF TS 200
Faroe et al. (2003) 3 1 OF GLS 100
Eley (2003) 3 M RF TRS 180
Lodi et al. (2004) 3 1 RF TS 200
de Castro Silva et al. (2003) 3 1 OF CH 90
Pisinger und Sigurd (2007) 2 1 OF,OG CP, B&C exakt 100
Insgesamt existieren bisher in der Literatur, im Gegensatz zum 1D-BPP, nur wenige Arbeiten
zum mehrdimensionalen Bin Packing-Problem. Vor allem für das 3D-BPP gibt es nur wenige
Artikel. Die Problemgrößen der berechneten 3D-BPP-Instanzen sind eher klein und umfassen
selten mehr als 200 Packstücke. Dies gilt sowohl für die oben vorgestellten exakten wie für
die heuristischen Verfahren. Es kann ebenfalls beobachtet werden, dass die Testinstanzen
meist im Vergleich zur Containergröße recht sperrige Packstücke beinhalten. Beim
Verfahren von IVANCIC et al. (1989) beispielsweise kann ein einzelner Container in der Regel
weniger als 10 Kisten aufnehmen. Dies dürfte zahlreichen praktischen Situationen nicht
entsprechen, man denke an den Transport von Haushaltsgeräten in Standardcontainern.
Außerdem werden die meisten Algorithmen ausschließlich mit entweder stark heterogenen
oder schwach heterogenen Instanzen getestet.
1.5.4 Benchmarkinstanzen aus der Literatur und deren Erzeugung
Zahlreiche Autoren stellen Benchmarkprobleme zum Test von C&P-Verfahren mit
quaderförmigen Items bereit. Diese lassen sich nach Dimensionalität, Problemtyp und
Problemgröße (Anzahl der Packstücke) einteilen. Als weiteres Unterscheidungsmerkmal
Kapitel 1 : Einleitung 27
kann die Frage betrachtet werden, ob das Optimum einer Instanz unabhängig von ihrer
Berechnung bekannt ist oder nicht. Typischerweise werden Instanzen mit bekanntem
Optimum durch verlustfreies „Zersägen“ von Containern erzeugt, während bei Instanzen mit
unbekanntem Optimum die Abmessungen und Anzahlen der Packstücke in bestimmten
Grenzen zufällig ermittelt wurden. Bei Instanzen mit bekanntem Optimum können außerdem
guillotinierbare Optimallösungen von nichtguillotinierbaren Optimallösungen unterschieden
werden. Folgende Tab. 7 enthält eine Übersicht zu einigen wichtigen Sets von Testinstanzen
und deren Charakteristik.
In Tab. 7 wird neben der Dimension („Dim.“) und dem Problemtyp („Typ“) auch der
Erzeugungsprozess der Instanzen (Spalte „Gen.“) angegeben: die Instanzen werden entweder
durch zufällige Wahl der Kistenmaße („R“ = Random) oder durch Zerschneiden des
Containers („C“ = Cut) erzeugt. Zufällig erzeugte Instanzen dominieren klar in Tab. 7.
Weiterhin werden bislang 3D-Instanzen nicht durch „Zersägen“ des Containers erzeugt. Bei
Instanzen mit bekanntem Optimum wird in der Spalte „NG“ angegeben, ob die
Optimallösung Nichtguillotineschnitte enthält. Ist die Guillotinierbarkeit der Optimallösung
nicht bekannt, bleibt Spalte „NG“ leer.
Bei den 2D-Instanzen in HOPPER und TURTON (2002) werden mehrere Verfahren für die
Problemstellungen CLP, SPP und BPP vorgestellt, welche durch Zersägen des rechteckigen
Containers entstehen. Guillotinierbarkeit ist als Parameter ausgelegt. Als Besonderheit
werden auch Instanzen mit unbekanntem Optimum erzeugt, welche eine ähnliche
Charakteristik haben wie die entsprechenden Probleme mit bekanntem Optimum; die Items
werden dann jedoch zufällig erzeugt. Ein maximales „item ratio“ (Verhältnis von Länge zu
Breite eines ausgeschnittenen Rechtecks) kann zudem vorab bestimmt werden. Ähnliches gilt
bei WANG und VALENZUELA (2001): hier werden zwei Sets von 2D-SPP-Instanzen für das
2D-SPP vorgestellt. Bei Set 1 werden so genannte pathologische Kistentypen durch die
Vorgabe eines „aspect ratio“ (entspricht dem „item ratio“ bei HOPPER und TURTON, 2002)
vermieden, während bei Set 2 alle Items rein zufällig ermittelt werden. Insgesamt werden
420 Instanzen mit 25 bis 5000 Packstücken eingeführt.
28 Kapitel 1 : Einleitung
Tab. 7. Benchmarkinstanzen für Cutting and Packing Probleme.
Autoren, Quelle Dim. Typ Gen. NG Bemerkung Max.
Größe n
Beasley (1985a) 2 CLP R - - 10-50
Berkey und Wang (1987) 2 BPP R - - 100
Bischoff und Ratcliff (1995) 3 CLP R - - 180
Bortfeldt und Gehring (2006) 2 SPP R - 1000
Christofides und Whitlock (1977) 2 CLP R - - 12-62
Fekete und Schepers (1997) 2 CLP SPP BPP
R - - 30-97
Gendreau et al. (2005) 3 BPP R - 198
Hopper und Turton (2002) 2 CLP, SPP, BPP
C ja
„item ratio“ - Parameter, Variante
mit unbekanntem Optimum
100-150
Loh und Nee (1992) 3 CLP R - 250
Martello und Vigo (1998) 2 BPP R - 200
Martello et al. (2000) 3 BPP R - 90
Morabito und Arenales (1994) 3 CLP R - Längen normalverteilt 8745
Wang und Valenzuela (2001) 2 CLP C nein „aspect ratio“ - Bedingung 50-5000
Zufällig gewählte Kistenabmessungen werden meist innerhalb bestimmter Grenzen im
Vergleich zur Containergröße gewählt. Bei BEASLEY (1985a) werden 2D-Instanzen für das
SPP erzeugt, wobei alle Maße der orientierungsfixierten Kisten jeweils zufällig zwischen
25% und 75% der Containerlänge bzw. -breite betragen. Bei CHRISTOFIDES und
WHITLOCK (1977) werden Packstücke erzeugt, deren Seitenlängen weniger als ein Viertel der
Containerbreite betragen. Bei GENDREAU et al. (2006) wird eine kombinierte Problemstellung
aus 3D-CLP und Vehicle Routing behandelt. Die verwendeten Packstücke erhalten ebenfalls
zufällig ermittelte Ausdehnungen zwischen 20% und 60% der Containerlänge. Allen diesen
Beispielen ist gemeinsam, dass das Optimum einer Instanz nicht vor bzw. unabhängig von
ihrer Lösung bekannt ist.
Alle bisher angesprochenen Sets von Benchmarkinstanzen enthalten Packstückmengen von
eher bescheidenem Umfang mit selten mehr als 200 Packstücken (siehe letzte Spalte
in Tab. 7). Bei MARTELLO et al. (2000) beispielsweise werden 3D-Bin Packing-Probleme von
bescheidener Größe bis maximal 90 Items behandelt. Ausnahmen gibt es lediglich bei
2D-Instanzen. BORTFELDT und GEHRING (2006) beispielsweise stellen 360 „large benchmark
instances“ mit jeweils 1.000 Kisten für das 2D-SPP vor.
Kapitel 1 : Einleitung 29
Das Fehlen der maximal erreichbaren Volumenauslastung bei den zufällig erzeugten
Instanzen stellt eine große Einschränkung bei der Beurteilung der Lösungsqualität eines zu
testenden Verfahrens dar.
1.6 Zielsetzung der Dissertation
Die Analyse der existierenden Publikationen zum Cutting and Packing im vorherigen
Abschnitt 1.5 hat gezeigt, dass es wichtige Fragestellungen gibt, denen bisher wenig
Beachtung zuteil wurde. Die folgende Zusammenfassung der festgestellten Defizite dient als
Ausgangspunkt für die Zielsetzung der vorliegenden Arbeit.
• Die Entwicklung parallel arbeitender Lösungsverfahren wird bisher selten behandelt.
Dabei bietet das Aufkommen erschwinglicher Prozessoren mit Mehrkernprozessoren in
handelsüblichen PC-Rechnern in den vergangenen Jahren ein großes Potential für die
Entwicklung schnellerer und effizienterer Parallelverfahren.
• Keine bekannte Arbeit widmet sich bisher dem Vergleich konkurrierender
Metaheuristiken bei ansonsten identisch gestalteten problemspezifischen
Kernkomponenten. Ein solcher konzeptioneller Vergleich und das Nutzen etwaiger
Vorteile der einzelnen Suchstrategien könnten zur Entwicklung neuer effizienter
Verfahren beitragen. Hinzu kommt, dass die Metaheuristiken Tabu Search und
Genetische Algorithmen oft angewendet werden, während Simulated Annealing bisher
- zumindest im 3D-Fall - nur selten als Verfahrenstyp für C&P-Probleme eingesetzt
wurde.
• Die Problemtypen CLP, SPP und BPP stehen miteinander in einem engen inneren
Zusammenhang. Es sollte daher beispielsweise möglich sein, ausgehend von einem
hochwertigen Algorithmus für das CLP erfolgreiche Verfahren für das SPP und BPP
abzuleiten.
• Ein Lösungsalgorithmus eignet sich üblicherweise nicht gleichermaßen für Probleme
mit Packstückmengen unterschiedlicher Größe und Heterogenität. Die Heterogenität
einer Packstückmenge ist dabei definiert als: Quotient (Anzahl der Kisten) / (Anzahl
der Kistentypen). Die behandelte Problemgröße im 3D-Fall hinkt dabei derjenigen im
2D-Fall hinterher. Entsprechend große Benchmarkinstanzen mit bis zu 1.000
Packstücken fehlen meist, zudem ist die tatsächlich erreichbare Volumenauslastung bei
vielen Benchmarkinstanzen unbekannt, was dazu führt, dass die Beurteilung der
30 Kapitel 1 : Einleitung
Lösungsqualität eines Lösungsverfahren nur im Bezug auf Vergleichsverfahren, nicht
jedoch im Hinblick auf die maximal erreichbare Lösungsqualität, möglich ist. Es
besteht daher ein Bedarf an umfangreichen Sets von Testinstanzen mit bekanntem
Optimum, deren Problemgröße und Heterogenitätsgrad stetig von sehr klein bis sehr
groß variiert.
Ausgehend von diesen Vorüberlegungen sollen im Rahmen der vorliegenden Dissertation
fünf Verfahren entwickelt werden. Vier Verfahren sind Lösungsverfahren für die
C&P-Problemtypen CLP (zwei Algorithmen werden vorgestellt) sowie SPP und BPP (je ein
Verfahren). Ein weiteres Verfahren widmet sich der Erzeugung von Probleminstanzen mit
bekanntem Optimum. Die oben angeführten Defizite werden wie folgt behandelt:
• Ein bestehendes Tabu Search-Verfahren wird parallelisiert. Dabei soll insbesondere
getestet werden, ob sich durch die Kommunikation parallel arbeitender Prozesse
Synergieeffekte ergeben.
• Die Metaheuristik Simulated Annealing wird auf dreidimensionale
Containerbeladeprobleme angewendet. Alternativ zu SA kommt Tabu Search zum
Einsatz, bei ansonsten identischen Verfahrenskomponenten. Dies ermöglicht einen
fairen Vergleich der Ergebnisse beider Suchstrategien. Das Verfahren soll außerdem zu
einem hybriden Verfahren erweitert und parallelisiert werden.
• Zwei Verfahren werden entwickelt, um einen existierenden, hocheffizienten
schichtbildenden Algorithmus für das Containerbeladeproblem schrittweise zunächst zu
einem Strip Packing- und anschließend zu einem Bin Packing-Algorithmus
auszubauen. Die Art der Anpassung soll allgemein auf schichtbildende
Containerbeladeverfahren anwendbar sein, wodurch der enge logische Zusammenhang
dieser Fragestellungen gezeigt werden soll.
• Ergänzend zu den vier Lösungsverfahren wird ein Problemgenerator für
mehrdimensionale C&P-Probleme entwickelt. Dieser soll es ermöglichen, Instanzen
mit bekannter Optimallösung zu erzeugen, wobei die Größe des Kistenvorrats, dessen
Heterogenität und weitere Eigenschaften weitgehend frei gewählt werden können.
Bei allen fünf Verfahren bestehen die kleinen und großen Objekte aus mehrdimensionalen,
quaderförmigen Items. Nur das BPP-Verfahren wird auch mit 2D-Instanzen, alle anderen
Algorithmen werden ausschließlich mit 3D-Instanzen getestet. Prinzipiell jedoch lassen sich
sämtliche im Rahmen dieser Arbeit vorgestellten Verfahren ebenfalls auf den 2D-Fall
Kapitel 1 : Einleitung 31
anwenden (siehe Bemerkung S.6). Die Lösungsalgorithmen wurden in C implementiert und
sind auf größere Kistenmengen (100 bis 1000 Packstücke) zugeschnitten. Mit dem
Problemgenerator lassen sich Instanzen beliebiger Größe und Charakteristik erzeugen.
Alle vorgestellten Verfahren wurden in den Jahren 2003 bis 2009 entwickelt, implementiert
und getestet. In dieser Zeit wurden bereits Artikel zu vier der fünf vorgestellten Verfahren in
internationalen Fachzeitschriften des Operations Research veröffentlicht, wie Tab. 8 belegt.
Die Verfahrensbeschreibungen in dieser Dissertation entsprechen daher in weiten Teilen den
veröffentlichten Originalfassungen, welche in Zusammenarbeit mit Dr. Andreas Bortfeldt
und Prof. Dr. Hermann Gehring erstellt wurden. Stellenweise wurden ergänzende Abschnitte
eingefügt, wie beispielsweise Formulierung und Beweis eines neuen Lower Bounds für das
BPP in Kapitel 6.2. Für jeden bereits veröffentlichen Artikel existiert ferner eine Fassung als
Diskussionsbeitrag (DB) der Fakultät Wirtschaftwissenschaft der FernUniversität Hagen.
Tab. 8. Kapitel der Dissertation und Bezug zu bisherigen Veröffentlichungen.
Kap. Titel Autoren Zeitschrift Ausgabe DB
2 A parallel tabu search algorithm for solving the container loading problem
BORTFELDT, GEHRING, MACK
Parallel Computing Vol. 29 Issue 5 (2003)
Nr. 324 (2002)
3 A parallel hybrid local search algorithm for the container loading problem
MACK, BORTFELDT, GEHRING
International Transactions in
Operational Research
Vol. 11 Issue 5 (2004)
Nr. 353 (2003)
5 A Heuristic for the Three-Dimensional Strip Packing Problem
BORTFELDT,MACK
European Journal of Operational Research
Vol. 183 (2007)
Nr. 357 (2005)
6 A Heuristic for the more-dimensional Bin Packing Problem
MACK, BORTFELDT
Central European Journal of Operations
Research
im Druck (akzeptiert
am 23.11.09)
Nr. 423 (2008)
Die Entwicklung der Verfahren aus Kapitel 2 und 3 liegt bereits einige Jahre zurück, wie
Tabelle 8 zeigt. Daher erscheint es angebracht, kurz auf neuere Publikationen zu den dort
behandelten Themen der Parallelisierung, der Hybridisierung und des Vergleichs der
Metaheuristiken Tabu Search und Simulated Annealing einzugehen. Die zitierten Arbeiten
betreffen dabei nicht ausschließlich die C&P-Problematik, sondern gelten allgemein für
kombinatorische Optimierungsprobleme.
CRAINIC und TOULOUSE (2003) geben einen Überblick und Tipps zur Parallelisierung von
GA, TS und SA. Das Handbuch von ALBA (2005) bietet eine umfangreiche Sammlung an
Beiträgen zur Parallelisierung von Metaheuristiken, mit einem Schwerpunkt auf Probleme
32 Kapitel 1 : Einleitung
der Bereiche Telekommunikation und Bioinformatik. Auch das Handbuch von GONZALES
(2007) enthält zahlreiche aktuelle Anwendungsbereiche und Beispiele von sequentiellen und
parallelen Metaheuristiken. DEBUDAJ-GARBYSZ und CZECH (2007) berichten über praktische
Erfahrungen mit parallelisierten SAA, wobei sich eine Implementierung mit unabhängigen
SA-Threads als besonders effiziente Variante herausstellte. BOROVSKA und YANCHEV (2009)
berichten von der Parallelisierung mehrerer metaheuristischer Strategien zum Timetabling-
und Job Shop Scheduling-Problem.
Die Verwendung von Simulated Annealing in Hybridverfahren wurde in den vergangenen
Jahren ebenfalls mehrfach untersucht. HAMMAMI und GHÉDIRA (2005) stellen ein Verfahren
für das Knotenfärbungsproblem vor, bei dem Simulated Annealing und Tabu Search durch
parallele Prozesse simultan ausgeführt werden und dabei Informationen über die statistische
Auswertung des untersuchten Suchraums ausgetauscht werden. Ein hybrides Simulated
Annealing-Verfahren für das 3D-Strip Packing Problem stammt von DERELIA und DASB
(2007). Ebenfalls für das Strip Packing-Problem, allerdings mit irregulären Packstücken,
stellen GOMES und OLIVEIRA (2006) ein hybrides Simulated Annealing-Verfahren vor.
ALTIPARMAK und KARAOGLAN (2008) stellen ein Hybridverfahren (ATSA = Adaptive Tabu-
Simulated Annealing) für das konkave Transportkostenproblem vor, welches Elemente von
TS und SA integriert. In LIM et al. (2005) wird ein sogenanntes „Tabu Search embedded
Simulating Annealing“-Verfahren für ein Tourenplanungsproblem vorgestellt. LIU et al.
(2011) stellen ein hybrides Tabu Search-Verfahren für das Containerladeproblem vor.
Der Vergleich der Suchstrategien TS und SA wurde ebenfalls in den vergangenen Jahren
anhand verschiedener Algorithmen durchgeführt, mit uneinheitlichem Ergebnis. Während
beispielsweise in AROSTEQUI et al. (2006) Tabu Search als erfolgversprechendere Alternative
hervorgeht, berichten SINGH KAMBOJ und SENGUPTA (2009), dass sich Tabu Search als
weniger effizient für das Frequenzallokationsproblem erwies als Simulated Annealing. Auch
in PAUL (2010) war SA die bessere Strategie für das Quadratic Assignement-Problem. Im
älteren Beitrag von HEINRICI (1996) wird dagegen TS, vor allem wegen der einfacheren
Kalibrierung, der Vorzug gegenüber SA gegeben.
Alle zitierten Artikel wurden nicht bereits im Literaturüberblick in Kapitel 1.5 erwähnt, um
jeglichen Anachronismus zu vermeiden. Es zeigt sich, dass die den Kapiteln 2 und 3
zugrundeliegenden Themen der Parallelisierung und Hybridisierung von Metaheuristiken
auch in der rezenten Vergangenheit von zahlreichen Autoren aufgegriffen wurden.
Kapitel 1 : Einleitung 33
Der Rest der Arbeit ist wie folgt gegliedert. Jedes der Kapitel 2, 3, 5 und 6 widmet sich
einem bestimmten Lösungsverfahren und ist in gleicher Weise aufgebaut. Nach Abschnitten
zur Zielsetzung und Verfahrensbeschreibung wird jedes Verfahren umfangreichen
numerischen Vergleichstests unterzogen, welche, soweit vorhanden, auch Heuristiken
anderer Autoren einbeziehen. Der Einfluss der Heterogenität des Packstückvorrats auf die
Lösungsqualität wird untersucht. Neue Benchmarkinstanzen von bisher nicht bekannter
Größe und teilweise mit bekanntem Optimum werden eingeführt und gelöst. Jedes Kapitel
endet mit einer Zusammenfassung der Ergebnisse. Auch das den Instanzgenerator
betreffende Kapitel 4 ist ähnlich aufgebaut. Bei den numerischen Tests wird je eine Testreihe
zu CLP und SPP erzeugt. Die SPP-Testreihe wird zum Test des in Kapitel 5 vorgestellten
Verfahrens herangezogen.
Es folgt eine genauere Beschreibung der fünf Verfahren.
In Kapitel 2 wird ein paralleler Tabu Search-Algorithmus für das 3D-Containerbeladeproblem
vorgestellt, welches auf einem sequentiellen Verfahren von BORTFELDT und GEHRING (1998)
aufbaut. Der verteilt parallele Ansatz basiert auf dem Konzept der multiplen Suchpfade (siehe
TOULOUSE et al., 1996, bzw. AZENCOTT, 1992) mit periodischem Austausch von Lösungen
zwischen den parallelen Prozessen.
In Kapitel 3 wird zunächst auf Basis desselben TS-Verfahrens ein Simulated Annealing-
Algorithmus zur Lösung des 3D-CLP entwickelt. Dieser SA-Algorithmus wird anschließend
zu einem hybriden metaheuristischen Verfahren ausgebaut, wobei sowohl Tabu Search als
auch Simulated Annealing verwendet werden. Weiterhin werden alle entwickelten Verfahren
parallelisiert und der Einfluss der Kommunikation der Prozesse auf die Lösungsqualität wird
untersucht. Ein fairer Vergleich der Resultate der TS- und SA-Variante wird durch die
Übereinstimmung der problemspezifischen Komponenten beider Verfahren ermöglicht.
In Kapitel 4 wird das Verfahren zum Erzeugen von mehrdimensionalen Instanzen der
C&P-Problemtypen CLP, SPP, BPP mit quaderförmigen Packstücken vorgestellt. Die
grundlegende Aufgabe besteht darin, Instanzen mit vorgegebener Problemgröße und
Heterogenität zu generieren, deren Optimallösungen bekannt sind. Außerdem sind bestimmte
Anforderungen an die erzeugten Kistentypen (bezüglich Länge, Anzahl, Volumen und Form)
und an die Charakteristik der Optimallösung (guillotinierbar oder nicht guillotinierbar)
einzuhalten. Neben einer Basisheuristik zum Erzeugen einer Ausgangslösung kommt ein
Nachbarschaftsverfahren zum Einsatz mit dem Ziel, Instanzen mit Optimallösungen von
34 Kapitel 1 : Einleitung
komplexerer Packstruktur zu generieren. Die in Kapitel 1.2.4 vorgestellten praktischen
Restriktionen werden nachträglich der ermittelten Instanz hinzugefügt.
Die in Kapitel 5 entwickelte Heuristik für das 3D-Strip Packing-Problem wird von einem
B&B-Verfahren von PISINGER (2002) für das CLP abgeleitet. Zur Adaptation an das 3D-SPP
werden zwei Ansätze erprobt, welche auf BORTFELDT und GEHRING (1999a) zurückgehen.
Auf diese Weise wird die enge logische Verbindung von SPP und CLP nachgewiesen.
In Kapitel 6 wird eine Heuristik für das mehrdimensionale Bin Packing-Problem (BPP) mit
einem Containertyp vorgestellt. Die Heuristik basiert auf einem Verfahren für das
eindimensionale BPP von BORTFELDT (2007) sowie dem schichtbildenden Verfahren für das
3D-Container Loading-Problem, welches bereits beim SPP in Kapitel 5 eingesetzt wird. Ein
neuer Lower Bound der benötigten Containeranzahl für das BPP mit (vollständig oder
teilweise) orientierungsfreien Kisten wird verwendet, welcher den wohlbekannten
kontinuierlichen Lower Bound dominiert. Ziel ist die Entwicklung eines Verfahrens, welches
für besonders große Problemgrößen geeignet ist. Die Dissertation endet mit einer
Zusammenfassung der Ergebnisse in Kapitel 7.
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 35
2 Ein verteilt paralleles Tabu Search-Verfahren für das CLP
2.1 Zielsetzung und Vorgehensweise
In diesem Kapitel wird ein, auf dem Verfahren von BORTFELDT und GEHRING (1998)
aufbauender, paralleler Tabu Search-Algorithmus für das Containerbeladeproblem mit einem
zu beladenden Container vorgestellt. Das Verfahren ist für den Fall eines schwach
heterogenen Kistenvorrats vorgesehen und gliedert sich in drei Stufen:
• Die unterste Stufe bildet eine einfache Heuristik, welche eine zulässige Lösung für das
CLP erzeugt. Sie wird im Folgenden als Basisheuristik bezeichnet.
• Die mittlere Stufe besteht aus einem sequentiellen TSA. Bei der Erzeugung jeder
Lösung durch den TSA wird die Basisheuristik einmal angewendet. Der Suchprozeß
wird in mehrere Suchphasen unterteilt, in denen der TSA jeweils unterschiedlich
konfiguriert ist.
• Auf der obersten Stufe führen mehrere unterschiedlich konfigurierte Instanzen des TSA
jeweils eine selbständige Suche durch. Die TSA-Instanzen kooperieren durch den
Austausch von bisher erreichten Bestlösungen, die am Ende der Suchphasen
ausgetauscht werden.
Der Rest des Kapitels ist dem Verfahrensansatz gemäß wie folgt aufgebaut. Im Kapitel 2.2
wird die Basisheuristik vorgestellt. Abschnitt 2.3 beschreibt den sequentiellen TSA. Die
Parallelisierung des TSA ist Gegenstand des Abschnitts 2.4. Die Ergebnisse eines
Verfahrenstests werden in Kapitel 2.5 dokumentiert und ausgewertet. Schließlich fasst
Abschnitt 2.6 die Ergebnisse zusammen.
2.2 Basisheuristik
Die Basisheuristik belädt den gegebenen Container in mehreren Iterationen. Pro
Iterationsschritt wird ein so genannter Packraum mit einer oder mehreren Kisten gefüllt. Ein
Packraum ist ein leerer quaderförmiger Raum innerhalb des Containers mit definierten
Seitenmaßen. Im ersten Schritt wird der gesamte Innenraum des Containers als Packraum
verwendet. Für das Beladen eines Packraums kommen nur Kistenanordnungen einer
36 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
vorgegebenen einfachen Struktur in Betracht. Diese werden als lokale Anordnungen (AO)
bezeichnet. Die für einen Packraum möglichen lokalen Anordnungen werden erzeugt und
nach gewissen Kriterien bewertet. Anschließend wird eine lokale Anordnung für den
Packraum ausgewählt. Der nicht genutzte Teil des Packraums wird vollständig in mehrere
quaderförmige, so genannte Nachfolgepackräume zerlegt. Diese werden später gefüllt.
Alg. 1 zeigt den Grobalgorithmus der Basisheuristik.
(1) Initialisiere: setze Menge restlicher Kisten BRest:= Menge aller Kisten; setze Packraumliste PrList:= {Container}; setze Packraumindex ipr:= 0; setze Stauliste StList:= {};
(2) Bestimme den aktuellen Packraum pract als Packraum mit minimalem Volumen aus PrList und entferne pract aus PrList.
(3) Initialisiere für den Packraum pract die Anordnungsliste ArrList:= {}. Erzeuge und bewerte alle lokalen Anordnungen für pract. Füge die lokalen Anordnungen absteigend nach Bewertung sortiert in ArrList ein.
(4) Falls ArrList leer ist, gehe zu Schritt (8). (5) Erhöhe den Packraumindex ipr:= ipr + 1. Füge das Paar (pract, ArrList(1)) als ipr-tes Element in
die StList ein. (6) Füge die Nachfolgepackräume in PrList ein, welche sich aus dem Realisieren der Anordnung
ArrList(1) im Packraum ipr ergeben. (7) Aktualisiere die Menge der restlichen Kisten BRest. (8) Falls die Packraumliste PrList nicht leer ist, gehe zu Schritt (2). (9) Stop.
Alg. 1. Grobalgorithmus der Basisheuristik.
Zu dem Grobalgorithmus der Basisheuristik sei ergänzend bemerkt:
• Es wird stets der Packraum mit kleinstem Volumen zuerst verarbeitet, um möglichst
sicherzustellen, dass auch kleinere Packräume mit dem Restvorrat beladen werden
können.
• Der Container wird in ein 3D-Koordinatensystem eingebettet. Die untere, hintere, linke
Ecke eines Packraums wird als Bezugspunkt (Referenzecke) verwendet. Die x-Achse
verläuft parallel zur Containerlänge, die y-Achse parallel zur Containerbreite, während
die z-Achse parallel zur Containerhöhe verläuft. Die Koordinaten des Bezugspunkts
werden gemeinsam mit den Packraummaßen aufgezeichnet. Die Position einer
verstauten Kiste ergibt sich aus den Koordinaten der Referenzecke des Packraums und
der Lage der Kiste innerhalb der jeweiligen lokalen Anordnung.
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 37
• Die Basisheuristik in Alg. 1 ist als Greedy-Heuristik gestaltet. In Schritt (5) wird
jeweils die erste lokale Anordnung von ArrList mit der besten Bewertung ausgewählt.
In Kapitel 2.3 wird die Basisheuristik dahingehend erweitert, dass nicht stets die beste
Anordnung für einen Packraum (mit Packraumindex ipr) realisiert wird. Erst nach
dieser Erweiterung können mit der Basisheuristik unterschiedliche Lösungen für eine
Probleminstanz erzeugt werden. Man beachte, dass nur Packräume, welche mit
wenigstens einer Kiste befüllt werden können, einen Index ipr erhalten. Ein solcher
Packraum wird nachfolgend als füllbar bezeichnet.
• Wird eine lokale Anordnung erzeugt und bewertet (Schritt 3), so werden zugleich die
Nachfolgepackräume, die sich bei der Verwendung dieser lokalen Anordnung ergeben
würden, testweise erzeugt. Sie werden ggf. in Schritt 6 in die Packraumliste PrList
eingefügt.
Für eine detaillierte Darstellung der Basisheuristik soll Teilschritt 3 aus Alg. 1 näher
beschrieben werden.
2.2.1 Erzeugung lokaler Anordnungen
Es kommen ausschließlich bestimmte Arten von Kistenanordnungen innerhalb eines
Packraums zum Einsatz, die nachfolgend definiert werden.
Eine lokale Anordnung besteht aus einem oder zwei so genannten Blöcken und wird
entsprechend als 1-Anordnung (abgekürzt: 1-AO) oder 2-Anordnung (2-AO) bezeichnet
(siehe Abb. 2). Ein Block wird dabei aus Kisten des gleichen Typs gebildet. Ferner werden
alle Kisten eines Blocks in einer identischen räumlichen Orientierungsvariante angeordnet.
Ein Block umfasst in allen drei Dimensionen (x-, y- bzw. z-Richtung) jeweils eine oder
mehrere Kisten.
Der einzige Block einer 1-Anordnung wird stets in der Referenzecke des Packraumes
platziert. Von den beiden Blöcken einer 2-Anordnung wird einer in der Referenzecke
angeordnet. Der zweite Block kann alternativ in x-Richtung benachbart (Lagetyp „vor“), in
y-Richtung benachbart (Lagetyp „neben“) oder in z-Richtung benachbart (Lagetyp „über“)
platziert werden. Bei einer Platzierung mit dem Lagetyp „vor“ wird der Block mit größerem
y-Maß in der Referenzecke angeordnet, während bei einer Platzierung mit dem Lagetyp
„neben“ der Block mit größerem x-Maß in der Referenzecke positioniert wird.
38 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
Der Lagetyp „über“ wird nur zugelassen, wenn beide horizontalen Maße eines Blocks nicht
kleiner als die korrespondierenden Maße des anderen Blocks sind. Der Block mit den
größeren horizontalen Maßen wird in der Referenzecke, der andere darüber angeordnet.
Diese Maßnahme stellt sicher, dass keine Überhänge entstehen können und der ungefüllte
Raum in einer bestimmten Weise in neue Packräume unterteilt werden kann. Die folgende
Abb. 2 veranschaulicht eine 1-Anordnung sowie 2-Anordnungen der Lagetypen „vor“ und
„neben“. Kistenzahlen in z-Richtung werden nicht angegeben.
x x x
y y yPackraum
Anordnungs-block
EinzelneKiste
a) 1-Anordnung (1-AO) b) 2-Anordnung (2-AO)Typ „neben“
c) 2-Anordnung (2-AO)Typ „vor“
x x x
y y yPackraum
Anordnungs-block
EinzelneKiste
a) 1-Anordnung (1-AO) b) 2-Anordnung (2-AO)Typ „neben“
c) 2-Anordnung (2-AO)Typ „vor“
Abb. 2. Zulässige Anordnungstypen innerhalb eines Packraums (Draufsicht).
Die Kistenzahlen in allen drei Richtungen werden für die Blöcke einer Anordnung zunächst
derart bestimmt, dass die zugehörigen Packraummaße möglichst gut ausgelastet werden.
Überschreitet der Bedarf an Kisten eines Typs für einen Block die Anzahl der noch
verfügbaren Exemplare dieses Kistentyps, so werden die Kistenzahlen entsprechend
reduziert.
Eine 1-Anordnung ist durch die Auswahl eines Kistentyps und einer Orientierungsvariante
eindeutig bestimmt. Analog ist eine 2-Anordnung durch die Auswahl zweier Kistentypen,
zweier Orientierungsvarianten sowie eines Lagetyps vollständig bestimmt. Erzeugt werden
alle denkbaren 1-Anordnungen sowie 2-Anordnungen, die durch eine Variation der
Kistentypen, der Orientierungsvarianten sowie des Lagetyps (bei 2-Anordnungen) möglich
sind. Dabei werden jeweils nur solche Kistentypen berücksichtigt, für die noch mindestens
ein Exemplar im Restvorrat vorhanden ist. Ferner wird bei der Auswahl der
Orientierungsvarianten die Orientierungsrestriktion (C1) (vgl. Kapitel 1.2.4) beachtet.
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 39
2.2.2 Erzeugung von Nachfolgepackräumen
Wurde eine lokale Anordnung für einen Packraum erzeugt, so wird unmittelbar danach der
ungenutzte Teil des Packraums testweise in Nachfolgepackräume zerlegt. Dies ist notwendig,
um die noch vorzustellende Bewertung der lokalen Anordnung durchzuführen. Es werden
mehrere alternative Zerlegungsvarianten für einen Packraum betrachtet (siehe unten).
Die vollständige Zerlegung des ungenutzten Teils eines Packraums in weitere Packräume
kann stets in mehreren Varianten erfolgen. Die Anzahl der möglichen Zerlegungsvarianten
ergibt sich aus folgenden zwei Faktoren. Zum einen hängt sie vom Typ der lokalen
Anordnung ab (d.h. ob es sich um eine 1-AO oder 2-AO handelt und welcher Lagetyp bei
einer 2-AO verwendet wird). Zum anderen werden die möglichen Zerlegungsvarianten
dadurch bestimmt, ob die Stabilitätsrestriktion (C3a) (vgl. Kap.1.2.4) gelten soll, ob also
ausschließlich eine vollständige oder auch eine teilweise Unterstützung jeder verstauten Kiste
zulässig ist. Im ersten Fall kommen nur Packräume in Betracht, die selbst vollständig auf
dem Containerboden bzw. auf der Deckfläche von Blöcken ruhen. Wird nur eine teilweise
Unterstützung verlangt, so können auch Nachfolgepackräume in Betracht kommen, die über
ihre unterstützenden Blöcke hinausragen (so genannte „überhängende Packräume“).
Zur Verdeutlichung seien zunächst 1-AO betrachtet. Wird eine vollständige Unterstützung
gefordert, existieren genau zwei Zerlegungsvarianten, die in Abb. 3 gezeigt werden.
y
Packraum
Pr3(„über“)
Pr2(„neben“)
Pr1 („vor“)
x
z
y
Pr3
Pr2
Pr1
x
z
y
Packraum
Pr3(„über“)
Pr2(„neben“)
Pr1 („vor“)
x
z
y
Pr3
Pr2
Pr1
x
z
Abb. 3. Restraumaufteilung ohne Überhang bei 1-AO.
Wird nur eine teilweise Unterstützung verlangt, kommen weitere vier Zerlegungsvarianten
für 1-AO hinzu, wie folgende Abb. 4 zeigt.
40 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
y
Packraum
Pr3(„über“)
Pr2(„neben“)
Pr1 („vor“)
x
z
y
Pr3
Pr2
Pr1
x
z
y
Pr3
Pr2
Pr1
x
z
y
Pr3
Pr2
Pr1
x
z
y
Packraum
Pr3(„über“)
Pr2(„neben“)
Pr1 („vor“)
x
z
y
Pr3
Pr2
Pr1
x
z
y
Packraum
Pr3(„über“)
Pr2(„neben“)
Pr1 („vor“)
x
z
y
Pr3
Pr2
Pr1
x
z
y
Pr3
Pr2
Pr1
x
z
y
Pr3
Pr2
Pr1
x
z
Abb. 4. Zusätzliche Aufteilungsvarianten mit Überhängen bei 1-AO.
Für 2-Anordnungen seien lediglich die Anzahl der Zerlegungsvarianten angegeben. Bei
Anordnungen mit den Lagetypen „vor“ und „neben“ existieren jeweils 5 Zerlegungsvarianten
ohne und 26 Varianten mit überhängenden Packräumen. Bei einer Anordnung mit dem
Lagetyp „über“ sind 4 Zerlegungsvarianten ohne und 6 Varianten mit überhängenden
Packräumen zu beachten.
2.2.3 Bewertung von Zerlegungsvarianten
Alle zur jeweiligen Anordnung passenden Zerlegungsvarianten werden zunächst berechnet
und bewertet. Alle Varianten werden bewertet. Folgende zwei Faktoren fließen jeweils in die
Bewertung einer Zerlegungsvariante ein:
• Zum einen wird das Verlustvolumen berücksichtigt; es bezeichnet die Summe der
Volumina aller nicht weiter füllbaren Nachfolgepackräume für eine Zerlegungsvariante.
Dieses sollte möglichst klein ausfallen.
• Zum anderen wird das maximale so genannte effektive Volumen aller
Nachfolgepackräume einer Zerlegung betrachtet. Dieses sollte möglichst groß sein.
Handelt es sich um einen Packraum ohne Überhang, so wird als effektives Volumen
das Packraumvolumen gesetzt. Bei einem Packraum mit Überhang wird anhand des
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 41
überhängenden Anteils das nutzbare Volumen des Packraums abgeschätzt und als
effektives Volumen definiert. Man beachte, dass die Kistenanzahlen in horizontalen
Richtungen für die Blöcke einer Anordnung auch davon abhängen, ob der Packraum
einen Überhang besitzt oder nicht; frei schwebende Kisten sind nicht zugelassen.
Für die Bewertung der Zerlegungsvarianten sind drei alternativ einsetzbare Modi vorgesehen,
welche durch den Parameter cutEvalMode gekennzeichnet sind. Bei Verbot von Überhängen
wird allerdings ausnahmslos Modus 0 (gekennzeichnet durch: cutEvalMode = 0) verwendet.
Weitere Details werden in Tab. 9 erläutert.
Tab. 9. Bewertungsmodi zur Packraumzerlegung.
Bewertungs- Modus
cutEvalMode Erläuterung
0 1. Kriterium: Verlustvolumen möglichst gering. 2. Kriterium (Tiebreaker): maximales effektives Volumen eines Packraums.
1
Schritt 1: Nur Zerlegungen ohne überhängende Packräume werden betrachtet. Auswahlkriterium: effektives Volumen des größten Nachfolgepackraums. Schritt 2: Die beste ermittelte Zerlegung wird wie folgt nachbehandelt: Nicht füllbare Nachfolgepackräume auf dem Boden des ursprünglichen Packraums werden horizontal zerschnitten. Dabei werden die oberen Teile des zerschnittenen Packraums an höher gelegene Nachbarpackräume übertragen (siehe Abb. 4). Im Ergebnis wird also eventuell eine Zerlegung mit überhängenden Packräumen ermittelt, anders als bei Modus 0.
2 Analog zu Modus 1; jedoch stehen alle Zerlegungen zur Wahl.
Die ermittelte Zerlegungsvariante mit der besten Bewertung bestimmt schließlich die
verwendeten Nachfolgepackräume für eine gegebene Anordnung in einem gegebenen
Packraum.
2.2.4 Bewertung lokaler Anordnungen
Zur Auswahl der für einen Packraum erzeugten lokalen Anordnungen stehen ebenfalls zwei
alternative Bewertungsmodi zur Verfügung. Der Modus wird durch den Parameter
arrEvalMode bestimmt.
Der erste Modus (arrEvalMode = 0) verwendet als einziges Bewertungskriterium das im
Packraum verstaute Kistenvolumen, welches so groß wie möglich sein soll.
Der zweite Modus (arrEvalMode = 1) verwendet zwei weitere Bewertungskriterien. Es
werden wiederum das oben eingeführte Verlustvolumens und das maximale effektive
42 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
Volumen, bezogen auf die Nachfolgepackräume der jeweiligen Anordnung, verwendet.
Analog zur Bewertung von Zerlegungen sollen das Verlustvolumen möglichst klein und das
maximale effektive Volumen möglichst groß ausfallen. Bei dieser Variante der Bewertung
lokaler Anordnungen gehen alle drei Bewertungskriterien (Kistenvolumen, Verlustvolumen,
effektives Volumen) mit gleichem Gewicht ein.
Abschließend seien zwei weitere Parameter der Basisheuristik erläutert. Der Parameter
maxArr bestimmt die maximale Länge der Anordnungsliste ArrList für einen Packraum.
Gehört eine lokale Anordnung nicht zu den maxArr besten Anordnungen, so wird sie in der
Tabu-Suche nicht berücksichtigt. Der Parameter aboveArr steuert, ob 2-Anordnungen des
Lagetyps „über“ erzeugt werden dürfen (Parameterwert 1) oder nicht (Parameterwert 0).
Ebenso wie die verschiedenen Bewertungsmodi für Zerlegungen und Anordnungen wird der
Parameter aboveArr zur Diversifikation bei der Tabu-Suche verwendet.
2.3 Sequentieller Tabu Search-Algorithmus
{ Initialisieren } erzeuge eine zulässige Lösung s; setze Bestlösung sbest:= s; setze Tabulist:= {};
{ Führe eine Nachbarschaftssuche durch } while (Abbruchkriterium nicht erfüllt) do erzeuge eine Nachbarschaft N(s); initialisiere den Wert der Zielfunktion f(siter):= -∞; for each s’ ∈ N(s) do if f(s’) > f(siter) and Lösung s’ ist nicht tabu then siter := s’; endif ; endfor ; if f(siter) > f(sbest) then sbest := siter; endif ; aktualisiere TabuList; s:= siter; endwhile ; Ausgabe der Bestlösung sbest ;
Alg. 2. Tabu Search-Algorithmus für ein Maximumproblem.
Alg. 2 zeigt einen generischen Tabu Search-Algorithmus, der für den vorliegenden Zweck
hinreichend allgemein ist. Auf die Einbeziehung von Aspirationskriterien, welche den
Tabustatus einer Lösung aufheben können, wird der Einfachheit halber verzichtet. Die
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 43
Grundlagen der Suchstrategie Tabu Search werden als bekannt vorausgesetzt (vgl. GLOVER
und LAGUNA, 1993 bzw. GENDREAU, 2003).
Im Folgenden wird der allgemeine TSA an das gegebene Containerbeladeproblem angepasst.
Diese Anpassung erfolgt in drei Schritten:
(1) Einführung einer Kodierung zulässiger Problemlösungen,
(2) Ausgestaltung der Basiskomponenten des TSA, und
(3) Konfiguration des TSA.
2.3.1 Kodierung zulässiger Lösungen
Die folgende Kodierung einer Lösung führt zu einer geeigneten und flexiblen
Nachbarschaftsdefinition. Eine zulässige Lösung wird durch einen Vektor Ps, genannt
Packsequenz, kodiert. Die Position ipr (ipr = 1, 2, ...) des Vektors entspricht einem füllbaren
Packraum mit dem Index ipr. Das Vektorelement an Position ipr ist eine Datenstruktur mit
zwei Komponenten. Die erste Komponente Ps(ipr).ia gibt den Index einer lokalen
Anordnung der Anordnungsliste ArrList an. Die zweite Komponente Ps(ipr).na enthält die
Länge der Anordnungsliste für Packraum ipr.
Die Transformation einer kodierten Lösung in eine vollständige Lösung erfolgt mit Hilfe der
Basisheuristik, die zu diesem Zweck allerdings leicht abgeändert wird. Der modifizierten
Basisheuristik wird bei ihrem Aufruf eine Packsequenz Ps übergeben. Für den füllbaren
Packraum an Position ipr der Liste PrList wird nun anstelle der besten lokalen Anordnung
ArrList(1) die Anordnung ArrList(ia) verwendet, deren Index ia gemäß ia = Ps(ipr).ia
bestimmt wird. Die Packsequenz enthalte z.B. an Position 1 den Anordnungsindex 2 und an
Position 2 den Anordnungsindex 5. Dann wird für den ersten füllbaren Packraum die zweite
Anordnung der zugehörigen Anordnungsliste und für den zweiten füllbaren Packraum die
fünfte Anordnung gewählt.
Die Länge der Anordnungsliste für einen füllbaren Packraum kann erst während des
Transformationsprozesses bestimmt und in die Packsequenz Ps eingetragen werden. Alle
Packsequenzen besitzen eine einheitliche, hinreichend groß gewählte Länge maxpr. Jedoch
wird die Anzahl der füllbaren Packräume und damit die Anzahl npr (npr ≤ maxpr) der
signifikanten Positionen von Ps erst während der Transformation der Packsequenz Ps
bestimmt. Die Anzahl npr wird gemeinsam mit der Packsequenz in einer übergeordneten
44 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
Struktur gespeichert. Allerdings ist stets auf allen maxpr Positionen einer Packsequenz ein
Anordnungsindex eingetragen. Durch diese und weitere technische Vorkehrungen wird
gewährleistet, dass jede beliebige Packsequenz eindeutig in eine zulässige Lösung
transformiert werden kann.
2.3.2 Ausgestalten der Basiskomponenten des TSA
Die Tabu-Suche wird in dem Lösungsraum der kodierten Lösungen durchgeführt. In diesem
Lösungsraum werden zwei alternativ nutzbare Nachbarschaftsstrukturen eingeführt. Für eine
beliebige Packsequenz Ps mit npr signifikanten Positionen werden eine „große“ und eine
„kleine“ Nachbarschaft wie folgt definiert:
• Die große Nachbarschaft umfasst alle Packsequenzen Ps', für die gilt:
Für genau eine Position ipr' differieren die eingetragenen Anordnungsindizes, d.h.
Ps'(ipr').ia ≠ Ps(ipr').ia, wobei für den abweichenden Anordnungsindex
Ps'(ipr').ia ∈ {1,..., Ps(ipr').na} gefordert wird; dagegen sollen die Anordnungsindizes
auf allen anderen Positionen übereinstimmen, d.h.:
Ps'(ipr).ia = Ps(ipr).ia für alle ipr mit 1 ≤ ipr ≤ maxpr, ipr ≠ ipr' .
Die Änderungsposition ipr' kann beliebig in dem Intervall 1 ≤ ipr' ≤ npr gewählt
werden.
• Die kleine Nachbarschaft wird analog zur großen Nachbarschaft definiert. Abweichend
wird jedoch die Änderungsposition ipr' in dem Intervall 1 ≤ ipr' ≤ npr fest vorgegeben.
Diese Fixierung gilt allerdings jeweils nur für einen Iterationsschritt. Im
darauffolgenden Durchgang wird die Änderungsposition ipr' variiert, wobei insgesamt
eine zyklische Variation erfolgt. Die Iterationslösung der j-ten Iteration sei unter
Verwendung der Änderungsposition ipr' ermittelt worden und umfasse npr signifikante
Positionen. Falls dann ipr' < npr gilt, wird bei der (j+1)-ten Iteration die
Änderungsposition ipr'+1 verwendet; bei ipr' = npr wird dagegen erneut die
Änderungsposition 1 benutzt.
Für beide Nachbarschaftsstrukturen gilt, dass benachbarte Packsequenzen Ps und Ps' bis auf
eine Position bzw. einen Packraum den Einsatz lokaler Anordnungen vorschreiben, die in der
jeweiligen Anordnungsliste denselben Platz einnehmen. Benachbarte Packpläne sind also
hinsichtlich der relativen Güte ihrer Anordnungen ähnlich. Beide Nachbarschaften können in
diesem Sinne als Güteumgebungen charakterisiert werden. Die unmodifizierte Basisheuristik
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 45
füllt als Greedy-Heuristik alle Packräume lokal optimierend. Dagegen zielt die Tabu-Suche
darauf ab, unter Verzicht auf lokal besonders günstige Anordnungen für einzelne Packräume,
eine Gesamtlösung in der Nähe des globalen Optimums zu finden. Eben dieses Ziel wird
durch die eingeführten Nachbarschaften unterstützt.
Jede in einem Iterationsschritt ermittelte benachbarte Packsequenz Ps' einer gegebenen
Ausgangssequenz Ps wird mittels der modifizierten Basisheuristik in eine zulässige Lösung
überführt. Im Zuge dieser Transformation wird auch die jeweilige Volumenauslastung des
Containers als Zielfunktionswert ermittelt. Genauer gesagt wird die Packsequenz Ps'
zweimal in eine zulässige Lösung transformiert. Während bei der ersten Transformation für
alle Packräume nur 1-Anordnungen zugelassen sind, werden bei der zweiten Transformation
auch 2-Anordnungen berücksichtigt. Als Lösung wird die Lösung mit dem höheren
Zielfunktionswert verwendet. Man beachte, dass aufgrund der sukzessiven Verarbeitung
mehrerer Packräume die erste Transformationsvariante durchaus zur besseren Lösung führen
kann.
Die Verwaltung der Tabuliste wird wie folgt gestaltet. Nach jedem Iterationsschritt wird die
Tabuliste um eine Lösung erweitert, nämlich um die beste ermittelte Lösung aus der
berechneten Nachbarschaft. Diese Lösung wird in der Tabuliste abgelegt und wird
dementsprechend in den nächsten Iterationen nicht zur Konkurrenz zugelassen. Auf diese
Weise soll ein zyklischer Suchverlauf vermieden werden.
Aufgrund des hohen Transformationsaufwands kommt nur eine relativ kleine Anzahl an
Iterationsschritten in Betracht. Der Verwaltungsaufwand für die Tabuliste fällt daher absolut,
wie auch im Verhältnis zum Transformationsaufwand, gering aus, obwohl komplette
Lösungen in der Tabuliste verwaltet werden. Die maximale Länge der Tabuliste wird durch
die Iterationszahl gegeben. Folglich bleibt eine einmal erzeugte, iterationsbeste Lösung für
den Rest der Suche „tabu“ und Zyklen werden garantiert ausgeschlossen. Bei dem
gewähltem Ansatz für die Tabuliste sind Aspirationskriterien offenbar überflüssig, denn sie
dienen gewissermaßen dazu, den Tabustatus einer „irrtümlich“ tabuisierten Lösung zu
übersteuern.
Anfangs wird bei der Tabu-Suche eine Packsequenz benutzt, die an allen Positionen den
Anordnungsindex 1 aufweist. Die Ausgangslösung entspricht daher der mit Hilfe der
unmodifizierten Basisheuristik bestimmten Lösung (vgl. Kapitel 2.2, Alg. 1).
46 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
2.3.3 Ausgestaltung des TSA
Zur Konfigurierung des TSA sollen nun die Parameterwerte festgesetzt, ein
Diversifikationskonzept eingeführt sowie Terminierungskriterien festgelegt werden.
Zusätzlich zu den vier Parametern der Basisheuristik (vgl. Abschnitt 2.2) werden drei weitere
Parameter eingeführt. Der Parameter nIter legt die Anzahl der Iterationen der Tabu-Suche
fest. Der Parameter nbhType gibt an, ob die große Nachbarschaft (Parameterwert 0) oder die
kleine Nachbarschaft (Parameterwert 1) verwendet wird.
Der Umfang von Nachbarschaften wird bereits durch den Parameter maxArr der
Basisheuristik beeinflusst, welcher die Anzahl der zu berücksichtigenden lokalen
Anordnungen pro Packraum begrenzt. Zur weiteren Reduzierung beider Nachbarschaften
wird außerdem der Parameter nbhDecrease eingeführt, welcher ganzzahlige Werte ab 1
annehmen kann. Für eine bestimmte Änderungsposition ipr' sei in der Packsequenz Ps die
Anordnung Ps(ipr').ia vorgesehen, bei insgesamt Ps(ipr').na möglichen Anordnungen. Dann
werden nur solche alternativen lokalen Anordnungen für die Änderungsposition ipr'
zugelassen, deren Indizes ia' der folgenden Ungleichung genügen:
ia' - Ps(ipr').ia ≤ Ps(ipr').na / nbhDecrease
Bei nbhDecrease = 1 wird die Nachbarschaft demnach nicht beschränkt. Bei Parameterwert
nbhDecrease > 1 werden die zugelassenen alternativen Anordnungen pro Änderungsposition
auf solche beschränkt, die eine ähnliche Bewertung haben wie die ursprüngliche Anordnung.
Das Verfahren verwendet darüber hinaus folgendes Diversifikationskonzept. Der gesamte
Suchprozeß wird in nPhases verschiedene Suchphasen aufgefächert. Jede Phase geht von der
Greedy-Lösung der (unmodifizierten) Basisheuristik aus. Am Phasenanfang wird die
Tabuliste leer initialisiert. Die erwünschte Diversifikation wird erreicht, indem jeder Phase
ein unabhängiger Satz der oben genannten sieben Parameter zugeteilt wird. Eine zusätzliche
Diversifikation der Suche kann mittels der Stabilitätsrestriktion (C3a) erfolgen, wenn diese
lediglich eine teilweise Unterstützung der verstauten Kisten verlangt. Dies wird erreicht,
indem in einzelnen Suchphasen der vorgeschriebene Prozentsatz der Unterstützung beider
horizontalen Maße einer Kiste gewissermaßen künstlich erhöht wird (vgl. Abschnitt 2.5).
Die Beendigung des gesamten Verfahrens wird durch zwei Terminierungskriterien festgelegt.
Das Verfahren bricht ab, wenn entweder alle nPhases Suchphasen durchlaufen oder eine
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 47
vorgegebene Rechenzeitschranke maxTime überschritten wurde, oder falls alle Kisten in
einer Lösung verstaut werden konnten. Als Verfahrenslösung wird die Bestlösung aller
berechneten Phasen ausgegeben.
2.4 Paralleler Tabu Search-Algorithmus
TOULOUSE et al. (1996) unterscheiden drei Typen von Parallelisierungsstrategien, welche
vorrangig für kombinatorische Probleme geeignet sind und auch meist angewendet werden:
(1) Parallelisierung von Teilschritten innerhalb einer Iteration des Verfahrens, (2) Aufteilung
des Problembereichs oder des Lösungsraums, und (3) mehrfache Suchprozesse mit
verschiedenen Graden der Synchronisierung und Kooperation. Welcher Typ für ein paralleles
Optimierungsverfahren im Einzelfall in Betracht kommt, hängt vor allem von der Zielsetzung
ab, die mit der Parallelisierung verfolgt wird. Da hier die Verbesserung der Lösungsqualität
im Vordergrund steht, wird für die Parallelisierung ein Ansatz vom Typ 3 gewählt.
Ein gegebenes Containerbeladeproblem wird durch mehrere Prozesse simultan bearbeitet.
Jeder Prozess stellt eine Instanz des sequentiellen TSA dar und löst das vollständige Problem.
Allerdings werden die einzelnen Prozesse unterschiedlich konfiguriert. Ferner kooperieren
die Prozesse durch den Austausch von berechneten Lösungen. Ein Prozess verwendet die
empfangene Lösung eventuell als Ausgangspunkt für dessen weitere Suche. Während die
unterschiedliche Konfiguration der Prozesse ein Mittel zur Diversifikation der Suche
darstellt, dient der Austausch von Lösungen der Intensivierung der Suche in den
Nachbarregionen der ermittelten Bestlösungen. Der umrissene Parallelisierungsansatz, bei
dem mehrere Prozesse ein Problem autonom bearbeiten und zugleich durch
Informationsaustausch kooperieren, wird nach einem treffenden Ausdruck von
ENSLOW (1978) auch als Modell der kooperativen Autonomie bezeichnet.
Jeder der autonomen Prozesse wird einer Workstation in einem lokalen Netzwerk (LAN)
zugewiesen. Daher handelt es sich bei dem parallelen TSA genauer gesagt um ein verteilt-
paralleles Verfahren. Dieses als PTS (Parallel, Tabu Search) bezeichnete Verfahren wird
nachfolgend näher beschrieben.
2.4.1 Gliederung der Suche und Formen der Kommunikation
Jeder Prozess von PTS wird entsprechend dem Diversifikationskonzept des sequentiellen
TSA in mehrere Phasen gegliedert. Zur Definition der Phasen aller Prozesse sollen möglichst
48 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
günstige Parametersätze benutzt werden, die bei Experimenten mit dem sequentiellen TSA
ermittelt werden. Ferner sollen die Parametersätze im Hinblick auf Güte und Rechenaufwand
annähernd gleichmäßig auf die Prozesse verteilt und pro Prozess die aussichtsreichsten
Parametersätze möglichst in frühen Phasen eingesetzt werden. Auf diese Weise wird die
beabsichtigte intensivere Erkundung von Gebieten mit hochwertigen Lösungen in höherem
Maße unterstützt.
Was die Häufigkeit der Kommunikation bzw. die Anzahl der Kommunikationszeitpunkte
betrifft, ist der Typ des zugrundeliegenden sequentiellen Verfahrens, im gegebenen Fall ein
TSA, zu berücksichtigen. Eine allzu häufige Kommunikation gefährdet bei den einzelnen
Prozessen die intensive Erkundung von beschränkten Regionen des Suchraumes. Daher ist
von vornherein eine Kommunikation mit eher geringer Frequenz vorzusehen. Hier wird ein
Austausch von Bestlösungen pro Prozess nur bei einem Übergang von einer Phase zur
nächsten Phase durchgeführt.
Kommunikationsmodell
Der Lösungsaustausch erfolgt mittels eines Kommunikationsobjekts. Dieses nimmt
Lösungen der Prozesse auf und stellt sie ihnen wieder zur Verfügung. Die Organisation des
Kommunikationsobjekts wird von dem verwendeten Kommunikationsmodell bestimmt.
Dieses legt die möglichen Kommunikationspfade fest. Als Kommunikationsmodell sind
alternativ die Varianten „Ring“ und „Blackboard“ vorgesehen. Das Kommunikationsobjekt
wird mittels einer Datenbank realisiert.
Im Falle des Kommunikationsmodells Ring wird die Datenbank in separate Bereiche
gegliedert. Jeder Bereich ist einem Prozess fest zugeordnet. Ein Prozess legt seine Lösungen
nur in seinem Datenbankbereich ab. Jeder Bereich ist als Schlange gemäß dem FIFO-Prinzip
organisiert. Eine neue Lösung wird stets am Ende der Schlange eingefügt. Die Prozesse
werden zu einem Ring verknüpft, so dass jeder Prozess genau einen Vorgänger besitzt. Ein
Prozess liest jeweils die Lösung am Anfang der Schlange seines Vorgängers aus. Diese wird
danach entfernt. Folgende Abb. 5 verdeutlicht das Kommunikationsmodell Ring.
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 49
Prozess1
Prozess2
Prozess3
Prozess4
P2P3P4P1
Prozess1
Prozess2
Prozess3
Prozess4
Prozess1
Prozess2
Prozess3
Prozess4
P2P3P4P1
Prozess1
Prozess2
Prozess3
Prozess4
P2P3P4P1
Prozess1
Prozess2
Prozess3
Prozess4
Abb. 5. Ring-Kommunikationsmodell.
Bei dem Kommunikationsmodell Blackboard wird die Datenbank als einheitlicher Bereich
organisiert, in welchem alle Prozesse ihre Lösungen ablegen und aus dem sie Lösungen
entnehmen. Der Bereich wird als Stapel gemäß dem LIFO-Prinzip verwaltet. Eine von einem
Prozess bereitgestellte Lösung wird als oberstes Element in den Stapel eingefügt und jeder
Prozess liest jeweils die oberste Lösung des Stapels. Anders als bei einem Ring wird eine
gelesene Lösung nicht entfernt. Sie bleibt für den Zugriff durch andere Prozesse bis zum
nächsten Schreibvorgang erhalten. Da die Prozesse im Laufe der Suche i.A. Lösungen von
besserer Qualität finden, ist es durchaus beabsichtigt, dass nur die jeweils zuletzt eingefügte
Lösung für Lesezugriffe verfügbar ist. Abb. 6 veranschaulicht das Kommunikationsmodell
Blackboard.
Prozess1
Prozess2
Prozess3
Prozess4
1. sol n2. sol n-1…
Prozess1
Prozess2
Prozess3
Prozess4
Prozess1
Prozess2
Prozess3
Prozess4
1. sol n2. sol n-1…
Prozess1
Prozess2
Prozess3
Prozess4
Abb. 6. Blackboard-Kommunikationsmodell.
Austausch von Lösungen
Am Ende einer Phase stellt ein Prozess von PTS seine aktuelle Bestlösung, d.h. die beste
während der bisherigen Suche von ihm gefundene Lösung, für andere Prozesse bereit. Zu
Beginn der nächsten Phase liest der Prozess eine Fremdlösung, die von einem anderen
Prozess bereitgestellt wurde. Die gelesene Lösung bildet unter Umständen den
50 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
Ausgangspunkt der Suche des übernehmenden Prozesses. Sie fungiert in diesem Fall als
Startlösung der nächsten Phase. Die nächste von dem Prozess untersuchte Nachbarschaft ist
somit eine Nachbarschaft der Fremdlösung.
Ausgetauscht werden zum einen Packsequenzen, d.h. kodierte Lösungen. Gemeinsam mit
einer Packsequenz werden auch die Parameter der Phase, welche zu der übernommenen
Lösung gehören, übergeben. Nur so ist sichergestellt, dass die Transformation der
Packsequenz auch bei dem übernehmenden Prozess zu einer hochwertigen Lösung führt.
Dient also eine übernommene Fremdlösung als Startlösung der nächsten Phase des
übernehmenden Prozesses, so werden der Phase auch die zur Fremdlösung gehörenden
Parameter zugrunde gelegt.
Für die Verarbeitung von Fremdlösungen werden zwei Alternativen vorgesehen, von denen
eine jeweils für alle Prozesse anzuwenden ist. Bei der unbedingten Übernahme von
Fremdlösungen bildet eine gelesene Fremdlösung stets den Ausgangspunkt der weiteren
Suche. Bei der bedingten Übernahme wird die Fremdlösung nur dann als neue Startlösung
verwendet, wenn sie einen höheren Zielfunktionswert besitzt als die bisherige Bestlösung des
Prozesses. Andernfalls setzt der Prozess seine Suche so fort, als ob die Kommunikation nicht
stattgefunden hätte. Insbesondere werden die vordefinierten Parameter für die nächste Phase
verwendet.
Im Zuge der Übernahme einer Fremdlösung wird der Umfang der nachfolgend untersuchten
Nachbarschaften vergrößert. Dies wird durch das Absenken des Parameters
nbhDecrease um 1 bei dem übernehmenden Prozess erreicht (vgl. Kapitel 2.3.3). Durch eben
diese Maßnahme wird gewährleistet, dass die Region der übernommenen hochwertigen
Lösung nachfolgend intensiver abgesucht wird. Um das Ausufern der Rechenzeit von PTS zu
verhindern, sollen pro Prozess insgesamt weniger Phasen bearbeitet werden als im Falle des
sequentiellen TSA.
Weitere Details
Unter den für die Suche eingesetzten Prozessen wird ein einzelner Prozess von PTS aus der
Kommunikation ausgeschlossen. Er führt als sequentieller TSA eine isolierte Suche durch.
Die von ihm ermittelte Bestlösung wird jedoch abschließend in die Ermittlung der
Bestlösung einbezogen. Auf diese Weise wird die Lösungsqualität des sequentiellen
Verfahrens keinesfalls unterschritten.
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 51
Die Terminierung von PTS wird durch den so genannten Master, ein zusätzliches
Steuerprogramm, geregelt. Das Parallelverfahren terminiert, wenn entweder alle Prozesse
jeweils alle Suchphasen durchlaufen haben oder wenn der Master feststellt, dass die
vorgegebene Zeitschranke maxTime vom verteilt-parallelen System überschritten wurde. Bei
Beendigung der Suche wird die beste aller durch die gesamte Prozessgruppe ermittelten
Lösungen als Verfahrenslösung ausgegeben.
2.5 Verfahrenstest
Der TSA wurde in C implementiert. Zur Durchführung der Prozesskommunikation wurde
das Datenbanksystem BTRIEVE verwendet. Der Test des TSA umfasst zwei Schritte.
Zunächst wird die Konfiguration des sequentiellen und des parallelen TSA festgelegt. Im
zweiten Schritt wird der TSA mit Containerbeladeverfahren anderer Autoren verglichen. Als
LAN-Workstations standen Intel-Personalcomputer mit einer Taktfrequenz von 2 GHz zur
Verfügung. Nachfolgend werden zunächst die verwendeten Testprobleme charakterisiert,
bevor die Ergebnisse vorgestellt werden.
2.5.1 Verwendete Testinstanzen
Für den Test werden bekannte Referenzprobleme aus der Literatur verwendet. Dabei handelt
es sich um 15 Probleme von LOH und NEE (1992) sowie um 700 Testprobleme von
BISCHOFF und RATCLIFF (1995). Die Probleme von LOH und NEE weisen durchweg einen
schwach heterogenen Kistenvorrat auf. Die Probleme von BISCHOFF und RATCLIFF gliedern
sich in 7 Testfälle mit je 100 Problemen. Bei den 7 Testfällen variiert der Charakter der
Kistenmengen von schwach heterogen bis stark heterogen. Alle Probleme eines Testfalls
besitzen zudem eine konstante Anzahl von Kistentypen.
Die Probleminstanzen beider Gruppen beinhalten eine Orientierungsrestriktion (C1). Um
auch eine Stabilitätsrestriktion (C2) berücksichtigen zu können, wird für jede Instanz ein
zusätzliches Attribut minSupport eingeführt. Es legt den Prozentsatz der Bodenfläche einer
Kiste fest, welcher durch weitere Kisten unterstützt werden muss (falls die Kiste nicht auf
dem Containerboden ruht). Im Verfahrenstest sollen zwei extrem gewählte Werte für die
geforderte minimale Unterstützung von Kisten berücksichtigt werden. Der Wert
minSupport = 55 gewährleistet zumindest, dass ein Abkippen von Kisten vermieden wird.
52 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
Für den Wert minSupport = 100 muss die Grundfläche jeder verstauten Kiste vollständig
unterstützt werden.
2.5.2 Vortests zur Konfigurierung des TSA
Eingegangen wird zunächst auf die Konfiguration des sequentiellen und anschließend des
parallelen TSA.
Durch Experimente von beschränktem Umfang wurde ermittelt, dass für den sequentiellen
TSA eine Gliederung der Suche in sechs Phasen (nPhases = 6) sinnvoll ist. Ferner wurden
für beide vorgesehenen Werte von minSupport jeweils Parametersätze für sechs Suchphasen
bestimmt. Folgende Tabelle 10 enthält die Parametersätze. Die verwendeten Parameter
wurden oben eingehend erläutert. Wie bereits bemerkt, kann bei einem vorgegebenen Wert
von minSupport < 100 dieser Wert für einzelne Suchphasen künstlich erhöht werden, um
eine zusätzliche Diversifikation der Suche zu erreichen. So wurde hier (bei vorgegebenem
Parameter minSupport = 55) in der dritten Suchphase der zugehörige phasenspezifische Wert
phMinSupport auf den Wert 100 erhöht. Für den Parameter nbhDecrease wird
übereinstimmend der Wert 3 verwendet, der eine hohe Lösungsqualität bei akzeptablem
Aufwand gewährleistet. Die Phasen-IDs wurden absteigend nach der erreichbaren
Lösungsgüte vergeben. Die Reihenfolge stimmt mit derjenigen des größten Rechenaufwands
überein.
Tab. 10. Parametersätze für den sequentiellen TSA.
Parametersätze für 6 Phasen des sequentiellen TSA (obere 6 Sätze für minSupport = 55; untere 6 Sätze für minSupport = 100)
Phasen ID
phMin Support
cutEval Mode
arrEval Mode
max Arr
above Arr
nbh Type nIter nbh
Decrease
1 55 0 1 100 1 1 100 3
2 55 0 1 50 1 0 20 3
3 100 0 1 100 0 1 100 3
4 55 0 0 100 0 1 100 3
5 55 1 1 50 1 0 20 3
6 55 1 1 100 1 1 100 3
1 100 0 1 100 1 1 100 3
2 100 0 1 50 1 0 20 3
3 100 0 1 100 0 1 100 3
4 100 0 0 100 0 1 100 3
5 100 0 0 100 1 1 100 3
6 100 0 0 50 0 0 20 3
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 53
Beim parallelen TSA wird die Anzahl der Prozesse nProc auf 4 festgelegt. Die allgemeine
Vorgehensweise bei der Konfiguration wurde bereits erläutert. Einer der vier Prozesse nimmt
nicht an der Kommunikation teil und wird wie der sequentielle TSA mit sechs Phasen
konfiguriert. Für die übrigen drei Prozesse sind jeweils nur vier Phasen vorgesehen, während
der Parameter nbhDecrease (ausgehend von dem Wert 3) nunmehr phasenweise verringert
wird. Die Phasen werden im Übrigen identisch zum sequentiellen TSA ausgelegt.
In Tab. 11 wird angegeben, wie die Parametersätze der Phasen des sequentiellen TSA auf die
kommunizierenden Prozesse verteilt werden.
Tab. 11. Aufteilung der Parametersätze auf drei TSA-Prozesse von PTS.
Konfiguration der kommunizierenden Prozesse des parallelen TSA
Phase Prozess 1 (Phasen-IDs)
Prozess 2 (Phasen-IDs)
Prozess 3 (Phasen-IDs)
erste 1 2 3
zweite 4 5 6
dritte 2 3 4
vierte 5 6 1
Festzulegen bleibt einerseits das Kommunikationsmodell (Ring oder Blackboard). Zu
bestimmen ist andererseits, ob Fremdlösungen von einem Prozess unbedingt oder nur
bedingt, d.h. abhängig von der relativen Lösungsgüte, verarbeitet werden. Aus beiden
Alternativen leiten sich vier Varianten der Konfiguration ab. Vortests ergaben, dass sich die
erreichbare Volumenauslastung im Container nur geringfügig unterscheidet (um maximal
0.2% des Containervolumens). Die beste Variante bildete das Kommunikationsmodell
„Ring“ und die unbedingte Übernahme von Fremdlösungen. Diese wird dem folgenden
Vergleichstest zugrunde gelegt. Als Zeitschranke wird für den sequentiellen und den
parallelen TSA einheitlich maxTime = 600 s. gewählt.
2.5.3 Vergleichstests
Vorab sei bemerkt, dass die Resultate der Vergleichsverfahren stets den angegebenen
Literaturquellen entnommen wurden. Anhand der 15 Probleme von LOH und NEE (1992)
kann der TSA mit den Heuristiken von LOH und NEE (1992), NGOI et al. (1994),
BISCHOFF et al. (1995), BISCHOFF und RATCLIFF (1995) sowie mit den GA von GEHRING und
BORTFELDT (1997) bzw. BORTFELDT und GEHRING (2001) verglichen werden. Tab. 12 gibt
die Ergebnisse des Vergleichstests an. Bemerkt sei, dass LOH und NEE (1992) anstelle der
54 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
Volumenauslastung der Kisten im Container (VU) eine als „Packdichte“ bezeichnete
Auslastungsgröße angeben, die die Volumenauslastung überschätzt (vgl. BISCHOFF und
RATCLIFF, 1995). Je ein Bestwert wird für alle Verfahren gezählt, die den besten bekannten
Auslastungswert für eine Probleminstanz erreicht haben. Ein globales Optimum wird gezählt,
wenn ein Verfahren sämtliche Kisten einer Probleminstanz verstaut hat. Für den
sequentiellen und parallelen TSA wird jeweils minSupport = 100 gewählt. Die beiden letzten
Spalten von Tabelle 12 enthalten die Ergebnisse des im Rahmen dieses Kapitels vorgestellten
Verfahrens.
Tab. 12. Ergebnisse für die 15 Testprobleme von LOH und NEE.
LOH und NEE 1992
NGOI et al. 1994
BISCHOFF et al.
(1995)
BISCHOFF und
RATCLIFF (1995)
GEHRING und
BORTFELDT (1997)
BORTFELDT und
GEHRING (2001)
sequ. TSA PTS
Resultat
Pack-dichte (in %)
VU (in %)
VU (in %)
VU (in %)
VU (in %)
VU (in %)
VU (in %)
VU (in %)
Mittel wert
74.2 69.0 69.5 68.6 70.0 70.1 70.9 70.9
Best werte
11 11 10 11 12 13 15 15
globale Optima
11 11 10 11 12 13 13 13
Zusammengefasst erzielt der TSA für die Probleme von LOH und NEE bessere Ergebnisse als
alle Vergleichsverfahren. Durch die Parallelisierung wird allerdings hier keine Verbesserung
erreicht.
Für die 700 Testprobleme von BISCHOFF und RATCLIFF liegen Ergebnisse für die Heuristiken
von BISCHOFF et al. (1995), BISCHOFF und RATCLIFF (1995) sowie die GA von GEHRING und
BORTFELDT (1997) bzw. BORTFELDT und GEHRING (2001) vor. Sie sind zusammen mit den
Resultaten für den TSA in folgender Tab. 13 zusammengefasst. Für den sequentiellen und
parallelen TSA (PTS) wird hier jeweils minSupport = 55 gewählt. Pro Testfall werden die
Anzahl der Kistentypen sowie die mittlere Kistenanzahl pro Typ für die Probleme des
Testfalls angegeben.
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 55
Tab. 13. Ergebnisse für die 700 Testprobleme von BISCHOFF und RATCLIFF.
BISCHOFF et al.
(1995)
BISCHOFF und
RATCLIFF (1995)
GEHRING und BORTFELDT
(1997)
BORTFELDT und GEHRING
(2001)
sequ. TSA PTS
Testfall
(Anzahl Kistentypen;
mittlere Kistenanzahl
pro Typ)
VU (in %)
VU (in %)
VU (in %)
VU (in %)
VU (in %)
VU (in %)
BR1 (3; 50.1) 81.76 83.79 85.80 87.81 93.23 93.52
BR2 (5; 27.3) 81.70 84.44 87.26 89.40 93.27 93.77
BR3 (8; 16.8) 82.98 83.94 88.10 90.48 92.86 93.58
BR4 (10; 13.3) 82.60 83.71 88.04 90.63 92.40 93.05
BR5 (12; 11.1) 82.76 83.80 87.86 90.73 91.61 92.34
BR6 (15; 8.8) 81.50 82.44 87.85 90.72 90.86 91.72
BR7 (20; 6.5) 80.51 82.01 87.68 90.65 89.65 90.55
Mittelwert 82.0 83.5 87.5 90.1 92.0 92.7
Die Ergebnisse dieses Vergleichstests lassen sich wie folgt zusammenfassen:
• Der sequentielle und der parallele TSA schneiden im Hinblick auf die mittlere
Volumenauslastung deutlich besser ab als alle Vergleichsverfahren. Die
Parallelisierung des TSA bringt im Mittel einen Zuwachs der Auslastung, der bei
0.66% des Containervolumens liegt. Auch bezüglich der Standardabweichungen pro
Testfall erreicht der TSA gute Ergebnisse. Die Standardabweichung der Auslastung
beträgt für alle sieben Testfälle maximal 2.25 % des Containervolumens. Die mittlere
Rechenzeit pro Problem liegt für alle Testfälle stets unter 198 s. und beträgt im Mittel
über alle 700 Probleme 127 s.
• Beim Test aller Vergleichsverfahren wurde eine vollständige Kistenunterstützung
gefordert bzw. realisiert. Im Interesse eines fairen Vergleichs wurde daher ein weiterer
Testlauf für den sequentiellen und den parallelen TSA mit dem Wert minSupport = 100
durchgeführt. Hierbei wurden mittlere Auslastungen von 91.6% für den sequentiellen
TSA und 92.2% für den parallelen TSA (PTS) erzielt. Daraus folgt, dass die Rangfolge
der Verfahren hinsichtlich der Volumenauslastung durch die geforderte
Kistenunterstützung nicht verändert wird. Es verdeutlicht zugleich den möglichen
Zugewinn an Volumenauslastung durch eine abgeschwächte Stabilitätsrestriktion
(C3a). Erwähnt sei allerdings noch, dass das Verfahren von BISCHOFF et al. (1995)
hinsichtlich weiterer Stabilitätskenngrößen bessere Werte als der TSA erreicht. Dies
betrifft etwa die zu maximierende mittlere Anzahl unterstützender Kisten pro verstauter
Kiste.
56 Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP
• Die erreichten mittleren Auslastungen pro Testfall fallen bei dem TSA von
Testfall 1 bis 7 stetig ab. Der TSA erreicht demnach die besten Auslastungswerte für
schwach heterogene Kistenmengen. Hierfür ist das Design der Basisheuristik
verantwortlich. Die erreichbare Auslastung hängt wesentlich davon ab, ob für eine
Bildung von kompakten und raumsparenden Blöcken in ausreichendem Maße Kisten
gleichen Typs zur Verfügung stehen. Man beachte, dass der für stark heterogene
Kistenvorräte konzipierte GA von BORTFELDT und GEHRING (2001) beim Test ein
komplementäres Verhalten zeigt.
Von Interesse ist die Frage, ob und in welchem Maße die Kommunikation der (drei) Prozesse
von PTS sich auf den Zuwachs an Volumenauslastung gegenüber dem sequentiellen TSA
auswirkt. Daher wurden die Probleme von BISCHOFF und RATCLIFF nochmals mit PTS
berechnet, diesmal allerdings ohne Kommunikation zwischen den Prozessen. Für eine
geforderte Unterstützung von minSupport = 55 ergab sich eine mittlere Auslastung über alle
700 Probleme von 92.5% ohne Kommunikation, gegenüber 92.7% mit Kommunikation. Der
durch die Kommunikation erhoffte synergetische Effekt ist also eher gering.
2.6 Zusammenfassung der Ergebnisse
In diesem Kapitel wurde ein paralleler TSA (PTS) für das Containerbeladeproblem
vorgestellt. Das dreistufige Verfahren verwendet für die Parallelisierung den Ansatz der
kooperativen Autonomie nach TOULOUSE et al. (1996), bei welchem mehrere unabhängige
Instanzen des zugrundeliegenden sequentiellen TSA durch den Austausch von Lösungen
kooperieren.
Der Vergleichstest mit anderen Heuristiken zeigt, dass schon der sequentielle TSA eine sehr
gute Auslastung des Containervolumens erreicht. Diese konnte durch die Parallelisierung
noch leicht verbessert werden. Die Kommunikation zwischen den TSA-Instanzen hat daran
allerdings nur einen geringen Anteil. Ähnliche Ergebnisse liegen bereits vor.
CRAINIC et al. (1995) etwa berichten, dass die besten Resultate bei der Parallelisierung eines
TSA für ein Standortproblem dann erreicht wurden, wenn auf eine Kommunikation der
Prozesse völlig verzichtet wurde.
Bisherige Erfahrung bei der Parallelisierung von Containerbeladeverfahren zeigen, dass die
Parallelisierung eine erfolgversprechende methodische Erweiterung von Lösungsverfahren
Kapitel 2 : Ein verteilt paralleles Tabu Search-Verfahren für das CLP 57
darstellt. Die Parallelisierung eines Verfahrens kann als sinnvolle Ergänzung in Betracht
gezogen werden, nachdem andere Möglichkeiten der Verbesserung eines (sequentiellen)
Verfahrens „ausgereizt“ wurden. Jedoch ist nur ein begrenzter Zuwachs an Lösungsqualität
zu erwarten.
Es erscheint zudem durchaus möglich, dass ein höherer Qualitätszuwachs durch
Parallelisierung erzielt werden kann, wenn Metaheuristiken verschiedener Typen innerhalb
eines hybriden Parallelverfahrens zum Einsatz gelangen. Hierfür spricht, dass sich
Metaheuristiken verschiedenen Typs bekanntlich im Hinblick auf die Balance zwischen
Exploration und intensiver Erkundung begrenzter Regionen des Suchraumes wesentlich
unterscheiden.
Das folgende Kapitel widmet sich daher der Integration der Suchstrategien Tabu Search und
Simulated Annealing zu einem neuartigen hybriden verteilt-parallelen Ansatz.
58 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
3 Ein parallel-hybrides Local Search-Verfahren für das CLP
3.1 Zielsetzung und Vorgehensweise
In diesem Kapitel soll das Verfahren PTS aus Kapitel 2 zu einem verteilt-parallelen hybriden
Algorithmus erweitert werden. Dies soll in mehreren Schritten geschehen.
• Simulated Annealing soll als Alternative zu Tabu Search eingesetzt werden.
• Beide Suchstrategien (Tabu Search und Simulated Annealing) sollen kombiniert und in
ein so genanntes hybrides Verfahren (HYB) integriert werden.
• Schließlich sollen verteilt-parallele Varianten des Simulated Annealing Algorithmus
(PSA) und des hybriden Verfahrens (PHYB) eingeführt werden.
Folgende Abb. 7 gibt einen Überblick über die verschiedenen Verfahren und ihre
Wechselbeziehungen. Insbesondere wird gezeigt, dass die Module PSA und PHYB aus
ähnlichen Modulen bestehen wie das Verfahren PTS.
Parallel Hybrides Verfahren (PHYB)
Paralleles SA Verfahren(PSA)
Paralleles TS Verfahren(PTS)
Tabu Search(TS)
Simulated Annealing(SA)
Hybrides Verfahren(HYB)
Basisheuristik
Parallel Hybrides Verfahren (PHYB)
Paralleles SA Verfahren(PSA)
Paralleles TS Verfahren(PTS)
Tabu Search(TS)
Simulated Annealing(SA)
Hybrides Verfahren(HYB)
Basisheuristik
Abb. 7. Überblick der Verfahren und ihrer Wechselbeziehungen.
Vorrangiges Ziel der Erweiterungen ist eine Verbesserung der Lösungsqualität. Zusätzlich
sollen folgende methodische Aspekte geklärt werden:
• Die generelle Eignung der Metaheuristiken TS und SA zur Lösung von C&P-
Problemen soll untersucht werden. Die problemspezifischen Komponenten für TS und
SA sind im vorliegenden Fall absolut identisch. Sie sind gegeben durch die
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 59
Basisheuristik und die Nachbarschaftsstrukturen. Somit ist hier ein objektiver Vergleich
der beiden Metaheuristiken anhand der Ergebnisse möglich.
• Nach Möglichkeit sollen Synergieeffekte durch die Kombination der beiden
Suchstrategien zu einem hybriden Konzept genutzt werden.
• Die Vorteilhaftigkeit der Parallelisierung der jeweiligen Suchstrategien (TS, SA und
Hybrid) und des Austauschs erfolgreicher Lösungen zwischen den Suchprozessen
werden untersucht.
TS und SA haben einige Gemeinsamkeiten. Beide Strategien sind verschiedene, bekannte
intelligente Techniken der lokalen Suche. Beide müssen vermeiden, während des
Suchprozesses in lokalen Optima stecken zu bleiben, einem typischen Problem bei
Verbesserungsverfahren wie Hillclimbing-Verfahren. Gemeinsam ist beiden Strategien
ebenfalls die allgemeine Art und Weise ihrer Implementierung. Einerseits sind bestimmte
problemspezifische Vorbereitungen zu treffen bzgl. der Darstellung und Erzeugung von
Lösungen. Außerdem ist eine geeignete Nachbarschaftsstruktur einzuführen. Andererseits
gibt es allgemeine Gesichtspunkte bezüglich der Anpassung und Konfigurierung der
allgemeinen Suchstrategie auf das konkrete Problem. Für eine verständliche Einführung in
die Theorie der Suchstrategien TS und SA sei auf REEVES (1993) bzw. HENDERSON
et al. (2003) verwiesen.
Entsprechend den vorigen Ausführungen ist der Rest des Kapitels wie folgt aufgebaut: in
Abschnitt 3.2 und 3.3 werden die problemspezifischen und die allgemeinen Aspekte des SA-
Ansatzes behandelt. In Kapitel 3.4 werden der TSA und der SAA zu einem hybriden
Verfahren zusammengefasst. Die SA- und Hybrid-Variante werden anschließend in Kapitel
3.5 parallelisiert. In Kapitel 3.6 werden die Resultate umfangreicher numerischer Tests
vorgestellt und ausgewertet. Die Ergebnisse werden schließlich in Abschnitt 3.7
zusammengefasst.
3.2 Problemspezifische Aspekte des Simulated Annealing
Zum Entwurf eines auf Simulated Annealing basierenden Algorithmus müssen einige
Vorentscheidungen zu folgenden problemspezifischen Aspekten bzw. Komponenten
getroffen werden:
60 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
• Der Entwurf eines Basisverfahrens zur Erzeugung einzelner zulässiger Lösungen.
• Die Darstellung zulässiger Lösungen und des gesamten Lösungsraums.
• Die Definition einer Nachbarschaftsstruktur, welche für eine gegebene Lösung die
Menge an zulässigen Nachbarlösungen definiert, welche in einem einzelnen Schritt
erreicht werden können.
• Die Definition einer Zielfunktion zur Bestimmung der Lösungsqualität einer einzelnen
Lösung und zum Vergleich mit konkurrierenden Lösungen.
Im Folgenden werden diese einzelnen Punkte für das gegebene C&P-Problem behandelt.
Außerdem wird ein Konzept zur Diversifizierung der Suche beschrieben.
3.2.1 Erzeugen einzelner Lösungen für das CLP
Die Basisheuristik des Originalverfahrens PTS aus Kapitel 2.2 soll weitestgehend
beibehalten werden. Sie ist verantwortlich für die Erzeugung einzelner zulässiger Lösungen
und hat sich vor allem bei schwach heterogenen Kistenmengen bewährt. Die Heuristik soll
hier nochmals kurz zusammengefasst werden. Für eine ausführlichere Beschreibung sei auf
Kapitel 2.2 verwiesen.
Die Basisheuristik lädt den Container in mehreren Schritten. In jedem Schritt wird ein so
genannter Packraum mit einer oder mehreren Kisten gefüllt (siehe Abb. 8). Ein Packraum ist
dabei ein leerer quaderförmiger Raum innerhalb des Containers mit gegebener Länge, Breite
und Höhe. Zu Anfang der Heuristik stellt der gesamte Innenraum des Containers den
einzigen Packraum dar.
Beim Befüllen der Packräume kommen ausschließlich Anordnungen einer bestimmten
Struktur zum Einsatz. Diese werden als lokale Anordnungen bezeichnet. Eine lokale
Anordnung besteht aus einem oder zwei so genannten Blöcken, welche neben- oder
übereinander im Packraum angeordnet werden. Jeder Block besteht aus Kisten eines Typs,
welche in einer bestimmten Orientierungsvariante angeordnet sind. Der Innenraum eines
Blocks wird vollständig von Kisten ausgefüllt (Abb. 8). Im Fall von 2-Anordnungen werden
die drei Varianten „neben“, „vor“ oder „über“ betrachtet, gemäß der relativen Lage der
Blöcke zueinander.
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 61
Container
Block 2
Packraum
Lokale Anordnung mit 2 Blöcken ineinem Packraum
Block 1
Block 2
Container
Block 2
Packraum
Lokale Anordnung mit 2 Blöcken ineinem Packraum
Block 1
Block 2
Abb. 8. Komponenten der Basisheuristik: Packraum, lokale AO, Blöcke.
Zu Anordnungen bei überhängenden Packräumen sei ergänzend Folgendes bemerkt. Um die
Stabilität der Ladung sicherzustellen, wird die Stabilitätsbedingung (C3a) aus Kapitel 1.2.4
beachtet. Die Grundfläche einer Kiste muss zu einem bestimmten Prozentsatz phMinSupport
vom Containerboden oder anderen Kisten unterstützt werden. Zumindest muss der
Schwerpunkt (Massenmittelpunkt) einer Kiste unterstützt werden, um ein Abkippen des
Packstücks zu vermeiden. Es wird dabei vorausgesetzt, dass der geometrische Mittelpunkt
und der Schwerpunkt der Kiste übereinstimmen. Um zuverlässig instabile Kistenstapel zu
vermeiden, wird zudem gefordert, dass der unterstützte Teil einer Kiste im Bezug zu der vom
Containerboden unterstützten Fläche berechnet wird. In folgender Abb. 9 ist der
Schwerpunkt von Kiste A nicht durch den Containerboden unterstützt, obwohl dieser durch
die direkt unterhalb liegende Kiste gestützt wird. In dem Fall wird die Kiste A daher nicht
verladen. Dies wird dadurch erreicht, dass beim Bilden von Anordnungen in überhängenden
Packräumen sowohl die direkt unterhalb liegende Kistenanordnung als auch die vom
Containerboden unterstützte Fläche dieser Anordnung berücksichtigt werden. Die kleinere
der beiden Flächen bestimmt, wie weit die zu bildende Anordnung maximal überhängen darf.
Für einen gegebenen Packraum werden alle zulässigen Anordnungen testweise erzeugt und
nach verschiedenen Gesichtspunkten bewertet. Bei der Erzeugung der Anordnungen wird die
Orientierungsrestriktion (C1) beachtet (siehe hierzu Kapitel 1.2.4). Die Bewertung der
Alternativen für die in Frage kommenden Anordnungen eines Packraums umfasst das
Restvolumen nach Realisierung der jeweiligen Anordnung, sowie die Möglichkeit der
Erzeugung möglichst erfolgversprechender Nachfolgepackräume aus dem ungenutzten
62 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
Volumen des Packraums. Anschließend wird eine Anordnung ausgewählt und realisiert. Der
nicht genutzte Raum wird in neue quaderförmige Packräume unterteilt und später im
Iterationsprozess analog gefüllt. In jedem Schritt wird der jeweils kleinste verfügbare
Packraum gefüllt. Für eine detailliertere Darstellung sei auf Alg. 1 in Kapitel 2.2 verwiesen.
Schwerpunktder Kiste A
x
z
Schwerpunktder Kiste A
x
z
Abb. 9. Vermeiden instabiler Platzierungen mit Überhang.
Die Stauliste StList enthält die Positionen aller Packräume und die Koordinaten aller
verladenen Kisten innerhalb des entsprechenden Packraums. So beschreibt StList eindeutig
eine vollständige zulässige Lösung.
3.2.2 Darstellung zulässiger Lösungen
Durch den einmaligen Aufruf der Basisheuristik wird eine einzelne Lösung des Problems
erzeugt. Ein Vektor Ps, die so genannte Packsequenz, wird der Basisheuristik übergeben.
Diese steuert den Erzeugungsprozess. Jeder Eintrag in Ps entspricht einem Packraum und
bestimmt die im jeweiligen Packraum zu realisierende Anordnung. Enthält Ps beispielsweise
den Eintrag „2“ an Position 3, so wird die zweitbeste lokale Anordnung für den dritten zu
füllenden Packraum realisiert. Der Transformationsprozess, welcher von der Packsequenz zu
eine zulässigen Lösung führt, wird anhand von Abb. 10 bildlich dargestellt.
Mehrere Transformationsregeln werden eingeführt, um die Eindeutigkeit der Packsequenz
sicherzustellen. Falls die Packsequenz mehr Einträge enthält als die Zahl insgesamt
verfügbarer Packräume, so werden die überzähligen Einträge ignoriert. Stellt sich dagegen
im Laufe der Transformation heraus, dass mehr Packräume entstehen als Einträge in der
Packsequenz vorgesehen sind, so wird der Eintrag „1“ für jeden zusätzlichen Packraum an
die Packsequenz angehängt. So wird sichergestellt, dass in den überzähligen Packräumen die
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 63
jeweils am besten bewertete lokale Anordnung realisiert wird. Ist der Eintrag in der
Packsequenz höher als die Gesamtzahl an möglichen Anordnungen für den jeweiligen
Packraum, so ist der Eintrag zyklisch auszulegen. Da die vorgestellten Packsequenzen
zulässige Lösungen eindeutig bestimmen, können sie zur Definition einer
Nachbarschaftsstruktur herangezogen werden.
{ 13, 2, 7, 9 }Transformation
v = f(s)Evaluation
Packsequenz Ps Zulässige Lösung s Volumenauslastung
Jeder Eintrag in Ps steht füreine bestimmte lokaleAnordnung in einemspezifischen Packraum
{ 13, 2, 7, 9 }Transformation
v = f(s)Evaluation
Packsequenz Ps Zulässige Lösung s Volumenauslastung
Jeder Eintrag in Ps steht füreine bestimmte lokaleAnordnung in einemspezifischen Packraum
Abb. 10. Transformation einer Packsequenz in eine zulässige Lösung.
3.2.3 Nachbarschaftsstruktur
Analog zum ursprünglichen Verfahren PTS aus Kapitel 2 wird zwischen „großer“ und
„kleiner“ Nachbarschaft unterschieden. In beiden Fällen ist eine Lösung als Nachbarlösung
einer anderen Lösung definiert, falls sich beide in genau einer Position der Packsequenz
unterscheiden. An dieser Vektorposition wird dann eine unterschiedliche lokale Anordnung
realisiert (vgl. Kapitel 2.3.2).
Bei der großen Nachbarschaft wird jede Vektorposition bei der Bestimmung von Nachbarn in
Betracht gezogen, während bei der kleinen Nachbarschaft dieser Index für einen gegebenen
Iterationsschritt im Suchverlauf vorgegeben ist. Diese Position wird dann von Iteration zu
Iteration inkrementiert und zyklisch interpretiert. Um zu garantieren, dass mit dem
Algorithmus das Optimum erreichbar ist, muss sichergestellt werden, dass dieses Optimum
von jeder denkbaren Ausgangslösung durch eine Folge von Zügen innerhalb der
Nachbarschaftsstruktur erreichbar ist. Diese so genannte Erreichbarkeitsbedingung ist
offensichtlich durch die oben eingeführte Nachbarschaftsdefinition erfüllt. Im Fall der
kleinen Nachbarschaft bedarf es gegebenenfalls mehrerer Zyklen, bis das Optimum erreicht
werden kann.
Der Nachbarschaftstyp wird durch den Parameter nbhType festgelegt. Beim ursprünglichen
Verfahren PTS wurde ein weiterer Parameter nbhDecrease eingeführt, um die Anzahl der zu
64 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
berechnenden Nachbarlösungen nicht ausufern zu lassen. Der Mindestwert nbhDecrease = 1
entspricht der maximalen Anzahl an Nachbarn.
3.2.4 Zielfunktion
Die Qualität einer Lösung s wird durch die Volumenauslastung der Ladung f(s) bestimmt.
f ist in Prozent des gesamten Containervolumens ausgedrückt. Da eine möglichst hohe
Volumenauslastung angestrebt wird, handelt es sich hier bei f um eine (zu maximierende)
Nutzenfunktion. Alternativ hätte man f als (zu minimierende) Kostenfunktion des
ungenutzten Restvolumens definieren können.
3.2.5 Diversifizierungskonzept
Der Suchprozess ist in mehrere Phasen unterteilt. Zur Diversifizierung der Suche wird für
jede Phase eine spezifische, unabhängige Parameterkonfiguration verwendet. Diese
Parameter sollen kurz skizziert werden. Die Form der lokalen Anordnungen kann durch die
Parameter phMinSupport und aboveArr beeinflusst werden. Die Anzahl der maximal
erzeugten Anordnungen für einen gegebenen Packraum wird durch den Parameter maxArr
begrenzt. Die Bewertungsregeln für lokale Anordnungen werden durch den Parameter
arrEvalMode festgelegt, während cutEvalMode die Regeln zur Erzeugung der
Nachfolgepackräume bestimmt. Für eine detaillierte Beschreibung der fünf Phasenparameter
inklusive des Nachbarschaftsparameters nbhDecrease sei auf Kapitel 2.2.4 verwiesen.
3.3 Generische Aspekte des Simulated Annealing
Simulated Annealing wurde erstmals von METROPOLIS et al. (1953) zur Modellierung des
physikalischen Abkühlungsprozesses eines Festkörpers in einem Wärmebad eingeführt. 1983
wandten KIRKPATRICK et al. (1983) das SA-Paradigma auf kombinatorische Probleme an. SA
ist ein Konzept der lokalen Suche, wobei eine Nachbarlösung von schlechterer
Lösungsqualität mit einer im Lösungsverlauf sukzessive abnehmenden Wahrscheinlichkeit
realisiert wird. Die Wahrscheinlichkeit, eine schlechtere Lösung zu akzeptieren, hängt dabei
im Einzelnen ab von:
• der Verschlechterung der Nutzenfunktion f , sowie
• einem dynamischen Parameter, der so genannten Temperatur t, in Anlehnung an die
ursprüngliche physikalische Problemstellung.
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 65
Alg. 3 zeigt den Grobalgorithmus für die SA-Suchstrategie bei Maximierungsproblemen.
{ Initialisieren } erzeuge eine Ausgangslösung s; setze Bestlösung sbest := s; wähle eine Ausgangstemperatur t:= tStart (tStart > 0); { Anweisungen } repeat repeat wähle eine zufällige Lösung s´ aus der Nachbarschaft N(s); if f(s’) > f(sbest) then sbest := s’; endif ; df := f(s') - f(s); if df > 0 then s := s'; else erzeuge einen Zufallswert x in (0,1); if x < exp( df / t ) then s := s'; endif ; endif ; until solPerTemp Nachbarlösungen für Temperatur t untersucht wurden; reduziere die Temperatur t durch die Funktion r(t) und setze: t:= r(t); until Abbruchkriterium erreicht; Ausgabe von sbest ;
Alg. 3. Simulated Annealing-Algorithmus für ein Maximierungsproblem.
Der Übergang zu Lösungen schlechterer Qualität soll es dem Algorithmus erlauben, lokale
Optima wieder zu verlassen und in bisher unbekannte Regionen des Lösungsraums
vorzudringen. Das stetige Absenken der Akzeptanzwahrscheinlichkeit wird durch die
empirische Feststellung motiviert, dass die Notwendigkeit, ein bislang gefundenes lokales
Optimum zu verlassen, zu Beginn hoch ist und im Verlauf der Suche abnimmt. Die
Konvergenz des Verfahrens gegen eine Optimallösung kann mit Hilfe von Markov-Ketten
bewiesen werden, welche die Folgen von zufällig ermittelten Nachbarn beschreiben (siehe
AARTS und KORST, 1989). Dieser theoretische Beweis ist allerdings für die Praxis eher von
geringem Nutzen, da die sichere Konvergenz zum Optimum voraussetzt, dass die Abkühlung
nur sehr langsam erfolgt, so dass der Algorithmus meist mehr Iterationen benötigt als die
vollständige Enumeration aller Lösungen. Gleichwohl wurde SA in vielen Fragestellungen
erfolgreich implementiert und hat zu guten Ergebnissen bei kurzer Rechenzeit geführt.
Generische Entscheidungen betreffen die Anpassung der allgemeinen Komponenten von SA
an das konkrete Problem. Nachfolgend werden diese allgemeinen Bestandteile auf das
gegebene Packproblem angewendet.
66 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
3.3.1 Ausgangslösung
Die Suche wird mit der Ausgangslösung gestartet, welche durch die Packsequenz {1,1,1,..}
eindeutig bestimmt wird. Für alle zu füllenden Packraum wird demnach jeweils die am
besten bewertete lokale Anordnung ArrList(1) realisiert. Diese so genannte Greedy-Lösung
(greedy = gierig) spielt bei der SA-Suche allerdings keine entscheidende Rolle, da bei
anfangs hohen Temperaturen die Rate der akzeptierten Züge zu minderwertigen Lösungen
hoch ist, so dass diese Anfangslösung sehr schnell wieder verlassen wird.
3.3.2 Zufällige Wahl der Nachbarlösung
Um eine einzelne Iteration durchzuführen und eine weitere Lösung zu berechnen, muss
genau eine Nachbarlösung zufällig gewählt werden. Da eine Lösung eindeutig durch ihren
Packplan beschrieben wird, müssen zwei Entscheidungen bei der Auswahl getroffen werden.
Erstens muss eine abweichende Packplanposition ausgewählt werden. Anschließend muss
der neue Eintrag für diese Position ermittelt werden.
Der Parameter nbhType legt fest, wie die abweichende Packplanposition gewählt werden
soll. Die große Nachbarschaft enthält alle Packpläne mit einem beliebig wählbaren
abweichenden Index ipr. Dieser Index wird aus der Anzahl aller Packplanpositionen
ermittelt. Analog zum ursprünglichen Verfahren PTS wird im Fall der kleinen Nachbarschaft
die abweichende Position nicht zufällig gewählt, sondern in jedem Berechnungsschritt
inkrementiert und zyklisch interpretiert.
Die gewählte Vektorposition entspricht einem bestimmten Packraum. Sei n die Anzahl der
ermittelten lokalen Anordnungen für diesen Packraum, so wird eine ganzzahlige Zufallszahl j
zwischen 1 und n ermittelt. Anschließend wird die j-te lokale Anordnung in diesem
Packraum realisiert. Die neue Packsequenz s' wird dann in eine zulässige Lösung umgeformt,
um die Volumenauslastung f(s') zu ermitteln und mit dem Wert f(s) der zuvor betrachteten
Lösung s zu vergleichen.
Die Beschränkung des Nachbarschaftsumfangs durch den Parameter nbhDecrease, welche
ursprünglich eingeführt wurde um den Suchaufwand in Grenzen zu halten, ist im Fall von SA
nicht sinnvoll. In der Tat wird jeweils nur ein einzelner Nachbar in jeder Iteration betrachtet.
Deswegen kann nbhDecrease im vorliegenden Fall des SA auf den minimalen Wert 1 gesetzt
werden.
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 67
3.3.3 Akzeptieren von Nachbarlösungen
Da die gewählte Lösung nach dem vorher beschriebenen Grobalgorithmus (in Alg. 3)
entweder akzeptiert oder verworfen werden kann, soll nun auf die Berechnung der
Akzeptanzwahrscheinlichkeit eingegangen werden.
Die Akzeptanzwahrscheinlichkeit p wird hier definiert durch p = exp(1000*df/t), wobei t den
Temperaturparameter und df die Differenz der relativen Volumenauslastung der Ladungen in
Ausgangs- und Nachbarlösung bezeichnet. Beide Auslastungen sind im Verhältnis zum
Containervolumen in % ausgedrückt, so dass bei einer Verschlechterung der Lösungsqualität
der Wert von df zwangsläufig im Intervall [-100,0] liegt. Wurde beispielsweise eine
Ausgangslösung von f1 = 92% sowie eine zufällige Nachbarlösung mit f2 = 91% ermittelt,
so beträgt die Differenz df = f2 - f1 = –1 und die Akzeptanzwahrscheinlichkeit in diesem Fall
(bei einer gegebenen Temperatur von t = 900) p = exp((-1) · 1000/900) = 33%. Wäre die
Temperatur bereits auf t = 500 gesunken, läge die Wahrscheinlichkeit nur noch bei p = 14%.
Der Koeffizient 1000 in der Definition von p dient ausschließlich dazu, den
Temperaturbereich auf ungefähr 1000 Grad einzugrenzen. Es soll noch einmal darauf
hingewiesen werden, dass Nachbarlösungen mit besserer Lösungsqualität in jedem Fall
akzeptiert werden und p in diesem Fall nicht berechnet wird.
3.3.4 Kühlplan
Ein Kühlplan wird durch folgende Elemente definiert (siehe AARTS und KORST, 1989):
• Eine Funktion r(t) zur sukzessiven Reduzierung der Temperatur t;
• Einen Parameter solPerTemp, welcher die Anzahl der zu ermittelnden Lösungen für
einen gegebenen Wert von t bestimmt, sowie
• Einen Temperaturbereich, welcher durch den Anfangswert tStart und den Endwert
tEnd gegeben wird. tStart ist dabei gleichzeitig der maximale Wert von t, tEnd der
minimale Temperaturwert.
Der Kühlplan ist vor allem gekennzeichnet durch seine Kühlfunktion. In der Literatur findet
man verschiedene Typen von Kühlplänen (vergleiche DOWSLAND, 1993a). Drei Varianten,
nämlich die geometrische, lineare und adaptive Kühlung wurden hier in Betracht gezogen.
Bei der adaptiven Kühlung wird die Temperatur erst gesenkt, nachdem die Zielfunktion sich
innerhalb bestimmter Grenzen (bezüglich des Mittelwerts und der Standardabweichung)
68 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
stabilisiert hat. Allerdings konnte eine ausreichende Stabilisierung der Zielfunktion in der
vorliegenden Adaptation von SA nicht beobachtet werden. Die besten Ergebnisse bei den
Vortests erreichte die geometrische Abkühlung, die zudem bei vielen
Optimierungsproblemen gute Ergebnisse brachte (siehe DOWSLAND, 1993a). Die
Kühlfunktion der zurückbehaltenen geometrischen Kühlung ist gegeben durch r(t) = m* t,
wobei der konstante Koeffizient m exogen im Bereich (0,1) zu wählen ist.
Ein nicht unbeträchtlicher Aufwand wurde getrieben, um herauszufinden, ob es lohnender ist,
den Parameter solPerTemp als konstanten Wert oder als dynamischen Parameter abhängig
von der Temperatur t auszulegen. Da ein Anheben von solPerTemp während des
Abkühlungsprozesses keine höhere Lösungsqualität brachte, wurde hier letztendlich die
einfachere Alternative des konstanten Parameters vorgezogen.
Geeignete Werte für die Kühlparameter m, solPerTemp, tStart und tEnd wurden
experimentell ermittelt. Die Ergebnisse der Vortests werden in Kapitel 3.6.1 näher erläutert.
Die Kühlparameter enthalten implizit die Abbruchkriterien der Suche. Die Gesamtzahl der zu
ermittelnden Lösungen bei der geometrischen Kühlung ist gegeben durch:
nTotalIter = solPerTemp · ln( tEnd/tStart ) / ln(m).
3.3.5 Diversifizierung des Suchprozesses
Wie bereits erwähnt ist die Suche in nPhases Suchphasen unterteilt. Zu Beginn jeder Phase
wird ein Neustart durchgeführt. Jede Phase startet mit der Greedy-Lösung s0 und verwendet
denselben Kühlplan. Zum Zweck einer ausreichenden Diversifizierung wird jede Phase
prinzipiell unterschiedlich ausgelegt. Da es sich bei SA aber um einen stochastischen
Algorithmus handelt, werden selbst bei identisch konfigurierten Phasen im allgemeinen
unterschiedliche Ergebnisse erreicht, da jeder Testlauf seinen individuellen, zufälligen
Suchpfad aufweist. Die respektiven Phasenparameter phMinSupport, aboveArr, maxArr,
arrEvalMode und cutEvalMode wurden im vorangehenden Abschnitt bereits eingehend
beschrieben.
Analog zum TS-Verfahren wird der Abbruch der Suche durch zwei Kriterien bestimmt. Die
Suche wird beendet, nachdem alle nPhases Suchphasen durchlaufen wurden, die
Zeitschranke von maxTime Sekunden überschritten wurde, oder falls eine Optimallösung
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 69
ermittelt wurde, bei der sämtliche Kisten verpackt werden. Das beste Ergebnis aus allen
Phasen bestimmt die ermittelte Gesamtlösung.
3.3.6 Änderungen des Standardmodells von SA
Mehrere Abweichungen vom Standardmodell des SA-Verfahrens wurden untersucht im
Hinblick auf eine bessere Effizienz und Lösungsqualität. Entsprechend den Vorschlägen in
DOWSLAND (1993a) wurden folgende Varianten in Betracht gezogen:
• „Constant temperature annealing“: die Temperatur wird auf einen unveränderlichen
erfolgversprechenden Wert gesetzt. Diese Maßnahme wird durch die Tatsache
motiviert, dass SA oft nur in einem sehr eng begrenzten Temperaturbereich erfolgreich
arbeitet.
• „Geometric reheating“: nachdem eine vorgegebene Anzahl von Nachbarlösungen
aufgrund der tiefen Temperaturen verworfen wurden, kann man annehmen, dass die
Suche in einem lokalen Optimum steckengeblieben ist. Folgerichtig wird die
Temperatur bei der geometrischen Erhitzung wieder angehoben, um das lokale
Optimum wieder verlassen zu können. Alternativ hierzu kann eine spezielle Variante
unterschieden werden, bei der jede akzeptierte Lösung zu einem Absenken der
Temperatur, und jedes Verwerfen einer Nachbarlösung zu einem Anheben der
Temperatur führt. Ein erfolgversprechendes Verhältnis von akzeptierten zu
verworfenen Lösungen soll dabei eingehalten werden.
• Das Ergebnis mehrerer so genannter „Multiple consecutive runs“ (mehrfache
Durchführung desselben Kühlplans) wird verglichen mit einem einzelnen, langsameren
Abkühlprozess bei ansonsten identischem Zeitaufwand. Um diesen Test durchzuführen,
wurde die Gesamtzahl an berechneten Lösungen sowie der Faktor m beibehalten,
während die Parameter solPerTemp und die Anzahl durchgeführter Suchläufe für einen
gegebenen Kühlplan systematisch variiert wurden.
• „Threshold accepting“: in dieser Variante wird das Akzeptieren einer minderwertigen
Lösung prinzipiell ausgeschlossen, falls die Verschlechterung eine gegebene Schranke
(Threshold) überschreitet. Bei Überschreiten dieser Schranke wird der stochastische
Akzeptanzprozess demnach ausgeschaltet.
70 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
Aufwendige Tests wurden durchgeführt, um erfolgversprechende Parameter für jede dieser
Abweichungen vom Standardmodell zu ermitteln. Allerdings war keine der Varianten in der
Lage, die in den Vortests ermittelten Zielfunktionswerte der geometrischen Kühlung zu
überbieten. Deswegen wurden alle diese Varianten am Ende ausgeschlossen. Jedoch kann
nicht ausgeschlossen werden, dass es nicht dennoch gute Parametersets für die vorgestellten
Adaptationen gibt, welche zumindest für einige der betrachteten Testprobleme erfolgreich
funktionieren. Dies gilt insbesondere für die adaptive Kühlvariante. Dies liegt einerseits
daran, dass die Feinabstimmung der Parameter die Lösungsqualität in hohem Maß
beeinflusst, andererseits aber ein extensives Testen aller Parameterkombinationen für eine
repräsentative Anzahl an Problemen äußerst schwierig ist, da ein einzelner Testlauf aufgrund
der Zufallskomponente der Suche nicht ausreicht, um allgemeine Aussagen zuzulassen.
3.4 Hybride lokale Suche
3.4.1 Allgemeine Überlegungen
Eine weitere Gelegenheit für eine Verbesserung der Lösungsqualität könnte in der geeigneten
Kombination der beiden Strategien TS und SA liegen. Diese neue hybride Variante soll die
Vorteile beider Metaheuristiken verbinden bzw. deren Nachteile vermeiden.
Im Fall von SA wird eine Nachbarschaft schnell durch die zufällige Wahl eines einzelnen
Nachbarn wieder verlassen. Deswegen hat SA die Fähigkeit, zumindest bei hohen
Temperaturen sehr schnell die untersuchte Region des Lösungsraums zu wechseln. Aus
demselben Grund riskiert SA, erfolgversprechende Lösungen zu übersehen. Auf der anderen
Seite ist TS in der Lage, die unmittelbare Nachbarschaft einer Ausgangslösung intensiv zu
erforschen, da alle Nachbarn ausnahmslos berechnet werden. Allerdings besteht das Risiko,
dass TS hierdurch sehr viel Zeit verliert. Dies gilt insbesondere, wenn die untersuchte Region
des Suchraums keine optimale (oder nah-optimale) Lösung enthält. Kurz, der hybride Ansatz
sollte sich der verschiedenen Eigenschaften der Suchstrategien bedienen und einen guten
Kompromiss zwischen extensiver und intensiver Suche finden.
DOWSLAND schlägt vor, SA mit anderen Heuristiken zu verbinden, z.B. zum Ermitteln einer
günstigen Ausgangslösung, bevor der Abkühlungsprozess beginnt, oder als Nachbearbeitung
mit dem Ziel, eine mit dem Abkühlungsprozess gefundene Lösung zu verbessern. Eine
Variante, bei der SA eine oder mehrere TS-Phasen vorgeschaltet werden um eine gute
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 71
Startlösung zu finden hat, ist nicht sinnvoll, da nach dem Start des Kühlprozesses bei hohen
Temperaturen die Ausgangslösung schnell zerstört wird, während ein Start bei niedrigen
Temperaturen ein Verlassen der Ausgangslösung verhindert. Dieses unerwünschte Verhalten
wurde experimentell durch die Ermittlung schlechterer Resultate bestätigt.
Aufgrund dieser Überlegungen soll umgekehrt SA zuerst durchgeführt werden, um eine gute
Startlösung für TS zu ermitteln. Die Startlösung wird dann durch eine oder mehrere TS-
Iterationen bearbeitet. Die erste nachgeschaltete TS-Iteration soll sicherstellen, dass
zumindest das der Ausgangslösung am nächsten gelegene lokale Optimum gefunden wird.
Die folgenden TS-Iterationen zielen auf eine intensivere Untersuchung des Lösungsraums in
der Nachbarschaft der Ausgangslösung ab.
3.4.2 Hybrider Ansatz und Diversifizierungskonzept
Die nächste Herausforderung besteht in der Kombination des eben beschriebenen hybriden
Ansatzes mit dem Diversifizierungskonzept der Verfahren SA und TS. Die folgenden
Vereinbarungen behandeln diesen Punkt.
• Innerhalb des hybriden Ansatzes werden SA und TS in unterschiedlichen Phasen mit
spezifischen Parametersätzen angewendet.
• Eine mit SA ermittelte Lösung wird durch eine einzelne TS-Phase mit vorgegebener
Iterationszahl nachbearbeitet mit dem Ziel, die Lösungsqualität zu verbessern.
• In dieser TS-Nachbearbeitungsphase wird die SA-Lösung als Ausgangslösung
verwendet und die Phasenparameter der SA-Lösung werden übernommen. Hierdurch
werden Probleme vermieden, die beim Dekodieren der übernommenen SA-Lösung
vorkommen könnten. Um sicherzustellen, dass alle direkten Nachbarn berechnet
werden, wird zudem nbhDecrase = 1 gesetzt.
Ein zusätzlicher Phasenparameter hybNat wird eingeführt, um verschiedene
Hybridisierungsvarianten zu implementieren, bei welchen sich SA- und TS-Phasen
folgendermaßen abwechseln (vergleiche Abb. 11):
• hybNat = 1: jeweils eine TS-Nachbearbeitungsphase wird jeder SA-Phase
nachgeschaltet. So wird die Umgebung der Bestlösung jeder SA-Phase intensiv
abgesucht.
• hybNat = 2: eine TS-Nachbearbeitungsphase wird einmalig auf die Bestlösung aller
SA-Phasen angewendet.
72 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
Im Beispiel aus Abb. 11 führt das Phasenparameterset 2 zur besten mit Simulated Annealing
berechneten Lösung; folgerichtig wird nur diese Bestlösung bei hybNat = 2 durch eine
TS-Phase bei identischem Phasenparametersatz 2 nachbearbeitet.
Abb. 11 kann ebenfalls entnommen werden, dass die Bearbeitungszeit bei hybNat = 2 im
Vergleich zur Version hybNat = 1 geringer ausfällt, da nur eine einzige TS-Phase berechnet
wird. Auf der anderen Seite kann aber nicht ausgeschlossen werden, dass die Lösungsqualität
durch die Einsparung geringer ist als bei hybNat = 1.
SA1
SA2 SA3
SA1
SA2
SA3
TS1
TS2 TS3
hybNat = 1
hybNat = 2
TS2
Zeit
Zeit
Neustarts
Neustarts
SA1
SA2 SA3
SA1
SA2
SA3
TS1
TS2 TS3
hybNat = 1
hybNat = 2
TS2
Zeit
Zeit
Neustarts
Neustarts
Abb. 11. Zwei Varianten der Hybridisierung.
Der Versuch, eine TS-Phase öfter während des SA-Suchverlaufs zwischenzuschalten,
entweder nach Berechnung einer vorgegebenen Anzahl an Iterationen oder nach einer
bestimmten Anzahl an verworfenen Lösungen, führte zu einer nicht unerheblichen
Verlängerung der Suche ohne erkennbaren Gewinn an Lösungsqualität. Folgerichtig wurde
diese Variante verworfen.
3.5 Parallelisierung
3.5.1 Allgemeine Erörterungen zur Parallelisierung
Nach TOULOUSE et al. (1996) sind folgende drei Typen der Parallelisierung für Algorithmen
aus dem Bereich der kombinatorischen Optimierung besonders geeignet: (1) Parallelisierung
einzelner Operationen der iterativen Suche, (2) Zerlegung und Aufteilung der
Problemstellung oder des Suchbereichs, (3) multiple Suchpfade mit verschiedenen Graden
der Synchronisierung und Kooperation.
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 73
Da im vorliegenden Fall vor allem das Ziel einer Verbesserung der Lösungsqualität im
Vordergrund steht, wurde Ansatz (3) gewählt. Das Containerbeladeproblem wird durch
mehrere Prozesse simultan bearbeitet. Jeder Prozess löst das komplette CLP-Problem mit
einer der oben beschriebenen Verfahrensvarianten (TS, SA oder Hybrid). Jeder dieser
autonomen Prozesse ist einem Arbeitsrechner eines lokalen Netzwerks zugeordnet. Somit
handelt es sich bei dem parallelen Ansatz um ein verteilt-paralleles Verfahren.
Drei parallele Ansätze wurden berücksichtigt und alternativ getestet: paralleles TS (PTS),
paralleles SA (PSA) und parallel-hybrides Verfahren (PHYB). Jede Form der Kombinierung
der Suchstrategien bei der Parallelisierung wurde unterlassen, da es hier darum ging, die
Nettoverbesserung der Parallelisierung für jede der drei Strategien gesondert zu ermitteln
(vgl. Schema in Abb. 7). Zusätzlich hätte das Auffinden einer geeigneten Kombination der
drei Suchstrategien bei der Parallelisierung einen nicht zu unterschätzenden zusätzlichen
Aufwand für die Parametrisierung der Prozesse bedeutet.
3.5.2 Parallelisierungskonzepte für SA-Algorithmen
Die Parallelisierung des TSA wurde ausführlich in Kapitel 2.4 besprochen. Deswegen
beschränken sich die nun folgenden Ausführungen auf die Parallelisierung von SA und der
abgeleiteten hybriden Suchstrategie.
AZENCOTT (1992) schlägt fünf mögliche Wege zur Parallelisierung des allgemeinen SA-
Algorithmus vor. Zwei Grundvarianten, die „simultane unabhängige Suche“ sowie die
„simultane, periodisch interagierende Suche“, sind von Interesse im Hinblick auf die
angestrebte Implementierung von SA. Wie der Name schon sagt, benötigt die unabhängige
Suche mehrere Prozesse, die zu keinem Zeitpunkt des Suchverlaufs Informationen
austauschen. Die Bestlösung wird durch das beste ermittelte Ergebnis aller Prozesse
ermittelt. Im Gegensatz dazu kooperieren simultan, periodisch interagierende Suchprozesse
durch den Austausch ermittelter erfolgversprechender Lösungen, die jeweils vom
Empfängerprozess als Startpunkt für die weitere Suche übernommen werden.
AARTS und KORST (1989) unterscheiden zwei Formen generischer paralleler SAA, alternativ
mit und ohne Kommunikation. Eine Verbesserung der Rechenzeiten stand bei der Arbeit von
AARTS und KORST im Vordergrund. Sie wurde durch eine Aufteilung der seriellen Prozesse
und Zuteilung der Teilaufgaben an verschiedene Rechner erreicht. Dieser Ansatz ist nicht
74 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
geeignet für die hier angestrebte Parallelisierung des oben genannten Typs (3) und wird
folgerichtig nicht weiter verfolgt.
3.5.3 Kommunikation paralleler Instanzen
Das ursprüngliche PTS-Verfahren enthält die Möglichkeit, einzelne Prozesse mittels eines
Austauschs von hochwertigen Lösungen am Ende einer Phase untereinander kommunizieren
zu lassen. Das Weiterreichen von Lösungen sollte es erlauben, die Umgebung
vielversprechender Lösungen intensiver zu untersuchen. Die durch Kommunikation
erreichten Verbesserungen gegenüber der nicht kommunizierenden Variante waren allerdings
nur sehr gering (vgl. entsprechende Ausführungen in Kapitel 2.6).
Für die allgemeinen parallelen vorgestellten SA-Modelle führte AZENCOTT den Beweis, dass
(unter Annahme bestimmter Voraussetzungen für den Kühlplan) nProc periodisch
interagierende Abkühlungsprozesse weniger effizient arbeiten als nProc simultane
unabhängige Abkühlungsschemata. Periodische Interaktion zwischen den nProc Prozessen
sei demnach Zeitverschwendung und sollte besser durch eine einzige Interaktion am Ende
der Rechenzeit ersetzt werden, um die beste Konfiguration zu ermitteln. Experimentelle
Vergleiche zwischen sequentiellen Kühlprozessen und nProc simultanen, kommunizierenden
Prozesse führte GRAFFIGNE (1992) durch. Die Resultate scheinen ebenfalls die Überlegenheit
unabhängiger Prozesse zu bestätigen.
Ungeachtet dieser negativen Prognosen wurde ein nicht unerheblicher Aufwand betrieben,
um kommunizierende Prozesse in einer geeigneten Weise zu konfigurieren. Hierbei wurden
die aus Kapitel 2 bekannten Parallelisierungstechniken eingesetzt:
• Blackboard und Ringmodell wurden alternativ eingesetzt;
• bedingungslose und bedingte Annahme von Fremdlösungen wurden getestet;
• unterschiedliche Konfiguration der Prozesse wurde vorgesehen;
• unterschiedliche Reihenfolgen von SA- und TS-Phasen wurden untersucht;
• eine Reduzierung der Ausgangstemperatur bei den nachgeschalteten Phasen wurde
untersucht.
Die Resultate waren insgesamt enttäuschend, so dass die Idee der kommunizierenden SA-
oder hybriden Instanzen verworfen wurde. Die letztlich implementierte Konfiguration mit
nProc unabhängigen Prozessen kann wie folgt zusammengefasst werden:
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 75
• nProc Instanzen des SA-Verfahrens (bzw. des hybriden Verfahrens) laufen simultan
und unabhängig voneinander ab.
• Die parallele Suche wird beendet, wenn eine der folgenden Bedingungen erfüllt ist: alle
parallelen Prozesse haben ihre Suche beendet, eine vorgegebene Zeitschranke maxTime
wurde erreicht, oder eine global optimale Lösung wurde durch eine der Instanzen
ermittelt (d.h. alle Packstücke wurden verladen, oder die Volumenauslastung beträgt
100%).
• Das Ergebnis der parallelen Suche ergibt sich aus der besten Lösung über alle nProc
Prozesse.
Im Fall von PTS wurden alle parallelen Instanzen unterschiedlich konfiguriert, um eine
gewisse Diversifizierung der Suche sicherzustellen. Im Fall von PSA und PHYB sorgt das
Zufallselement dafür, dass sogar bei vollkommen identisch konfigurierten Prozessen in der
Regel unterschiedliche Ergebnisse erzeugt werden. Der Zufall beeinflusst die Ergebnisse in
folgenden beiden Teilschritten der Suche:
• Die Nachbarlösungen werden zufällig ausgewählt. Da im Laufe der Suche sehr viele
Nachbarlösungen gewählt werden, ist die Wahrscheinlichkeit, dass zwei identisch
konfigurierte Prozesse identische Suchpfade durchlaufen, sehr gering.
• Die Akzeptanz einer Lösung mit niedriger Lösungsqualität ist ebenfalls
zufallsgesteuert.
Die Konfiguration der Testparameter wird im nächsten Kapitel im Detail behandelt.
3.6 Numerische Tests
Die folgenden Tests basieren auf den wohlbekannten Referenzproblemen von BISCHOFF und
RATCLIFF (1995), welche aus 700 in sieben Testfällen zusammengefassten Probleminstanzen
bestehen. Innerhalb eines Testfalls enthalten alle Probleminstanzen eine konstante Anzahl an
unterschiedlichen Kistentypen. Die Natur des Kistenvorrats reicht von schwach heterogen bis
stark heterogen. Alle 700 Probleme von BISCHOFF und RATCLIFF (1995) (BR-Probleme)
beinhalten eine Orientierungsrestriktion. Außerdem wurde ein Stabilitätskoeffizient
phMinSupport = 55% zur Berechnung der Lösungen vorausgesetzt.
Das Testumfeld besteht aus mehreren 2GHz-Intel-PC, welche über ein lokales Netzwerk
(LAN) miteinander verbunden sind. Der Algorithmus wurde in C mit Hilfe von Microsoft
76 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
Visual C++ implementiert. Nachfolgend werden der Vorgang und die Resultate der
Konfigurationstests beschrieben, bevor die verschiedenen Algorithmen (siehe Abb. 7)
miteinander verglichen werden. Anschließend erfolgt ein Vergleich mit den Resultaten
anderer Autoren.
3.6.1 Vortests zur Konfigurierung des Verfahrens
Die Vortests verliefen in mehreren Etappen. Nach der Identifizierung erfolgversprechender
Parametersätze für die Basisheuristik wurden die Kühlparameter bestimmt. Zuletzt wurde die
Konfiguration für die parallelisierten Varianten festgelegt.
Die Phasenparameter für den SA-Algorithmus wurden in stichprobenartigen Testläufen
ermittelt. Diese Parameter beeinflussen den Prozess der Nachbarschaftssuche und können so
Einfluss auf die ermittelte Lösungsqualität nehmen. Es wurden die sechs besten
Phasenparametersätze zurückbehalten, ähnlich wie beim TS-Verfahren (siehe Tab. 14).
Tab. 14. Phasenparametersets für SA und hybride Suche.
Phasen-Id/ Parameter 1 2 3 4 5 6
arrEvalMode 1 1 0 1 1 1
cutEvalMode 0 1 1 0 0 1
maxArr 50 50 50 50 100 100
aboveArr 1 1 1 0 1 1
phMinSupport 55 55 55 100 55 55
nbhType large large large large large large
nbhDecrease 1 1 1 1 1 1
Durch die Auswertung der individuellen Phasenresultate der Vortests war es möglich, den
Effekt einer Reduzierung der Phasenzahl für das parallele SA-Verfahren zu simulieren. Es
stellte sich heraus, dass bereits mit vier Phasen eine Volumenauslastung erreicht werden
konnte, die mit 0.1% nur minimal unter dem Bestwert einer Variante mit 6 Phasen lag, bei
gleichzeitiger Einsparung an Rechenzeit von bis zu 42%. Besonders bei Verwendung von
Parameterset 3, welches eine aufwendigere Bewertung der Nachfolgepackräume beinhaltet,
wurde eine relativ lange Rechenzeit benötigt. Letztlich wurden ausschließlich die
Parametersätze 1, 2, 5 und 6 verwendet und somit nur vier SA-Phasen berechnet.
Die Parametersätze in Tab. 14 unterscheiden sich von den PTS-Datensätzen (aus Kapitel 2)
in mehreren Punkten, vor allem im Bezug auf die Nachbarschaftsparameter. Außerdem
wurde der TS-Algorithmus in 6 anstatt 4 Phasen unterteilt. Das sollte die Vergleichbarkeit
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 77
der Verfahren allerdings nicht in Frage stellen. Einerseits erscheint es vollkommen legitim,
die bestmögliche Konfiguration der entsprechenden Ansätze zu benutzen. Andererseits hilft
die Reduzierung der Anzahl der Suchphasen bei SA, die Rechenzeiten vergleichbar zu
halten.
Als nächstes wird die Abstimmung der Kühlparameter erläutert. Da es schwierig ist, alle
Parameter simultan festzulegen, werden die Parameter zunächst in verschiedenen Kategorien
zusammengefasst.
• Die Parameter m und solPerTemp beeinflussen die Geschwindigkeit der Abkühlung
und werden nachfolgend als „Abkühlparameter“ bezeichnet.
• Die Parameter tStart und tEnd bestimmen den berücksichtigten „Temperaturbereich“.
Jeweils ein Abkühlparameter und ein Temperaturbereichparameter werden auf einen festen
Wert gesetzt. Das Bestimmen geeigneter Parameterwerte beschränkt sich demnach auf die
beiden verbleibenden Variablen solPerTemp (Abkühlparameter) und tEnd
(Temperaturbereich). Als gute Starttemperatur wurden alternativ 900 und 700 Grad
verwendet, wodurch anfangs eine Akzeptanzwahrscheinlichkeit von 33% (bzw. 24%)
erreicht wird, falls der Zielfunktionswert sich um 1% verschlechtert. Ein Kühlkoeffizient
m = 0.999 produzierte gute Resultate in den Validierungstests. Außerdem wurde nun viel
Aufwand betrieben, um geeignete Kombinationen der verbleibenden Parameter solPerTemp
und tEnd zu ermitteln. Dabei wurden Vergleichstests durchgeführt, bei denen die Anzahl an
berechneten Lösungen pro Testlauf nTot jeweils konstant gehalten wurde. Unter den
getesteten Alternativen solPerTemp = 4, 8, 12, 16 erwies sich solPerTemp = 8 als besonders
erfolgversprechend.
Tab. 15. Testparameter zu SA und TS.
Basis Heuristik SA Kühlparameter
Parameter für die nachoptimierende
TS-Phase Serielle Phase
Phasen-Id tStart tEnd m solPer Temp
nbh Type
nbh Decrease
max Iter
Erste 1 700 300 0.999 8 large 1 10
Zweite 2 700 300 0.999 8 large 1 10
Dritte 5 700 300 0.999 8 large 1 10
Vierte 6 700 300 0.999 8 large 1 10
In Bezug auf die Hybridisierung wurde der Typ hybNat = 1 beibehalten. Es werden somit
längere Berechnungszeiten in Kauf genommen (vgl. Abb. 11), da die Verbesserung der
78 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
Lösungsqualität hier im Vordergrund steht. Die Nachbarparameter nbhDecrease und
nbhType für die nachbearbeitenden TS-Phasen werden auf maximale Werte gesetzt, um eine
möglichst intensive Erforschung der Nachbarschaft einer Ausgangslösung sicherzustellen
(vgl. Tab. 15). Die Anzahl an Iterationen maxIter wird auf einen einheitlichen Wert gesetzt.
Die Konfiguration der parallelen Prozesse muss noch festgelegt werden. Da sich während der
Vortests herausstellte, dass sich durch unterschiedliche Konfiguration der parallelen Prozesse
keine erkennbaren Vorteile für die Lösungsqualität ergaben, wurden alle Prozesse eines
Testlaufs jeweils mit identischen Phasen-, Kühl- und TS-Parametern versehen. Die
Parameterwerte wurden unverändert von den seriellen Tests übernommen. Die parallelen
Tests basieren somit jeweils auf vier identisch konfigurierten Instanzen oder Prozessen.
3.6.2 Resultate für alle Varianten der vorgestellten Metaheuristiken
Folgende Tab. 16 fasst die Resultate der umfangreichen Tests zusammen. Alle
Suchstrategien wurden auf die 700 BR-Probleme angewandt.
Tab. 16. Resultate der TS-, SA- und Hybridvarianten für BR-Testinstanzen.
Serielle Variante Parallele Variante par. XL Test
fall Typ-zahl
Mittlere Kisten zahl
pro Typ TS SA HYB PTS PSA PHYB PHYB
XL
BR1 3 50 93.23 93.04 93.26 93.52 93.24 93.41 93.70
BR2 5 27 93.27 93.38 93.56 93.77 93.61 93.82 94.30
BR3 8 17 92.86 93.42 93.71 93.58 93.78 94.02 94.54
BR4 10 13 92.40 92.98 93.30 93.05 93.40 93.68 94.27
BR5 12 11 91.61 92.43 92.78 92.34 92.86 93.18 93.83
BR6 15 9 90.86 91.76 92.20 91.72 92.27 92.64 93.34
BR7 20 7 89.65 90.67 91.20 90.55 91.22 91.68 92.50
Mittel – – 92.00 92.53 92.86 92.70 92.91 93.20 93.7 8
Während die deterministischen TS-Resultate in einem einzigen Testlauf ermittelt wurden,
sind bei SA und bei den hybriden Verfahren mehrere Testläufe notwendig, um repräsentative
Ergebnisse zu erzielen. Die seriellen Resultate in Tab. 16 stellen daher Mittelwerte über 12
Testläufe dar, die parallelen Resultate wurden über drei Testläufe ermittelt. Durch
Zusammenfassen aller durchgeführten Tests konnte ein einzelner Testlauf mit 64 parallelen
Instanzen simuliert werden (PHYB.XL).
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 79
Die Kombination von Parallelisierung und Hybridisierung erzielte die beste Lösungsqualität.
Es fällt auf, dass die Volumenauslastung für Probleminstanzen mit mehr als acht
unterschiedlichen Kistentypen sukzessive abnimmt. Das liegt daran, dass die Basisheuristik
speziell auf Probleme mit schwach heterogenen Kistenmengen zugeschnitten ist.
Die Standardabweichung für jeweils 100 Resultate innerhalb eines Testfalls entspricht 1.34%
für die serielle und 1.28% für die parallele Version des Algorithmus, jeweils gemittelt über
alle 7 Testfälle.
Die mittlere Rechenzeit auf 2GHz-Pentium-PCs entspricht für den seriellen SA 72 s.
(81 s. für die entsprechende parallele Version), während die hybride Suche 205 s.
(222 s. für PHYB) benötigt. Die Rechenzeit für einen parallelen Testlauf ergibt sich dabei
aus der maximalen Rechenzeit der individuellen seriellen Prozesse. Die Resultate aus Tab. 16
werden in Abb. 12 zusammengefasst.
89
90
91
92
93
94
95
BR1 BR2 BR3 BR4 BR5 BR6 BR7
TS
SA
HYB
PTS
PSA
PHYB
PHYB.XL
Abb. 12. Mittlere Volumenauslastung für 7 BR-Testfälle.
Die folgenden Schlussfolgerungen betreffen die erreichte Lösungsqualität, die Rechenzeiten
und die Anzahl der berechneten Lösungen.
80 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
3.6.3 Vergleich zwischen SA und TS
Unter Anwendung der SA-Strategie wurden durchschnittlich bessere Ergebnisse erzielt als
mit TS. Die Verbesserung der Volumenauslastung beträgt im Mittel über 700 Testinstanzen
0.53% des Containervolumens für die serielle und 0.21% für die entsprechende parallele
Variante. Der parallele TSA profitiert zusätzlich von der Möglichkeit kommunizierender
Instanzen im Laufe des Lösungsprozesses, während alle SA-Instanzen unabhängig
voneinander berechnet werden. Die Resultate zeigen außerdem, dass der Unterschied
zwischen SA und TS mit der Komplexität der Problemstellung zugunsten von SA steigt. Hier
zeigt sich der konzeptionelle Vorteil von SA für größere Lösungsräume. Für kleine
Lösungsräume (3-5 Kistentypen) erreicht TS die besseren Ergebnisse, was die Fähigkeit von
TS zur effizienteren Untersuchung kleinerer Lösungsräume unterstreicht.
Die mittlere Rechenzeit von SA liegt deutlich über der von TS. In der Tat benötigt SA
durchschnittlich 2.5-mal so lange, um eine einzelne Packsequenz in eine zulässige Lösung zu
transformieren und die Volumenauslastung zu berechnen. Dies kann durch folgende
entscheidenden Nachteile der SA-Implementierung erklärt werden: TS fasst in jeder Iteration
viele Nachbarlösungen einer Ausgangslösung zusammen, und ist so in der Lage, bestimmte
Teile dieser Ausgangslösung wiederzuverwenden und Redundanzen bei der Berechnung zu
vermeiden. Der zufallsbasierte Berechnungspfad bei SA verhindert diese Maßnahme. So
muss SA jeweils eine Neuinitialisierung der Datenstrukturen durchführen. Außerdem kann
die Basisheuristik im Fall von TS die Berechnung abbrechen, falls feststeht, dass kein neuer
Bestwert erreicht werden kann. Dies ist bei SA nicht möglich, da auch Lösungen schlechterer
Qualität eventuell akzeptiert werden.
Die Gesamtzahl an berechneten Lösungen ist bei SA höher als bei TS. Deswegen sind die
Resultate mit einer gewissen Vorsicht zu interpretieren, um einen fairen Vergleich zwischen
SA und TS nicht zu gefährden. Separate Tests haben jedoch ergeben, dass selbst bei
Synchronisierung der Lösungszahl bei TS und SA immer noch eine Nettoverbesserung von
0.2 - 0.3% des Containervolumens zugunsten von SA besteht, bei ansonsten identischer
Konfigurierung der Phasen. Dies ist bemerkenswert, da in der Literatur TS oft als die
erfolgversprechendere Strategie bewertet wird (vgl. beispielsweise HEINRICI, 1996).
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 81
3.6.4 Hybridisierung und Parallelisierung
Abb. 13 fasst die Nettoverbesserungen, welche sich aus der Hybridisierung und
Parallelisierung im Vergleich zu den „reinen“ Suchstrategien ergeben, zusammen. Die Werte
wurden über alle 700 Testprobleme von BISCHOFF und RATCLIFF ermittelt und werden in %
des Containervolumens angegeben.
TS (92.00%)
PTS (92.70%)
HYB (92.86%)
PHYB (93.20%) PSA (92.91%)
SA (92.53%)Par
alle
lisie
rung
+0.86% +0.33%
+0.70% +0.34% +0.38%
TS (92.00%)
PTS (92.70%)
HYB (92.86%)
PHYB (93.20%) PSA (92.91%)
SA (92.53%)Par
alle
lisie
rung
+0.86% +0.33%
+0.70% +0.34% +0.38%
Abb. 13. Verbesserung der Auslastung bei Hybridisierung und Parallelisierung.
Die parallel-hybride Variante erzeugte die besten Resultate. Die isoliert betrachteten Effekte
der Hybridisierung und Parallelisierung sind vergleichbar. Ausgehend von der „reinen“
seriellen Implementierung von SA bringt die Hybridisierung einen Zugewinn von
durchschnittlich 0.33% des Containervolumens, gegenüber 0.38% für die Parallelisierung.
Diese Beobachtung ist ebenfalls gültig bei der Hybridisierung und Parallelisierung von TS
(vgl. Abb.10). Hier entsprechen die Verbesserungen 0.86% bzw. 0.70%.
3.6.5 Vergleich mit den Resultaten anderer Autoren
Die folgende Tab. 17 vergleicht die vorhergehenden Resultate mit den Ergebnissen von
BISCHOFF et al. (1995), BISCHOFF und RATCLIFF (1995) und ELEY (2002). Die detaillierten
Testergebnisse für das Verfahren von ELEY (2002) wurden vom Autor selbst bereitgestellt.
Die Resultate der in diesem Kapitel vorgestellten Metaheuristiken übertreffen die Resultate
anderer Autoren deutlich. Allerdings wird ausschließlich die Volumenauslastung als
Vergleichskriterium herangezogen. Insbesondere werden keine Stabilitätskennzahlen
berücksichtigt. Die Resultate der anderen in Tab. 17 genannten Autoren wurden alle mit
vollständig unterstützten Kisten (minSupport = 100%) ermittelt, während der hier
vorgestellte Algorithmus nur die Voraussetzung minSupport = 55% erfüllt. Nichtsdestotrotz
gilt für die Endresultate, dass über alle verladenen Kisten die Bodenfläche zu 95% unterstützt
ist. Außerdem bleiben die Resultate auch dann noch den anderen Verfahren signifikant
überlegen, wenn minSupport = 100% vorausgesetzt wird. Das Resultat entspricht dann
82 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
92.41% (serielle hybride Variante HYB). Die Rechenzeit bleibt in einem akzeptablen
Rahmen, verglichen mit den Zeiten der Vergleichsverfahren. Bei dem parallelen
Hybridverfahren PHYB beispielsweise liegt die durchschnittliche Rechenzeit knapp
unterhalb von 4 Minuten.
Tab. 17. Vergleich mit den Verfahren anderer Autoren.
MACK , BORTFELDT und GEHRING (2004)
Testfall BISCHOFF
et al. (1995)
BISCHOFF
und RATCLIFF (1995)
ELEY (2002) serielles
HYB PHYB PHYB XL
BR1 81.76 83.79 88.05 93.26 93.41 93.70
BR2 81.70 84.44 88.44 93.56 93.82 94.30
BR3 82.98 83.94 89.23 93.71 94.02 94.54
BR4 82.60 83.71 89.24 93.30 93.68 94.27
BR5 82.76 83.80 88.99 92.78 93.18 93.83
BR6 81.50 82.44 88.91 92.20 92.64 93.34
BR7 80.51 82.01 88.36 91.20 91.68 92.50
Mittel 82.00 83.50 88.75 92.86 93.20 93.78
3.6.6 Anheben der Anzahl an parallelen Prozessoren
Allgemein gilt, dass bei der Parallelisierung die Anzahl der berechneten Lösungen mit der
Anzahl der Prozesse linear steigt und ein größerer Teil des Lösungsraums erforscht wird. Die
Lösungsqualität sollte somit kontinuierlich mit der Anzahl an eingesetzten Prozessen
zunehmen. In Abb. 14 sind die im Rahmen dieser Arbeit empirisch ermittelten Resultate
einer progressiven Anhebung der Parallelinstanzen bzw. parallelen Prozesse
zusammengefasst.
Die angegebenen Werte stellen Mittelwerte über alle 700 Testinstanzen und über fünf
Testläufe dar, welche durch zufällige Kombinierung der durchgeführten Paralleltests mit vier
Prozessen mit je vier Phasen durchgeführt wurden. Die Volumenauslastung nimmt stetig bis
zu einem Maximum von 93.69% mit 44 Prozessoren zu. Alle Prozesse greifen auf die Phasen
von Tab. 14 zurück.
Die Simulation eines Testlaufs mit 64 PCs, welche weitere 20 Instanzen mit je allen sechs
Phasen aus Tab. 14 umfasst, ergibt eine mittlere Auslastung von 93.78%. So konnte das
ungenutzte Containervolumen um durchschnittlich 20% (von 8.0% auf 6.22%) gegenüber der
ursprünglichen seriellen TS-Variante gesenkt werden. Die durchschnittliche Rechenzeit für
diesen Test stieg dabei allerdings auf 596 s. an.
Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP 83
93.00
93.10
93.20
93.30
93.40
93.50
93.60
93.70
93.80
Anzahl der Prozesse
Vo
lum
enau
slas
tung
(%
)
VU 93.20 93.37 93.46 93.51 93.55 93.59 93.62 93.64 93.66 93.68 93.69
4 8 12 16 20 24 28 32 36 40 44
Abb. 14. Mittlere Volumenauslastung bei Anheben der Prozesszahl.
3.7 Zusammenfassung der Ergebnisse
In diesem Kapitel wurde zunächst ein Simulated Annealing-Algorithmus zur Lösung des
Containerbeladeproblems mit einem einzelnen Container vorgestellt. Der Algorithmus stellt
eine Weiterentwicklung des Tabu Search-Verfahrens aus Kapitel 2 dar. Der SAA wurde zu
einem hybriden metaheuristischen Verfahren ausgebaut, indem die SA-Lösungen mit
mehreren Tabu Search-Iterationen nachbearbeitet wurden. Die Parallelisierung folgt den
Konzepten von TOULOUSE et al. (1996) bzw. AZENCOTT (1992), indem unabhängige
Kühlschemata simultan durchgeführt werden. Kommunikation zwischen den parallelen
Instanzen wurde getestet, führte aber zu eher enttäuschenden Resultaten.
In der hier vorgestellten Anwendung beider Suchstrategien SA und TS war Simulated
Annealing der klare Gewinner, vor allem bei Problemen mit großen Lösungsräumen. Der
Vergleich ist von einem methodischen Standpunkt zulässig, da beide Strategien identische
problemspezifische Komponenten nutzen, nämlich dieselbe Kernheuristik und
Nachbarschaftsdefinition. Andererseits muss festgestellt werden, dass die Einstellung
geeigneter SA-Parameter im Gegensatz zur Konfigurierung von TS sehr zeitaufwendig war.
Hybridisierung hat sich als effektive und sinnvolle Erweiterung von SA und TS erwiesen, da
die Hauptvorteile beider Suchstrategien kombiniert wurden. In der parallelen Version waren
die Verbesserungen der Parallelisierung vergleichbar mit den Effekten der Hybridisierung.
Es stellte sich heraus, dass die Parallelisierung zusätzlich Gelegenheit bot, die Ergebnisse
weiter zu verbessern, insbesondere wenn eine größere Anzahl an Prozessoren genutzt wurde.
84 Kapitel 3 : Ein parallel-hybrides Local Search-Verfahren für das CLP
Das vorgestellte Verfahren ist einer der ersten SA-Algorithmen für dreidimensionale
Packprobleme. Außerdem wurde bisher selten versucht, einen fairen Vergleich der beiden
Suchstrategien SA und TS durchzuführen. Schließlich konnte die Volumenauslastung für
eine große Anzahl an Standardproblemen erheblich gesteigert werden.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 85
4 Ein Verfahren zum Erzeugen von C&P-Instanzen
4.1 Zielsetzung und Vorgehensweise
Das vorliegende Kapitel stellt ein Verfahren zum Erzeugen von Testinstanzen für
Standardprobleme des Cutting and Packing vor. Die Motivation für die Entwicklung eines
solchen Verfahrens ergibt sich aus mehreren Umständen.
Ein C&P-Algorithmus eignet sich üblicherweise nicht gleichermaßen zur Lösung von
Problemen unterschiedlicher Heterogenität und Größe. Dies wurde beispielsweise im vorigen
Kapitel anhand von sieben Vergleichsverfahren festgestellt (vgl. Abb. 12 in Kapitel 3.6).
Idealerweise werden daher Testreihen verwendet, bei denen die Kistenzahl kontinuierlich
steigt, während bei gegebener Kistenzahl Probleme unterschiedlicher Heterogenitätsgrade
betrachtet werden. Solche Testreihen sind aber selten. Zwar gibt es mit den Problemen von
BISCHOFF und RATCLIFF (1995) 3D-Benchmarkprobleme unterschiedlicher Heterogenität.
Diese haben aber alle eine ähnliche Größe.
Bei den in der Literatur verwendeten Benchmarkinstanzen ist die Optimallösung oft
unbekannt. Der Kistenvorrat besteht meist aus rein zufällig erzeugten Kisten. Dies erschwert
die Einschätzung der Leistungsfähigkeit von Lösungsverfahren, da die Abweichung vom
tatsächlich erreichbaren Zielfunktionswert nur mittels theoretisch berechneter Bounds
abgeschätzt werden kann, die weit vom tatsächlich erreichbaren Auslastungsmaximum liegen
können.
Die verwendeten einfachen Zufallsgeneratoren für Testprobleme führen oft zu wenig
praxistauglichen Packstücken. Es werden meist recht sperrige Kistentypen erzeugt.
Außerdem werden die einzelnen Kistenmaße vielfach unabhängig voneinander erzeugt. So
können Packstücke mit außergewöhnlicher Form entstehen, welche in der betrieblichen
Praxis nur in manchen Geschäftszweigen vorkommen. Bei GENDREAU et al. (2006) etwa
werden Kisten erzeugt, deren Abmessungen zwischen 20 und 60% der Containermaße
betragen. Für weitere Beispiele von zufällig erzeugten Instanzen sei auf Kapitel 1.5
verwiesen.
Der Einfluss von zusätzlichen Nebenbedingungen (bezüglich Stabilität, Gewicht,
Gleichgewicht, Reihenfolgerestriktionen u.s.w.) kann oft nicht untersucht werden, da
Instanzen mit den entsprechenden Restriktionen fehlen.
86 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Ein weiterer Kritikpunkt an den verwendeten Benchmarkinstanzen besteht darin, dass die
Probleme nur selten bis zu 1000 Packstücke aufweisen. Findet man noch einzelne Beiträge
im 2D-Bereich zu großen Instanzen, fehlen diese gänzlich für den 3D-Fall. Die Instanzen
sind zudem teilweise Jahrzehnte alt und tragen der Leistung heutiger handelsüblicher PC-
Systeme kaum Rechnung.
In diesem Kapitel 4 soll nun, ausgehend von den eben beschriebenen Schwachstellen
existierender Testinstanzen, das Verfahren CPGH (Cutting and Packing Generator,
Heuristischer Ansatz) entwickelt und vorgestellt werden. CPGH erzeugt Instanzen mit
bekanntem Optimum und prinzipiell beliebiger Problemgröße und Charakteristik für ein
C&P-Problem.
Dargestellt wird das Verfahren zunächst mit dem Problemtyp CLP, wobei u.a. folgende
Termini verwendet werden. Eine Instanz (CLP-Instanz) bezeichnet ein
Containerbeladeproblem, welches durch die Angabe der Containerabmessungen sowie der
Kistenvorratsdaten (Kistenabmessungen, Kistenzahlen und Zusatzbedingungen pro
Kistentyp) eindeutig bestimmt ist. Eine Optimallösung bezeichnet eine zulässige Lösung
einer CLP-Instanz, deren Zielfunktionswert (Volumenauslastung der platzierten Kisten im
Container) maximal ist. Die Optimallösung ist durch die Anordnung der Kisten im Container
eindeutig bestimmt. Das Optimum bezeichnet den erreichten Zielfunktionswert
(Volumenauslastung) der Optimallösung. Im Suchverlauf von CPGH werden i.A. mehrere
Lösungen ermittelt, welche jeweils aus CLP-Instanz und zugeordneter Optimallösung
bestehen. Die beste im Suchverlauf ermittelte Lösung wird als Bestlösung bezeichnet.
Der Rest des Kapitels ist wie folgt gegliedert. In Kapitel 4.2 werden sämtliche Parameter und
die verwendeten Datenstrukturen eingeführt. Nachdem Abschnitt 4.3 einen Überblick über
das Verfahren gibt, erfolgt eine Beschreibung der verwendeten CLP-Basisheuristik zur
Erzeugung einer Ausgangslösung in Kapitel 4.4. In Abschnitt 4.5 wird ein iteratives
Verbesserungsverfahren eingeführt mit dem Ziel, CLP-Instanzen mit komplexerer
Packstruktur zu erzeugen. Der so ermittelten Bestlösung werden mit Hilfe einer einmaligen
Nachbearbeitung zusätzliche Nebenbedingungen hinzugefügt (siehe Abschnitt 4.6). Die
Anpassung von CPGH auf SPP- und BPP-Instanzen beschreiben die Abschnitte 4.7 bzw. 4.8.
Nach der Auswertung numerischen Tests in Abschnitt 4.9 endet das Kapitel mit einer
Zusammenfassung der Ergebnisse in Kapitel 4.10.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 87
4.2 Parameter und Datenstrukturen
Tabelle 18 fasst die Parameter von CPGH für das CLP zusammen. Diese lassen sich in fünf
Gruppen einteilen: (1) Containerdaten, (2) Problemgröße und Heterogenität des
Kistenvorrats, (3) Anforderungen an die Kistentypen, (4) Charakteristik der Optimallösung.
Weitere Suchparameter in Gruppe (5) zielen darauf ab, den Suchaufwand zu beschränken.
Das Hinzufügen von Nebenbedingungen wird erst in Kapitel 4.6.3 behandelt.
Tab. 18. Parameter von CPGH.
Parameter- gruppe
Parameter Beschreibung
C1, C2, C3 Containermaß 1, 2, 3 (bei 2D-Problem: C3 = 1)
LD Loading Direction (Beladerichtung); zulässige Werte für LD: 1,2,3 (1)
Container C VD Vertical Direction (Vertikalachse); zulässige Werte für VD: 1,2,3
[n_min, n_max] Intervall für zulässige Gesamtkistenzahl (2) Problemgröße, Heterogenität [t_min, t_max] Intervall für zulässige Anzahl an Kistentypen
[i_min, i_max] Beschränkung der Kistenzahl eines Typs ( i = items)
[d_min, d_max] Beschränkung der einzelnen Kistenmaße (d = distance)
[v_min, v_max] Beschränkung des Volumens einer einzelnen Kiste (v = volume)
r_max Maximales Verhältnis von größtem zu kleinstem Seitenmaß (r = ratio)
(3) Kistentypen
e_max Maximal akzeptierte Anzahl an Kistentypen, welche nicht sämtliche Voraussetzungen für i, d, v, r erfüllen (e = exceptions); e_max > 0
useNG
Boolean: gibt an, ob Nichtguillotine Schnitte verwendet werden sollen oder nicht: 0 = keine Nichtguillotineschnitte verwenden 1 = mindestens einmal einen Nichtguillotineschnitt verwenden
useLayers verwendetes Beladungsprinzip: 0 = keine Einschränkung 1 = Beladung in orthogonal zu LD liegenden vertikalen Schichten
useCPHI Boolean: gibt an, ob das iterative Verbesserungsverfahren CPHI verwendet werden soll (1) oder nicht (0), siehe Kapitel 4.5
(4) Optimum
VolPct gewünschtes Verhältnis von Kistenvorratsvolumen zu Containervolumen, angegeben in %
maxTr Anzahl der Neustarts. Die Bestlösung ergibt sich aus der bestbewerteten Lösung aller maxTr Versuche.
maxiniTr Maximale Anzahl an Versuchen, innerhalb der Basisheuristik CPHK eine Ausgangslösung zu ermitteln.
maxCPHI maximale Anzahl an aufeinanderfolgenden Aufrufen von CPHI
(5) Suchparameter
maxArr Beschränkung der maximalen Länge der Anordnungsliste
Parametergruppe (1) in Tab. 18 bestimmt die Charakteristik des zu verwendenden
Containers. Im 2D-Fall wird die dritte Containerdimension C3 auf den kleinstmöglichen
Wert 1 gesetzt; alle im Suchverlauf erzeugten Kisten erhalten dann als drittes Seitenmaß
88 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
ebenfalls 1. Die Beladerichtung (LD) und die Vertikalachse (VD) werden ausschließlich zum
Bestimmen des Packplans und nachträglichen Hinzufügen von Restriktionen benötigt.
Parametergruppe 2 definiert die Problemgröße und den Heterogenitätsgrad des Kistenvorrats.
Um der Heuristik mehr Spielraum bei der Suche nach zulässigen Instanzen zu lassen, können
Kistentypzahl und Kistenzahl als Wertebereich definiert werden (z.B. 900-1000 Kisten).
Parametergruppe 3 bestimmt die Charakteristik der Kisten: Bereiche für zulässige
Kistenlängen, Kistenvolumen und -anzahl sowie die Form der Kisten eines Typs (als
maximales Verhältnis r_max von maximaler Länge zu minimaler Länge) können vorgegeben
werden. Dieser Parameter r_max entspricht dem „item ratio“ in HOPPER und TURTON (2002)
bzw. „aspect ratio“ in WANG und VALENZUELA (2001). Aufgrund der großen Parameterzahl
kann nicht in allen Fällen gewährleistet werden, dass ausschließlich zulässige Kistentypen
ermittelt werden. Ein zusätzlicher Parameter e_max (e steht hier für exceptions) soll daher
das Auffinden einer zulässigen Lösung auch bei enger Parameterwahl erleichtern, indem
ausnahmsweise bis zu e_max Typen zugelassen sind, welche nicht sämtliche Anforderungen
der Gruppe 3 erfüllen. Eine (hier nicht näher beschriebene) Vorabanalyse macht zudem ggf.
auf problematische Parameterkombinationen aufmerksam.
Die Form der Optimallösung bestimmen, neben dem Parameter VolPct, die Boolschen
Parameter useNG, useLayers und useCPHI aus Parametergruppe (4). VolPct gibt das
gewünschte Verhältnis (Kistenvorratsvolumen) / (Containervolumen) vor. Bei useNG = 1
enthält die Optimallösung zwingend mindestens einen Nichtguillotineschnitt. Bei
useLayers = 1 erfolgt die Beladung in vertikalen Schichten. Bei Verwendung von
useCPHI = 1 wird die iterative Verbesserungsheuristik CPHI eingesetzt (siehe Kapitel 4.5).
Wie bereits eingangs erwähnt, besteht eine mit CPGH erzeugte Lösung s aus zwei Teilen.
Einerseits definiert die Kistentypliste TypList zusammen mit den vorgegebenen
Containermaßen (aus Parametergruppe 1 in Tab. 18) die CLP-Instanz. Andererseits liefert
der Packplan von s eine Optimallösung zu der CLP-Instanz. Die Optimallösung beschreibt
das Verstauen der Kisten innerhalb des Containers und ist durch die Listen PrList, ArrList
und TypList eindeutig bestimmt. Die Listenelemente sind in Abb. 15 dargestellt und werden
nun näher erläutert.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 89
Die Kistentypliste (TypList) wird im Suchverlauf erzeugt und enthält zu jedem Kistentyp T
die Maße T.max > T.med > T.min eines Kistenexemplars sowie deren verfügbare Anzahl im
Kistenvorrat (T.n). Jeder Kistentyp erhält zudem eine eindeutige Referenz T.id. Neben
zulässigen Kistentypen, welche sämtliche Bedingungen der Parametergruppe 3 erfüllen, sind
für eine erzeugte Instanz bis zu e_max unzulässige Kistentypen zugelassen. Um solche
unzulässigen Kistentypen von zulässigen zu unterscheiden, wird der Schalter T.valid
eingeführt. TypList enthält neben den in der Optimallösung verwendeten Typen auch solche,
die nur testweise erzeugt wurden und nicht verstaut werden. Letztere sind mit T.status = 0 als
inaktiv gekennzeichnet, alle verwendeten mit T.status = 1. Zusätzliche Eigenschaften für
Kistentypnebenbedingungen werden in Abschnitt 4.6.3 vorgestellt (vgl. Tab. 20 auf S.118).
Packraum prPrList(idPr)
Anordnung A ausArrList
Kistentyp TTypList(idTyp)
idPr idTyp
T.max
T.medT.min
Anzahl = T.n
1 2 3 ..n1
..n2
..n3
A.ov
x1,x2,x3
pr.d1
pr.d2
pr.d3
Packraum prPrList(idPr)
Anordnung A ausArrList
Kistentyp TTypList(idTyp)
idPr idTyp
T.max
T.medT.min
Anzahl = T.n
1 2 3 ..n1
..n2
..n3
A.ov
x1,x2,x3
pr.d1
pr.d2
pr.d3
Abb. 15. Listenelemente von PrList, ArrList und TypList.
Die Packraumliste (PrList) bezeichnet eine Liste von Packräumen. Dabei ist ein Packraum pr
ein leerer, quaderförmiger Raum innerhalb des Containers mit gegebenem Ursprung pr.x1,
pr.x2, pr.x3 und Abmessungen pr.d1, pr.d2, pr.d3. Dieser wird durch verlustfreies
Zerschneiden eines anderen Packraums (des so genannten Mutterpackraums von pr)
gewonnen. Jeder Packraum erhält eine eindeutige Referenz pr.id. Die Variable pr.idparent
verweist auf den Mutterpackraum. Der Mutterpackraum selbst verbleibt nach dem Zerlegen
als inaktives Element in PrList zurück. Ein Packraum (abgekürzt: PR) erhält hierzu analog zu
den Kistentypen einen Status (pr.status). Nur die aktiven Packräume am Ende der Suche
definieren die Bestlösung, die inaktiven PR werden ignoriert. Dieses Prinzip ermöglicht ein
sehr effizientes Verfahren zum Verschmelzen von ungeeigneten Packräumen während des
Suchprozesses (vgl. Punkt 4.4.6). Weitere Eigenschaften eines Packraums betreffen dessen
Füllbarkeit (pr.notyp) sowie das Verbot einer weiteren Unterteilung (pr.nocut). Konnte für
einen Packraum keine Anordnung gefunden werden, so gilt pr.notyp = 1, sonst pr.notyp = 0.
Darf ein Packraum nicht weiter zum Zerlegen verwendet werden, so erhält dieser den Status
90 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
pr.nocut = 1, sonst 0. Beim Erzeugen eines neuen Packraums pr wird stets pr.status = 1 und
pr.new = 1 gesetzt, alle übrigen Boolschen Parameter werden mit 0 initialisiert.
Die Anordnungsliste (ArrList) beschreibt eine Anordnung von Kisten in einem bestimmten
Packraum. Es kommt dabei ausschließlich eine einfache Ladestruktur der Kisten zum
Einsatz, bei der Kisten eines Typs in identischer räumlicher Orientierung den Packraum
füllen (so genannte 1-Anordnungen, vgl. Kapitel 2.2.1). Ein Element A aus ArrList erhält
folgende Eigenschaften: A.idPr verweist auf den jeweiligen Packraum in PrList, A.idTyp auf
den verwendeten Typ in TypList. Eine Anordnung A aus ArrList ist eindeutig bestimmt durch
die Angabe der verwendeten Orientierungsvariante (A.ov) sowie die Anzahl der verwendeten
Kisten in allen Ausdehnungen der 1-AO: A.n1, A.n2, A.n3. Auch Anordnungen erhalten einen
Status A.status, der die Werte 0 (inaktiv) oder 1 (aktiv) annehmen kann, sowie die
Eigenschaft A.valid, analog zum Zulässigkeitsstatus der Kistentypen. Tab. 19 fasst alle
Eigenschaften der Listenelemente des Verfahrens CPGH nochmals zusammen.
Tab. 19. Eigenschaften der Listenelemente.
Liste Element Eigenschaft Erklärung
T.id eindeutige Referenz des Kistentyps
T.status Status (1 = verwendet, 0 = nicht verwendet)
T.valid Zulässigkeit des Kistentyps (1 = ja, 0 = nein)
T.max, T.med, T.min Abmessungen eines Packstücks des Typs T
TypList T
T.n Anzahl der Packstücke im Kistenvorrat
pr.id eindeutige Referenz des Packraums
pr.idparent Referenz des Mutterpackraums
pr.status Status (1 = aktiv, 0 = nicht aktiv)
pr.x1, pr.x2, pr.x3 Ursprung des Packraums im Container
pr.d1, pr.d2, pr.d3 Abmessungen des Packraums
pr.new Packraum wurde gerade neu erzeugt (1 = ja, 0 = nein)
pr.notyp Füllbarkeit des Packraums (1 = nicht füllbar, 0 = füllbar)
PrList pr
pr.nocut Verbot für einen weiteren Schnitt (1 = ja, 0 = nein)
A.id eindeutige Referenz der Anordnung
A.idTyp Referenz des verwendeten Kistentyps
A.idPr Referenz des verwendeten Packraums
A.status aktueller Status (1 = verwendet, 0 = nicht verwendet)
A.valid Zulässigkeit der Anordnung (1 = ja, 0 = nein)
A.ov eingesetzte Orientierungsvariante (0..5)
ArrList A
A.n1, A.n2, A.n3 Anzahl an Kisten in drei Richtungen
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 91
4.3 Überblick über das Verfahrens CPGH
Das Verfahren CPGH erzeugt eine Instanz mit bekanntem Optimum für das
Containerbeladeproblem. Dabei werden im Suchverlauf drei Teilverfahren verwendet, die
durch die Module CPHK, CPHI und CPHP gekennzeichnet sind. Die Interaktion dieser
Module, deren Funktion und Resultat verdeutlicht die folgende Darstellung in Abb. 16.
Zunächst erzeugt Modul CPHK (C&P Generator, Heuristik, Konstruktiv) eine möglichst
einfache Instanz durch verlustfreies Zerlegen des Containers in t_min quaderförmige
Packräume und anschließendem Füllen der Packräume. Ein Packraum wird jeweils durch
Kisten eines Typs in identischer räumlicher Orientierung verlustfrei gefüllt, wobei jeder
verwendete Kistentyp sich in mindestens einer Abmessung von den übrigen Kistentypen
unterscheidet. CPHK erzeugt somit bereits eine zulässige CLP-Instanz.
Funktions-weise :
Output :
KonstruktiveBasisheuristik
Ausgangslösung
CPHK CPHI CPHPStart End
IterativesVerbesserungs-verfahren
Lösung mit komplexererPackstruktur
Nachbear-beitungder Bestlösung
Bestlösung mitRestriktionen
maxTr runs
maxCPHI runs
Funktions-weise :
Output :
KonstruktiveBasisheuristik
Ausgangslösung
CPHK CPHI CPHPStart End
IterativesVerbesserungs-verfahren
Lösung mit komplexererPackstruktur
Nachbear-beitungder Bestlösung
Bestlösung mitRestriktionen
maxTr runs
maxCPHI runs
Abb. 16. Schematische Darstellung der Teilverfahren von CPGH.
Bei entsprechender Parametrisierung (useCPHI = 1) wird das Modul CPHI (CP-Generator,
Heuristik, Iterativ) maxCPHI Male aufgerufen. Bei jedem Aufruf dieser
Verbesserungsheuristik wird eine Lösung berechnet. Ziel ist es dabei, durch Verschmelzen
und Neuteilen einzelner Packräume der Ausgangslösung eine CLP-Instanz mit verändertem
Kistenvorrat zu bestimmen, dessen Optimallösung eine komplexere Packstruktur aufweist.
Im dritten und letzten Schritt erfolgt schließlich eine einmalige Nachbearbeitung der bisher
ermittelten Bestlösung mit Hilfe des Moduls CPHP (CP Generator, Heuristik, Post
Processing). Neben dem Hinzufügen der Nebenbedingungen aus Abschnitt 1.2.4 werden ggf.
einige Kistentypen angepasst, falls VolPct ≠ 100% gelten soll (vgl. Tab. 18).
92 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Alg. 4 beschreibt den Verlauf von CPGH: es werden maxTr Neustarts durchgeführt, die
ermittelte Lösung ergibt sich aus der besten Lösung aus allen maxTr Versuchen. Für jede mit
CPHK ermittelte Ausgangslösung werden maxCPHI Nachbarlösungen mit Hilfe von CPHI
erzeugt.
procedure CPGH( in : Vorgabeparameter; out : Lösung sbest) { Initialisieren }
s:= Ø; sinit:= Ø; sbest:= Ø; f_sbest:= 0; { Anweisungen }
for iTr:= 1 to maxTr do s:= CPHK(); { Schritt 1 : zulässige Ausgangslösung berechnen } if s ≠ Ø then if f(s) > f_sbest then sbest:= s; f_sbest:= f(s); endif ; if useCPHI = 1 then sinit:= s; for jTr:= 1 to maxCPHI do s’:= CPHI(sinit); { Schritt 2: iteratives Verbesserungsverfahren } if s’ ≠ Ø then if s’ zulässig and f(s’) > f_sbest then sbest:= s’; f_sbest:= f(s’); endif ; sinit:= s’; else exit for jTr; endif ; endfor jTr; endif ; endif ; endfor iTr; if sbest ≠ Ø then sbest:= CPHP(sbest); { Schritt 3: Nachbearbeitung der Bestlösung } endif ;
end .
Alg. 4. Grobalgorithmus des Verfahrens CPGH.
Die Zielfunktion f ist wie folgt definiert: f(s):= nPr / nT, wobei nPr die Anzahl der
Packräume, nT die Kistentypzahl von s bezeichnet. f ist ein Indikator für die Komplexität der
erzeugten Packraumstruktur einer Lösung. Wird im Lösungsverlauf von CPGH eine
zulässige Lösung s gefunden, deren Zielfunktionswert den bisherigen maximalen
Zielfunktionswert f_sbest überbietet (f(s) > f_sbest), so wird s als neue Bestlösung
übernommen. Bei Gleichstand (f(s) = f_sbest) greifen mehrere Entscheidungsregeln im Sinne
eines Tiebreakers, welche in Alg. 4 nicht angeführt werden. Es wird dann die Lösung mit den
wenigsten unzulässigen Kistentypen übernommen, bei Gleichstand entscheidet die größere
Anzahl an Kisten.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 93
Nachfolgend werden die Module CPHK (nachfolgend als „Basisheuristik“ bezeichnet), CPHI
(„iteratives Verbesserungsverfahren“) und CPHP („Nachbearbeitung“) näher erläutert.
4.4 Basisheuristik zum Erzeugen einer Ausgangslösung (CPHK)
4.4.1 Module von CPHK
Die Basisheuristik CPHK erzeugt eine zulässige CLP-Instanz und ihre Optimallösung durch
verlustfreies Zersägen des Containers in einzelne Kisten. Eine CLP-Instanz ist zulässig, falls
alle Bedingungen der Parametergruppen 1-4 (außer VolPct) erfüllt sind. Der
Grobalgorithmus in Alg. 5 beschreibt das Vorgehen von CPHK.
procedure CPHK( in : Parameter t_min, t_max, n_min, n_max, useNG, useLayers, maxiniTr, Container C, i_min, i_max, d_min, d_max, v_min, v_max, r_max, e_max;
out : Lösung s ) { Initialisieren }
PrList:= {C}; TypList:= Ø; ArrList:= Ø; s:= Ø; solFound:= 0;
{ Anweisungen } for iTr:= 1 to maxiniTr do rufe CutPr(t_min, useNG, useLayers, PrList); { Packräume ausschneiden } rufe FindAllTypes(PrList, ArrList, TypList, d_min, d_max, i_max); { Kistentypen erzeugen } rufe CheckValid(TypList, ArrList, i_min, i_max, d_min, d_max, v_min, v_max, r_max); rufe FixAllTypes(ArrList, TypList, t_min, t_max, n_min, n_max, e_max); { Typen wählen } sei badPr:= Anzahl aktiver unfüllbarer Packräume pr in PrList mit pr.notyp = 1; sei badT:= Anzahl von PR mit aktiven unzulässigen Kistentypen T.valid = 0; if badPr > 0 or badT > e_max then { keine zulässige Lösung } rufe RemoveAllBads(); else solFound:= 1; exit for ; endif; endfor iTr; if solFound = 1 and TestSol(PrList, TypList, ArrList) = 1 then s:= { PrList, TypList, ArrList }; { zulässige Lösung gefunden } endif ;
end .
Alg. 5. Grobalgorithmus der Basisheuristik CPHK.
Zunächst werden sämtliche Listen initialisiert. PrList enthält als einziges Element den
gesamten Container C mit leerem Mutterpackraum C.idparent = 0. TypList und ArrList sowie
weitere Variablen werden leer initialisiert. In der Hauptschleife von Alg. 5 werden folgende
Teilschritte abgearbeitet. Zunächst werden die aktiven Packräume in PrList sukzessive
„zersägt“, bis insgesamt t_min Packräume vorliegen (Modul CutPr, siehe Punkt 4.4.2).
Anschließend werden testweise für jeden aktiven Packraum sämtliche Anordnungen von
94 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Kistentypen erzeugt, welche den Packraum verlustfrei füllen würden (Modul FindAllTypes,
siehe Abschnitt 4.4.3). Die entsprechenden Anordnungen werden in ArrList, die Typen in
TypList gespeichert. Eventuell unzulässige Typen und Anordnungen werden in Teilschritt 3
markiert (Modul CheckValid, siehe Kapitel 4.4.4). Schließlich erfolgt die Auswahl genau
einer Anordnung für jeden aktiven Packraum, so dass die Gesamtkistenzahl möglichst
innerhalb der Vorgaben [n_min, n_max] liegt. Dabei wird möglichst für jeden Packraum ein
anderer Kistentyp und insgesamt weniger als e_max unzulässige Kistentypen verwendet
(Modul FixAllTypes, vgl. Abschnitt 4.4.5).
Die Hauptschleife wird verlassen, falls eine vollständige Zerlegung des Containers vorliegt,
dessen Kistentypen zulässig sind (bis auf maximal e_max Ausnahmen). Gibt es dagegen
noch Packräume, die nicht gefüllt werden konnten (badPr > 0) oder enthält die Auswahl zu
viele unzulässige Typen (badT > e_max), so werden einige Packräume wieder aufgelöst,
indem diese mit benachbarten Packräumen mit Hilfe des Moduls RemoveAllBads (siehe
Abschnitt 4.4.6) verschmolzen und neu geteilt werden. Hierzu wird die Hauptschleife
wiederholt.
Wurde nach maxiniTr Iterationen immer noch keine geeignete Zerlegung des gesamten
Containers gefunden, bricht die Suche ab. Wurde dagegen eine Lösung gefunden, so wird in
TestSol (vgl. Abschnitt 4.4.7) überprüft, ob diese Lösung sämtliche Anforderungen erfüllt.
Ist dies der Fall, so wird die Lösung s zurückgegeben, die durch PrList, TypList und ArrList
eindeutig bestimmt ist. Wurde dagegen keine zulässige Lösung gefunden, wird
s = Ø zurückgegeben.
Zu den einzelnen Teilaufgaben sei ergänzend Folgendes bemerkt. Das Zerschneiden des
Containers in CutPr erfolgt in gewissen Grenzen zufällig. Es wird allerdings stets darauf
geachtet, dass Packräume entstehen, die im späteren Suchverlauf durch zulässige Kistentypen
verlustfrei gefüllt werden können. Ein Packraum wird dabei normalerweise durch einen
Guillotineschnitt in zwei neue quaderförmige Packräume zerlegt. Ausnahmsweise werden
alternative Schnittmuster verwendet (je nach Parameterwert für useNG, useLayers). Dieses
Vorgehen wird später eingehend unter 4.4.2 beschrieben.
FindAllTypes erzeugt ausschließlich passende Anordnungen und Kistentypen für die
einzelnen Packräume. Eine Anordnung wird dabei als „passend“ bezeichnet, falls diese aus
Kisten eines Typs in identischer räumlicher Orientierung besteht, welche den jeweiligen
Packraum verlustfrei füllt. In der Regel werden für einen Packraum viele passende
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 95
Anordnungen in ArrList erzeugt, die alternativ eingesetzt werden können. Um ein Ausufern
der Listenlänge zu verhindern, beschränkt ein Parameter maxArr die maximale Anzahl der
berechneten Anordnungen.
FixAllTypes trifft eine Auswahl der Anordnungen in ArrList. Vorrangiges Ziel ist dabei das
Einhalten der geforderten Gesamtkistenzahl nIt der Lösung (n_min < nIt < n_max).
Vorzugsweise werden nur zulässige und nicht bereits in einem anderen Packraum
verwendete Kistentypen gewählt. Es werden höchstens e_max Kistentypen gewählt, welche
nicht sämtliche Anforderungen erfüllen. Die entsprechenden Anordnungen und Typen
werden mit status:= 1 als aktiv markiert, alle anderen mit status:= 0. Diesem Teilverfahren
widmet sich Abschnitt 4.4.4. Nachfolgend werden die einzelnen Module der Basisheuristik
näher beschrieben.
4.4.2 Zerlegen des Containers in Packräume (Modul CutPr)
Modul CutPr zerschneidet sukzessive die Packräume in PrList und fügt neue Packräume in
PrList ein, bis PrList insgesamt eine vorgegebene Anzahl npr kompatibler aktiver Packräume
enthält (vgl. Alg. 6). Bevor der Zerlegevorgang näher beschrieben wird, soll vorab der
Begriff der kompatiblen Packraumlänge bzw. des kompatiblen Packraums eingeführt
werden.
Definition: Eine Packraumlänge L heißt kompatibel, falls gilt:
∈∃d { d_min, d_min + 1,.. , d_max} so dass L ohne Rest durch d teilbar ist.
Dabei bezeichnet Parameter d_min die minimal erlaubte, d_max die maximale erlaubte
Kistenlänge (vgl. Tab. 18). Sei Mc die Menge aller kompatiblen Packraumlängen L, mit
d_min < L < max(C1, C2, C3). Für einen Packraum mit ausschließlich kompatiblen
Packraumlängen aus Mc gilt demnach, dass es mindestens eine 1-AO gibt, welche den
Packraum verlustfrei füllt und dessen Kistentyp die Anforderungen an die Kistenlängen
(d_min, d_max) einhält. Ein solcher Packraum wird analog als „kompatibler Packraum“
bezeichnet. CutPr zielt nun darauf ab, den Container in npr kompatible Packräume zu
zerlegen. Im 2D-Fall gilt die dritte, unbenutzte Seitenlänge per definitionem als kompatibel.
Man beachte, dass ein kompatibler Packraum nicht automatisch auch zu zulässigen
Kistentypen führen muss, da für jeden Kistentyp weitere Bedingungen gelten (z.B. maximale
Kistenzahl, Volumen, Gewicht). Die Verletzung einer Bedingung bewirkt bereits die
96 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Unzulässigkeit des kompatiblen Kistentyps. Die Kompatibilität eines Packraums ist insofern
eine notwendige, aber nicht hinreichende Bedingung zum Auffinden zulässiger Kistentypen.
Es sei außerdem erwähnt, dass zum effizienten Ermitteln kompatibler Packraumlängen eine
globale Liste in CPGH vorab einmalig initialisiert wird. Diese gibt für jeden ganzzahligen
Wert x aus {1, 2, .., max(C1,C2,C3)} die maximale Anzahl an zulässigen Kistenlängen an,
welche aneinandergereiht x verlustfrei füllen würden. Sei OKList diese Liste, dann gilt: falls
OKList(x) = 0, so ist x keine kompatible Packraumlänge im obigen Sinne. Bei der Teilung
einer Packraumlänge L in zwei Segmente [0, x] und [x, L] wird darauf geachtet, dass beide
neuen Packraumlängen kompatibel sind im obigen Sinne, so dass gilt: OKList(x) > 0 und
OKList(L - x) > 0. Alg. 6 zeigt nun das iterative Vorgehen von CutPr.
procedure CutPr( in : npr, useNG, useLayers; inout : PrList ) { Initialisieren }
n:= Anzahl aktiver Packräume in PrList; cutType:= 0; cutDir:= 0; cutLen:= Ø; { cutLen = Liste der Schnittpunkte }
{ Anweisungen } for each pr in PrList do pr.nocut:= 0; { alle Packräume dürfen zunächst zerlegt werden } endfor pr; sei nprcut:= n; { Anzahl der aktiven Packräume in PrList mit pr.nocut = 0 } while n < npr and nprcut > 0 do wähle ein (aktives) Element pract aus PrList; { Auswahlproblem 1 } wähle das Schnittmuster cutType aus; { Auswahlproblem 2 } wähle die Schnittrichtung cutDir; { Auswahlproblem 3 } wähle die Schnittpunkte cutLen aus; { Auswahlproblem 4 } if PerformCut(pract, cutType, cutDir, cutLen) = 1 then { Schnitt war erfolgreich } desaktiviere pract in PrList und füge die Nachfolgepackräume in PrList ein; if cutType = 1 then n:= n + 1; { bei Guillotineschnitt } else n:= n + 4; { bei Nichtguillotineschnitt } endif ; else pract.nocut:= 1; { Packraum soll nicht weiter zerlegt werden } endif; setze nprcut:= Anzahl der aktiven Packräume pr in PrList mit pr.nocut = 0; endwhile ;
end .
Alg. 6. Algorithmus von Modul CutPr zum Zerlegen von Packräumen.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 97
In Alg. 6 wird der Status pr.nocut jedes Packraums mit 0 initialisiert. Jeder aktive Packraum
kommt demnach zunächst für eine Zerlegung in Frage. Die Hauptschleife in Modul CutPr
wird wiederholt, bis die Anzahl n aktiver Packräume in PrList die vorgegebene Anzahl npr
erreicht. Ein vorzeitiger Abbruch erfolgt, falls keine aktiven Packräume mehr vorhanden
sind, die für einen weiteren Schnitt in Frage kommen (nprcut = 0). Bei jedem Durchlauf der
Hauptschleife von CutPr gilt es, vier Auswahlprobleme zu lösen, bevor die Zerlegung
erfolgen kann. Diese Teilprobleme sind in folgender Abb. 17 zusammengefasst und werden
nun näher beschrieben.
(1) Wahl eines PRaus PrList
(2) Wahl desSchnittmusters
(3) Wahl derSchnittrichtung
(4) Wahl desSchnittpunkts
G-cut
NG-cut
(1) Wahl eines PRaus PrList
(2) Wahl desSchnittmusters
(3) Wahl derSchnittrichtung
(4) Wahl desSchnittpunkts
G-cut
NG-cut
Abb. 17. Auswahlprobleme bei der Packraumzerlegung mit CutPr.
(1) Die Auswahl des nächsten Packraums aus PrList richtet sich nach folgenden Kriterien.
Vorrangig wird ein Packraum pract gewählt, welcher mindestens eine nichtkompatible
Seitenlänge aufweist. Es stehen nur die aktiven Packräume pr mit pr.nocut = 0 zur Wahl.
Alle inaktiven Packräume in PRList wurden bereits weiter zerlegt oder bereits wieder
verschmolzen und stehen nicht für eine Zerlegung zur Verfügung. Existieren mehrere solche
Packräume mit nichtkompatiblen Seitenlängen, so wird der Packraum mit den meisten
nichtkompatiblen Seiten gewählt. Als Tiebreaker entscheidet das größte Packraumvolumen.
(2) Auswahl des Schnittmusters: In Betracht kommen ausschließlich Guillotineschnitte
(G-cut) und Nichtguillotineschnitte (NG-cut), vgl. Abb. 17 (2). Im ersten Fall werden durch
den Schnitt zwei Nachfolgepackräume, im anderen Fall fünf neue Packräume erzeugt. Nur
falls sämtliche folgenden Bedingungen simultan erfüllt sind, wird ein NG-cut gewählt, sonst
wird immer ein Guillotineschnitt verwendet:
• Die Verwendung von Nichtguillotineschnitten ist vorgeschrieben (useNG = 1).
• Mindestens vier weitere Packräume sollen erzeugt werden (|PrList| + 4 < npr).
• Der Packraum weist mindestens ein kompatibles Seitenmaß auf.
• Der Packraum besitzt ein ausreichendes Mindestvolumen.
98 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
(3) Wahl der Schnittrichtung: Bei einem G-cut erfolgt der Schnitt orthogonal zu der zu
teilenden Seite. Diese Seite bestimmt daher eindeutig die Schnittrichtung. Vorrangig wird
eine nichtkompatible Seite geteilt. Als Tiebreaker dient die größte Seitenlänge. Ein
Spezialfall stellt die Parameterwahl useLayers = 1 dar. Hierbei erfolgen die ersten minPr / 2
Guillotineschnitte zwingend orthogonal zur Beladerichtung LD. So entsteht später eine
Lösung mit aneinandergereihten Schichten in einer vorbestimmten Folgerichtung.
Bei NG-cuts erfolgen vier orthogonale nicht durchgängige Schnitte, alle schneiden dieselbe
Fläche des Packraums. Beim 2D-Problem besteht daher kein Auswahlproblem der
Schnittrichtung. Im 3D-Fall reicht es aus, die einzige nicht zu schneidende Packraumrichtung
auszuwählen, um die Schnittrichtung eindeutig festzulegen. Für diese Richtung wird stets
diejenige mit der kleinsten kompatiblen Packraumausdehnung gewählt.
(4) Wahl der Schnittpunkte: Es wird darauf geachtet, dass beim Schneiden einer
Packraumlänge L stets kompatible neue Packraumlängen entstehen. Existiert keine solche
Zerlegung x1 + (L – x1) von L mit x1 ∈ Mc und (L – x1) ∈ Mc, so wird möglichst eine
alternative Packraumlänge geschnitten (beim G-cut) oder der Schnitt wird nicht durchgeführt
(beim NG-cut). In dem Fall bleibt die Liste der Schnittpunkte cutLen leer. Existieren mehrere
Alternativen der Zerlegung in kompatible Packraumlängen für einen Packraum pract, so wird
eine Zerlegealternative zufällig gewählt. Diese Zufallskomponente ist durchaus beabsichtigt,
da hierdurch sichergestellt wird, dass bei mehrfachen Aufrufen der maxiniTr - Schleife in
Alg. 5 stets neue Packraumaufteilungen erzeugt werden. Zudem wird es dadurch möglich,
ganze Testreihen unterschiedlicher Instanzen mit gleicher Charakteristik zu erzeugen.
Bei einem NG-cut werden fünf neue Packräume A - E erzeugt, welche durch vier
Schnittpunkte x1 bis x4 eindeutig definiert sind, wie Abb. 18 zeigt. Seien d1, d2, d3 die drei
Ausdehnungen des zu schneidenden Packraums, d3 das (kompatible) orthogonale, nicht
geschnittene Maß. Setze k:= OKList(d3) > 0 im 3D-Fall, k:= 1 im 2D-Fall. k gibt die
maximale Zahl an Kisten an, welche in 1-Anordnungen in Richtung von d3 vorkommen
können.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 99
x1 x2
x4
d1
d2
x3
A
B
C
DE
Schnittrichtung 1
Schnittrichtung 2
x1 x2
x4
d1
d2
x3
A
B
C
DE
Schnittrichtung 1
Schnittrichtung 2
Abb. 18. Schnittpunkte und Nachfolgepackräume beim NG-Schnitt.
Es gelten folgende notwendigen Beziehungen zwischen x1, x2, x3, x4:
(a) x1 > d_min (g) OKList(x2) · OKList(x3) > i_min / k
(b) x2 - x1 > d_min (h) OKList(d1 - x2) · OKList(x4) > i_min / k
(c) d1 - x2 > d_min (i) OKList(d1 - x1) · OKList(d2 – x4) > i_min / k
(d) x3 > d_min (j) OKList(x1) · OKList(d2 - x3) > i_min / k
(e) x4 - x3 > d_min (k) OKList(x2 - x1) · OKList(x4 - x3) > i_min / k
(f) d2 - x4 > d_min
Die Bedingungen (a) bis (f) ergeben sich aus der minimalen Kistenlänge d_min, während (g)
bis (k) die Mindestkistenzahlen pro Typ (i_min) für die Packräume A - E berücksichtigen.
Um cutLen = {x1, x2, x3, x4} zu ermitteln, werden die Punkte x1 bis x4 nacheinander so
gewählt, dass möglichst alle obigen Beschränkungen erfüllt sind. Wurde nach einer gewissen
Anzahl an Versuchen keine gültige Wertekombination gefunden, welche sämtliche
Voraussetzungen (a) - (k) erfüllt, so wird kein NG-cut durchgeführt, sondern ein
Guillotineschnitt.
Die Funktion PerformCut übernimmt das eigentliche Zerlegen des Packraums. Die aus der
Zerlegung hervorgehenden neuen Packräume pr werden mit pr.new = 1 markiert und als
aktive Elemente an PrList angehängt; der Mutterpackraum pract wird desaktiviert. Wurden
dagegen keine Schnittpunkte identifiziert (cutLen = Ø), so erfolgt kein Schnitt; PerformCut
gibt den Wert 0 zurück und pract steht dann nicht weiter zum Zerschneiden zur Verfügung
(pract.nocut = 1). Bei einem erfolgreichen Schnitt gibt PerformCut den Wert 1 zurück.
100 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
4.4.3 Erzeugen der Kistentypen (Modul FindAllTypes)
Modul FindAllTypes fügt alle denkbaren Kistentypen und 1-Anordnungen für die neu in
PrList erzeugten Packräume pr in TypList und ArrList hinzu (nur Packräume mit pr.new = 1
werden bearbeitet). Dieser Vorgang soll nun für einen Packraum beschrieben werden.
Für jede Packraumausdehnung L von pr werden sämtliche Kistendimensionen aus
{ d_min, d_min+1,.., d_max} identifiziert, welche L verlustfrei teilen. Durch Kombination
dieser Kistenseitenlängen aller Ausdehnungsrichtungen werden anschließend sämtliche
denkbaren Kistentypen gebildet.
Wurde kein einziger Kistentyp gefunden, so erfolgt ein zweiter Durchgang. In diesem
Durchgang wird die Suche ausgeweitet, so dass auch kleinere Kistenseiten als d_min
betrachtet werden. Aus allen Kistentypen werden allerdings nur diejenigen zurückbehalten,
welche die Bedingung bzgl. der maximal erlaubten Kistenzahl pro Typ (vgl. Parameter i_max
in Tab. 18) nicht verletzen. So soll vermieden werden, dass die erzeugten Kisten zu klein
werden. Da im zweiten Durchgang unzulässige Kistentypen entstehen, wird dieser nur
durchgeführt, falls unzulässige Kistentypen grundsätzlich erlaubt sind (e_max > 0).
Alle so erzeugten Kistentypen werden an TypList angehängt, die dem jeweiligen Kistentyp
entsprechende Anordnung in pr wird in ArrList eingefügt. Durch Vorgabe einer maximalen
Anzahl an erzeugten Anordnungen pro Packraum wird ein Ausufern der Listenlängen
verhindert. Nach der Bearbeitung wird pr.new = 0 gesetzt, um sicherzustellen, dass beim
nächsten Aufruf von FindAllTypes keine redundanten Rechenschritte ausgeführt werden.
4.4.4 Zulässigkeitsprüfung (Modul CheckValid)
Man beachte, dass in TypList und ArrList zwar nur passende, aber nicht notwendigerweise
ausschließlich zulässige Kistentypen erzeugt werden. Unzulässige Kistentypen können
beispielsweise entstehen, falls mindestens eine der in FindAllTypes nicht beachteten
Kistentypvorgaben bzgl. Volumen, Kistenzahl und Seitenverhältnis verletzt wird. Modul
CheckValid prüft daher für jeden Kistentyp aus TypList und jede Anordnung aus ArrList die
Zulässigkeit, wie Alg. 7 zeigt.
Bei jedem Kistentyp werden das Einhalten des maximalen Verhältnisses von größter zu
kleinster Kistenlänge sowie die Konformität von Volumen und Seitenlängen getestet. Für
jede Anordnung aus ArrList wird zunächst der Zulässigkeitsstatus des verwendeten
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 101
Kistentyps übernommen. Die Zulässigkeit wird dann aber verneint, falls die in der
Anordnung verwendete Kistenzahl die maximale Kistenzahl pro Typ übersteigt oder die
minimale Kistenzahl unterschreitet. Letzteres wird aber nur dann geprüft, falls Kistentypen
nicht in mehreren Anordnungen auftauchen können (d.h. falls das iterative
Verbesserungsverfahren CPHI mit useCPHI = 0 ausgeschaltet ist). Wird CPHI dagegen
verwendet, erfolgt die Überprüfung des Einhaltens von i_min erst später (in Modul TestSol),
wenn feststeht, ob der Kistentyp in mehreren Anordnungen der Lösung verwendet wird.
procedure CheckValid( inout : TypList, ArrList ) { Initialisieren }
r:= 0; v:= 0; n:= 0; { r = ratio, v = volume, n = number } { Anweisungen }
for each T in TypList do r:= T.max / T.min; { im 2D-Fall: r := T.max / T.med } v:= T.max · T.med · T.min; if v > v_min and v < v_max and r < r_max then T.valid:= 1; else T.valid:= 0; endif ; if T.max > d_max or T.min < d_min then T.valid:= 0; endif ; endfor T; for each A in ArrList do sei T der zu A gehörige Kistentyp aus TypList; n:= A.n1 · A.n2 · A.n3; { n ist die für A benötigte Kistenzahl } setze A.valid:= T.valid; { Zulässigkeit für Typ gilt auch für AO } if n > i_max then A.valid := 0; { Kistenzahl zu hoch } endif; if n < i_min and useCPHI = 0 then A.valid := 0; { Kistenzahl zu niedrig } endif; endfor A;
end .
Alg. 7. Modul CheckValid: Zulässigkeitstest von Typen und Anordnungen.
4.4.5 Auswahl der Kistentypen (Modul FixAllTypes)
Modul FixAllTypes trifft nun eine Auswahl aus ArrList, so dass:
• für jeden aktiven Packraum aus PrList genau ein Element aus ArrList gewählt wird;
• die Gesamtkistenzahl der Auswahl innerhalb der Vorgaben [n_min, n_max] liegt;
• möglichst keine Kistentypen doppelt auftauchen;
• die gewählte Anordnung möglichst zulässig ist (A.valid > 0) oder höchstens e_max
Ausnahmen enthält.
FixAllTypes löst das kombinatorische Problem mit einer einfachen Heuristik. ArrList wird
sortiert nach Packraum und aufsteigender Kistenzahl. Für jeden Packraum wird zunächst
102 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
diejenige Alternative gewählt, welche die benötigte mittlere Kistenzahl, definiert als Quotient
(Anzahl noch zu erzeugender Kisten) / (Anzahl noch freier Packräume), am besten annähert.
Gibt es zulässige und unzulässige Anordnungen für einen Packraum, wird stets eine zulässige
gewählt. Entspricht die Gesamtkistenzahl nach diesem ersten Durchgang nicht den
Vorgaben, werden mehrere Iterationen durchgeführt mit dem Ziel, die Gesamtkistenzahl
nach und nach an den gewünschten Bereich anzunähern. In jeder Iteration wird dazu ein
Packraum ausgewählt und eine alternative Anordnung mit der nächst höheren (bzw. nächst
kleineren) Kistenzahl realisiert. Allerdings wird möglichst keine Anordnung mit einem
bereits verwendeten Kistentyp gewählt. Auf eine detaillierte Beschreibung des Moduls
FixAllTypes wird hier verzichtet.
Es sei darauf hingewiesen, dass nicht auszuschließen ist, dass am Ende von FixAllTypes eine
Lösung vorliegt, bei der die Kistentypanzahl den geforderten Mindestwert nicht erreicht
(weil einzelne Kistentypen in mehreren Packräumen auftauchen). Ist dies der Fall, so wird
ein zusätzlicher Packraum aus dem jeweils größten Packraum ausgeschnitten und gefüllt, bis
die Kistentypzahl der Mindesttypzahl entspricht. Auch kann es vorkommen, dass der
gewünschte Bereich [n_min, n_max] nicht erreicht werden kann und somit die Lösung nicht
zulässig ist. In dem Fall gibt die Basisheuristik den Wert s = Ø zurück (vgl. Alg. 5).
4.4.6 Auflösen unzulässiger Packräume (Modul RemoveAllBads)
Modul RemoveAllBads wird aufgerufen, falls nach dem Zerschneiden und Füllen des
Containers Packräume verbleiben, die nicht gefüllt werden konnten, oder falls noch zu viele
Packräume mit unzulässigen Anordnungen bestehen (vgl. Alg. 5). RemoveAllBads
verschmilzt dazu alle aktiven nicht füllbaren Packräume pr (mit Status pr.notyp = 1) bzw.
Packräume mit unzulässigen Anordnungen A (A.valid = 0) mit den benachbarten Packräumen
zu den ursprünglichen Mutterpackräumen.
Beim anschließenden Durchlaufen der Hauptschleife von CPHK werden erneut Packräume
mit Hilfe des Moduls CutPr erzeugt. Jeder im Suchverlauf erzeugte Packraum verbleibt in
PrList. Wird ein Packraum pr im Suchverlauf weiter unterteilt, so wird dieser desaktiviert
(pr.status = 0). Dies ermöglicht ein sehr effizientes Verschmelzen mit einfachen
Grundoperationen, die nun näher in Alg. 8 und Alg. 9 erläutert werden. Für jeden
aufzulösenden Packraum pr wird das Modul MergePr aufgerufen.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 103
procedure MergePr ( in : pr; inout : PrList ) { Initialisieren }
idpar := pr.idparent; { id des Mutterpackraums von pr } { Anweisungen }
if idpar > 0 then { Mutterpackraum existiert } sei prpar der Mutterpackraum mit Referenz idpar in PrList; rufe RemoveAllChilds(idpar, PrList); { desaktiviere alle Kinderpackräume } setze prpar.status:= 1; { reaktiviere den Mutterpackraum } endif ;
end .
Alg. 8. Modul MergePr: Verschmelzen eines Packraums pr.
Das Desaktivieren aller aktiven innerhalb vom Mutterpackraum prpar liegenden Packräume
erfolgt rekursiv mit Hilfe von RemoveAllChilds aus Alg. 9. Ist einer der Kinderpackräume
bereits inaktiv, da dieser weiter unterteilt wurde, so werden dessen Kinderpackräume
desaktiviert.
procedure RemoveAllChilds ( in : idpar; inout : PrList ) { Anweisungen }
for each pr in PrList do if pr.idparent = idpar then do { direkter Nachfolger von idpar } if pr.status > 0 then pr.status:= 0; { Packraum wird desaktiviert } else { der Nachfolger wurde weiter unterteilt } RemoveAllChilds(pr.id, PrList); { desaktiviere alle Nachfolger von pr } endif ; endif ; endfor ;
end .
Alg. 9. Modul RemoveAllChilds: rekursives Desaktivieren aller Packräume.
Abb. 19 zeigt ein Beispiel für das Zerlegen und Verschmelzen von Packräumen und das
Führen von PrList mit sämtlichen im Suchverlauf erzeugten Packräumen. Am Beispiel von
Packraum 3 in Abb. 19 sieht man, dass dieser weiter in die Packräume 4 und 5 zerlegt wird.
Beide neuen Packräume 4 und 5 sind nach dem Zerlegevorgang aktiv, während der
Mutterpackraum 3 mit status = 0 als inaktiv in PrList verbleibt. Man erkennt ebenso den
Verschmelzungsvorgang am Beispiel der Packräume 6 und 7. Nach dem Verschmelzen sind
die Kinderpackräume 6 und 7 mit status = 0 gekennzeichnet, während der vorher inaktive
Mutterpackraum 5 wieder reaktiviert wurde mit status = 1. Zu jedem Zeitpunkt beschreiben
alle aktiven Elemente aus PrList eine vollständige verlustfreie Zerlegung des Containers.
104 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
1
2
3
2
45
PrLis tid par stat1 0 1
PrLis tid par stat
3
12
0 0
PrLis tid par stat
5
3
12
4
0 01 11 1
1 11 03 13 1
9 8
6
7
10
11
8 9
10
11
PrLis tid
6
par stat
5
3
12
4
789
1011
0 0
4 14 1
2 12 1
5 15 1
3 03 0
1 01 0
PrLis tid
6
par stat
5
3
12
4
7891011
0 0
4 14 1
2 12 1
5 05 0
3 03 1
1 01 0
5
Mehrfaches Zerschneiden von Packräumen
Verschmelzen von Packraum 6 :
1
2
3
2
45
PrLis tid par stat1 0 1
PrLis tid par stat
3
12
0 0
PrLis tid par stat
5
3
12
4
0 01 11 1
1 11 03 13 1
1
2
3
2
45
PrLis tid par stat1 0 1
PrLis tid par stat
3
12
0 0
PrLis tid par stat
5
3
12
4
0 01 11 1
1 11 03 13 1
9 8
6
7
10
11
8 9
10
11
PrLis tid
6
par stat
5
3
12
4
789
1011
0 0
4 14 1
2 12 1
5 15 1
3 03 0
1 01 0
PrLis tid
6
par stat
5
3
12
4
7891011
0 0
4 14 1
2 12 1
5 05 0
3 03 1
1 01 0
5
9 8
6
7
10
11
8 9
10
11
PrLis tid
6
par stat
5
3
12
4
789
1011
0 0
4 14 1
2 12 1
5 15 1
3 03 0
1 01 0
PrLis tid
6
par stat
5
3
12
4
7891011
0 0
4 14 1
2 12 1
5 05 0
3 03 1
1 01 0
5
Mehrfaches Zerschneiden von Packräumen
Verschmelzen von Packraum 6 :
Abb. 19. Zerschneiden und Verschmelzen von Packräumen in PrList.
4.4.7 Testen der Zulässigkeit einer Lösung (Modul TestSol)
Die aktiven Listenelemente in PrList, ArrList und TypList bilden die Lösung s. Modul
TestSol überprüft, ob s zulässig ist, d.h. ob die CLP-Instanz sämtliche Bedingungen der
Parametergruppe 2, 3 und 4 (außer VolPct) erfüllen. Insbesondere wird geprüft, ob die
Anzahl unzulässiger Kistentypen unterhalb des Schwellenwerts e_max liegt und ob die
Kistentypzahl und die Gesamtkistenzahl zulässig sind.
Das Gesamtvolumen der in s verwendeten Kisten muss dem Containervolumen entsprechen,
der Container also verlustfrei gefüllt sein (VolPct = 100%). Außerdem wird überprüft, ob alle
Kisten fehlerlos (überlappungsfrei und innerhalb der Containergrenzen) platziert wurden.
Eine zulässige Lösung s bildet den Ausgangspunkt für die Verbesserungsheuristik CPHI, die
nun vorgestellt wird.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 105
4.5 Iteratives Verbesserungsverfahren (CPHI)
4.5.1 Module von CPHI
Das Ziel des Verbesserungsansatzes von Modul CPHI besteht darin, eine CLP-Instanz s’ mit
verändertem Kistenvorrat zu bestimmen, deren Lösung eine komplexere Packstruktur
aufweist als die der Ausgangslösung s (vgl. Kapitel 4.3).
Wird in CPHI eine zulässige Lösung s’ mit einem höheren Zielfunktionswert ermittelt, d.h.
falls f(s’) > f(s), so wird s’ als neue Bestlösung akzeptiert. Der Zielfunktionswert
f(s) = nPr / nT ist dabei umso höher, je größer die Packraumanzahl nPr ist, bei gleichzeitig
unveränderter Kistentypzahl nT. Ziel der Verbesserungsheuristik ist daher das mehrfache
Verwenden identischer Kistentypen in möglichst vielen Packräumen. Hintergrund ist die
Überlegung, dass die Ermittlung der Optimallösung umso schwieriger sein dürfte, je mehr
Packräume diese enthält. Die folgende Abb. 20 erläutert die vier Teilschritte der
Verbesserungsheuristik CPHI anhand des 2D-Falls.
1 01 1
10
00
A EA F
FD
CB
Container Packraum
Ausgangslösung s
(enthält 8 Packräume mit 6 Kistentypen A bis F)
Schritt 1:Bewerte die Packräume
(Packräume mit mehrfachverwendeten Kistentypenerhalten eine bessereBewertung)
Schritt 2:Reaktiviere den Mutterpackraum mit der schlechtesten Bewertung
A EA F
F
ReaktivierterMutterpackraum
prpar
Kistentyp
Schritt 3:Teile den Mutterpackraum neu, indem eine geeigneteAnordnung in prpar realisiertwird, die einen Kistentyp der übrigen Packräume verwendet.
A EA F
F
G
E
A EA F
FE
H
Schritt 4: Ergänze die Teillösung zueiner vollständigen Lösung s’
(s’ enthält 9 Packräume und 6 Kistentypen)
I
Vier Teilschritte des Verbesserungsansatzes von
CPHI
1 01 1
10
00
A EA F
FD
CB
Container Packraum
Ausgangslösung s
(enthält 8 Packräume mit 6 Kistentypen A bis F)
Schritt 1:Bewerte die Packräume
(Packräume mit mehrfachverwendeten Kistentypenerhalten eine bessereBewertung)
Schritt 2:Reaktiviere den Mutterpackraum mit der schlechtesten Bewertung
A EA F
F
ReaktivierterMutterpackraum
prpar
Kistentyp
Schritt 3:Teile den Mutterpackraum neu, indem eine geeigneteAnordnung in prpar realisiertwird, die einen Kistentyp der übrigen Packräume verwendet.
A EA F
F
G
E
A EA F
FE
H
Schritt 4: Ergänze die Teillösung zueiner vollständigen Lösung s’
(s’ enthält 9 Packräume und 6 Kistentypen)
I
Vier Teilschritte des Verbesserungsansatzes von
CPHI
Abb. 20. Vorgehensweise des Verbesserungsmoduls CPHI.
106 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Das vorige Schema zeigt die jeweils aktiven Packräume im Container. Bekanntlich wird
jeder Packraum verlustfrei mit einer Kistenanordnung gefüllt, welche aus Kisten eines Typs
in identischer räumlicher Orientierung besteht (siehe Kapitel 4.4.3). Zur besseren Übersicht
wird in Abb. 20 stellvertretend für diese Kistenanordnung nur der jeweilige Kistentyp
(A, B, C,..) bzw. dessen Bewertung (0 oder 1) angegeben. Ist ein Packraum zwischenzeitlich
nicht belegt, so wird kein Kistentyp angegeben.
Die Verbesserungsheuristik geht nun wie folgt vor. Zunächst werden die Packräume der
Ausgangslösung s bewertet (Schritt 1 in Schema Abb. 20). Kistentypen, welche in mehreren
Packräumen verwendet werden, erhalten dabei eine bessere Note als solche, die nur in einer
Anordnung vorkommen. Im Beispiel erhalten daher die Packräume mit den (je zweifach
verwendeten) Kistentypen A und F den Wert 1, alle anderen erhalten den Wert 0.
Im folgenden Schritt 2 wird der Mutterpackraum mit der schlechtesten Bewertung reaktiviert,
indem alle in diesem Mutterpackraum enthaltenen aktiven Packräume wieder miteinander
verschmolzen werden. Die Bewertung eines Mutterpackraums berechnet sich dabei aus der
Summe der Benotungen der Packräume, welche im Mutterpackraum enthalten sind. Als
Tiebreaker dient das größte Packraumvolumen.
In Schritt 3 wird der reaktivierte Mutterpackraum prpar einmal neu unterteilt. Die Aufteilung
ergibt sich dabei aus einer bestimmten Kistenanordnung Abest, welche in prpar realisiert wird
und die folgenden drei Eigenschaften aufweist: Abest verwendet einen Kistentyp Tbest, der für
einen der verbliebenen Packräume in Frage kommt (siehe Beispiel: Tbest = E). Außerdem teilt
Abest eine Packraumausdehnung von prpar verlustfrei (in Abb. 20: die Packraumbreite).
Schließlich bilden alle Restdistanzen in prpar (nach Realisieren von Abest) kompatible
Seitenlängen zur Bildung von füllbaren Nachfolgepackräumen in prpar.
Im letzten Schritt 4 wird schließlich die vorliegende Teillösung vervollständigt, indem
weitere Packräume erzeugt und gefüllt werden, bis eine zulässige Lösung s’ entsteht. In
Abb. 20 enthält die zulässige Lösung s’ 9 Packräume, gegenüber nur 8 Packräume der
Ausgangslösung s und bei ansonsten gleichbleibender Kistentypzahl. Lösung s’ wird daher
als neue Bestlösung akzeptiert, da offensichtlich gilt: f(s’) = 9 / 6 > f(s) = 8 / 6.
Ergänzend sei zur Verbesserungsheuristik Folgendes bemerkt. Schritt 1 geht stets von einer
vollständigen Lösung s aus. Die neu erzeugte Packstruktur wird durch die Verschmelzung
und Neuteilung einiger Packräume erreicht. Da deren Packraumstruktur teilweise erhalten
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 107
bleibt, werden die beiden Lösungen auch als Nachbarlösungen bezeichnet. Während die
Packraumstrukturen von Nachbarlösungen somit verwandt sind, gilt dies nicht unbedingt für
die verwendeten Kistentypen und Kistenzahlen. Das Ziel der iterativen Suche besteht ja
gerade darin, über eine kompliziertere Packraumaufteilung zu einem anderen Kistenvorrat zu
gelangen, so dass die Ermittlung der Optimallösung bei der Nachbarlösung schwieriger
ausfällt als bei der Ausgangslösung. Daher stehen alle alternativen Kistentypen aus TypList,
welche für die verbleibenden Packräume aus s erzeugt wurden, für die Bestimmung der
Kistentypen der Nachbarlösung s’ zur Wahl1.
Im dargestellten 2D-Fall werden genau zwei Nachfolgepackräume von prpar erzeugt (siehe
Teilschritt 3 in Abb. 20). Im 3D-Fall werden dagegen drei Packräume erzeugt, wie folgende
Erklärungen belegen: wie für den 2D-Fall eingangs beschrieben, wird auch im 3D-Fall eine
Anordnung Abest realisiert, welche eine Packraumausdehnung von prpar vollständig ausfüllt.
Dabei entstehen neben dem Packraum pr0, welcher Abest umfasst, in der Regel zwei weitere
Nachfolgepackräume pr1 und pr2 (vgl. Abb. 21b).
a) Identifizieren aller passendenKistentypen aus TypList
b) Auswahl eines Kistentyps und Anordnung.Letztere definiert die Packraumzerlegung von prpar.
Mutterpackraum prpar
Nachfolge-packraum
Anordnung füllteine Packraumseiteverlustfrei
TypList
pr2
pr1
pr0
a) Identifizieren aller passendenKistentypen aus TypList
b) Auswahl eines Kistentyps und Anordnung.Letztere definiert die Packraumzerlegung von prpar.
Mutterpackraum prpar
Nachfolge-packraum
Anordnung füllteine Packraumseiteverlustfrei
TypList
pr2
pr1
pr0
Abb. 21. Unterteilung des Mutterpackraums prpar im 3D-Fall (Teilschritt 3).
Gibt es mehrere in prpar passende Kistentypen aus TypList (in Abb. 21a grau dargestellt)
bzw. existieren mehrere alternativ in Frage kommenden Anordnungen für den gewählten
Kistentyp in prpar, so erfolgt eine Auswahl nach bestimmten Kriterien, die später (in Kapitel
4.5.3) vorgestellt werden. Wird dagegen kein einziger passender Kistentyp identifiziert, so
1 Abb. 20 stellt insofern einen Spezialfall dar. Der bereits in s verwendete Kistentyp E bestimmt die Zerlegung von prpar (Schritt 3). Im allgemeinen Fall kommt ein alternativer Kistentyp E’ zum Einsatz, der ebenfalls (wie E) aus TypList stammt, der aber im Gegensatz zu E nicht bereits in der Ausgangslösung verwendet wird.
108 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
wird Schritt 3 übersprungen und die Teillösung wird wie beschrieben in Schritt 4 mit der
abgeänderten Basisheuristik vervollständigt.
Die Teilaufgaben aus Abb. 20 werden mehreren Modulen zugeteilt, die im Grobalgorithmus
von Alg. 10 dargestellt sind. Die bereits vorgestellte rekursive Funktion RemoveAllChilds
übernimmt dabei das Desaktivieren der Kinderpackräume von Mutterpackraum prpar in
Teilschritt 2.
procedure CPHI ( in: Lösung s; out: Nachbarlösung s’ ) { Initialisieren }
sei PrList die Packraumliste von s; sei TypList die Kistentypliste von s; sei ArrList die Liste der Anordnungen von s;
{ Anweisungen } prpar:= SelectParent(PrList, ArrList, TypList); { Schritt 1: bewerte und wähle Mutterpackraum } RemoveAllChilds(prpar, PrList); { Schritt 2: reaktiviere den Mutterpackraum } prpar.status:= 1; SplitParent(prpar, PrList, ArrList, TypList); { Schritt 3: teile einmalig prpar } s’:= FinishSol(PrList, ArrList, TypList); { Schritt 4: vervollständige die Teillösung }
end.
Alg. 10. Grobalgorithmus der iterativen Verfahrenskomponente CPHI.
Bevor die drei neuen Module SelectParent (Teilaufgabe 1), SplitParent (Teilaufgabe 3) und
FinishSol (Teilaufgabe 4) näher beschrieben werden, soll auf den iterativen Aufruf von CPHI
eingegangen werden. In Alg. 4 (siehe S.92) ist ersichtlich, dass CPHI mehrfach aufgerufen
wird, bis keine Nachbarlösung ermittelt werden konnte, höchstens aber erfolgen maxCPHI
Aufrufe. Die am Ende eines Iterationsvorgangs bereitgestellte Lösung wird jeweils als
Ausgangspunkt für den nächsten Iterationsschritt verwendet, unabhängig davon, ob diese
Lösung zulässig oder unzulässig ist. Durch den mehrfachen Aufruf sollen so nach und nach
komplexere Packstrukturen entstehen.
4.5.2 Auswahl eines Mutterpackraums (Modul SelectParent)
Ziel von Modul SelectParent ist es, einen zurzeit inaktiven Mutterpackraum aus PrList zu
ermitteln, dessen (aktive) Kinderpackräume möglichst wenige mehrfach verwendete
Kistentypen aufweisen. Dazu werden zunächst die Eigenschaften pr.score und pr.score2
eines Packraums pr eingeführt und wie folgt definiert.
Der Wert von pr.score gibt an, wie viele aktive Packräume aktuell denselben Kistentyp
verwenden wie Packraum pr. Ist pr nicht mit einer aktiven Anordnung belegt, so wird
pr.score = 0 gesetzt. Die im Beispiel der Abb. 20 (Schritt 2) dargestellten Bewertungen
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 109
entsprechen den Werten für pr.score. Wird ein Kistentyp n-mal in einer Lösung verwendet
(d.h. kommt derselbe Kistentyp in n Anordnungen A vor mit A.status = 1), so gilt für die
Bewertung aller entsprechenden Packräume: pr.score = n - 1.
Modul SelectParent berechnet zunächst pr.score für alle aktiven Packräume der
Ausgangslösung s. Anschließend wird für jeden Mutterpackraum prpar eines aktiven
Packraums der Wert von prpar.score2 ermittelt. Dieser berechnet sich aus der Summe über
alle pr.score der in diesem Mutterpackraum enthaltenen Packräume pr. Der von SelectParent
zurückgegebene Packraum prpar entspricht dem Mutterpackraum mit minimalem Wert von
score2. Kommen mehrere Mutterpackräume in Frage (mit identischem Wert für score2), so
entscheidet das größere Packraumvolumen.
Mit der beschriebenen Vorgehensweise soll erreicht werden, dass einerseits die Resultate
(Packraumstrukturen) voriger Aufrufe von CPHI möglichst erhalten bleiben, andererseits ein
möglichst großer Packraum zur Reaktivierung bereitgestellt wird, der in geeigneter Weise
neu unterteilt werden kann. Man beachte, dass der zurückgegebene Packraum prpar nicht
aktiv ist. Die Reaktivierung von prpar erfolgt erst in Schritt 2 von Alg. 10.
4.5.3 Neuzerlegung des Mutterpackraums (Modul SplitParent)
Nachdem der Packraum prpar reaktiviert wurde, zielt das Modul SplitParent nun darauf ab,
eine geeignete einmalige Zerlegung von prpar zu ermitteln. Die Kriterien zur Auswahl von
Schnittrichtung, Schnittpunkt und Schnittmuster unterscheiden sich dabei grundlegend von
der Funktionsweise des in Abschnitt 4.4.2 vorgestellten Moduls CutPr. In CutPr wurde
ausschließlich darauf geachtet, kompatible Packräume auszuschneiden. Die Zielsetzung von
SplitParent ist komplizierter. Ziel ist hier das Zersägen eines vorgegebenen Packraums prpar.
Dabei soll u.a. ein Packraum prnew entstehen, der folgende Eigenschaften aufweist:
(1) Packraum prnew soll verlustfrei mit Hilfe einer Anordnung gefüllt werden, welche einen
Kistentyp Tbest aus der bestehenden Kistentypliste TypList verwendet. Tbest wird demnach
nicht neu erzeugt, sondern existiert bereits und kommt für einen anderen aktiven Packraum
PrList in Frage, füllt diesen also ebenfalls verlustfrei.
(2) Der verbleibende Restraum im Mutterpackraum prpar (gegeben durch prpar \ prnew)
muss außerdem wieder in quaderförmige, kompatible (also füllbare) Packräume teilbar sein.
Die fünf Teilschritte des Moduls zeigt folgender Alg. 11.
110 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
procedure SplitParent ( in: prpar; inout : PrList, TypList, ArrList ) { Initialisieren } d1:= prpar.d1; d2:= prpar.d2; d3:= prpar.d3; { Packraumabmessungen } ArrListTest:= Ø; { neue AO-Liste leer initialisieren } setze T.score:=0 für jeden Kistentyp T aus TypList; { Kistentypbewertungen initialisieren } { Anweisungen } for each A in ArrList do { Schritt 1: passende Typen identifizieren } sei pr der zu A gehörige Packraum (A.idPr), T der zu A gehörige Kistentyp (A.idTyp); if pr.status = 0 or T.score ≠ 0 or pr.id = prpar.id then continue for; endif; t1:= T.max; t2:= T.med; t3:= T.min; { Abmessungen einer Kiste } if (d1 % t1 = 0) or (d2 % t1 = 0) or (d3 % t1 = 0) or (d1 % t2 = 0) or (d2 % t2 = 0) or (d3 % t2 = 0) or (d1 % t3 = 0) or (d2 % t3 = 0) or (d3 % t3 = 0)
then T.score:= 1; { Kistentyp T passt genau in einer Ausdehnung von prpar } else T.score:= -1; endif ;{ Kistentyp T passt nicht } endfor A;
for each T in TypList do { Schritt 2: Anordnungen testweise bilden } if T.score ≠ 1 then continue for ; endif ; { Kistentyp nicht interessant } bilde sämtliche 1-AO mit Typ T, welche in prpar passen würden und zudem mindestens eine Packraumausdehnung von prpar verlustfrei füllen; füge diese 1-AO in ArrListTest ein; endfor T;
for each A in ArrListTest do { Schritt 3: entferne ungeeignete AO } setze t1, t2, t3:= Abmessungen einer Kiste des Typs A.idTyp in Orientierungsvariante A.ov; setze r1:= d1 – A.n1 · t1; r2:= d2 – A.n2 · t2; r3:= d3 – A.n3 · t3; { Restdistanzen in prpar } setze A.score:= 0; { Defaultwert } if r1 > 0 and OKList(r1) = 0 then A.score:= -1; endif ; if r2 > 0 and OKList(r2) = 0 then A.score:= -1; endif ; if r3 > 0 and OKList(r3) = 0 then A.score:= -1; endif ; if A.score < 0 then entferne A aus ArrListTest; endif ; { mind. 1 nicht-kompatible Restdistanz } endfor A;
if |ArrListTest| > 0 then bewerte alle A und sortiere ArrListTest nach absteigenden A.score; { Schritt 4 } sei Abest:= ArrListTest(1), t1, t2, t3 die Kistenmaße des Typs Abest.idTyp in Variante Abest.ov; sei prnew:= der neue Packraum innerhalb von prpar, gegeben durch: { Schritt 5 } prnew.x1:= prpar.x1; prnew.x2:= prpar.x2; prnew.x3:= prpar.x3; { Referenzecke } prnew.d1:= Abest.n1 · t1; prnew.d2:= Abest.n2 · t2; prnew.d3:= Abest.n3 · t3; { Seitenmaße } füge prnew und die Nachfolgepackräume aus prpar in PrList ein; setze prpar.status:= 0; realisiere Abest in prnew, indem Abest in ArrList eingefügt wird und Abest.status:= 1; endif ; end .
Alg. 11. Modul SplitParent: Zerlegen von Packraum prpar.
Schritt 1 in Alg. 11 identifiziert alle Kistentypen der aktiven Packräume, welche mindestens
eine Packraumseite von prpar verlustfrei teilen. Es sei daran erinnert, dass TypList i.d.R.
viele alternative Kistentypen für einen Packraum bereitstellt. Passende Typen T werden mit
Hilfe einer zusätzlichen Kistentypeigenschaft T.score = 1 markiert, unpassende mit
T.score = -1 gekennzeichnet. Nicht berücksichtigte Typen erhalten T.score = 0. Alg. 11
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 111
beachtet lediglich den 3D-Fall. Im 2D-Fall entfallen die Tests der Teilbarkeit der dritten
Packraumabmessung d3 sowie die Tests der Teilbarkeit durch das dritte Kistenmaß t3.
In Schritt 2 werden aus den mit T.score = 1 markierten Kistentypen testweise sämtliche
denkbaren 1-AO gebildet und in ArrListTest gespeichert, welche in prpar untergebracht
werden können und zudem mindestens eine Packraumlänge von prpar verlustfrei füllen. Die
erzeugten Anordnungen enthalten jeweils höchstens i_max Kisten. In Schritt 3 werden
diejenigen Anordnungen wieder aus ArrListTest entfernt, welche zu nicht kompatiblen
Restdistanzen in prpar führen würden. Jede in ArrListTest verbliebene Anordnung A wird in
Schritt 4 wie folgt bewertet:
• Je kleiner die mit A verlustfrei gefüllte Packraumausdehnung von prpar, umso besser
die Bewertung (kleinste Packraumseite: +2 Punkte, mittlere Seite: +1 Punkt);
• Wird der Kistentyp von A bereits in mehr als einem Packraum verwendet: +1 Punkt;
• Kommt der Kistentyp von A in unterschiedlicher Orientierungsvariante in anderen
Packräumen bereits zum Einsatz: +1 Punkt;
• Besteht A aus mehreren Kistenexemplaren: +1 Punkt;
• Sind die übrigen Packräume des von A verwendeten Kistentyps nicht räumlich
benachbart: +1 Punkt.
Die am besten bewertete Anordnung Abest soll realisiert werden. Hierzu wird ArrListTest nach
absteigender Bewertung sortiert. Bei Gleichstand entscheidet der höhere Wert von
max(1, OKList(r1)) · max(1, OKList(r2)) · max(1, OKList(r3)), wobei r1, r2, r3 die
Restdistanzen in prpar nach Realisieren der Anordnung bezeichnen.
Im Teilschritt 5 schließlich wird die beste Alternative Abest in prpar realisiert, indem Abest in
ArrList eingefügt und mit Abest.status = 1 aktiviert wird. Alle Nachfolgerpackäume werden
zudem in PrList eingefügt und der Mutterpackraum prpar wird wieder desaktiviert.
Abschließend sei bemerkt, dass es vorkommen kann, dass ArrListTest leer ist. Dies ist der
Fall, falls kein berücksichtigter Kistentyp aus TypList ein Seitenmaß von prpar verlustfrei
füllt oder keine kompatiblen Restdistanzen entstehen. In diesem Fall werden die Teilschritte
4 und 5 nicht ausgeführt. Es erfolgt demnach keine Teilung von prpar, die vorhandene
Teillösung wird dennoch mit dem noch vorzustellenden Modul FinishSol vervollständigt.
112 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
4.5.4 Vervollständigen einer Lösung (Modul FinishSol)
Nach der Ausführung von SplitParent liegt lediglich eine Teillösung vor, da für mindestens
einen Packraum noch keine Anordnung gewählt wurde. Das nachgeschaltete Modul
FinishSol stellt sicher, dass wieder eine vollständige Lösung entsteht, indem:
• alle in Frage kommenden Kistentypen und Anordnungen für die noch ungefüllten
Packräume berechnet werden (mit Modul FindAllTypes, siehe Abschnitt 4.4.3);
• die ursprünglich in s gewählten Anordnungen A wieder entladen werden (A.status = 0);
• für jeden aktiven Packraum pr ein möglichst mehrfach verwendeter Kistentyp gewählt
wird, der pr mit Hilfe einer 1-AO verlustfrei füllt;
• falls notwendig weitere Packräume iterativ erzeugt oder verschmolzen werden, um eine
gültige Anzahl an Kistentypen zu erhalten.
• möglichst sichergestellt wird, dass eine gültige Gesamtkistenzahl entsteht und weniger
als e_max unzulässige Kistentypen verwendet werden.
Die Auswahl einer Anordnung aus ArrList für jeden aktiven Packraum gestaltet sich anders
als in Modul FixAllTypes (vgl. Abschnitt 4.4.5). Während es in Letzterem darum ging,
Kistentypen zu wählen, die nicht in anderen Packräumen verwendet werden, ist hier gerade
das mehrfache Verwenden von Kistentypen erwünscht. Zunächst werden daher die
Kistentypen fixiert, welche mehrfach in Anordnungen verschiedener Packräume verwendet
werden können. Auf eine detaillierte Darstellung dieser Teilaufgabe wird hier verzichtet.
Bemerkt sei allerdings, dass die Auswahl eines identischen Kistentyps für zwei Packräume in
FinishSol nur dann erfolgt, falls sich beide Anordnungen entweder durch die jeweiligen
Mutterpackräume, die Orientierungsvarianten des verwendeten Kistentyps oder eines der
entsprechenden Kistenzahlen der Anordnungen (n1, n2 oder n3) unterscheiden. Ansonsten
kann nicht ausgeschlossen werden, dass beide Anordnungen räumlich benachbart sind und
sich zu einer einzigen Anordnung zusammenfassen ließen, welche sich über die zwei
benachbarten Packräume erstreckt.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 113
4.6 Einmalige Nachbearbeitung der Bestlösung (CPHP)
4.6.1 Module von CPHP
Die bisher ermittelte Bestlösung sbest wird nun mit Hilfe von Modul CPHP einmalig
nachbearbeitet (CPHP = C&P Generator, Heuristik, Post-Processing). Diese
Nachbearbeitung erfüllt drei Funktionen.
1) Die bisher mit CPHK bzw. CPHI erzeugte Bestlösung sbest füllt den Container
verlustfrei. Das Kistenvorratsvolumen entspricht demnach exakt dem
Containervolumen. Bei Vorgabewerten von VolPct ≠ 100% müssen daher einzelne
Kistentypen aus sbest nachträglich angepasst werden. Diese Anpassung wird durch das
Modul AdaptTypes realisiert. Resultat ist die Lösung sbest’.
2) Bisher wurden beim Ermitteln von CLP-Instanzen keine zusätzlichen
Nebenbedingungen beachtet. Teilmodul AddConstraints widmet sich diesem Thema,
indem nachträglich diese Restriktionen zu sbest’ hinzugefügt werden und die um
Nebenbedingungen erweiterte Lösung sbest’’ zurückgegeben wird.
3) Die Lösung sbest’’ ist durch die aktiven Listenelemente aus PrList, TypList und ArrList
eindeutig bestimmt. In der dritten Teilaufgabe wird die CLP-Instanz aus den aktiven
Elementen von ArrList und TypList gewonnen. Die Optimallösung zur CLP-Instanz
wird durch den so genannten Packplan bestimmt, der sich aus den aktiven Elementen
von PrList, TypList und ArrList ergibt. Der Packplan gibt den Kistentyp, die
Koordinaten der Referenzecke sowie die Orientierungsvariante der nacheinander im
Container zu verstauenden Packstücke an. CLP-Instanz und Packplan werden in
Teilaufgabe 3 von CPHP aus s berechnet und gespeichert.
Nachfolgend werden die Module AdaptTypes und AddConstraints näher beschrieben. Auf
eine tiefer gehende Beschreibung von Teilaufgabe 3 wird dagegen verzichtet.
4.6.2 Anpassung des Kistenvorrats (Modul AdaptTypes)
Modul AdaptTypes modifiziert einzelne Kistentypen der Bestlösung sbest, falls
VolPct ≠ 100% vorgegeben ist. Die Vorgehensweise ist je nach Wert von VolPct
unterschiedlich.
114 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Ist VolPct < 100%, so werden die Abmessungen einzelner verwendeter Kistentypen oder
deren verfügbare Kistenzahl sukzessive um 1 reduziert, bis die Volumenauslastung im
Container VolPct unterschreitet. Die Volumenauslastung ist dabei definiert als
Quotient: (gesamtes Kistenvolumen) / (Containervolumen). Der nächste Kistentyp und das
Verfahren zur Reduzierung des Volumens (Anpassung der Kistenzahl oder der Kistenlänge)
werden weitgehend zufällig ermittelt. Es wird allerdings darauf geachtet, dass nach der
Anpassung weiterhin alle Kisten mit ihrer Grundfläche möglichst vollständig (bezüglich der
Richtung VD) unterstützt werden, um die Ladung stabil zu halten. Außerdem wird beachtet,
dass d_min, v_min und i_min bei zulässigen Kistentypen nicht unterschritten werden. Es sei
darauf hingewiesen, dass eine in der beschriebenen Art und Weise angepasste Lösung mit
Volumenauslastung VolPct < 100% stets eine Optimallösung für die zugehörige CLP-Instanz
darstellt, da sämtliche Packstücke verladen werden.
Ist VolPct > 100%, so erfolgt ein sukzessives Anheben der Kistenzahlen in der CLP-Instanz
um jeweils eine Kiste, bis das Verhältnis des Vorratsvolumen zum Containervolumen VolPct
übersteigt. Die Wahl des nächsten Kistentyps für das Anheben der Kistenzahl erfolgt
zufällig. Existieren in sbest noch unzulässige Kistentypen wegen zu geringer Kistenzahl,
werden diese zuerst bearbeitet. Das Optimum beträgt auch nach der Anpassung der
Kistenzahlen stets 100%. Die zusätzlich erzeugten Kisten werden in der Optimallösung nicht
verwendet.
4.6.3 Hinzufügen von Zusatzbedingungen (Modul AddConstraints)
Beim nachträglichen Hinzufügen von Restriktionen reicht es aus, sicherzustellen, dass die
berechnete Optimallösung sbest’’ diese Restriktionen nicht verletzt. Die Bezeichnungen der
nun beschriebenen acht Zusatzbedingungen werden aus Tab. 3 (Kapitel 1.2.4) übernommen.
(C1) Orientierungsrestriktion
Zusätzliche Kisteneigenschaften T.ov0 bis T.ov5 werden eingeführt. Diese können die
Werte 1 (Orientierungsvariante ist erlaubt) oder 0 (Variante ist verboten) annehmen. Zur
Interpretation der Orientierungsvarianten sei auf Tab. 4 (S. 9) verwiesen. Alle
Orientierungsvarianten sämtlicher Kistentypen werden mit 0 initialisiert. Anschließend
werden die in der Optimallösung verwendeten Orientierungsvarianten auf 1 gesetzt. Für die
dann noch verbleibenden unzulässigen Orientierungsvarianten wird gelost, ob diese
eingesetzt werden dürfen oder nicht.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 115
Bei Packproblemen dienen Orientierungsrestriktionen üblicherweise dazu, Kippverbote zu
realisieren. Dagegen ist das Drehen einer verstauten Kiste im Container um 90 Grad generell
erlaubt. Bei Vorgabe der Packvariante (zusätzlicher Parameter packMode = 1) wird daher
nachträglich für jede bisher zugelassene Orientierungsvariante auch die zugehörige Variante
erlaubt, welche diese 90 Grad-Drehung der Kiste in der horizontalen Ebene im Container
realisiert. Bei Parameterwahl packMode = 0 erfolgt diese Anpassung nicht. packMode = 1
realisiert demnach die Höhenrestriktion (C1a), während packMode = 0 die allgemeinere
Orientierungsvariantenrestriktion (C1b) betrifft.
(C2) Überstapelungsrestriktion
CPHP kann alternativ alle vier Variationen der Überstapelungsrestriktion (C2)
berücksichtigen (vgl. Tab. 3). Die zu realisierende Variante wird mit Hilfe des Parameters
suppMode festgelegt. Jedem Kistentyp wird außerdem die zusätzliche Eigenschaft
T.suppmax zugewiesen und mit 0 initialisiert (Setzen des absoluten Überstapelungsverbots).
In Variante (C2b) wird für jede platzierte Kiste der Optimallösung die Anzahl supptot der
Kisten berechnet, welche die Deckfläche der betrachteten Kiste überstapeln. Anschließend
wird für jeden Kistentyp T das Maximum der Werte von supptot über alle Kistenexemplare
dieses Typs gebildet und in T.suppmax gespeichert. T.suppmax gibt an, wie viele Kisten
maximal eine Kiste des Typs T überstapeln dürfen.
Für die unbedingte Überstapelungsrestriktion (C2a) wird zunächst analog zu (C2b)
vorgegangen. Schließlich wird die neue Eigenschaft durch T.suppmax:= min(T.suppmax, 1)
ersetzt. Es gilt das unbedingte Verbot für alle Kistentypen T mit T.suppmax = 0, während für
alle T mit T.suppmax = 1 das Überstapeln generell erlaubt ist.
Bei der Überstapelungsgewichtsrestriktion (C2c) und der Überstapelungsdruckrestriktion
(C2d) bezeichnet die Eigenschaft T.suppmax das maximal erlaubte Gewicht, welches auf
einer Kiste (bzw. auf einem beliebigen Quadrat der Seitenlänge 1 der Kistendeckfläche)
lasten darf. Hierzu werden wiederum die entsprechenden Werte für jede verladene Kiste
berechnet und anschließend pro Kistentyp T das Maximum gebildet. Die
Überstapelungsrestriktion wird erst nach der Gewichtsrestriktion (C6) hinzugefügt.
(C3) Stabilitätsrestriktion
Die Stabilitätsrestriktion ist als Stabilitätsflächenrestriktion (C3a) ausgelegt (vgl.
Kapitel 1.2.4). Nach Einsatz von Modul AdaptTypes kann es vorkommen, dass einzelne
116 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Kisten nicht mehr vollständig von anderen Kisten unterstützt werden. Sei min_support_real
der minimal unterstützte Anteil der Bodenfläche aller in Lösung sbest’ verstauten Kisten.
Durch die Definition von min_support:= min(min_support_real, 90%) wird sichergestellt,
dass die Stabilitätsflächenrestriktion durch die Optimallösung respektiert wird.
(C4) Positionsrestriktion
Alle in sbest’ ausschließlich auf dem Containerboden platzierten Kistentypen werden mit
Hilfe eines zusätzlichen Kistentypparameters T.pos = 1 gekennzeichnet. Die restlichen Typen
werden daraufhin untersucht, ob diese ausschließlich in einem bestimmten Containerdrittel
entlang der LD-Achse Verwendung finden (Containertür: T.pos = 2, Containermitte:
T.pos = 3, Containerhinterwand: T.pos = 4). Für Kistentypen, die an mehreren Stellen der
Optimallösung Verwendung finden, wird keine Positionsrestriktion gesetzt (T.pos = 0).
(C5) Prioritätsrestriktion
Alle drei Varianten der Prioritätsrestriktion können wahlweise berücksichtigt werden: ein
zusätzlicher Parameter priorMode bestimmt, ob die „harte“, „weiche“ oder „Misch“-Form
eingesetzt wird (vgl. Kapitel 1.2.4). Eine zusätzliche Kistentypvariable T.prior bestimmt,
oder die Kisten dieses Typs verladen werden müssen (T.prior = 2) oder sollen (T.prior = 1),
bzw. ob keine Prioritätsbeziehung besteht (T.prior = 0). Im Fall VolPct < 100% können
Prioritätsrestriktionen rein zufällig verteilt werden, da für jeden Kistentyp sämtliche Kisten in
der Optimallösung verladen werden. Bei VolPct > 100% hingegen wird die
Prioritätsrestriktion zunächst mit T.prior = 0 für diejenigen Kistentypen ausgeschaltet, dessen
Kisten nicht alle im Optimum verladen werden, alle anderen erhalten T.prior = 2. Soll eine
weiche Prioritätsrestriktion gelten, so wird für einige zufällig ermittelte Typen anschließend
T.prior = 1 gesetzt.
(C6) Gewichtsrestriktion
Es wird ein zusätzlicher Parameter für das maximal zulässige Gesamtgewicht wtot der
Ladung vorgesehen. Jedem Kistentyp soll nun das Gewicht T.w eines Kistenexemplars
hinzugefügt werden. Dieses wird zunächst wie folgt bestimmt:
⋅
⋅⋅= )(:.
321
TvolCCC
wtotwT , wobei vol(T) das Volumen eines Kistenexemplars bezeichnet.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 117
Anschließend werden in mehreren Iterationen die Gewichte einzelner (zufällig ermittelter)
Typen iterativ um 1 erhöht, bei gleichzeitiger Verringerung des Gewichts eines anderen
Typs. Dabei werden beide Typen so gewählt, dass sichergestellt ist, dass nach jeder Iteration
das Gesamtgewicht der Ladung den Vorgabewert wtot nicht übersteigt. Vorzugsweise wird
das Gewicht der am Containerrand und/oder an der Containerdecke platzierten Kisten
abgesenkt, während das Gewicht der nahe der Containermitte und/oder auf dem
Containerboden verstauten Kisten angehoben wird, um eine möglichst stabile Ladung zu
erreichen.
(C7) Gleichgewichtsrestriktion
Die Gewichte der in der Optimallösung verstauten Kisten wurden bereits in (C6) zugeteilt.
Aus diesen Gewichten wird nun die tatsächliche maximale horizontale Abweichung
qmax_real des Massenmittelpunkts der Ladung berechnet (zur Berechnung von qmax_real
siehe Kapitel 1.2.4). Als maximal erlaubter Wert für die CLP-Instanz wird dann qmax
bestimmt als nach oben gerundeter Wert von qmax_real.
(C8) Gruppenrestriktion
Die Gruppenrestriktion ist als Entladereihenfolgerestriktion ausgelegt. Als Parameter ist die
Anzahl der Kunden ktot vorgesehen. Die Zuordnung eines Kistentyps zu einem Kunden wird
durch die zusätzliche Eigenschaft T.grp möglich. T.grp gibt die zwingend einzuhaltende
Reihenfolge bei der Entladung an: gilt für die Typen T1, T2 die Beziehung: T1.grp < T2.grp,
so ist eine Lösung nur zulässig, falls T1 vor T2 aus dem Container entnommen werden kann.
Zudem muss sichergestellt sein, dass eine Kiste des nächsten zu entladenden Kistentyps
entnommen werden kann, ohne dass die verbleibenden Kisten bewegt werden müssen.
Die Zuteilung einzelner Kisten an Kunden richtet sich nach der Entladereihenfolge, welche
sich aus dem Packplan der Optimallösung ergibt. Angenommen, der Packplan enthält ntot
einzelne Kisten. Dann werden jeweils durchschnittlich ntot / ktot nacheinander im Container
verstaute Kisten zu einem Kunden zusammengefasst. Dabei kann es vorkommen, dass ein
Kistentyp mehreren Kunden zugeordnet wird. In diesem Fall wird der ursprüngliche
Kistentyp dupliziert. Es entstehen weitere Kistentypen mit identischen Maßen, aber
unterschiedlicher Ausprägung von T.grp (Kunde) und Kistenzahl T.n. Im Fall VolPct > 100%
werden alle nicht verladenen Kisten zusätzlichen (nachrangigen) Kunden zugeordnet.
118 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Das Hinzufügen von Restriktionen stellt offensichtlich eine sinnvolle Ergänzung dar, da viele
praxisrelevante Nebenbedingungen beachtet werden. Es sei zudem darauf hingewiesen, dass
sbest’’ auch dann noch eine Optimallösung für die CLP-Instanz darstellt, falls einige oder
sämtliche Restriktionen ignoriert werden. Eine erzeugte Instanz kann daher auch mit
Verfahren getestet werden, welche keine oder nur einige der Restriktionen berücksichtigen.
Die Optimallösung der relaxierten CLP-Instanz ist in jedem Fall bekannt und stimmt mit der
Optimallösung der Instanz inklusive aller Nebenbedingungen überein.
Folgende Tabelle fasst sämtliche im Modul AddConstraints hinzugefügten Variablen der
CLP-Instanz zusammen. Außerdem wurden mehrere Verfahrensparameter eingeführt, welche
die Tabelle 18 um eine weitere Parametergruppe 6 für die Ausgestaltung der
Nebenbedingungen ergänzen. Diese betreffen die Restriktionen C1 (Parameter packMode),
C2 (suppMode), C5 (priorMode) sowie C6 (wtot) und C8 (ktot).
Tab. 20. Zusätzliche Instanzvariablen für Restriktionen.
Restriktion Variable Bedeutung Bemerkung
(C1) Orientierungsrestriktion
T.ov0 - T.ov5 Zulässigkeit der
Orientierungsvarianten 1 = erlaubt 0 = nicht erlaubt
(C2) Überstapelungsrestriktion
T.suppmax Kistentyp T darf überstapelt werden
0 = absolutes Überstapelungsverbot, > 0: max. Anzahl (Gewicht) bei Überstapelung
(C3) Stabilitätsrestriktion
min_support minimal unterstützter
Anteil der Grundfläche einer verladenen Kiste
Die Grundfläche jeder verstauten Kiste muss mindestens zu min_support% unterstützt sein
(C4) Positionsrestriktion
T.pos
Jede Kiste des Typs T ist in einem bestimmten
Containerbereich zu verstauen
0 = keine Einschränkung 1 = Containerboden 2 = Containertür 3 = Containermitte 4 = Containerhinterwand
(C5) Prioritätsrestriktion
T.prior Kisten des Typs T
sollen bzw. müssen verladen werden
0 = keine Einschränkung 1 = weiche „Soll“-Bedingung 2 = harte „Muss“-Bedingung
(C6) Gewichtsrestriktion
T.w Gewicht eines Kistenexemplars von T
Gesamtgewicht aller verladenen Kisten darf die maximale Zuladung wtot nicht überschreiten
(C7) Gleichgewichtsrestriktion
qmax maximal erlaubte
Abweichung des MMP der Ladung
MMP = Massenmittelpunkt; minimale horizontale Abweichung (orthogonal zu VD)
(C8) Gruppenrestriktion
T.grp Zuordnung eines Kistentyps zu Kunden
T.grp bestimmt die zwingend zu beachtende Entladereihenfolge
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 119
4.7 Anpassung von CPGH an das Strip Packing-Problem
Bisher wurde CPGH ausschließlich als Verfahren zur Erzeugung von Instanzen des
Containerbeladeproblems (CLP) beschrieben. Nachfolgend wird diskutiert, wie CPGH zum
Erzeugen von Strip Packing-Instanzen angepasst werden kann.
Die Lösung einer SPP-Instanz führt bekanntermaßen zu einer Anordnung der Kisten
innerhalb einer bestimmten, möglichst kurzen, Streifenlänge D. Die gefundene SPP-Lösung
ist somit gleichzeitig eine Lösung zum CLP mit einem vorgegebenen Container der Länge D.
Entsprechend einfach kann das Verfahren CPGH nun zur Erzeugung von
Strip Packing-Instanzen verwendet werden. Als Containerlänge wird die optimale
Streifenlänge D gewählt und an CPGH übergeben.
Es gilt allerdings folgende Einschränkung: um sicherzustellen, dass D tatsächlich ein
Optimum der SPP-Instanz darstellt, kann VolPct nicht frei gewählt werden, sondern beträgt
zwingend 100%. Werte oberhalb von 100% sind nicht zulässig, da aufgrund der
Problemstellung sämtliche Kisten im Container zu verstauen sind. Im Fall VolPct < 100%
wäre der Container nicht verlustfrei gefüllt. Mit der Erzeugungsheuristik von CPGH kann
jedoch nicht sichergestellt werden, dass die SPP-Lösung optimal ist, d.h. ob nicht doch eine
kürzere Containerlänge existiert, in welcher der gesamte Kistenvorrat verlustfrei verstaut
werden kann. Die vorgegebene Volumenauslastung ist somit (im Gegensatz zur CLP-
Problematik) nicht frei wählbar.
Speziell für die Erzeugung von SPP-Instanzen wurde der Parameter useLayers eingeführt.
Mit useLayers = 1 wird erzwungen, dass der gesamte Container zu Beginn der Suche in
mehrere Schichten unterteilt wird, die in Richtung der Containerlänge aneinandergereiht sind
und im Suchverlauf nicht aufgelöst werden dürfen. Bei ausreichender Kistentypzahl sollen
t_max / 2 Schichten erzeugt werden.
SPP - Variante : useLayers = 0CPGH wird normal ausgeführt
SPP - Variante : useLayers = 1CPGH schneidet zunächst Schichten
SPP - Variante : useLayers = 0CPGH wird normal ausgeführt
SPP - Variante : useLayers = 1CPGH schneidet zunächst Schichten
Abb. 22. Anpassen von CPGH an das SPP.
120 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
4.8 Anpassung von CPGH an das Bin Packing-Problem
Für eine einfache Anpassung von CPGH an das BPP sind folgende Varianten denkbar.
a) Beim Problemtyp MILOPP bzw. MIKP (vgl. Tab. 1) bietet es sich an, jeweils identisch
gefüllte Container als Optimallösung zu verwenden. Hierzu wird CPGH einmalig aufgerufen.
Sei nC > 1 die vorgegebene optimale Containerzahl des BPP. nC ergänzt als zusätzlicher
Parameter die Parametergruppe 1 in Tabelle 18. Es werden dann für die Problemstellung des
BPP folgende Werte für den Aufruf von CPGH ersetzt:
n_max wird durch nCn max/_ und i_max durch nCi max/_ ersetzt;
n_min wird durch nCn min/_ , i_min durch nCi min/_ ersetzt;
Wiederum ist zu beachten, dass VolPct einen bestimmten Wert nicht unterschreiten darf, so
dass VolPct > (1 – 1 / nC) gilt. Dies ist notwendig um sicherzustellen, dass nC tatsächlich ein
Optimalwert für die BPP-Instanz darstellt.
b) Folgende Anpassung eignet sich nicht nur für BPP mit identischen Containern, sondern
ebenfalls für den Problemtyp MHLOPP bzw. MHKP mit heterogenen Containern
(vgl. Kap.1.2.2, Tab. 1). Abweichend zu der in Kapitel 4.4 beschriebenen Basisheuristik
CPHK besteht die Packraumliste PrList anfangs nicht aus einem einzelnen Container,
sondern aus den in der Optimallösung einzusetzenden Containern. Es wird zudem
sichergestellt, dass diese Container nicht verschmolzen werden dürfen, indem für alle
Anfangspackräume pr in PrList die Eigenschaft pr.idparent:= 0 gesetzt wird. Die
Basisheuristik wird ansonsten unverändert angewendet.
Der Wert für Parameter VolPct darf wiederum einen bestimmten Mindestwert nicht
unterschreiten. Das gewünschte kumulierte Restvolumen über alle Bins muss kleiner sein als
das Volumen des kleinsten Containers, sonst wird vermutlich kein Optimum identifiziert.
In Variante a) werden alle Kistentypen in allen Containern verwendet, während dies in
Variante b) nicht unbedingt der Fall ist. Variante a) bietet sich daher vor allem an, falls die
Kistentypzahl im Vergleich zur Containerzahl gering ist. Beide Anpassungsvarianten von
CPGH an das BPP sind schematisch in Abb. 23 dargestellt. Die Adaptationsvariante in
CPGH wird als zusätzlicher Parameter bppMode vorgegeben.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 121
BPP - Variante a)CPGH wird auf einen Container angewendet,die Lösung auf alle Container übertragen.
BPP - Variante b)Die Packraumliste PrList besteht anfangs ausmehreren Packräumen, die den einzelnen Containern des BPP entsprechen.
Container 1 Container 3Container 2
PR 1 PR 3PR 2
BPP - Variante a)CPGH wird auf einen Container angewendet,die Lösung auf alle Container übertragen.
BPP - Variante b)Die Packraumliste PrList besteht anfangs ausmehreren Packräumen, die den einzelnen Containern des BPP entsprechen.
Container 1 Container 3Container 2
PR 1 PR 3PR 2
Abb. 23. Zwei Adaptationsvarianten zur Erzeugung von BPP-Instanzen.
4.9 Numerische Tests
Das im Rahmen dieses Kapitels beschriebene Verfahren CPGH wurde in Microsoft Visual
Basic 2008 implementiert und auf Intel-PC getestet. Im Folgenden werden zwei Testreihen
vorgestellt, welche mit CPGH berechnet wurden. Einerseits soll gezeigt werden, dass CPGH
in der Lage ist, CLP-Instanzen beliebiger Größe, Heterogenität und mit bekanntem Optimum
zu erzeugen. Der Erfolg der iterativen Nachbarschaftssuche zum Erzeugen komplexerer
Packstrukturen wird untersucht. Andererseits werden SPP-Instanzen vorgestellt, deren
Kistenvorrat an die Instanzen von BISCHOFF und RATCLIFF (1995) angelehnt sind. Diese SPP-
Instanzen sollen im nachfolgenden Kapitel 5 zum Test des dort vorgestellten SPP-Verfahrens
verwendet werden. Die SPP-Instanzen sind einfach gehalten: die Module CPHI und CPHP
kommen nicht zum Einsatz. Es werden drei Testreihen mit unterschiedlichen Anforderungen
an die Optimallösung erzeugt.
4.9.1 Mit CPGH erzeugte CLP-Instanzen
Konfiguration von CPGH
Unter Zuhilfenahme der iterativen Verbesserungsheuristik von CPGH soll nun eine Reihe
von 3D-Testinstanzen für das CLP mit bekanntem Optimum erzeugt werden, wobei zwei
Kriterien systematisch variiert werden:
• die Problemgröße soll von sehr klein (50 Items) bis sehr groß (1000 Items) variieren;
• die Heterogenität der Probleme soll von schwach heterogen (viele Kisten pro Typ) bis
stark heterogen (wenige Kisten pro Typ) reichen,
122 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Tab. 21 enthält alle untersuchten Kombinationen von Kistentypzahl (Zeilen) und Kistenzahl
(Spalten). Die letzten beiden Zeilen von Tab. 21 geben zudem die minimal und maximal
zulässigen Kistenzahlen an, wobei durchgehend die Beziehung n_max = 1.25 · n_min gilt.
Beim Testfall „N0400“ beispielsweise sollen demnach Probleme mit 400 bis 500 Items
erzeugt werden. Die Kistentypzahl soll dagegen genau dem Vorgabewert entsprechen (z.B.
sollen bei „T050“ genau 50 unterschiedliche Kistentypen erzeugt werden).
Tab. 21 gibt den Heterogenitätsgrad H für alle getesteten Kombinationen an. Dabei
bezeichnet H die minimale durchschnittliche Kistenzahl pro Typ: H = ⌊nK / nT⌋, wobei nK
die minimale Kistenzahl, nT die Kistentypzahl bezeichnet. Die untersuchten
Heterogenitätsgrade reichen von 1 (durchschnittlich eine Kiste pro Typ) bis 133 Kisten pro
Typ. Bei den Testfällen werden sowohl die Kistentypzahl als auch die Kistenzahl jeweils
verdoppelt, um vergleichbare Heterogenitätsgrade H für unterschiedlichste Problemgrößen
zu erzeugen. Schließlich enthält die letzte Spalte der Tabelle den (experimentell ermittelten)
Parameterwert der maximal erlaubten Ausnahmen für unzulässige Kistentypen.
Tab. 21. Heterogenität H der erzeugten CLP-Instanzen.
Heterogenität H N0050 N0100 N0200 N0400 N0800 e_max
T006 8 16 33 66 133 1
T012 4 8 16 33 66 1
T025 2 4 8 16 32 2
T050 1 2 4 8 16 4
T100 1 2 4 8 8
T200 1 2 4 16
T400 1 2 32
n_min 50 100 200 400 800
n_max 63 125 250 500 1000
Tabelle 22 enthält die übrigen Parameter, welche für alle Testinstanzen Verwendung finden.
Als Container kommt durchweg ein Standard-40-Fuss-Container zum Einsatz. In der
Optimallösung ist der Container stets verlustfrei gefüllt (VolPct = 100%). Es werden
ausschließlich guillotinierbare Lösungen erzeugt (useNG = 0). Drei Neustarts werden
durchgeführt (maxTr = 3), die Bestlösung wird demnach aus drei Versuchen ermittelt. Um
sicherzustellen, dass in jedem Fall zumindest eine Ausgangslösung ermittelt wird, wird
maxiniTr = 50 gesetzt.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 123
Tab. 22. Parameterwerte zur Erzeugung von CLP-Instanzen.
Parameter- Gruppe Parameter Wert
C1, C2, C3 1200, 233, 220 (1) Container C
LD, VD 1, 3
d_min, d_max 20, 200
v_min 10000
v_max 99999999 (3) Kistentypen
r_max 8
VolPct 100%
useCPHI 1
useNG 0 (4) Optimum
useLayers 0
maxTr 3
maxiniTr 50
maxCPHI 10 (5) Suchparameter
maxArr 10000
Es werden jeweils nur einige Nachbarlösungen berechnet (maxCPHI = 10), da die
Berechnung einer Nachbarlösung relativ zeitaufwendig ist und ein Anheben von maxCPHI
nur selten zu Verbesserungen führt, wie Vortests ergaben. Allzu kleine Kistentypen werden
ebenso vermieden wie solche mit außergewöhnlicher Form (vgl. Tab. 22, Nr. 3). Die
Kistenzahlen werden zudem je nach Heterogenität variiert, wie Tabelle 23 zeigt.
Tab. 23. Heterogenität und Kistenzahlen pro Typ für die CLP-Instanzen.
H i_min i_max
1 1 12
2 1 20
4 2 20
8 3 20
16 4 40
>32 10 100
>64 20 200
>128 40 400
Testresultate
Für jeden Testfall wurden 10 Probleme und somit insgesamt 290 Instanzen berechnet.
Folgende Tabelle 24 zeigt die mittlere Packraumzahl pro Instanz sowie die ermittelten
Zielfunktionswerte für f (in Klammern). Durchschnittlich wurden mit Hilfe von CPHI 7%
mehr Packräume als Kistentypen für die Optimallösungen erzeugt. Das erscheint zunächst
wenig, doch es ist davon auszugehen, dass bereits das Verwenden eines einzelnen Kistentyps
in mehreren Packräumen das Auffinden der Optimallösung aufgrund der stark steigenden
124 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Kombinationsvielfalt erheblich erschwert. In 275 der 290 Instanzen war das iterative
Verbesserungsverfahren CPHI erfolgreich. Nur bei 15 CLP-Instanzen kommt somit jeder
Kistentyp ausschließlich in einem Packraum der Optimallösung vor. Bei den Testfällen mit
kleiner Kistentypzahl ist f wesentlich höher, was vor allem an der geringen Anzahl an
Iterationen (maxCPHI = 10) liegen dürfte. Bei höherer Kistentypzahl fällt der Einfluss
einiger mehrfach verwendeter Kistentypen in der Tat geringer aus. Tabelle 24 gibt außerdem
die Anzahl nProb der jeweils berechneten CLP-Instanzen an, sowie die Anzahl der
Instanzen, bei denen die Nachbarschaftslösung erfolglos war (nProb-). Zudem wird die
mittlere Instanzgröße
(mittlere Anzahl der Kisten pro CLP-Instanz) nIt in der letzten Zeile von Tab.24 angegeben.
Tab. 24. Charakteristiken der erzeugten CLP-Instanzen.
Packräume N0050 N0100 N0200 N0400 N0800 Mittel
T006 7.8
(130.0%) 8.4
(140.0%) 8.2
(136.7%) 8.6
(143.3%) 9.8
(163.3%) 8.6
(142.7%)
T012 14.0
(116.7%) 16.8
(140.0%) 16.0
(133.3%) 16.6
(138.3%) 17.0
(141.7%) 16.1
(134.0%)
T025 27.2
(108.8%) 29.0
(116.0%) 30.8
(123.2%) 31.2
(124.8%) 28.6
(114.4%) 29.4
(117.4%)
T050 51.2
(102.4%) 55.9
(111.8%) 57.4
(114.8%) 55.9
(111.8%) 58.8
(117.6%) 55.8
(111.7%)
T100 104.1
(104.1%) 108.9
(108.9%) 109.2
(109.2%) 108.2
(108.2%) 107.6
(107.6%)
T200 209.7
(104.9%) 210.1
(105.1%) 208.4
(104.2%) 209.4
(104.7%)
T400 417.8
(104.5%) 412.8
(103.2%) 415.3
(103.8%)
nProb 40 50 60 70 70
nProb - 4 0 0 1 10
nIt 61 121 238 464 918
Zu den Rechenzeiten sei bemerkt, dass eine Ausgangslösung meist bereits nach sehr kurzer
Zeit (durchschnittlich unter 1 s.) vorliegt, während der Hauptanteil des Aufwands auf der
Nachbarschaftssuche lastet. Die durchschnittlich benötigte Berechnungszeit einer Instanz
beträgt 21.7 s., wobei der Aufwand tendenziell mit der Anzahl der Kistentypen und
Kistenzahlen steigt, wie Tab. 25 zeigt. Dies liegt vor allem an dem höheren
Verwaltungsaufwand für die Kistentyp- und Anordnungslisten.
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 125
Tab. 25. Zeit bis zum Ermitteln der Bestlösung (der Ausgangslösung).
Zeit (s) N0050 N0100 N0200 N0400 N0800 Mittel
T006 8.9
(0.1) 36.5 (0.0)
26.6 (0.0)
32.5 (0.0)
16.6 (0.1)
24.2 (0.1)
T012 5.2
(0.1) 15.0 (0.1)
15.0 (0.2)
12.1 (0.1)
30.4 (0.1)
15.5 (0.1)
T025 6.0
(0.1) 14.5 (0.1)
12.7 (0.1)
28.2 (0.1)
12.7 (0.5)
14.8 (0.2)
T050 3.2
(0.1) 14.0 (0.1)
5.5 (0.1)
9.8 (0.2)
15.9 (0.2)
9.7 (0.1)
T100 12.7 (0.3)
25.8 (0.2)
10.5 (0.3)
22.6 (0.4)
17.9 (0.3)
T200 24.6 (1.3)
24.8 (1.1)
14.3 (2.1)
21.3 (1.5)
T400 73.8 (9.4)
97.6 (7.8)
85.7 (8.6)
Mittel 5.8
(0.1) 18.5 (0.1)
17.1 (0.3)
18.6 (1.6)
19.7 (1.6)
21.7 (0.9)
Der Hauptaufwand der Instanzgenerierung (über 92% der CPU-Zeit) entfällt auf die
Vervollständigung einer Lösung (Modul FinishSol). Modul SelectParent benötigt nur 2.5%
der Rechenzeit, das Schneiden von Packräumen 4% der Zeit. 1% geht auf die Auswertung
der Lösungen zurück. Insgesamt wurden im Suchverlauf 7.640 temporäre Lösungen
ermittelt. 1.764 Lösungen (23%) wurden als zwischenzeitliche Bestlösungen akzeptiert. Eine
detailliertere Analyse der berechneten Lösungen enthält Tab. 26.
Tab. 26. Anzahl der berechneten vollständigen Zwischenlösungen.
Neue Bestlösung Beschreibung Anzahl
Erste ermittelte Lösung 290
Besserer Zielfunktionswert für f erzielt 1 273
Weniger Kistennebenbedingungen verletzt 98
Gesamtkistenzahl näher am Maximum 103
ja
= CPHI war erfolgreich 1 764
nein keine Verbesserung 5 876
Gesamt 7 640
Die ermittelten 290 Instanzen wurden als DM1-Testinstanzen bezeichnet und gespeichert.
Die Testreihe DM1 bestätigt, dass sich mit dem Verfahren CPGH CLP-Instanzen mit
bekanntem Optimum für verschiedene Problemgrößen und Heterogenitätsgrade erzeugen
lassen. Das Hinzufügen von Restriktionen und Variieren von VolPct sowie das Berechnen
ähnlicher Testreihen für das SPP und BPP bleibt Gegenstand weiterer Forschung.
126 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
4.9.2 Mit CPGH erzeugte SPP-Instanzen
Drei Testreihen von SPP-Instanzen wurden erzeugt. Die im Folgenden als „L“, „G“ und „N“
bezeichneten Sets unterscheiden sich ausschließlich in der Struktur der Optimallösung. Dies
wird durch eine geeignete Konfiguration der Parametergruppe 4 (vgl. Tab. 18) erreicht. Für
VolPct wurde einheitlich 100% verwendet (vgl. Tab. 27). Eine Nachbarschaftssuche wird
nicht durchgeführt (useCPHI = 0). Die Testreihen unterscheiden sich jeweils durch die
Parameter useNG und useLayers. Nur bei Testreihe „N“ werden Nichtguillotineschnitte
verwendet. Alle Instanzen der Reihen „L“ und „G“ besitzen daher guillotinierbare Lösungen.
Nur in Testreihe „L“ ist die Lösung schichtweise in Richtung der Containerlänge aufgebaut.
Tab. 27. Parameter für die Struktur der Optimallösung der SPP-Instanzen.
Parametergruppe 4 Testreihe „L“
Testreihe „G“
Testreihe „N“
VolPct 100% 100% 100%
useCPHI 0 0 0
useNG 0 0 1
useLayers 1 0 0
Die Auslegung der übrigen Parametergruppen 1-3 fasst folgende Tab. 28 zusammen. Die
Charakteristik (Kistenabmessungen und Kistenzahl) der erzeugten Testinstanzen sollte
möglichst den Problemen von BISCHOFF UND RATCLIFF (1995) entsprechen. Die
Kistenvorräte reichen von schwach bis stark heterogen. Je 25 Instanzen wurden für jede
Kistentypzahl erzeugt, so dass insgesamt 3 · 8 · 25 = 600 Instanzen ermittelt wurden. Anstelle
von 15 Kistentypen werden bei der Testreihe „L“ 16 Kistentypen verwendet. Alle
Kistentypen müssen zudem den Vorgaben entsprechen (e_max = 0).
Tab. 28. Auslegung der Parametergruppen 1-3 für die SPP-Instanzen.
Gruppe Parameter Parameterwert
C1, C2, C3 650, 233, 220 1 (Container)
LD, VD 1, 3
n_min, n_max 150, 200 2 (Problemgröße)
t_min = t_max je 25 Instanzen mit den Werten: 8, 10, 12, 15 (16), 20, 30, 40, 50
i_min, i_max 1, 100
d_min, d_max 25, 130
v_min, v_max 253, 1303
r_max 4
3 (Kisten)
e_max 0
Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen 127
4.10 Zusammenfassung der Ergebnisse
In diesem Kapitel wurde der Instanzgenerator CPGH für C&P-Probleme mit quaderförmigen
Packstücken vorgestellt. Die Aufgabe besteht darin, eine Instanz wahlweise für das CLP,
SPP oder BPP zu finden, dessen Optimallösung bekannt ist und dessen Problemgröße und
Heterogenität vorgegeben sind. Außerdem sind bestimmte Anforderungen an die erzeugten
Kistentypen (bzgl. Länge, Anzahl, Volumen, Form) und die Struktur der Optimallösung (z.B.
Guillotinierbarkeit) einzuhalten.
Das Problem wird gelöst, indem der Container schrittweise verlustfrei in Packräume und
anschließend in einzelne Kisten zerlegt wird. Diese Kisten bilden dann (gemeinsam mit den
Containerdaten) die Instanz zu der durch das Zerlegen des Containers gegebenen
Optimallösung. Beim Zerschneiden der Packräume werden bestimmte vorgegebene
Schnittmuster (Nichtguillotine, Guillotine, Layer) beachtet. Die Schnitte werden zufällig
ermittelt, allerdings werden vorzugsweise Packräume herausgeschnitten, die größere
Chancen für die Bildung zulässiger Kistentypen aufweisen. Es kommen ausschließlich
einfache Anordnungen der Kisten innerhalb der Packräume zum Einsatz, bei denen die
Kisten eines Typs in identischer räumlicher Orientierung den Packraum füllen.
Ausgehend von einer erzeugten Lösung mit einfacher Packstruktur wird eine
Nachbarschaftssuche durchgeführt mit dem Ziel, komplexere zulässige Lösungen zu
ermitteln, wobei möglichst Kisten eines Typs in unterschiedlichen Teilanordnungen
innerhalb der Optimallösung verwendet werden sollen. Hierzu werden einige Packräume
verschmolzen und neu unterteilt, so dass zwei Nachbarlösungen eine verwandte
Packraumstruktur besitzen, aber nicht zwingend identische Kistentypen oder Kistenzahlen
verwenden. Eine zulässige Nachbarlösung mit höherem Verhältnis von eingesetzten
Packräumen zur eingesetzten Kistentypzahl wird als neue Bestlösung akzeptiert. Am Ende
der Nachbarschaftssuche werden der ermittelten Instanz ggf. zusätzliche Nebenbedingungen
hinzugefügt.
Bei den numerischen Tests wurde gezeigt, dass der vorgestellte Instanzgenerator es
ermöglicht, 3D-Benchmarkinstanzen unterschiedlichster Problemgröße und Heterogenität in
relativ kurzer Zeit (durchschnittlich 21 s.) zu erzeugen. Heterogenität und Größe wurden
dabei von sehr klein bis sehr groß in eher groben Schritten systematisch variiert. Durch die
Verwendung dieser Testreihen mit bekanntem Optimum sollte es möglich sein, die Eignung
von Lösungsverfahren besser beurteilen zu können.
128 Kapitel 4 : Ein Verfahren zum Erzeugen von C&P-Instanzen
Es sollte zudem möglich sein, besonders harte Instanzen zu finden, die zur ihrer Lösung
besonders effektive Verfahren benötigen. Ähnliches wurde bereits beim 1D-BPP
durchgeführt. BELOV und SCHEITHAUER (2003) etwa berichten von 28 besonders
hartnäckigen 1D-BPP, die sich aus einer Menge von ca. 500.000 Instanzen von
SCHOENFIELD (2002) ergaben. Das Ermitteln von 2D- und 3D-Testreihen mit feinerer
Variation der Eigenschaften und hinzugefügten Restriktionen bleibt Gegenstand weiterer
Forschung.
Im Folgenden sollen nun Verfahren für SPP und BPP entwickelt werden, welche speziell auf
Probleme mit sehr großer Kistenzahl zugeschnitten und in der Lage sind, in kurzer Zeit
akzeptable Lösungen finden. Die Verwendung von Instanzen mit bekanntem Optimum soll
dabei eine differenzierte Beurteilung der Verfahren ermöglichen.
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 129
5 Ein Verfahren zur Lösung des dreidimensionalen
Strip Packing-Problems
5.1 Zielsetzung und Vorgehensweise
Im Gegensatz zum zweidimensionalen Fall wurden für das 3D-SPP bisher nur wenige
Lösungsverfahren vorgeschlagen (siehe Literaturübersicht in Kapitel 1.5.2). BORTFELDT und
GEHRING (1999a) stellen einen TSA und einen GA für das 3D-SPP vor. In beiden Fällen
werden die entsprechenden CLP-Lösungsverfahren an das 3D-SPP angepasst. Dabei werden
die wesentlichen Merkmale der Originalverfahren weitgehend übernommen (vgl. BORTFELDT
und GEHRING, 1998, sowie BORTFELDT und GEHRING, 2001). Für beide Verfahren wurden je
zwei Adaptationsansätze untersucht. Während der erste Ansatz unmittelbar von einem
Container mit beliebig großer Länge ausgeht, führt der zweite Ansatz die Lösung einer SPP-
Instanz auf die Berechnung einer Folge von CLP-Instanzen mit sinkenden Containerlängen
zurück. Der TSA wie auch der GA für das 3D-SPP wurden schließlich parallelisiert, wobei
jeweils alle beteiligten Prozesse gleichzeitig die vollständige Problemstellung bearbeiten.
In diesem Kapitel soll nun ein weiteres Containerbeladeverfahren, das Branch and Bound-
Verfahren von PISINGER (2002), an das dreidimensionale Strip Packing-Problem angepasst
werden. Dabei kommen die erwähnten Adaptationsansätze von BORTFELDT und GEHRING
(1999a) erneut zur Anwendung. Der Rest des Kapitels ist wie folgt gegliedert: Kapitel 5.2
gibt eine kurze Beschreibung des Verfahrens von PISINGER. In Abschnitt 5.3 wird dieser
Algorithmus an das SPP angepasst, während Abschnitt 5.4 die Heuristik einem Test
unterzieht. Abschnitt 5.5 fasst die Ergebnisse des Kapitels zusammen.
5.2 Die Heuristik von Pisinger für das Containerbeladeproblem
Das Verfahren von PISINGER (2002) basiert auf dem schichtbildenden Ansatz. Die
schichtartige Struktur der erzeugten Staupläne wird in Abb. 24 verdeutlicht. Die Breite, Höhe
und Länge des Containers werden mit W, H bzw. D bezeichnet. Die Breite und die Höhe
jeder Schicht ist durch das Containermaß W bzw. H bestimmt, während die entlang der
Längsrichtung des Containers verlaufende Schichttiefe jeweils geeignet zu ermitteln ist.
130 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
Schicht 1 Schicht 2 D
H
Schicht-tiefe
a) Schichtstruktur b) Vorderansicht einer Schicht mit horizontalenund vertikalen Streifen
Streifen-breite wS2
H52
1
3
4
Streifenhöhe hS1
...
...
...
WSchicht 1 Schicht 2 D
H
Schicht-tiefe
a) Schichtstruktur b) Vorderansicht einer Schicht mit horizontalenund vertikalen Streifen
Streifen-breite wS2
H52
1
3
4
Streifenhöhe hS1
...
...
...
W
Abb. 24. Schichtartige Struktur eines Stauplans bei PISINGER (2002).
Um eine Schicht gegebener Tiefe zu füllen, wird diese sukzessive in mehrere Streifen
zerlegt, deren Tiefe mit der Schichttiefe übereinstimmt (vgl. Abb. 24a). Verwendet werden
Streifen horizontaler und vertikaler Richtung. Bei einem horizontalen Streifen ist die
Streifenhöhe hS geeignet zu wählen, während sich die Streifenbreite aus der
Containerbreite W und den bereits abgeteilten Streifen ergibt. Analog ist bei einem vertikalen
Streifen die Streifenbreite wS festzulegen, während die Streifenhöhe aus der Containerhöhe
H und den bereits vorhandenen Streifen resultiert. In Abb. 24b wurde zuerst ein horizontaler
Streifen 1 mit der Streifenhöhe hS1 und danach ein vertikaler Streifen 2 mit der Streifenbreite
wS2 erzeugt. Jeder Streifen wird durch mehrere, in Streifenrichtung hintereinander platzierte
Kisten gefüllt, während in den restlichen beiden Richtungen jeweils nur eine Kiste vorhanden
ist.
Das Verfahren löst das CLP als Maximumproblem; als Zielfunktion dient das verstaute
Kistenvolumen. Nachfolgend wird beschrieben, wie die besten Schichttiefen für die
Schichten eines Stauplans sowie die beste Streifenzerlegung einer Schicht ermittelt, und wie
die Kistenanordnung für einen Streifen berechnet wird.
(1) Die besten Schichttiefen werden mittels einer Baumsuche bestimmt. Für eine
vorliegende Teillösung, welche bereits eine gewisse Anzahl von Schichten umfasst,
werden M1 alternative Schichttiefen für die nächste Schicht ausgewählt. Pro
Schichttiefe wird eine Nachfolgeschicht erzeugt. Eine vollständige Lösung ist erreicht,
wenn entweder die verbleibende Containerlänge nicht mehr ausreicht, um eine weitere
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 131
Kiste zu verstauen, oder falls alle Kisten verladen wurden. In letzterem Fall terminiert
das Verfahren, da offenbar eine Optimallösung gefunden wurde.
(2) Zur Ermittlung der besten Ausrichtung und Maße der Streifen einer Schicht wird
ebenso jeweils eine Baumsuche durchgeführt. Liegt bereits eine Teillösung für eine
Schicht mit einer gewissen Anzahl von Streifen vor, so werden M2 Streifenhöhen für
einen horizontalen Streifen und M2 Streifenbreiten für einen vertikalen Streifen
gewählt. Für jede dieser 2 · M2 Streifenvarianten wird ein Nachfolgerstreifen, gegeben
durch die zugehörige Kistenanordnung, erzeugt.
(3) Beide Suchvorgänge sind als Backtracking-Suche ausgelegt und werden verzahnt
abgewickelt, wobei die Suche nach den besten Schichttiefen übergeordnet ist. Der
Suchaufwand wird zum einen mit Hilfe der bereits besprochenen Parameter M1 und M2,
welche die Anzahl der Nachfolger in den Suchbäumen begrenzen, beschränkt. Zum
anderen benutzt die Heuristik als Branch and Bound-Verfahren auf beiden Suchebenen
einfache Upper Bounds zur Reduzierung des Suchaufwands. So wird auf der Ebene der
Schichtsuche die Summe aus dem bereits verstauten Kistenvolumen einer Teillösung
und dem restlichen Containervolumen betrachtet. Dieses Gesamtvolumen bildet einen
Upper Bound für das Stauvolumen einer kompletten Lösung, welche aus dieser
Teillösung hervorgeht. Die Suche wird daher nicht weiter fortgesetzt, wenn der
Upper Bound nicht größer ist als das verstaute Kistenvolumen der aktuellen
Bestlösung.
(4) Die betrachteten Schicht- und Streifenmaße werden jeweils einheitlich nach einer
heuristischen Regel bestimmt. Als besonders erfolgreich erweist sich dabei eine Regel,
bei der für die Schicht- und Streifenmaße einerseits besonders große und andererseits
besonders häufig vorkommende Kistenabmessungen – bezogen auf die jeweils noch
nicht verpackten Kisten – gewählt werden.
(5) Zur Bestimmung der Kistenanordnung für einen Streifen werden die noch unverstauten
und in den Streifen passenden Kisten ermittelt. Jede dieser Kisten wird geeignet
gedreht, so dass die zur Streifenrichtung orthogonalen Streifenmaße möglichst gut
ausgelastet sind. Dadurch ist für jede Kiste das in Streifenrichtung liegende Kistenmaß
festgelegt. Es liegt demnach ein eindimensionales Knapsackproblem vor, das mit einem
effizienten Teilverfahren optimal gelöst wird. Um die Streifen in der Längsrichtung des
Containers möglichst gut auszulasten, werden teilweise auch Kisten gepaart, wobei die
Kistenpaare dann als Einzelkisten in die Berechnung der Streifenanordnung eingehen.
132 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
Das Verfahren berücksichtigt keine zusätzlichen Restriktionen und beachtet insbesondere
keine Stabilitätsanforderungen, wie etwa die ausreichende Unterstützung aller nicht auf dem
Containerboden platzierten Kisten. Während das Verfahren daher für das
3D-Zuschnittproblem ohne weiteres nutzbar ist, erfordert seine Verwendung als
Packverfahren eventuell zusätzliche Maßnahmen wie beispielsweise den Einsatz von
Füllstoffen. Für diesen Beitrag wurde die Heuristik von PISINGER dahingehend erweitert,
dass die in Kapitel 1.2.4 eingeführte Orientierungsrestriktion (C1a) eingehalten
wird (vgl. Tab. 3, S.8).
5.3 Anpassung an das Strip Packing-Problem
Im Folgenden werden zwei Ansätze der Anpassung des Verfahrens von PISINGER
(nachfolgend kurz als CLP-Verfahren bezeichnet) an das 3D-SPP beschrieben. Zunächst
sollen einige Bezeichnungen eingeführt werden.
Eine 3D-SPP-Instanz, gegeben durch das Tupel (W, H, J) mit einer Kistenmenge J, kann
durch das Hinzufügen der gegebenen Containerlänge D zu einer CLP-Instanz (W, H, D, J)
erweitert werden. Die resultierende CLP-Instanz wird als „zugehörige CLP-Instanz“ des SPP
bezeichnet. Eine Lösung der zugehörigen CLP-Instanz, welche sämtliche Kisten
aus J verpackt, ist gleichzeitig eine Lösung der SPP-Instanz und wird als SPP-Lösung
bezeichnet.
Ist s eine Lösung der SPP-Instanz, so sei dU(s) die von s benötigte Containerlänge, also der
Teil der Containerlänge, der von Kisten belegt ist. Bei geeigneter Definition eines
3D-Koordinatensystems wird dU als maximale Koordinate der verladenen Kisten in
Längsrichtung des Containers berechnet.
Der kontinuierliche Lower Bound clb für die benötigte Containerlänge dU wird in Alg. 13
berechnet. Bei beiden nachfolgend vorgestellten Adaptationen wird die Suche abgebrochen,
falls clb erreicht wurde, oder falls eine vorgegebene Zeitschranke maxTime überschritten
wird.
5.3.1 Adaptation mit offenem Container
Der erste Ansatz wird als „Adaptation mit offenem Container“ bezeichnet. Die grundlegende
Idee ist hier, für die zugehörige CLP-Instanz eine praktisch unendliche Containerlänge D zu
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 133
definieren. Sei mj die minimale Ausdehnung einer Kiste j aus J, so dass j in dem leeren
Container angeordnet werden kann und mj parallel zur Containerlänge D verläuft. Definiert
man D = ∑ (j ∈ J) mj, so gibt es offensichtlich eine Anordnung aller Kisten aus J in dem
Container. Führt nun das CLP-Verfahren mit der so bestimmten Containerlänge D eine
Suche durch, so kann auf jedem Suchpfad der übergeordneten Schichtsuche erst dann keine
weitere Schicht mehr erzeugt werden, wenn keine weitere Kiste mehr zu packen ist bzw.
wenn eine zulässige Lösung für das SPP erreicht wurde (vgl. Punkt (1) in Abschnitt 5.2).
Das CLP-Verfahren wird nun wie folgt modifiziert:
• Als Zielfunktion wird die zu minimierende benötigte Containerlänge dU verwendet.
• Der Suchprozeß bricht nicht ab, sobald alle Kisten verstaut sind, da die Fortsetzung der
Suche zu zulässigen SPP-Lösungen mit besserem Zielfunktionswert führen kann
(vgl. Punkt (1) in Abschnitt 5.2). Ein Abbruch der Suche erfolgt jedoch dann, wenn der
Zielfunktionswert der besten erzeugten Lösung, bezeichnet durch dUbest, den
Lower Bound clb erreicht.
• Die übergeordnete Schichtsuche wird in abgeänderter Weise beschränkt
(vgl. Punkt (3) in Abschnitt 5.2). Eine vorliegende, aus einer oder mehreren Schichten
bestehende Teillösung s beanspruche die Containerlänge dU(s), clb(s) bezeichne den
kontinuierlichen Lower Bound der benötigten Containerlänge, bezogen auf die
Kistenmenge, welche noch nicht in s verstaut ist. Dann bildet offenbar die Summe
dU(s) + clb(s) einen Lower Bound für die benötigte Containerlänge aller
(vollständigen) Lösungen der SPP-Instanz, die aus der Teillösung s hervorgehen
können. Daher wird die Berechnung von s nur dann fortgesetzt, falls der Wert
dU(s) + clb(s) den bisher besten Zielfunktionswert dUbest unterbietet.
5.3.2 Adaptation mit geschlossenem Container
Der zweite Anpassungsansatz, benannt als Adaptation mit geschlossenem Container, basiert
auf den folgenden Überlegungen. Die Berechnung eines 3D-SPP wird auf die Lösung einer
Folge von CLP-Instanzen mit sinkenden Containerlängen zurückgeführt. Jede CLP-Instanz
wird durch das CLP-Verfahren gelöst. Die Containerlängen der entsprechenden
CLP-Instanzen werden dabei sukzessive verringert. Ist ein Ergebnis des CLP-Verfahrens eine
SPP-Lösung, so stellt diese Lösung gleichzeitig eine neue Bestlösung für das SPP dar. Um
134 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
den Suchaufwand zu beschränken, werden bei der Berechnung einer neuen SPP-Lösung
möglichst viele Schichten aus der vorigen SPP-Lösung beibehalten.
Das CLP-Verfahren wird in eine Steuerheuristik eingebettet, die in Alg. 12 dargestellt und
nachfolgend erläutert wird.
procedure SPBBL_CC ( in: Containerbreite W, Containerhöhe H, Kistenmenge J; out: Bestlösung sbest, benötigte Containerlänge dUbest) { Initialisieren }
sbest:= ∅; { Bestlösung }
clb:= ⌈(∑ (j ∈ J) vol(j) / (W · H)⌉; { kontinuierlicher Lower Bound }
D:= ∑ (j ∈ J) mj; { aktuelle Containerlänge }
{ Anweisungen (Hauptschleife) } repeat löse die CLP-Instanz (W, H, D, J); if Lösung s ist SPP-Lösung, d.h. s enthält alle Kisten aus J then sbest:= s; dUbest:= benötigte Containerlänge dU(s); D:= dU(s) - 1; { reduziere Containerlänge für den nächsten Durchlauf } endif ; until (s ist keine SPP-Lösung);
end.
Alg. 12. Steuerheuristik der SPP-Variante mit geschlossenem Container.
Die Steuerheuristik beginnt mit der Initialisierung der Bestlösung und der Containerlänge
D = ∑(j ∈ J) mj analog zu der vorigen Variante aus Kapitel 5.3.1.
Bei jedem Aufruf der folgenden Hauptschleife wird ein zugeordnetes CLP gelöst, welches
durch eine bestimmte Containerlänge D eindeutig definiert ist. Ist die Lösung s des CLP
gleichzeitig eine SPP-Lösung, so wird die von s benötigte Containerlänge dU(s) berechnet
und s als die neue Bestlösung für das SPP gespeichert. dU(s) wird berechnet, Offensichtlich
gilt: dU(s) < D. Anschließend wird D für den nächsten Durchlauf der Hauptschleife auf den
Wert dU(s) - 1 gesetzt. So wird sichergestellt, dass die nächste berechnete SPP-Lösung einen
neuen Bestwert liefert. Wird in einem Durchgang dagegen keine neue SPP-Lösung ermittelt,
bricht das Verfahren ab; die jeweilige Bestlösung sbest und die Containerlänge dUbest werden
zurückgegeben.
Eine zugeordnete CLP-Instanz wird wie folgt berechnet (siehe hierzu Alg. 13 S.136):
• Ist sbest noch leer, hat D also den Initialwert, so wird das zugeordnete CLP vollständig
mit dem CLP-Algorithmus berechnet;
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 135
• Ansonsten werden bis zu maxTr Versuche durchgeführt mit dem Ziel, eine von der
aktuellen Bestlösung sbest abgeleitete neue SPP-Lösung für die aktuelle Containerlänge
D zu erreichen. Zu diesem Zweck werden die nL Schichten aus sbest absteigend nach
ihrer Volumenauslastung sortiert und in dieser Reihenfolge im Container angeordnet.
Die Volumenauslastung einer Schicht bezeichnet das Verhältnis des Volumens der in
dieser Schicht angeordneten Kisten zum gesamten Schichtvolumen. Hohe
Volumenauslastungen in Schichten sind ein Indikator für gute Packmuster, die
möglichst beibehalten werden sollten. Die am Ende des Containers platzierten
Schichten haben demgegenüber eher schwache Volumenauslastungen und es ist
anzunehmen, dass diese Schichten durch Umverteilung besser ausgelastet werden
können.
• Die Anzahl der Schichten in sbest, welche am Ende des Containers angeordnet sind und
im nächsten Iterationsschritt iTr aufgelöst werden, sei als nLnew(iTr) bezeichnet. Diese
Schichten enthalten eine Teilmenge der Kisten aus J, welche nachfolgend als Jnew
bezeichnet wird. Die Anzahl verbleibender Schichten ist definiert als nLkept(iTr):= nL -
nLnew(iTr). Angenommen, diese nLkept(iTr) Schichten beanspruchen eine
Containerlänge Dkept. Dann kann eine CLP-Instanz abgeleitet werden, welche Jnew
Kisten in einer Containerlänge D - Dkept verstauen soll. Falls das CLP-Verfahren eine
zulässige SPP-Lösung für Jnew findet, d.h. wenn sämtliche Items aus Jnew verladen
werden, so bildet die Vereinigung der beibehaltenen Schichten mit den neu erzeugten
Schichten eine SPP-Lösung für die Kistenmenge J und Containerlänge D.
• Die Anzahl aufzulösender Schichten nLnew(iTr) wird in jedem Iterationsschritt iTr
erhöht. Abhängig vom Wert von nL wird entweder eine lineare oder eine
Inkrementierung entsprechend einer geometrischen Folge gewählt:
o Falls nL / (2(maxTr-1)) < 2, so wird nLnew(iTr) linear erhöht:
nLnew(iTr):= nL – (maxTr – iTr) · nConst, wobei nConst := nL / maxTr;
o Falls nL / (2(maxTr-1)) > 2, wird nLnew(iTr) geometrisch erhöht:
nLnew(iTr):= nL / 2(maxTr - iTr), wobei iTr = 1,.. maxTr.
In jedem Fall soll versucht werden, durch die Zusammenlegung von nur zwei
Schichten mit schlechtester Auslastung eine Verbesserung zu erreichen. Daher wird
ein zusätzlicher Versuch iTr = 0 mit nLkept(0) = 2 vor iTr = 1 eingefügt, falls
nLkept(1) > 2.
136 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
• Bei der Berechnung einer zugeordneten CLP-Instanz sind ausschließlich solche
Lösungen von Interesse, die gleichzeitig eine SPP-Lösung bezüglich Jnew darstellen.
Daher wird die Suche auf Schichtebene abgebrochen, falls das Volumen der
verbleibenden Kisten das verfügbare Restvolumen im Container überschreitet. Kein
weiterer Versuch wird durchgeführt, wenn eine SPP-Lösung für D gefunden wurde.
{ Initialisiere Berechnung für Containerlänge D } nL:= Anzahl der Schichten in der aktuellen Bestlösung sbest; s:= Ø;
{ Führe mehrere Versuche durch, um eine SPP-Lösung für die Containerlänge D zu ermitteln } for iTr:= 1 to maxTr do { Parameter maxTr > 1 } bestimme die Anzahl nLkept der nicht aufzulösenden Schichten aus sbest; if nLkept > 0 then Menge der nicht aufzulösenden Schichten s_kept:= Menge der nLkept Schichten aus sbest mit höchster Volumenauslastung; Dkept:= von s_kept benötigte Containerlänge; Menge der zu verladenden Kisten Jnew:= Menge der Kisten in den (nL - nLkept) Schichten von sbest mit der schwächsten Volumenauslastung; else s_kept:= ∅; Dkept:= 0; Jnew:= J; endif ; löse die CLP-Instanz (W, H, D - Dkept, Jnew) mit dem CLP-Algorithmus; setze s_new := berechnete Lösung; setze Lösung für iTr-ten Versuch s:= s_kept ∪ s_new; if s_new enthält sämtliche Kisten aus Jnew or sbest = ∅ then exit for ; { Schleife verlassen } endif ; endfor; Ausgabe von s;
Alg. 13. Berechnung einer zugeordneten CLP-Instanz.
Da für jede betrachtete Containerlänge die Anzahl der aufgelösten Schichten im Laufe der
Versuche schrittweise erhöht wird, zielt der Ansatz darauf ab, jeweils möglichst wenige
Schichten neu zu berechnen. Um die Chancen auf eine erfolgreiche Reduzierung der
beanspruchten Containerlänge zu erhöhen, werden jedes Mal die Schichten mit der
schlechtesten Auslastung aufgelöst. Die Anzahl der Versuche maxTr ist als Parameter
ausgelegt.
Abb. 25 zeigt eine Zwischenlösung für eine Testinstanz mit 8 Kistentypen und Verfahrenstyp
2 (geschlossener Container). Diese Lösung zeigt sieben vertikale Schichten, die nach
Volumenauslastung sortiert sind. Im nächsten Iterationsschritt werden zunächst testweise die
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 137
beiden vorderen Schichten entladen. Der Algorithmus versucht anschließend, die
entnommenen Kisten umzupacken, so dass die benötigte Containerlänge kleiner ist als die
Länge der aufgelösten Schichten. Wird keine solche Lösung gefunden, werden weitere
Schichten aufgelöst.
Abb. 25. Vorläufige SPP-Lösung einer Testinstanz mit 8 Kistentypen.
5.4 Verfahrenstest
Das vorgeschlagene Verfahren wird nachfolgend als SPBBL (Strip Packing,
Branch and Bound, Layer Ansatz) bezeichnet, wobei die Adaptationsvarianten mit offenem
und mit geschlossenem Container mit SPBBL-OC (Open Container) bzw. SPBBL-CC
(Closed Container) abgekürzt werden. Bei der Implementierung des Verfahrens wurde der
auf der Homepage von PISINGER bereitgestellte C-Code der Heuristik genutzt und ergänzt.
Der Test wurde auf einem Athlon-PC mit der Taktfrequenz von 2 GHz durchgeführt.
Nachfolgend werden mehrere Benchmarkinstanzen vorgestellt und die Konfiguration der
Heuristik wird beschrieben, bevor die numerischen Resultate vorgestellt werden.
5.4.1 Benchmarkinstanzen für das SPP
Benchmarkinstanzen für das SPP sind in der Literatur nur schwer zu finden. Für den Test des
Verfahrens wird daher eine Auswahl der von BISCHOFF und RATCLIFF (1995) bzw.
DAVIES und BISCHOFF (1998) vorgeschlagenen 1500 Instanzen für das
Containerbeladeproblem verwendet. Die ersten 700 Instanzen sind in der OR-Library
138 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
abgelegt (siehe http://mscmga.ms.ic.ac.uk/). Die 1500 Instanzen gliedern sich in 15 Testfälle
zu je 100 Problemen. Alle Instanzen eines Testfalls stimmen bezüglich der Anzahl der
Kistentypen überein. Diese Testprobleme werden nachfolgend als BR-Instanzen bezeichnet.
Werden die vorgegebenen Containerlängen ignoriert, so lassen sich diese CLP-Instanzen
unmittelbar als 3D-SPP-Instanzen nutzen. Hier werden nur die ersten 10 Instanzen der ersten
10 Testfälle für den Test verwendet und in 10 SPP-Testfälle mit je 10 Instanzen gegliedert,
die als SP-BRi, i = 1,…,10 bezeichnet werden. Die Orientierungsrestriktion (C1a) der
Originalbeispiele wird beibehalten. Weitere Bedingungen werden nicht berücksichtigt;
insbesondere werden bei dem Verfahrenstest keine Stabilitätsrestriktionen beachtet. In
Tab. 29 werden die Kenndaten der 10 Testfälle zusammengefasst. Sie zeigen, dass sich der
Charakter der Kistenvorräte schrittweise von schwach zu stark heterogen wandelt.
Tab. 29. Kenndaten der Testfälle SP-BR1 bis SP-BR10.
Testfall Anzahl Kistentypen
mittlere Kistenzahl
mittlere Kistenzahl
pro Typ
SP-BR01 3 139.4 46.5
SP-BR02 5 140.1 28.0
SP-BR03 8 135.4 16.9
SP-BR04 10 132.2 13.2
SP-BR05 12 127.8 10.6
SP-BR06 15 133.8 8.9
SP-BR07 20 129.2 6.5
SP-BR08 30 138.0 4.6
SP-BR09 40 127.5 3.2
SP-BR10 50 129.2 2.6
Zusätzlich werden 100 3D-Instanzen mit je 1.000 Kisten aus den Originalproblemen von
BISCHOFF und RATCLIFF (1995) abgeleitet, um die Tauglichkeit des Verfahrens für große
Probleme zu beurteilen. Die Originalcontainermaße sowie alle Kistenabmessungen werden
beibehalten. Die Anzahl der Kisten werden dagegen entsprechend ihrem Verhältnis zu den
Originalzahlen erhöht. Zu diesem Zweck wird der Skalierungsfaktor 1000 / nItems auf alle
Kistentypzahlen angewendet (hierbei bezeichnet nItems die Gesamtkistenzahl im
Originalproblem). Rundungsfehler werden durch eine Anpassung der Kistenzahlen des
letzten Typs ausgeglichen. Die resultierenden 10 Testfälle werden im Folgenden als SP-BRi-
XL ( i = 1,.., 100) bezeichnet.
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 139
Die Optima für die SPP-Instanzen sind nicht bekannt, was die Auswertung der Resultate im
Bezug auf die Leistungsfähigkeit des Algorithmus erschwert. Deshalb werden zusätzliche
Instanzen mit bekannter Optimallösung bei einer Volumenauslastung von 100% verwendet.
Diese Instanzen wurden mit Hilfe des Instanzgenerators CPGH aus Kapitel 4 erzeugt
(siehe S.126). Der Erzeugungsprozess sei hier nur kurz skizziert. Der gegebene Container
wird verlustfrei in nTypes verschiedene quaderförmige Packräume unterteilt. nTypes
bezeichnet dabei die gewünschte Anzahl an Kistentypen für die neue Instanz. Jeder
Packraum wird anschließend in eine Anordnung von Kisten zerlegt, welche identische
Abmessungen und eine identische räumliche Orientierung aufweisen. Die Kistendimensionen
werden weitestgehend zufällig gewählt. Um so genannte pathologische Kisten mit atypischen
Kistenmaßen zu vermeiden, werden zusätzliche Nebenbedingungen eingehalten
(beispielsweise bezüglich des Verhältnisses von Kistenlänge zu Kistenbreite). Alle so
gewonnenen Kisten bestimmen den Kistenvorrat J. Die drei folgenden Varianten werden
beim Zerschneiden des Containers betrachtet (siehe Abb. 26):
(1) Variante „Layer“ (L):
Der Container wird zunächst in nTypes / 2 Schichten zerlegt, die in Längsrichtung des
Containers aufeinanderfolgen. Die Schichttiefen werden zufällig gewählt. Jede Schicht
wird anschließend in zwei nebeneinander oder übereinander liegende Packräume
zerlegt.
(2) Variante „Guillotine“ (G):
In dieser Variante werden Packräume iterativ zerlegt. Bei jedem Iterationsschritt wird
ein zur Verfügung stehender Packraum ausgewählt und durch einen Guillotineschnitt
zersägt. Richtung und Schnittpunkt werden dabei zufällig ermittelt.
(3) Variante „Non-Guillotine“ (N):
Diese komplexere Variante zielt darauf ab, eine nichtguillotinierbare Optimallösung zu
erzeugen. Der Container wird dazu in fünf Packräume nach einem nicht-
guillotinierbaren Muster zersägt. Anschließend werden die Packräume nach Prinzip (2)
weiterbearbeitet.
140 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
Zerlegevariante„Layers“
Zerlegevariante„Guillotine“
Zerlegevariante„Non-Guillotine“
W W W
D D D
Zerlegevariante„Layers“
Zerlegevariante„Guillotine“
Zerlegevariante„Non-Guillotine“
W W W
D D D
Abb. 26. Drei Zerlegungsvarianten für den Container (Draufsicht).
Die Instanzen sollten eine ähnliche Charakteristik aufweisen wie die BR-Instanzen.
Allerdings werden keine Orientierungsrestriktionen verlangt. Die folgenden Parameter
wurden für den Problemgenerator verwendet: als Beschränkungen für die Kistendimensionen
dienten die Parameterwerte d_min = 25 und d_max = 130; die Gesamtzahl an Kisten pro
Instanz sollte 200 nicht überschreiten, und der so genannte „Aspect Ratio“ für jeden
Kistentyp, gegeben durch den Quotienten: (größte Kistendimension) / (kleinste
Kistendimension), wurde auf den Wert r_max = 4 festgelegt. Als Containerdimensionen
wurden W = 233, H = 220 und D = 650 festgelegt. Die Anzahl an Kistentypen t_min = t_max
wird systematisch variiert und erhält die Werte 8, 10, 12, 15, 20, 30, 40 und 50 (für
Zerlegungsvariante „L“ wird t_min = t_max = 16 anstatt 15 verwendet). Für jede der drei
Zerlegungsvarianten und jeden Wert der Kistentypzahlen werden 25 Instanzen erzeugt. So
entstehen 24 Testfälle mit insgesamt 600 Instanzen, bei denen die Abweichung vom
Optimum bei Anwendung der SPP-Heuristik bestimmt werden kann. Jeder Testfall wird
entsprechend der Zerlegeform mit „L“, „G“ oder „N“, gefolgt von der Kistentypzahl,
bezeichnet.
5.4.2 Konfiguration der Heuristik
Die Heuristik SPBBL wird wie folgt konfiguriert: für die Parameter der Basisheuristik M1
und M2 (siehe Kapitel 5.2) wurden die Werte 4 bzw. 8 verwendet. Weitere Suchparameter
der Heuristik, welche zur Beschränkung des Suchaufwands dienen, wurden unverändert von
PISINGER (2002) übernommen. Die Zeitschranke pro Instanz wird auf 160 s. gesetzt. Die
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 141
maximale Anzahl an Versuchen bei gegebener Containerlänge (Parameter maxTr) wird auf 4
gesetzt. Zusätzlich wird ein Testlauf bei Verwendung von maxTr = 1 durchgeführt, um die
Eignung des Konzepts der teilweisen Auflösung der Schichten pro CLP-Instanz zu
überprüfen. Bei maxTr = 1 werden immer sämtliche Schichten der vorherigen SPP-Lösung
aufgelöst. So wird erzwungen, dass jeweils eine vollständig neue CLP-Lösung berechnet
wird (vergleiche Kap. 5.3.2, Alg. 13). Im Folgenden wird der Algorithmus SPBBL-CC bei
maxTr = 4 als SPBBL-CC4, die Variante maxTr = 1 als SPBBL-CC1 bezeichnet.
5.4.3 Numerische Resultate
Vergleich der verschiedenen Varianten von SPBBL
In folgender Tab. 30 werden die Resultate beider Adaptationsvarianten für die Testfälle
SP-BRi angegeben. Für jede Variante von SPBBL und zu jedem Testfall werden die
Volumenauslastung (VU = „Volume Utilisation“) sowie die mittlere, zum Ermitteln der
Bestlösung benötigte Rechenzeit TTB („Time To Best“) in Sekunden (s.) angegeben.
Tab. 30. Resultate für die Testfälle SP-BRi.
SPBBL-OC SPBBL-CC1 SPBBL-CC4 Test fall VU
(%) TTB (s.)
VU (%)
TTB (s.)
VU (%)
TTB (s.)
NBS GAP (%)
SP-BR01 87.1 12.6 87.2 22.9 87.3 9.4 10 12.7
SP-BR02 88.2 27.1 88.3 25.9 88.6 12.4 10 11.4
SP-BR03 88.8 26.2 89.3 29.4 89.4 19.0 9 10.6
SP-BR04 89.3 76.3 89.6 55.8 90.1 29.6 10 9.9
SP-BR05 88.1 57.0 88.8 47.3 89.3 13.3 10 10.7
SP-BR06 87.5 41.6 89.4 99.0 89.7 22.3 8 10.3
SP-BR07 87.8 50.9 88.7 91.1 89.2 45.7 7 10.8
SP-BR08 86.1 58.7 87.9 94.4 87.9 53.3 8 12.1
SP-BR09 83.4 58.1 86.9 94.7 87.3 82.4 9 12.7
SP-BR10 83.0 62.0 85.6 90.4 87.6 82.9 9 12.4
Mittel 86.9 47.0 88.1 65.1 88.7 37.0 9.0 11.3
Zeit 129 s. 112 s. 99 s.
Zusätzlich werden die Werte NBS und GAP für die Variante SPBBL-CC4 angegeben. NBS
(Abkürzung für „Number of Best Solutions“) steht für die Anzahl der Testinstanzen, bei
denen SPBBL-CC4 den Bestwert (in Konkurrenz zu SPBBL-OC und SPBBL-CC1) erreicht.
Es sei daran erinnert, dass SPBBL-CC4 die Variante mit geschlossenem Container (Closed
Container) und je 4 Versuchen der Umschichtung bezeichnet (maxTr = 4), während
SPBBL-CC1 die Variante mit geschlossenem Container und Neuverladen sämtlicher Kisten
142 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
in einem Durchgang (maxTr = 1) bei jeder untersuchten Containerlänge bezeichnet. Die
dritte Variante SPBBL-OC steht für die in Kapitel 5.3.1 vorgestellte Adaptationsvariante mit
offenem Container (Open Container).
GAP steht für die relative Abweichung vom Continuous Lower Bound clb und wird
berechnet als (VU - clb) / clb. Die angegebenen Werte entsprechen Mittelwerten über jeweils
10 Instanzen. Die Zeile „Mittel“ zeigt die Mittelwerte von VU, TTB, NBS und GAP über alle
Testfälle. Die gemittelten Berechungszeiten pro Instanz über alle 10 Testfälle werden in der
letzten Zeile von Tab. 30 angegeben.
Aus den Resultaten von Tabelle 30 ist folgendes ersichtlich:
• Die Variante SPBBL-CC4 erreicht die besten Volumenauslastungen für 90 der 100
getesteten Instanzen, während SPBBL-OC und SPBBL-CC1 den Bestwert für 27 bzw.
44 Instanzen stellen. Im Mittel über alle Testinstanzen wird bei SPBBL-CC4 eine eher
geringe Abweichung vom kontinuierlichen Lower Bound von 11.3% erreicht.
• Die Adaptation mit geschlossenem Container dominiert klar die Variante mit offenem
Container. Die Resultate über alle Testinstanzen weisen eine nicht unerhebliche
Verbesserung der Volumenauslastung und dementsprechend der Reduzierung der
Containerlänge auf. Bei der Variante SPBBL-CC4 konnte die Volumenauslastung so
um 1.8% des Containervolumens gegenüber SPBBL-OC gesteigert werden.
Gleichzeitig wurde eine mittlere Zeitersparnis von 23% erzielt.
• Die Kernidee der Adaptationsvariante SPBBL-CC, also das Beibehalten mehrerer im
Suchverlauf erzeugter Schichten pro CLP-Instanz, hat sich als sehr effizient erwiesen.
Im direkten Vergleich mit SPBBL-CC1 wurde so eine Steigerung von VU um 0.6% des
Containervolumens erzielt, bei gleichzeitiger Verbesserung von TTB um 43%
(37 statt 65 s.). Im Durchschnitt wurden nur 38% aller Schichten für ein gegebenes
Problem mit SPBBL-CC4 im Suchverlauf aufgelöst. Da sämtliche Kisten der
BR-Instanzen vergleichbare Seitenlängen aufweisen und in einer Schicht jeweils eine
(oder maximal zwei) Kisten parallel zur Streifenbreite liegen, enthält jede Schicht
ähnlich viele Kisten (vgl. Abb. 25). Da durchschnittlich mehr als die Hälfte der
Schichten beibehalten werden, weisen folgerichtig die im Suchverlauf mit dem
CLP-Verfahren berechneten Probleme kleinere Kistenmengen auf. Die Komplexität der
zu lösenden CLP-Probleme ist also wesentlich geringer als beim Originalproblem. 61%
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 143
aller zwischenzeitlich ermittelten Ergebnisse wurden durch Auflösen und
Verschmelzen von nur zwei Schichten erreicht.
In folgender Abb. 27 wird ein typischer Suchverlauf anhand von Testinstanz 7 aus Testfall
SP-BR5 illustriert. Alle konkurrierenden Verfahren SPBBL-OC, SPBBL-CC1 und
SPBBL-CC4 sind abgebildet. Die Varianten SPBBL-OC und SPBBL-CC1 benötigen 119
bzw. 44 s., um den Bestwert zu erreichen, während SPBBL-CC4 bereits nach 27 s. den
Bestwert liefert. SPBBL-CC4 erzeugt insgesamt 15 SPP-Lösungen, wobei 10
Zwischenlösungen bereits durch Auflösen von nur zwei Schichten zustande kommen. Mehr
als 90% der Rechenzeit fließt in die Berechnung der 5 restlichen Lösungen. Dieses Beispiel
zeigt, dass der Hauptanteil des Aufwands auf das Lösen weniger CLP-Instanzen entfällt.
80
81
82
83
84
85
86
87
88
89
90
0 20 40 60 80 100 120
time [s]
volu
me
utiliz
atio
n [%
]
SPBBL-OC
SPBBL-CC (maxTr=1)
SPBBL-CC (maxTr=4)
Abb. 27. Suchverlauf der konkurrierenden SPP-Verfahren (SP-BR5-007).
Folgende Tabelle 31 zeigt die Resultate der Testfälle SP-BRi-XL mit 1.000 Kisten pro
Instanz. Die Tabelle ist identisch aufgebaut wie Tab. 30. Die Schlussfolgerungen aus Tab. 31
sind ähnlich zu denen aus Tab. 30. Die Variante SPBBL-CC4 erreicht auch hier die besten
Volumenauslastungen (VU = 90% im Durchschnitt) mit dem geringsten Zeitaufwand
(74 Sekunden) und findet zudem die Bestwerte in 88 der 100 Instanzen, während die
restlichen Verfahren die Bestwerte zu je nur 8 Instanzen stellen. Bei diesen Instanzen
überbietet SPBBL-OC die Resultate von SPBBL-CC1 um 0.3% des Containervolumens.
144 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
Tab. 31. Resultate für die Testfälle SP-BRi-XL.
SPBBL-OC SPBBL-CC1 SPBBL-CC4 Testfall VU
(%) TTB (s.)
VU (%)
TTB (s.
VU (%)
TTB (s.)
NBS GAP (%)
SP-BR01-XL 84.5 73.4 84.0 96.9 86.9 42.0 9 13.1
SP-BR02-XL 86.5 72.2 86.1 116.2 88.3 23.0 7 11.7
SP-BR03-XL 88.5 87.1 87.7 132.8 89.8 63.7 8 10.2
SP-BR04-XL 89.2 82.2 88.8 101.1 90.2 50.0 9 9.8
SP-BR05-XL 88.8 56.7 88.6 106.8 89.9 57.0 10 10.1
SP-BR06-XL 90.1 68.8 90.0 84.0 91.5 66.8 8 8.5
SP-BR07-XL 89.3 117.0 89.2 76.5 91.0 82.8 9 9.0
SP-BR08-XL 89.2 84.7 89.2 74.8 90.8 116.2 8 9.2
SP-BR09-XL 89.1 82.8 89.1 21.6 90.9 111.5 10 9.1
SP-BR10-XL 88.4 79.7 88.6 49.2 90.4 127.9 10 9.6
Mittel 88.4 80.5 88.1 86.0 90.0 74.1 8.8 10.0
Rechenzeit 160 s. 160 s. 157 s.
Für die beste Variante SPBBL-CC4 wurden durchschnittlich nur 8.7% der Schichten
aufgelöst um neue Bestwerte zu erzielen. In über 61% der Fälle war es ausreichend, genau
zwei Schichten aufzulösen, um einen neuen SPP Bestwert zu erreichen. Zu bemerken ist,
dass eine Lösung dieser Instanzen im Durchschnitt 54 Schichten enthält. Es stellt sich somit
heraus, dass sich die Variante mit geschlossenem Container besonders gut für sehr große
Probleminstanzen eignet.
Zum Schluss soll noch erwähnt werden, dass weitere Tests gezeigt haben, dass eine
Erhöhung von maxTr sich weder für die Testfälle SP-BRi noch für die Probleme
SP-BRi-XL lohnt.
Berechnung von Instanzen mit bekanntem Bestwert
Im Folgenden wird untersucht, ob die beste Variante SPBBL-CC4 in der Lage ist,
nahoptimale Lösungen zu erzeugen. Zu diesem Zweck werden die 600 Instanzen berechnet,
die in Abschnitt 5.4.1 eingeführt und mit der Basisheuristik des Instanzgenerators CPGH
(siehe Kapitel 4.4) erzeugt wurden. Die Resultate der Tests sind in folgender Tab. 32
wiedergegeben. Die Bezeichnung der Probleme wurden aus Abschnitt 5.4.1 übernommen. In
dieser Tabelle bezeichnet GAP die relative Abweichung vom bekannten Optimum.
Nahoptimale Lösungen wurden bei den Testfällen des Typs „L“ erreicht, während die
Resultate der übrigen Testinstanzen etwas schlechter ausfallen. Alles in allem erscheinen die
Resultate zufriedenstellend. Diese Beurteilung wird unterstützt durch den Vergleich mit
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 145
anderen Experimenten für das 2D-SPP. MUMFORD-VALENZUELA et al. (2003) berechneten
Probleme mit 100 und 200 Kisten. Diese Instanzen wurden ebenfalls durch das verlustfreie
Zerschneiden eines Containers erreicht, so dass auch hier die Optimalwerte bekannt waren.
Die Autorinnen berichten von Abweichungen vom Optimum in der Größenordnung von 8%.
Es kann außerdem in Tab. 32 beobachtet werden, dass die Lösungsqualität offenbar nicht
vom Grad der Heterogenität des Kistenvorrats abhängt. Schließlich ist aus TTB ersichtlich,
dass die Bestwerte in recht kurzer Zeit erreicht wurden.
Tab. 32. Berechnung mit SPBBL-CC4 von Instanzen mit bekanntem Optimum.
Testfall ‚Layers’
VU (%)
GAP (%)
TTB (s.)
Testfall ‚Guillo-
tine’
VU (%)
GAP (%)
TTB (s.)
Testfall ‚Non-
Guillo- tine’
VU (%)
GAP (%)
TTB (s.)
L08 96.4 3.6 11.8 G08 94.5 5.5 9.8 N08 93.5 6.5 55.1
L10 97.3 2.7 19.9 G10 94.1 5.9 22.9 N10 94.5 5.5 38.9
L12 97.3 2.7 20.6 G12 94.8 5.2 35.1 N12 94.4 5.6 45.3
L16 95.8 4.2 26.7 G15 94.4 5.6 53.9 N15 93.8 6.2 62.5
L20 97.7 2.3 13.1 G20 94.6 5.4 37.3 N20 93.4 6.6 67.9
L30 97.9 2.1 26.6 G30 94.5 5.5 49.6 N30 93.4 6.6 72.2
L40 97.2 2.8 45.5 G40 95.5 4.5 47.6 N40 92.9 7.1 75.7
L50 96.4 3.6 73.6 G50 95.1 4.9 59.0 N50 93.1 6.9 74.2
Mittel 97.0 3.0 29.7 Mittel 94.7 5.3 39.4 Mittel 93 .6 6.4 61.5
Zeit limit 160 s. Zeit
limit 160 s. Zeit limit 160 s.
Vergleich von SPBBL mit anderen Verfahren
Der erfolgreichste Algorithmus im Test (SPBBL-CC4) wird nun mit einigen Heuristiken aus
der Literatur verglichen. Zu diesem Zweck werden die Resultate der parallelen TSA und GA
von BORTFELDT und GEHRING (1999a) herangezogen. Für diese Algorithmen sind die
Resultate für die Testfälle SP-BRi verfügbar. Diese Tests wurden auf 400-MHz-Rechnern
durchgeführt, für die parallelen Tests wurden vier identische PCs verwendet. Eine
Zeitschranke von 30 Minuten wurde verwendet. Für den sequentiellen und parallelen GA
wurde ein Testlauf pro Probleminstanz durchgeführt.
Weiterhin wird das erfolgversprechendste Verfahren von SIXT (1996), ein TSA namens
TS(best), für einen indirekten Vergleich berücksichtigt. Sixt berechnete 60
Probleminstanzen, welche in 6 Testfällen mit je 10 Instanzen von identischer Kistentypzahl
zusammengefasst sind. Diese Testfälle werden als Sj, j = 1,..,6 bezeichnet. Da die
Originaldaten der Testfälle nicht verfügbar sind und nicht mit den hier vorgestellten
146 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
Verfahren berechnet werden können, wurden die Resultate der sechs Testfälle den SP-BRi
Resultaten mit identischer Kistentypzahl gegenübergestellt. Die Resultate des Vergleichs mit
den Methoden von SIXT sind dementsprechend vorsichtig zu interpretieren, da keine direkte
Vergleichbarkeit der Ergebnisse gegeben ist.
Tab. 33 stellt die Resultate des Vergleichstests vor. In der mit „Mittel“ gekennzeichneten
Zeile werden die durchschnittlichen Werte für VU über alle 10 Testfälle angegeben, während
die Zeile „Mittel Sixt“ die mittlere Auslastung der Testfälle 1, 2, 4, 6, 7 und 8 zeigt, welche
für den Vergleich mit dem Verfahren von SIXT herangezogen werden. Schließlich werden die
Rechenzeiten der Tests gemittelt. Die angegebenen Zeiten der Vergleichsverfahren wurden
dabei entsprechend der jeweils verwendeten Prozessorleistung proportional angepasst, um
vergleichbare Werte zu erhalten (Basis = 2 GHz). Die gesamte CPU-Zeit für die parallelen
Tests kann durch Multiplizieren der angegebenen Zeiten mit 4 bestimmt werden, da vier
Computer verwendet wurden.
Die Resultate des Vergleichtests können wie folgt zusammengefasst werden:
• Der TSA von BORTFELDT UND GEHRING (1999a) erzielt die besten
Volumenauslastungen für die Testfälle mit schwach heterogenem Kistenvorrat. Für
solche Instanzen ist der TSA in der Lage, relativ große, kompakte, aus einem Kistentyp
in identischer räumlicher Orientierung bestehende, Blöcke zu bilden, so dass kein
innerer Volumenverlust entsteht. Andererseits erzielt SPBBL-CC viel bessere Resultate
bei stark heterogenen Kistenvorräten, was maßgeblich an der besonderen Eignung des
Kernverfahrens von PISINGER für stark heterogene Kistentypen liegt.
• Gemittelt über alle Testfälle dominiert das Verfahren SPBBL-CC klar alle anderen
betrachteten Verfahren bezüglich der Volumenauslastung und der benötigten
Rechenzeit. Die Verbesserung beträgt 0.8 Prozentpunkte im Vergleich zum
nächstbesten Algorithmus, dem parallelen TSA, während die Rechenzeit nur 11% der
benötigten Rechenzeit des parallelen TSA beträgt.
Der Vergleich mit dem Verfahren „TS(best)“ ist von besonderem Interesse, da dieses bereits
wesentlich bessere Ergebnisse erzielte als die Heuristik von BISCHOFF und MARIOTT (1990)
(siehe SIXT, 1996, S.201).
Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems 147
Tab. 33. Resultat des Vergleichstests mit den Verfahren anderer Autoren.
BORTFELDT & GEHRING (1999a) SIXT (1996) SPBBL-CC
sequ. GA
par. GA
sequ. TSA
par. TSA TS(best) (maxTr
= 4) Testfall
VU (%)
VU (%)
VU (%)
VU (%) Testfall VU
(%) VU (%)
SP-BR01 83.8 84.3 92.1 92.3 S1 (3) 91.7 87.3
SP-BR02 88.0 88.6 92.5 93.5 S2 (5) 87.7 88.6
SP-BR03 88.7 89.0 90.9 92.3 89.4
SP-BR04 87.8 88.5 89.9 90.8 S3 (10) 90.0 90.1
SP-BR05 87.7 88.1 89.0 89.9 89.3
SP-BR06 87.1 88.7 87.2 89.2 S4 (15) 84.5 89.7
SP-BR07 85.3 87.8 84.9 87.1 S5 (20) 88.6 89.2
SP-BR08 83.6 85.9 81.5 84.0 S6 (30) 85.3 87.9
SP-BR09 81.1 84.3 78.6 80.9 87.3
SP-BR10 78.0 82.1 76.9 79.1 87.6
Mittel 85.1 86.7 86.4 87.9 88.7
Mittel Sixt 85.9 87.3 88.1 89.5 88.0 88.8
Zeit s. (2 GHz)
240 s. 117 s. 294 s. 234 s. 99 s.
Es sei allerdings bemerkt, dass das Verfahren von BORTFELDT und
GEHRING (1999a) vollständige Unterstützung für jede verladene Kiste garantiert, während
diese strenge Stabilitätsbedingung weder bei dem Verfahren von SIXT noch bei SPBBL
eingehalten wird. Insofern kann die Dominanz von SPBBL nur für den Fall behauptet
werden, dass diese Nebenbedingung nicht gilt.
5.5 Zusammenfassung der Ergebnisse
In Kapitel 5 wurde eine Heuristik für das dreidimensionale Strip Packing-Problem
vorgestellt, welche aus einem schichtbildenden Verfahren von PISINGER (2002) abgeleitet
wurde. Zur Adaptation an das 3D-SPP wurden zwei Ansätze erprobt. Während die
Adaptation mit offenem Container quasi von einem beliebig langen Container ausgeht, führt
die Variante mit geschlossenem Container die Lösung einer SPP-Instanz auf die Berechnung
mehrerer CLP-Instanzen mit sinkenden Containerlängen zurück. Analog zum Beitrag von
BORTFELDT und GEHRING (1999a) erweist sich der Adaptationsansatz mit geschlossenem
Container als deutlich überlegen.
Zur Reduzierung des Verfahrensaufwands werden bei der Adaptation mit geschlossenem
Container zur Berechnung der jeweils nächsten CLP-Instanz möglichst viele Schichten mit
148 Kapitel 5 : Ein Verfahren zur Lösung des dreidimensionalen Strip Packing-Problems
hoher Auslastung von der vorherigen SPP-Bestlösung übernommen und nur wenige
Schichten neu berechnet. Die durchgeführten Experimente bestätigen, dass auf diese Weise
der Aufwand beim Erzeugen von Schichten bzw. die Anzahl komplexerer
CLP-Instanzen stark reduziert werden kann. Dementsprechend entfällt der größte Teil des
Suchaufwands auf die Lösung relativ weniger komplexer CLP-Instanzen. Dies kann als
wichtigste Erkenntnis dieses Kapitels gewertet werden.
Prinzipiell kann jedes CLP-Verfahren in einen SPP-Algorithmus überführt werden, indem
die Lösung des Strip Packing-Problems auf die Lösung einer Folge von CLP-Instanzen mit
sinkenden Containerlängen zurückgeführt wird. Besonders einfach gestaltet sich dabei die
Implementierung, da das CLP-Verfahren gewissermaßen als „Black Box“ behandelt wird,
mit dem lediglich eine Interaktion über seine Input/Output-Schnittstelle erfolgt. Zusätzlich
kann der Berechnungsaufwand reduziert werden, indem die besten Teile bereits berechneter
SPP-Lösungen beibehalten und vorwiegend CLP-Instanzen von geringer Komplexität
berechnet werden. Voraussetzung hierfür ist allerdings, dass das CLP-Verfahren schichtartig
strukturierte Packpläne oder zumindest guillotinierbare Packpläne erzeugt.
Ein Vergleich mit anderen Verfahren aus der Literatur zeigt die Leistungsfähigkeit der
Heuristik im Bezug auf die erreichten Volumenauslastungen, dem Hauptziel der
Optimierung, sowie im Bezug auf den Berechnungsaufwand. Die Berücksichtigung weiterer
Nebenbedingungen wie Stabilitätsrestriktionen bleibt Gegenstand weiterer Forschungsarbeit.
Alles in allem wurde die enge Verbindung der Problemstellungen des Strip Packing und des
Container Loading bewiesen.
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 149
6 Ein Verfahren zur Lösung des mehrdimensionalen
Bin Packing-Problems
6.1 Zielsetzung und Vorgehensweise
Im Rahmen dieses Kapitels wird ein Verfahren für das mehrdimensionale Bin Packing-
Problem mit großer Kistenstückzahl (1000 Stücke und mehr) vorgestellt. Ziel ist das
Verstauen eines Kistenvorrats J in einer minimalen Anzahl von Containern mit identischen
Innenmaßen (Breite W, Höhe H, und Tiefe D). Als Nebenbedingung wird ausschließlich die
Guillotineschnittrestriktion (vgl. (C9) in Kap. 1.2.4, Tab. 3) gefordert.
In der Literatur wird das mehrdimensionale BPP vergleichsweise selten behandelt.
Insbesondere für das 3D-BPP wurden bisher nur wenige Lösungsverfahren vorgestellt
(vgl. Literaturübersicht in 1.5.3). Nicht nur die exakten, sondern auch die heuristischen
Verfahren wurden fast ausschließlich anhand kleinerer und mittlerer Instanzen mit kaum
mehr als 200 Items getestet (vgl. Tab. 6 von S.26). Auffällig ist weiterhin, dass bei den
verwendeten Benchmarkinstanzen die Kisten im Vergleich zu den Containern meist relativ
groß sind. Ferner wurden die Verfahren in der Regel entweder nur anhand schwach
heterogener oder nur mit Hilfe stark heterogener Instanzen getestet.
Das 3D-BPP kommt in der betrieblichen Praxis vor, falls Güter in quaderförmige Kisten
verpackt und in Standardcontainern, Eisenbahnwagen oder LKWs verstaut werden sollen.
Mehrere praktische Anwendungsbereiche für den 2D-Fall beschreiben LODI et al. (1999a).
Der Bedarf an Lösungsverfahren für Kistenzahlen mit ca. 1.000 Kisten lässt sich wie folgt
begründen. Einerseits wurden bereits 2D-Benchmarkinstanzen dieser Größenordnung für
andere C&P-Problemtypen vorgestellt (vgl. MUMFORD-VALENZUELA et al., 2003).
Andererseits kommen Instanzen dieser Größe in der betrieblichen Praxis vor.
BORTFELDT (2010) berichtet beispielsweise von der Entwicklung einer Software im Auftrag
eines australischen Stahlproduzenten. Zu lösen war ein Bin Packing-Problem in der Cutting-
Variante. Es sollten Stahlblöcke gegebener Dimensionen aus größeren Blöcken ausgesägt
werden. Hierbei mussten Aufträge von bis zu 5.000 Blöcken bearbeitet werden. Auch im
Bereich der Transportoptimierung sind Problemgrößen von 200 Packstücken oder mehr keine
Seltenheit, man denke etwa an das Verstauen von Haushaltsgeräten oder Gepäckstücken in
Standardcontainern.
150 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Aus diesen Überlegungen heraus erscheint es sinnvoll, eine Heuristik zu entwickeln, die in
der Lage ist, große Instanzen des mehrdimensionalen BPP zu berechnen. Bei neuen
Benchmarkinstanzen entsprechenden Umfangs sollten auch Instanzparameter wie die mittlere
relative Kistengröße (bezogen auf die Containergröße) variiert werden, um den Einfluss
solcher Parameter auf die Lösungsqualität empirisch untersuchen zu können.
Das in diesem Kapitel vorgestellte Verfahren basiert auf einer Weiterentwicklung eines
3D-CLP-Verfahrens von PISINGER (2002). Dessen schichtbildender Lösungsansatz wurde
bereits in das 3D-SPP-Verfahren aus Kapitel 5 integriert. Der Ausbau eines CLP-Verfahrens
zu einem SPP-Verfahren und anschließend zu einem BPP-Verfahren stellt ein Muster einer
Weiterentwicklung dar, welches allgemein auf schichtbildende CLP-Verfahren anwendbar
ist, siehe z.B. LODI, MARTELLO und VIGO (1999a, 1999b) für das 2D-BPP.
Der Rest von Kapitel 6 ist wie folgt aufgebaut: in Abschnitt 6.2 wird zunächst ein
Lower Bound für das BPP vorgestellt, welcher auf einen Kistenvorrat mit (teilweise) freier
Orientierung anwendbar ist. Dieser neue Lower Bound wird durchgehend für das in Kap. 6.3
vorgestellte Verfahren verwendet. Die einzelnen Komponenten der BPP-Heuristik werden in
Abschnitt 6.4 beschrieben. Kapitel 6.5 widmet sich umfangreichen numerischen Tests.
Kapitel 6.6 fasst die Ergebnisse zusammen.
6.2 Lower Bounds für das Bin Packing-Problem
6.2.1 Vorbemerkungen
Ein Lower Bound (auch: untere Schranke) einer BPP-Instanz bezeichnet einen nicht zu
unterschreitenden Wert für die benötigte Containerzahl. Ein solcher Lower Bound (kurz: LB)
gibt allerdings nicht an, ob dieser Wert auch tatsächlich erreicht werden kann. Für eine BPP-
Instanz gibt es demnach in der Regel viele LB, beispielsweise ist 1 ein trivialer Lower Bound
für ein BPP mit nicht leerem Kistenvorrat.
Bei Erreichen eines LB während des Lösungsverlaufs kann das Verfahren sofort abbrechen,
da keine Chancen auf eine weitere Verbesserung des Zielfunktionswerts bestehen. Es ist
daher von Interesse, einen möglichst guten (großen) Lower Bound zu bestimmen, um den
Aufwand bei der Berechnung so gering wie möglich zu halten. Außerdem kann die Leistung
eines Verfahrens anhand eines guten LB besser beurteilt werden. Werden zwei
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 151
unterschiedliche Lower Bounds l1 und l2 betrachtet mit l1 ≤ l2, so ist stets der höhere Bound
aussagekräftiger; man spricht daher von der Dominanz von l2 gegenüber l1.
Neben dem trivialen Lower Bound L0 für das BPP (allgemein in der Literatur als Continuous
Lower Bound clb bezeichnet) soll nun ein weiterer Lower Bound vorgestellt werden, der auf
den Resultaten von MARTELLO et al. (2000) aufbaut und welcher L0 dominiert. Die im
Originalbeitrag als L1 und L2 bezeichneten Bounds gelten ausschließlich für Probleme mit
vorgegebener fixierter Orientierung der Kisten. Die hier vorgestellten und analog als L’1 und
L’2 bezeichneten Bounds gelten dagegen auch für frei rotierbare Kisten, und ganz allgemein
für alle Ausprägungen der Orientierungsrestriktionen (C1) aus Kapitel 1.2.4. Diese Bounds
stellen somit eine Verallgemeinerung der Bounds von MARTELLO et al. (2000) dar.
Der Rest von Kapitel 6.2 ist wie folgt aufgebaut. In Abschnitt 6.2.2 wird der kontinuierliche
Lower Bound L0 vorgestellt. In Abschnitt 6.2.3 wird der Bound L’1 als Verallgemeinerung
des Bounds L1 von MARTELLO et al. (2000) eingeführt. Schließlich wird in Abschnitt 6.2.4
der Bound L’2 definiert, welcher L0 und L’1 gleichermaßen dominiert.
6.2.2 Der Continuous Lower Bound L0
Die Kistenmenge J bestehe aus Kisten j der Abmessungen wj, hj, dj mit dem Volumen
vj = wj · hj · dj. Jeder Container hat, wie bereits erwähnt, die gleichen Innenmaße W (Breite),
H (Höhe) und D (Länge).
Der kontinuierliche Lower Bound L0 für die benötigte Containerzahl ist dann definiert als:
⋅⋅=∑ ∈
DHW
vL Jj j
0
(1)
Theorem 1: L0 ist ein Lower Bound für das BPP.
Beweis: Tauscht man sämtliche Kisten aus J gegen Quader der kleinstmöglichen Maße
1 x 1 x 1 mit identischem Gesamtvolumen aus, so benötigt man offensichtlich immer noch L0
Container, um das gesamte Kistenvolumen zu verstauen. L0 ist also tatsächlich ein nicht zu
unterschreitender Wert für das 3D-BPP. (q.e.d.)
Ist L0 im Fall kleiner Kisten noch aussagekräftig, so relativiert sich seine Bedeutung, wenn
der Vorrat aus vielen größeren (sperrigen) Kisten besteht. L0 tendiert bei dreidimensionalen
Problemen im ungünstigsten Fall gegen 1/8 des tatsächlichen bestmöglichen Werts, wie
folgendes Beispiel veranschaulicht (vgl. MARTELLO et al., 2000):
152 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Unter der Annahme, J bestehe aus einem einzelnen, nicht rotierbaren Kistentyp der
Abmessungen wj = W/2 + 1, hj = H/2 + 1, dj = D/2 + 1, ergibt sich folgendes Bild: jede Kiste
kann jeweils nur einzeln in einem Container platziert werden, so dass die Anzahl der Kisten
|J| offensichtlich ein Lower Bound für das BPP darstellt. Für das oben definierte L0 gilt
jedoch:
88
)12
()12
()12
(
0
J
DHW
DHWJ
DHW
DHW
DHW
vL
JjJj j ≈
⋅⋅
+⋅⋅⋅=
⋅⋅
+⋅+⋅+=
⋅⋅=
∑∑ ∈∈
ε
L0 entspricht demnach tatsächlich bei ausreichend großen Werten für W, H, D, nur etwa 1/8
der tatsächlich benötigten Containerzahl |J|.
6.2.3 Verallgemeinerung des Lower Bound L1
Bei im Vergleich zum Container relativ großen Kisten ist der vorherige Bound L0 offenbar
nicht sehr effizient. Daher werden in MARTELLO et al. (2000) Lower Bounds für das BPP
vorgestellt, die für solche Instanzen besser geeignete Werte liefern. Allerdings gelten diese
Bounds L1 und L2 ausschließlich für Probleme mit vorgegebener Orientierung. Prinzipiell
sind bis zu sechs Orientierungsvarianten einer Kiste der Maße w, h, d innerhalb des
Containers denkbar, wie Abb. 28 zeigt. Die Bezeichnungen der Orientierungsvarianten
entsprechen denen aus Kapitel 1.2.4, Tab. 4, falls d > w > h gilt.
W
H w
w
w
w
w
w
h
h
h h
h
h
d
d
d
d
dd
ov0
ov1
ov2
ov3
ov4
ov5
D
W
H w
w
w
w
w
w
h
h
h h
h
h
d
d
d
d
dd
ov0
ov1
ov2
ov3
ov4
ov5
D
Abb. 28. Sechs Orientierungsvarianten eines Packstücks im Container.
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 153
Die Menge der tatsächlich zulässigen Orientierungsvarianten o der Kiste j innerhalb des
Containers hängt von zwei Faktoren ab:
• Exogene Orientierungsrestriktionen (C1), vgl. Tab. 3 aus Kap. 1.2.4. In der
Problemstellung sind bestimmte Orientierungsvarianten explizit ausgeschlossen. Solche
Restriktionen können beispielsweise technische Ursachen haben: Pakete dürfen
aufgrund ihres Inhalts nicht gekippt werden, Schnittmuster müssen in einer bestimmten
Richtung verlaufen, u.s.w.
• Endogene Orientierungsrestriktionen. Es kann vorkommen, dass im vorherigen Sinn
erlaubte Orientierungsvarianten aufgrund der Größe der Kiste auszuschließen sind. Gilt
für eine Kiste j die Bedingung: max(wj, hj, dj) > min(W, H, D), so sind mindestens zwei
der sechs Orientierungsvarianten für j prinzipiell im Container nicht realisierbar, und
zwar unabhängig von zusätzlichen exogenen Restriktionen.
Wenn im Folgenden von „zulässigen“ Orientierungsvarianten die Rede ist, beinhaltet dies
daher implizit sowohl exogene wie endogene Orientierungsrestriktionen. Der folgende
Lower Bound für das 3D-BPP stellt nun eine Verallgemeinerung des Bounds L1 für den Fall
nicht fixierter Kistenorientierungen dar. Sei wj(o) die Ausdehnung der Kiste j in Richtung der
Containerbreite W unter Verwendung der Orientierungsvariante o (o = 0,..,5). hj(o) und dj(o)
seien analog für die Ausdehnung von j in Richtung der Containerhöhe bzw. der
Containerlänge definiert. Bezeichne Oz,j die Menge aller zulässigen Orientierungen der
Kiste j.
Sei
∈∀>>∈= jzjj
WH OoH
ohundW
owJjJ ,,2
)(2
)(:
Kisten aus JWH lassen sich offensichtlich nur hintereinander in Längsrichtung des Containers
anordnen. Ein Lower Bound für das 3D-BPP für die Teilmenge JWH kann daher aus dem
zugehörigen, durch Relaxierung ermittelten 1D-BPP gewonnen werden, welches durch die
Containerlänge D und die jeweils kleinstmöglichen Ausdehnungen d1j der Kisten aus JWH in
Längsrichtung des Containers gegeben ist. Sei:
{ } WHjzjj JjOoodd ∈∈= ,:)(min ,
1 .
154 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Sei außerdem L1WH analog zu MARTELLO et al. (2000) definiert:
( )
−−
−⋅−+
>∈=
∑∑∑ ∈∈∈
≤≤
p
D
p
dDpJ
D
dDpJd
DdJjL
pJj
j
spJj
jlpJjj
Dp
jWHWH
lls
)(
1
)(
1
)(
1
21
11
)(
,)(
max
2:
(2)
wobei:
≥≥∈=
>≥−∈=
pdD
JjpJ
DdpDJjpJ
jWH
s
jWH
l
1
1
2:)(
2:)(
L1WD und L1
HD sind analog zu L1WH definiert. Schließlich wird definiert:
),,max(' 1111HDWDWH LLLL = . (3)
Theorem 2: L’1 ist ein Lower Bound für das 3D-BPP.
Beweis: Zunächst sei bewiesen, dass L1WH ein Lower Bound für das BPP ist. Der erste
Summand in L1WH (vgl. (2)) entspricht der benötigten Containerzahl für große Kisten, die nur
einzeln gepackt werden können.
Der zweite Summand (vgl. (2)) ist eine Kombination von zwei bekannten Lower Bounds der
Anzahl benötigter Container für die Kisten aus Js(p) (1 ≤ p ≤ D/2), die nun auf rotierbare
Kisten verallgemeinert werden.
Was den ersten Bound angeht, so existieren offensichtlich keine zulässigen
Orientierungsvarianten, die es ermöglichen, zwei Kisten aus Jl(p) in demselben Bin
unterzubringen, da jede Kiste in jeder zulässigen Orientierungsvariante länger ist als die
halbe Containerlänge. Daher werden |Jl(p)| Bins benötigt, die bereits im ersten Summanden
berücksichtigt sind. Der Ausdruck ( )∑ ∈−⋅
)()(
pJj jll
dDpJ entspricht der Summe der
ungenutzten Containerlängen. Diese wird bestenfalls vollständig von Kisten aus Js(p) in
Anspruch genommen. Die verbleibenden Kistenlängen von Kisten aus Js(p) sind in weiteren
Containern der Länge D zu verstauen, woraus der Bound folgt.
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 155
Der zweite Lower Bound für die Kisten aus Js(p) (1 ≤ p ≤ D/2) ist ebenfalls im Fall beliebig
orientierter Kisten gültig, denn es können (bei gegebenem p) offensichtlich maximal
p
D
Kisten aus Js(p) hintereinander in einem einzelnen Bin verstaut werden. Neben- oder
übereinander können diese Kisten nicht in einem Container verstaut werden, da sie per
definitionem eine Teilmenge von JWH bilden. In die |Jl(p)| bereits benutzten Container für die
Kisten aus Jl(p) passen in keinem Fall mehr als ∑ ∈
−)(
1
pJj
j
l p
dD dieser kleineren Kisten.
Die verbleibenden ∑ ∈
−−)(
1
)(pJj
j
sl p
dDpJ Kisten aus Js(p) sind somit auf zusätzliche
Bins zu verteilen, woraus der zweite Bound folgt.
Durch Maximierung über p (1 ≤ p ≤ D/2) resultiert ohne weiteres der Bound L1WH der Anzahl
benötigter Container für alle Kisten aus J.
Der Beweis für L1WD und L1
HD erfolgt nach Rotation des Containers analog, so dass auch L'1
ein Lower Bound für das BPP darstellt. (q.e.d.)
Theorem 3: L'1 und L0 dominieren einander nicht.
Beweis: Der vorher definierte Lower Bound L'1 für Probleme ohne fixierte Orientierungen
dominiert L0 nicht, denn sind bei nichtleerem J die Mengen JWH, JWD und JHD leer, d.h. sind
alle Kisten relativ klein bezogen auf die Containerabmessungen, so ist L'1=0,
aber L0 > 1, da J ≠ Ø, so dass hier gilt: L0 > L'1.
Umgekehrt dominiert L0 den neuen Bound L’1 nicht. Sind alle Kisten relativ sperrig, so dass
J = JWH, so lassen sich Probleminstanzen mit L'1 > L0 angeben (vgl. Beispiel zu Theorem 1).
(q.e.d.)
156 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
6.2.4 Verallgemeinerung des Lower Bound L2
Zunächst sollen, bei beliebigem Wertepaar (p, q), 1 < p < W/2, 1 < q < H/2, drei disjunkte
Teilmengen von J unterschieden werden. Die Einteilung des Kistenvorrats erfolgt dabei in
sehr große Kisten (Teilmenge Kv , v steht für „very large“), große Kisten (Kl , l wie „large“)
und kleine Kisten (Ks , s wie „small“):
{ }jzjjv OoqHohpWowJjqpK ,,)(,)(:),( ∈∀−>−>∈=
∈∀>>∈= jzjjvl Oo
Hoh
WowqpKJjqpK ,,
2)(,
2)(:),(\),(
( ){ }jzjjlvs OoqohpowqpKqpKJjqpK ,,)(,)(:),(),(\),( ∈∀≥≥∪∈=
Eine Kiste gilt als „sehr groß“, falls es keine zulässige Orientierung der Kiste gibt, für die das
Breiten- und Höhenmaß der Kiste kleiner ist als die respektiven Vorgabewerte W - p sowie
H - q. Abbildung 29 zeigt die Stirnseite eines Containers und die Bereiche der Kistenmengen
für ein gegebenes Wertepaar (p, q). Es fällt auf, dass keine Teilmenge für „sehr kleine“
Kisten (mit Abmessungen kleiner als von p bzw. q) definiert wurde. Hierzu ist folgendes zu
bemerken: einerseits stört es bei einem Lower Bound generell nicht, wenn dessen
Berechnung einzelne Kisten außen vor lässt (selbst 0 ist Lower Bound für jedes BPP).
Andererseits werden alle möglichen Kombinationen von p und q betrachtet, so dass implizit
auch die kleinste Kiste mindestens für ein Wertepaar (p, q) in den Teilmengen berücksichtigt
wird.
WW - pW/2p
q
H/2
H - q
H
O
Ks
Kl
Kv
WW - pW/2p
q
H/2
H - q
H
O
Ks
Kl
Kv
Abb. 29. Bereiche für Teilmengen bei gegebenem Wertepaar (p, q).
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 157
Aus der Definition der Teilmengen geht hervor, dass gilt: ),(),( qpKqpKJ lvWH ∪= ,
unabhängig von p und q. Für JWH gilt bekanntermaßen der oben vorgestellte Lower Bound
L1WH. Ein Lower Bound für das 3D-BPP von ),(),(),( qpKqpKqpK slv ∪∪ ist demnach
gegeben durch:
2
1,2
1),,(),( 12
Hq
WpqpLLqpL WH
sWHWH ≤≤≤≤+= (4)
LSWH(p, q) bezeichnet dabei die zusätzlich zu L1
WH vorzusehende Containerzahl zur
Unterbringung der Kisten aus Ks(p, q). Dabei ist das nutzbare Restvolumen R1WH(p, q) der
ersten L1WH Container zur Unterbringung von Kisten aus Ks(p, q) in die Berechnung mit
einzubeziehen. Es sind keine Orientierungsvarianten der Kisten vorhanden, so dass Kisten
von Kv(p, q) und Ks(p, q) nebeneinander oder übereinander angeordnet werden können.
Daher gilt für das nutzbare Restvolumen aus den bereits benutzten Containern:
( )∑∑ ∈∈⋅⋅+−⋅⋅⋅=
),(
1
),(11 ),(qpKj
jqpKj j
WHWH
vldHWvLDHWqpR
Für die Containerzahl LsWH(p, q), gilt demnach folgende Beziehung:
⋅⋅
−=
∑ ∈
DHW
qpRvqpL
WH
qpKj jWHs
s),(
,0max),(1),( , also auch
⋅⋅
⋅⋅−−⋅⋅⋅−=
∑∑∑ ∈∈∈
DHW
dHWvLDHWvqpL qpKj
jqpKj j
WH
qpKj jWHs
vls)(
,0max),( ),(
1
),(1),( und
⋅⋅
⋅⋅−⋅−=
∑∑ ∈∪∈
DHW
HWdLDvqpL qpKj
jWH
qpKqpKj jWHs
vsl)(
,0max),( ),(
11),(),(
Somit folgt durch Einsetzen oben in Gleichung (4):
))(
,0max(),( ),(
11),(),(
12
⋅⋅
⋅⋅−⋅−+=
∑∑ ∈∪∈
DHW
HWdLDvLqpL qpKj
jWH
qpKqpKj jWHWH vsl . (5)
158 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Diese Beziehung gilt für jedes Wertepaar (p, q). L2WH resultiert dann aus der Maximierung
über alle zulässigen Wertekombinationen von p und q:
{ }),(max 2
21;
21
2 qpLL WH
Hq
Wp
WH
≤≤≤≤=
L2WH ist ein Lower Bound für das BPP, da sämtliche L2
WH(p, q) Lower Bounds darstellen.
Seien zudem L2WD und L2
HD die durch Containerrotation analog definierten Bounds, so ist L’2
definiert als:
{ }HDWDWH LLLL 2222 ,,max' = (6)
Theorem 4: L'2 dominiert sowohl L'1 als auch L0.
Beweis:
a) Die Dominanz von L'2 über L'1 ergibt sich aus den Definitionen:
qpqpLqpLLqpL WHs
WHs
WHWH ,0),(),,(),( 12 ∀≥+=
b) Die Dominanz von L'2 bezüglich L0 ergibt sich aus folgenden Überlegungen.
Für p = q = 1 folgt aus der Definition von Kv :
{ }{ }jzjj
jzjjv
OoHohWowJj
OoHohWowJjK
,
,
,)(,)(:
,1)(,1)(:)1,1(
∈∀==∈=
∈∀−>−>∈=
Da die Breite (bzw. Höhe) einer Kiste j aus Kv(1,1) in jeder zulässigen Drehvariante somit
der Containerbreite (bzw. Containerhöhe) entspricht, stimmt auch die Länge dj(o) einer
solchen Kiste für sämtliche zulässigen Orientierungen überein, so dass auch die minimale
und maximale Kistenlänge von j identisch sind, und somit gilt: dj(o) = d1j .
Insbesondere gilt für das Volumen vj einer Kiste j aus Kv(1,1):
jzjjjjjv OoHWdohowodvKj ,1 ,)()()()1,1( ∈∀⋅⋅=⋅⋅=⇒∈ (7)
Außerdem gilt offenbar die Beziehung:
JKKK vls =∪∪ )1,1()1,1()1,1( (8)
da selbst die kleinsten Kisten in den drei Teilmengen berücksichtigt werden. Nun folgt aus
den Definitionen von L’2 und L2WH sowie aus den Gleichungen (5), (7) und (8):
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 159
),0max(
),0max(
),0max(
))()(
,0max(
))(
,0max(
)1,1('
11
1
1
1)1,1()1,1()1,1(1
1)1,1(
1
)1,1()1,1(1
)1,1(
11)1,1()1,1(
1
22
−
⋅⋅+=
⋅⋅
⋅⋅⋅−+=
⋅⋅
⋅⋅⋅−++=
⋅⋅
⋅⋅⋅−⋅⋅++=
⋅⋅
⋅⋅−⋅−+=
≥
∑
∑
∑∑
∑∑
∑∑
∈
∈
∈∪∈
∈∪∈
∈∪∈
WHJj jWH
WH
Jj jWH
WH
Kj jKKj jWH
WH
Kjj
KKj jWH
Kjj
WH
KKj jWH
WH
LDHW
vL
DHW
LDHWvL
DHW
LDHWvvL
DHW
LDHWHWdvL
DHW
HWdLDvL
LL
vsl
vsl
vsl
Da L1WH ganzzahlig ist, kann der obige Ausdruck geschrieben werden als:
),0max(
),0max(
),0max('
101
11
112
WHWH
WHJj jWH
WHJj jWH
LLL
LDHW
vL
LDHW
vLL
−+=
−
⋅⋅+=
−
⋅⋅+≥
∑
∑
∈
∈
Ist L1WH > L0, so folgt die Dominanz von L’2 sofort, da 0112 '' LLLL WH >≥≥ .
Ist dagegen L0 > L1WH, so gilt:
0
101
1012 ),0max('
L
LLL
LLLLWHWH
WHWH
=−+=
−+≥
Resultat: L’2 dominiert L0. (q.e.d.)
Zusammenfassend sei festzuhalten, dass ein neuer Lower Bound L'2 für das BPP mit
(vollständig oder teilweise) orientierungsfreien Kisten abgeleitet wurde, welcher den
kontinuierlichen Lower Bound L0 dominiert. Dieser Bound basiert auf den bei
MARTELLO et al. (2000) bewiesenen Bounds für den Fall fester Kistenorientierungen.
160 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Der Erfolg des neuen Bounds ist auf Kistenmengen beschränkt, deren Abmessungen relativ
groß sind im Vergleich zu den Containermaßen. Für Kistenmengen mit kleineren
Abmessungen im Vergleich zum Container, wie beispielsweise bei den Packproblemen von
BISCHOFF und RATCLIFF (2005), bietet der Bound dagegen keine Vorteile gegenüber dem
kontinuierlichen Lower Bound L0. Wegen der bewiesenen Dominanz des neuen Bounds zu
L0 soll L'2 in diesem Kapitel trotzdem durchgehend anstelle von L0 verwendet werden.
6.3 Module des BPP-Verfahrens und ihre Interaktion
Die Heuristik zum Lösen des BPP wird nachfolgend für den 3D-Fall beschrieben. Sie
beinhaltet die folgenden fünf Module bzw. Teilverfahren (vgl. Abb. 30).
BPHL(BPP-Hauptmodul)
3BPPO(3D-BPP-Nachoptimierung)
3BP1S(3D-BPP-Heuristik)
3CLH(3D-CLP-Heuristik)
1BPH(1D-BPP-Heuristik)
Legende:
A B
‘Modul A ruft Modul B auf’
BPHL(BPP-Hauptmodul)
3BPPO(3D-BPP-Nachoptimierung)
3BP1S(3D-BPP-Heuristik)
3CLH(3D-CLP-Heuristik)
1BPH(1D-BPP-Heuristik)
Legende:
A B
‘Modul A ruft Modul B auf’
Abb. 30. Modularer Aufbau der 3D-BPP-Heuristik.
• Modul 3CLH bezeichnet ein Verfahren zur Lösung des dreidimensionalen
Containerbeladeproblems, das hier wie folgt definiert ist: gegeben seien eine
Kistenmenge J sowie ein einzelner Container der Breite W, Höhe H und Länge D. Es
gelten die gleichen Zulässigkeitsbedingungen für Kistenanordnungen wie beim
mehrdimensionalen BPP. Gesucht wird eine zulässige Anordnung einer Teilmenge der
Kisten von J, welche das verpackte Volumen maximiert. Eine CLP-Instanz ICL kann als
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 161
Quadrupel (W, H, D, J) notiert werden. Als CLP-Verfahren kommt, wie eingangs
erwähnt, die Heuristik von PISINGER (2002) zum Einsatz.
• Modul 1BPH bezeichnet ein Verfahren zur Lösung des 1D-BPP. Genutzt wird die
Heuristik von BORTFELDT (2005) (vgl. auch BORTFELDT, 2007).
• Modul 3BP1S bezeichnet eine Heuristik zur Erzeugung einer einzelnen Lösung für das
3D-BPP unter Verwendung eines bestimmten Parametersets.
• 3BPPO bezeichnet eine Heuristik zur Nachoptimierung einer mit 3BP1S erzeugten
Lösung.
• Modul BPHL steht für das Hauptmodul der 3D-BPP-Heuristik
(BPHL = Bin Packing, Heuristik, Layer-Ansatz).
Die vorgestellte 3D-Heuristik ist ebenfalls auf 2D-Probleme anwendbar, da
zweidimensionale Objekte (rechteckige Container und Items) als 3D-Packstücke mit
einheitlicher Mindesthöhe 1 angesehen werden können. Nachfolgend wird daher keine
Unterscheidung zwischen dem 3D- und 2D-Fall des Problems vorgenommen. Im nächsten
Abschnitt werden die Teilverfahren einzeln vorgestellt.
6.4 Beschreibung der Teilverfahren
6.4.1 Das CLP-Verfahren (Modul 3CLH)
Die CLP-Heuristik von PISINGER (2002) wurde bereits in Kapitel 5.2 vorgestellt. Deshalb sei
dessen Vorgehensweise hier nur kurz skizziert. Das Verfahren folgt dem schichtbildenden
Ansatz. Jeder erzeugte Packplan für einen Container besteht i.A. aus mehreren vertikalen
Schichten (vgl. Abb. 24 auf S. 130). Diese folgen in Längsrichtung des Containers lückenlos
aufeinander. Jede einzelne Schicht besteht aus einem Quader W x H x d, in dem eine oder
mehrere Kisten verstaut sind. Das Maß d wird dabei als Schichttiefe bezeichnet. Die
Schichtauslastung ist der Quotient aus dem verpackten Volumen und dem Schichtvolumen.
Die Containerauslastung ist analog definiert. Eine Schicht besteht aus mehreren so genannten
horizontalen und/oder vertikalen Streifen. Jeder horizontale Streifen besteht aus einzelnen
Kisten, die lückenlos nebeneinander in der Schicht angeordnet sind. Bei einem vertikalen
Streifen sind die einzelnen Kisten übereinander angeordnet.
162 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Die CLP-Heuristik ist als Baumsuche ausgelegt, wobei Verzweigungen auf Schichtebene und
Streifenebene verschachtelt durchgeführt werden. Bei jeder Verzweigung auf Schichtebene
ist zunächst eine geeignete Schichttiefe zu ermitteln. Hierbei werden besonders große und
besonders häufig vorkommende Kistenmaße bevorzugt als Schichttiefe verwendet. Um die
Suche nach geeigneten Lösungen nicht ausufern zu lassen, wird die Anzahl der untersuchten
Schichttiefen der jeweils nächsten Schicht mit dem Parameter M1 beschränkt. Auf
Streifenebene geht man ähnlich vor. Für jeden neuen Streifen wird die Anzahl der zu
prüfenden Streifenbreiten (bzw. Streifenhöhen) mit Hilfe des Parameters M2 beschränkt. Für
eine gegebene Schichttiefe und Streifenbreite (bzw. Streifenhöhe) kann das CLP auf ein
Knapsack-Problem (1D-CLP) reduziert werden, welches mit einem geeigneten Verfahren
effizient gelöst wird.
6.4.2 Das 1D-BPP-Verfahren (Modul 1BPH)
Das Verfahren 1D-BPP sei ebenfalls nur knapp charakterisiert. Eine gegebene
1D-BPP-Instanz wird zunächst mittels der bekannten Heuristik „First Fit Decreasing“ (FFD)
sowie mehreren auf FFD basierenden, aber leistungsfähigeren Konstruktions- sowie
Verbesserungsheuristiken bearbeitet. Das Verfahren bricht ab, sobald eine Optimallösung
erzielt wurde, welche ggf. anhand verschiedener der Literatur entnommener Bounds
verifiziert wird. Wurde zuvor keine Optimallösung gefunden, so wird abschließend ein
Branch and Bound (B&B)-Verfahren eingesetzt, welches eine gegebene Teillösung binweise
expandiert. Charakteristisch für das B&B-Verfahren ist, dass für verschiedene Instanztypen
bzgl. der mittleren relativen Packstückgröße verschiedene Expansionsstrategien verwendet
werden; so gibt es z.B. für so genannte Triplet-Instanzen, vgl. BORTFELDT (2007), eine
gesonderte Fortsetzungsstrategie.
6.4.3 Erzeugung einzelner Lösungen für das 3D-BPP (Modul 3BP1S)
Eine Pseudocodedarstellung der Heuristik 3BP1S wird in Alg. 14 angegeben. Die Heuristik
3BP1S folgt anfangs einem bereits von BISCHOFF und RATCLIFF (1995) realisierten,
intuitiven Ansatz. Eine einzelne Lösung der gegebenen 3D-BPP-Instanz wird ermittelt,
indem solange weitere Container mit dem CLP-Algorithmus 3CLH geöffnet und gefüllt
werden, bis keine Kisten aus J mehr übrig sind.
Der Inputparameter nbbest bezeichnet einen bereits vorher ermittelten Bestwert für die
Instanz, M1 und M2 die oben beschriebenen Parameter des CLP-Verfahrens. 3BP1S bricht ab,
falls feststeht, dass der bisherige Bestwert nbbest nicht unterboten werden kann. In diesem
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 163
Fall wird keine (neue) Lösung zurückgegeben. Man beachte, dass die Parameter M1 und M2
den Rechenaufwand von 3BP1S wesentlich beeinflussen.
procedure 3BP1S ( in : Problemdaten W, H, D, J; Parameter M1, M2, bisheriger Bestwert nbbest; out : 3D-BPP-Lösung sb) { Initialisieren }
sb:= ∅; { 3D-BPP-Lösung } nb:= 0; { Zähler für Bins } R:= J; { Restvorrat an Kisten } VR:= gesamtes Volumen des Restvorrats R;
{ Anweisungen } while R ≠ ∅ do { ermittle 3D-BPP-Lösung durch wiederholtes Beladen eines Containers }
if nb + ⌈ VR / (W · H · D) ⌉ > nbbest then
setze sb:= ∅; exit while ; { es kann kein neuer Bestwert erreicht werden } endif ; berechne Lösung s für die CLP-Instanz ICL:= (W, H, D, R) mittels 3CLH und M1, M2; sb:= sb ∪ s; { erweitere 3D-BPP-Lösung um ein gefülltes Bin } nb:= nb + 1; aktualisiere Restvorrat R und Volumen VR; endwhile ; { verbessere 3D-BPP-Lösung durch Umverteilung der Schichten } if sb ≠ ∅ and R = ∅ then { es wurde eine komplette zulässige Lösung sb ermittelt } sei {di} die Menge der Schichttiefen in der Lösung sb; if ∑i di ≤ (nb – 1) · D then { Verbesserung durch Umverteilung eventuell möglich } berechne Lösung s1 für die 1D-BPP-Instanz D und {di} mit Hilfe von 1BPH; if Anzahl der Bins in Lösung s1 < nb then führe eine Umverteilung der Schichten in sb gemäß s1 durch; endif ; endif ; endif ;
end.
Alg. 14. Algorithmus der Heuristik 3BP1S.
Nach Ermittlung einer neuen Lösung sb wird sichergestellt, dass deren Schichten optimal auf
die Bins verteilt sind. Es kann in der Tat vorkommen, dass durch eine Umverteilung der
Schichten mindestens ein weiterer Container eingespart werden kann. Dies folgt aus dem
Greedy-Ansatz des lokal optimierenden Beladens der einzelnen Container mit dem
CLP-Verfahren, der zu einem suboptimalen Resultat für die 3D-BPP-Instanz führen kann.
Sei {di} die Menge der Schichttiefen in der Lösung sb. Falls Chancen auf eine weitere
Bineinsparung durch Umverteilung der Schichten bestehen, so wird die 1D-BPP-Instanz
(D, {di}) mit Hilfe des Verfahrens 1BPH gelöst. Wird eine 1D-BPP-Lösung s1 mit einer
Containerzahl gefunden, die die Binanzahl nb von sb unterbietet, so werden die Schichten in
den 3D-Containern von sb entsprechend umverteilt, um auf diese Weise eine Bineinsparung
auch für die 3D-Lösung zu erreichen.
164 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
6.4.4 Hauptmodul der 3D-BPP-Heuristik (Modul BPHL)
Alg. 15 beschreibt das Hauptmodul der 3D-BPP-Heuristik. Es wird eine Vielzahl von
Lösungen für die gegebene 3D-BPP-Instanz erzeugt, indem das Parameterpaar (M1, M2) des
integrierten 3D-CLP-Verfahrens systematisch variiert wird. Für jedes Wertepaar werden mit
Hilfe der Prozedur 3BP1S zwei weitere Lösungen berechnet und die beste Lösung sbest wird
ggf. aktualisiert. Beim ersten Aufruf von 3BP1S für ein Wertepaar
(M1, M2) ist die Fortschrittsrichtung der Schichten die Containerbreite W, d.h. die Schichten
folgen (anders als ursprünglich für das CLP-Verfahren beschrieben) längs der
Containerbreite W aufeinander. Bei dem jeweils zweiten 3BP1S-Aufruf ist die
Fortschrittsrichtung die Containerlänge D. Die Wahl der Containerhöhe als dritte denkbare
Fortschrittsrichtung wäre redundant, da innerhalb des CLP-Verfahrens bereits horizontale
und vertikale Streifen gleichermaßen berücksichtigt werden. Der Wechsel der
Fortschrittsrichtung wird durch das Vertauschen von Containerlänge und -breite beim Aufruf
der Heuristik 3BP1S erzwungen. Der an 3BP1S übergebene bisherige Bestwert nbbest
ermöglicht ggf. einen vorzeitigen Abbruch (vgl. Abschnitt 6.4.3).
procedure BPHL (in : Problemdaten W, H, D, J, Parameter: maxM1, maxM2; out : beste 3D-BPP-Lösung sbest)
{ Initialisieren } nbbest := |J|;
{ Anweisungen } for M1:= 1 to maxM1 by 1 do { Anzahl der Verzweigungen auf Schichtebene } for M2:= M1
2 to maxM2 by M12 do { Anzahl der Verzweigungen auf Streifenebene }
for sdir:= 1 to 2 by 1 do { Fortschrittsrichtung der Schichten } if sdir = 1 then setze DD:= W; WW:= D; { Fortschrittsrichtung W } else setze DD:= D; WW:= W; { Fortschrittsrichtung D } endif ; rufe 3BP1S(WW, H, DD, J, M1, M2, nbbest, sb); if sb ≠ ∅ and Binanzahl(sb) < nbbest then sbest:= sb; nbbest:= Binanzahl von sbest; sdirbest:= sdir; endif ; endfor sdir; endfor M2; endfor M1; rufe 3BPPO(W, H, D, J, maxM1, maxM2, sdirbest, sbest); { Nachoptimierung }
end .
Alg. 15. Algorithmus des Hauptmoduls BPHL.
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 165
BPHL ist auf große Probleminstanzen mit Kistenvorräten von 1000 oder mehr Kisten
zugeschnitten. Um auch für eine große 3D-BPP-Instanz möglichst schnell eine
Ausgangslösung zu ermitteln, erhalten daher die Parameter anfangs minimale Werte
(M1 = 1, M2 = 1). Bei den folgenden Aufrufen werden beide Parameter dann nach und nach
erhöht, wodurch der Suchaufwand steigt. Der Parameter M1 wird jeweils um 1 erhöht,
während M2 in Schritten von M12 inkrementiert wird.
Bei Erreichen einer vorgegebenen Zeitschranke t1 bricht die Erzeugung von Lösungen für
verschiedene Parametersätze ab (der Einfachheit halber wird dies nicht in Alg. 15
dargestellt). Danach wird die beste gefundene Lösung sbest einmalig einer Nachoptimierung
mit Hilfe der Heuristik 3BPPO unterzogen. Der Aufwand der Nachoptimierung wird durch
eine weitere Zeitschranke t2 beschränkt.
6.4.5 Nachoptimierung einer Lösung (Modul 3BPPO)
Bei jeder mit Modul 3BP1S erzeugten Lösung existiert eine einheitliche Fortschrittsrichtung
der Schichten. Diese folgen entweder in Längsrichtung D oder entlang der Containerbreite W
aufeinander. Die Nachoptimierungs-Heuristik 3BPPO zielt nun darauf ab, beide
Fortschrittsrichtungen in ein und derselben Lösung zu kombinieren. Ausgehend von einer mit
3BP1S erzeugten Lösung werden dazu mehrere Schichten durch neue Schichten ersetzt,
welche in der jeweils alternativen Fortschrittsrichtung aufeinander folgen.
Abb. 31 veranschaulicht die einzelnen Schritte der Nachoptimierung. In dem gezeigten
Beispiel werden zunächst vier Schichten der übergebenen Lösung mit den geringsten
Volumenauslastungen ermittelt und aufgelöst; diese liegen i.A. in verschiedenen Containern.
In Schritt 2 werden dann die verbliebenen Schichten auf möglichst wenige Bins verteilt. Die
entsprechende eindimensionale BPP-Instanz wird wiederum mit dem Verfahren 1BPH
gelöst. In Schritt 3 wird geprüft, ob die in der Fortschrittsrichtung der Ausgangslösung
gelegenen Restdistanzen in den belegten Containern ausreichen, um weitere Kisten zu
verstauen. Falls möglich, werden die Resträume dieser Bins mit dem CLP-Algorithmus
3CLH gefüllt. Dabei wird die Fortschrittsrichtung für die neuen Schichten alternativ zur
Fortschrittsrichtung der Ausgangslösung gewählt. Im vierten und letzten Schritt werden
gegebenenfalls weitere Bins geöffnet und mit dem CLP-Verfahren beladen, bis der gesamte
Kistenvorrat verbraucht ist. Als Fortschrittsrichtung für neue Schichten wird ebenfalls die zur
Rumpflösung alternative Fortschrittsrichtung verwendet.
166 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
1. Mehrere Schichtenwerden aufgelöst 2 631 74 5
Bin 1 Bin 2 Bin 3 Bin 4
2. Die verbleibendenSchichten werden neuverteilt
6 31 7 4
Bin 1 Bin 2 Bin 3
Bin 5
8 9
Schichten 2, 5, 8, 9 mit niedrigster
Volumenauslastungwerden aufgelöst
1. Mehrere Schichtenwerden aufgelöst 2 631 74 5
Bin 1 Bin 2 Bin 3 Bin 4
2. Die verbleibendenSchichten werden neuverteilt
6 31 7 4
Bin 1 Bin 2 Bin 3
Bin 5
8 9
Schichten 2, 5, 8, 9 mit niedrigster
Volumenauslastungwerden aufgelöst
3. In den verbleibendenBins mit ausreichendemRestvolumen werdenggf. neue Schichten mit alternativerFortschrittsrichtunggebildet!
6 31 7 4
1’
2’
3’
Bin 1 Bin 2 Bin 3
4. Es werden neue Bins mit Schichten in alternativerFortschrittsrichtungerzeugt, bis allePackstücke verbrauchtsind.
6 31 7 4
1’
2’
3’
4’
5’
6’
Bin 1 Bin 2 Bin 3 Bin 4 Bin 5
In Bin 3 bestehtausreichend Platz für
neue Schichten. Existieren mehrere
solcher Bins, werdendiese nach
aufsteigendemRestvolumen gefüllt.
Vor dem Öffnen einesneuen Bins wird
geprüft, ob ein neuerBestwert (in diesemFall: max. 4 Bins)
erreicht werden kann. Bin 5 wird also nicht
mehr gefüllt.
UrsprünglicheFortschrittsrichtungder Schichten
AlternativeFortschrittsrichtung
3. In den verbleibendenBins mit ausreichendemRestvolumen werdenggf. neue Schichten mit alternativerFortschrittsrichtunggebildet!
6 31 7 4
1’
2’
3’
Bin 1 Bin 2 Bin 3
4. Es werden neue Bins mit Schichten in alternativerFortschrittsrichtungerzeugt, bis allePackstücke verbrauchtsind.
6 31 7 4
1’
2’
3’
4’
5’
6’
Bin 1 Bin 2 Bin 3 Bin 4 Bin 5
In Bin 3 bestehtausreichend Platz für
neue Schichten. Existieren mehrere
solcher Bins, werdendiese nach
aufsteigendemRestvolumen gefüllt.
Vor dem Öffnen einesneuen Bins wird
geprüft, ob ein neuerBestwert (in diesemFall: max. 4 Bins)
erreicht werden kann. Bin 5 wird also nicht
mehr gefüllt.
UrsprünglicheFortschrittsrichtungder Schichten
AlternativeFortschrittsrichtung
Abb. 31. Vier Schritte der Nachoptimierung mit Modul 3BPPO.
Alg. 16 beschreibt detailliert die Nachoptimierung. In der Hauptschleife wird die Anzahl k
der aufzulösenden Schichten von 1 bis nd - 1 inkrementiert, wobei nd die Anzahl der
Schichten der Lösung sb bezeichnet. Für eine gegebene Anzahl k aufzulösender Schichten
werden jeweils die vier Schritte aus Abb. 31 durchgeführt.
Der Suchaufwand ist anfänglich gering, da die Anzahl der neu zu packenden Kisten relativ
klein ist, und steigt dann kontinuierlich an. Die Nachoptimierung bricht bei Erreichen einer
vorgegebenen Zeitschranke t2 ab. Der Einsatz der Heuristik 3BPPO ist wegen der mehrfach
variierten Anzahl aufzulösender Schichten relativ zeitaufwendig. Sie wird daher nur einmalig
zur Nachoptimierung der vorher erreichten Bestlösung eingesetzt.
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 167
procedure 3BPPO ( in : Problemdaten W, H, D, J, Parameter M1, M2, Fortschrittsrichtung sdir; inout : Lösung sb)
{ Initialisieren } if sdir = 1 then DD:= W; WW:= D; { Fortschrittsrichtung von sb ist Containerbreite W } else DD:= D; WW:= W; { Fortschrittsrichtung von sb ist Containerlänge D } endif ; sbold:= sb; sei (d1, d2,..., dnd) die aufsteigend nach Auslastung sortierte Folge der Schichtbreiten in sbold;
{ Anweisungen } for k:= 1 to nd - 1 do { Schritt 1 } löse die ersten k Schichten von sbold auf, setze R:= Menge der Kisten der Schichten 1,.., k; { Schritt 2 } löse die 1D-BPP-Instanz (DD, {dj | j = k+1,..., nd}) mittels 1BPH, leite s1 mit nb0 Bins ab; erzeuge die 3D-BPP-Rumpflösung sbnew durch Kombination der Schichten k+1,..., nd von sbold in nb0 3D-Bins gemäß s1; sortiere die Bins in sbnew aufsteigend nach freier Restdistanz in Fortschrittsrichtung sdir; { Schritt 3: bilde Schichten mit zu sdir alternativer Fortschrittsrichtung im Bin ib } for each Bin ib in sbnew do if freie Restdistanz dfree(ib) > minimales Kistenmaß in R then berechne Lösung s für CLP-Instanz ICL = (dfree(ib), H, WW, R) mit Hilfe von 3CLH und Parameter M1, M2; ergänze Anordnung im Bin ib durch s; entferne aus R die in s platzierten Kisten; endif ; endfor ib; { Schritt 4: Fülle zusätzliche Bins mit Schichten in zu sdir alternativer Fortschrittsrichtung } Rufe 3BP1S(DD, H, WW, R, M1, M2, Binanzahl(sb) – nb0, sbr); if Lösung sbr ≠ ∅ then sbnew := sbnew ∪ sbr; if (Binanzahl(sbnew) < Binanzahl(sb)) then sb:= sbnew; endif ; endif ; endfor k;
end .
Alg. 16. Algorithmus der Heuristik 3BPPO.
Abschließend sei auf die Einhaltung der Guillotineschnitt-Bedingung eingegangen. Diese
wird innerhalb einer einzelnen Schicht aufgrund der erzeugten Packmuster eingehalten (vgl.
Abb. 24, S. 130). Ihre Einhaltung auf der Ebene kompletter Lösungen resultiert aus der
erzeugten Packstruktur. Die Verwendung verschiedener Fortschrittsrichtungen in einer
Lösung führt nicht zu einer Verletzung der Guillotinierbarkeit (vgl. Abb. 31).
168 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
6.5 Numerischer Test
Die Heuristik wurde in C programmiert und mit Hilfe eines Standard-PC (1,86 GHz Intel mit
500 MB RAM) getestet. Im Anschluss werden zunächst neue Benchmarkinstanzen
eingeführt. Anschließend werden die Testergebnisse vorgestellt und analysiert.
6.5.1 Probleminstanzen
Einerseits soll BPHL auf 740 wohlbekannte Testinstanzen mit maximal 200 Items
angewendet werden. Andererseits sollen 1800 neue BPP-Instanzen für größere Probleme
vorgestellt werden.
Die 740 Probleme aus der Literatur beinhalten 300 2D-Testinstanzen von BERKEY und
WANG (1987); diese werden als BW-Instanzen bezeichnet. Weitere 200 2D-Probleme
stammen von MARTELLO und VIGO (1998), nachfolgend als MV-Instanzen bezeichnet. Die
500 2D-Instanzen werden in 10 Klassen von 50 Instanzen zusammengefasst. In jeder Klasse
liegen die Kistenzahlen pro Instanz zwischen 20 und 100. Für eine detaillierte Beschreibung
der Instanzen sei auf LODI, MARTELLO und VIGO (1999a) verwiesen.
240 Instanzen für den 3D-Fall entstammen MARTELLO, PISINGER und VIGO (2000). Diese
nachfolgend mit MPV bezeichneten Instanzen sind in 6 Gruppen („1“, „4“, „5“, „6“, „7“,
„8“) zusammengefasst. Weitere Klassen von Problemen („2“, „3“, „9“) werden in der Regel
nicht in der Literatur beachtet (siehe FAROE, PISINGER und ZACHARIASEN, 2003). Jede der 6
Klassen umfasst 40 Instanzen mit identischen Containermaßen, aber unterschiedlicher
Kistenzahl (50, 100, 150, 200 Packstücke pro Instanz).
Um die Eignung von BPHL für größere Probleminstanzen zu überprüfen, werden ausgehend
von den CLP-Benchmarkinstanzen von BISCHOFF und RATCLIFF (1995) bzw. DAVIES und
BISCHOFF (1998) (kurz: BR-Instanzen) insgesamt 1800 Bin Packing-Instanzen abgeleitet. Die
ursprünglichen BR-Instanzen gliedern sich in 15 Testfälle mit je 100 Probleminstanzen. Pro
Testfall ist die Anzahl der Kistentypen für alle Instanzen identisch. Die Kistenvorräte der
Testfälle variieren von schwach zu stark heterogen. Die Containermaße entsprechen
durchweg den Innenmaßen eines 20-Fuss-Standard-Containers.
Die neuen Benchmarkinstanzen für das BPP sollten folgende Anforderungen erfüllen:
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 169
• Es sollten sowohl 3D- als auch 2D-Probleminstanzen bereitgestellt werden.
• Große Instanzen sind erwünscht, in der Größenordnung von 1000 Kisten oder mehr.
• Es sollten verschiedene Größenverhältnisse der Kisten im Vergleich zum Container
betrachtet werden.
• Die Kistenmengen der Instanzen sollten verschiedene Heterogenitätsgrade besitzen.
• Um die Vergleichbarkeit der Resultate zu erleichtern, sollte der kontinuierliche
Lower Bound L0 für jeden Testfall einen einheitlichen Wert besitzen.
Die Instanzerzeugung wird zunächst für den 3D-Fall beschrieben.
Containergröße: Drei Varianten werden betrachtet, wobei das Containervolumen 100%, 25%
und 15% des Containervolumens der BR-Instanzen beträgt. Die drei Containergrößen werden
nachfolgend auch mit „100%“, „25%“ und „15%“ bezeichnet. Bei den Varianten 25% und
15% werden die Innenmaße des 20-Fuss-Standard-Containers proportional angepasst. Die
Kistengrößen werden unverändert von den BR-Instanzen übernommen. Daher ergeben sich
verschiedene Verhältnisse des mittleren Kistenvolumens zum Containervolumen.
Kistentypen: Bei der Bereitstellung von Kistentypen werden zwei Modi unterschieden. In
Modus 1 werden für eine 3D-BPP-Instanz alle Kistentypen einer BR-Instanz unverändert
übernommen. Wie bei den BR-Instanzen kommen daher Kistenvorräte mit 3 bis 100
Kistentypen vor. In Modus 2 werden die Kistentypen einer 3D-BPP-Instanz durch
Zusammenfassen der Kistentypen 10 aufeinanderfolgender BR-Instanzen eines Testfalls
erzeugt (Instanzen 1-10, 11-20, usw.). Die Anzahl an Kistentypen wird daher im Vergleich
zu den BR-Instanzen verzehnfacht. Die Instanzen aus Modus 2 beinhalten folglich zwischen
30 und 1000 Kistentypen und besitzen im Vergleich zu den Instanzen des Modus 1 eine viel
höhere Heterogenität.
Kistenzahlen: Zuletzt sind die Kistenzahlen aller Kistentypen festzulegen. Die Kistenzahlen
werden so bestimmt, dass der Lower Bound L0 abhängig von der Containervariante folgende
Werte annimmt: L0 = 10 für Containervariante „100%“, L0 = 40 für die Containervariante
„25%“ und L0 = 100 bei Containervariante „10%“. Die Kistenzahlen für die einzelnen
Kistentypen werden zufällig bestimmt; ausnahmsweise kann es vorkommen, dass für einen
Kistentyp keine Kiste ermittelt wird, dieser also entfällt.
Pro Modus der Kistentypauswahl (1 oder 2) und Containergröße werden für jeden der 15
BR-Testfälle jeweils 10 3D-BPP-Instanzen, wie eben beschrieben, erzeugt. Bei Modus 1
170 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
werden nur die ersten 10 Testinstanzen jedes BR-Testfalls verwendet, während für Modus 2
sämtliche 100 Instanzen für die Erzeugung von 10 neuen Testinstanzen benötigt werden.
Insgesamt werden daher 2 · 3 · 15 · 10 = 900 3D-BPP-Instanzen bereitgestellt. Die Erzeugung
von 2D-BPP-Instanzen verläuft analog wie im 3D-Fall. Anders ist lediglich, dass pro Instanz
die Höhe des ursprünglichen 20-Fuss-Containers sowie pro Kistentyp jeweils eine zufällig
ermittelte Kistendimension ignoriert wird, indem die Seitenlänge den Wert 1 annimmt. Wie
im 3D-Fall werden so 900 2D-BPP-Instanzen definiert. Tab. 34 stellt die Systematik und die
Bezeichnungen der 12 neuen Testfälle mit je 150 Instanzen vor. Anders als bei den
BR-Instanzen für das CLP werden hier alle Instanzen einer Dimension, eines
Kistentyp-Modus und einer Containergröße zu einem Testfall zusammengefasst. Bezüglich
der Instanzgrößen gilt, dass bis auf 10 Instanzen jede Instanz mehr als 1000 Packstücke
umfasst. Die mittlere Packstückanzahl über alle 1800 Instanzen beträgt 1566, im 2D-Fall
gehören im Mittel 1646 Rechtecke und im 3D-Fall 1486 Kisten zu einer Instanz. Die kleinste
Instanz beinhaltet 792 und die größte 4232 Packstücke. Die insgesamt 1800 BPP-Instanzen
wurden unter www.fernuni-hagen.de/WINF zum Download bereitgestellt.
Tab. 34. Systematik und Bezeichnungen der 12 BPP-Testfälle.
Container- volumen
100% 25% 15% Testfälle (je 150
Instanzen) L0 10 40 100
Modus 1 MB01 MB03 MB05 3D
Modus 2 MB02 MB04 MB06
Modus 1 MB07 MB09 MB11 2D
Modus 2 MB08 MB10 MB12
6.5.2 Testresultate
Zur Lösung der 740 Benchmarkinstanzen aus der Literatur wurde BPHL wie folgt
konfiguriert: t1 = 3 s., t2 = 3 s., maxM1 = 2, maxM2 = 8. Eine zusätzliche Gesamtzeitschranke
tl = 3 s. stellt sicher, dass die Rechenzeiten sehr kurz bleiben. Die Berechnung erfolgte auf
einem PC mit 1.86 GHz Intel Prozessor. Die 2D- und 3D-Ergebnisse werden in den
folgenden Tabellen zusammengefasst. Beide Tabellen sind analog aufgebaut:
• Am linken Tabellenrand werden Dimension und Testfall (BWi, MV i, MPVi) der
berechneten Instanzen angezeigt. Zusätzlich wird der mittlere kontinuierliche Lower
Bound L0 pro Klasse angegeben.
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 171
• Im rechten Tabellenbereich werden die Resultate von BPHL und einigen
Vergleichsverfahren der Literatur angegeben. Es werden lediglich die Mittelwerte über
alle Instanzen einer Klasse angegeben. nb bezeichnet dabei die Anzahl verwendeter
Container, während nbrel den Wert nb / L0 angibt. Für jedes Vergleichsverfahren wird
zudem der behandelte BPP-Subtyp („OF“, „RG“, vgl. Kap. 1.2.4, Tab. 5) erwähnt. In
Tab. 36 wird außerdem die verwendete Zeitschranke (tl = „t ime limit“) sowie der
Verfahrenstyp (TS, GLS) angegeben.
Tab. 35. Testresultate für 500 2D-Benchmarkprobleme.
LODI, MARTELLO und V IGO (1998) BPHL
RG RG
FCRG UBF TS Dim. Testfall L0
nbrel nbrel nbrel nb nbrel
BW01 18.54 1.09 1.09 1.07 19.56 1.06
BW02 2.48 1.04 1.06 1.04 1.50 1.01
BW03 12.58 1.19 1.19 1.14 14.02 1.12
BW04 2.38 1.05 1.07 1.05 2.44 1.02
BW05 15.72 1.15 1.15 1.13 17.60 1.12
2D
BW06 2.16 1.10 1.10 1.10 2.20 1.03
Mittel BW 8.98 1.10 1.11 1.09 9.72 1.06
MV07 14.38 1.18 1.18 1.16 15.68 1.10
MV08 14.42 1.17 1.17 1.17 15.64 1.09
MV09 27.42 1.54 1.54 1.54 42.42 1.54 2D
MV10 9.52 1.09 1.09 1.08 10.20 1.08
Mittel MV 16.44 1.25 1.25 1.24 20.99 1.20
Mittel BW/MV 11.96 1.16 1.17 1.15 14.23 1.12
Bei den 2D-Instanzen kann festgestellt werden, dass BPHL leicht bessere Ergebnisse erreicht
als die Verfahren von LODI et al. (1998), welche denselben Subtyp RG bearbeiten. Die
gewählte Zeitschranke von 3 s. zeigt dabei die Effizienz der vorgestellten Heuristik. Im
Mittel wird die Bestlösung bereits nach 0.1 Sekunden erreicht. Tab. 36 kann ferner
entnommen werden, dass BPHL etwas bessere Containerzahlen erreicht als die
Vergleichsverfahren. Allerdings ist ein direkter Vergleich nicht möglich, da diese Verfahren
fixierte Orientierungen der Kisten beachten (Typ OF), während BPHL eine freie Drehung der
Packstücke zulässt. Daher sind die Resultate vorsichtig zu interpretieren. Allerdings ist die
von BPHL verwendete Zeitschranke von 3 s. sehr klein, die Bestresultate werden
durchschnittlich bereits nach 0.6 s. erreicht.
172 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Tab. 36. Testresultate für 240 3D-Benchmarkprobleme.
LODI, MARTELLO und VIGO (2002)
FAROE, PISINGER und Z ACHARIASEN (2003) BPHL
OF OF RG
TS GLS
tl = 60 tl = 150 tl=1000 tl = 60 tl = 150 tl=1000 tl = 3
Dim Test- fall
L0 (RG)
nb nb nb nb nb nb nb
MPV1 23.78 32.43 32.23 31.98 32.65 32.35 32.08 28.88
MPV4 38.73 73.50 73.50 73.50 73.85 73.75 73.55 73.30
MPV5 14.00 18.05 18.00 17.85 17.98 17.80 17.70 17.45
MPV6 21.20 24.28 24.10 24.03 24.28 24.08 24.00 23.20
MPV7 11.93 15.30 15.18 15.00 15.10 14.90 14.75 14.55
3D
MPV8 16.45 20.98 20.93 20.65 20.80 20.58 20.48 19.83
Mittel 21.01 30.75 30.65 30.50 30.78 30.58 30.43 29 .53
Nachfolgend werden die Resultate für die 1800 neuen Benchmarkinstanzen dargestellt.
Die Parameterwerte für die 1800 neuen Benchmarkprobleme wurden in Vortests ermittelt:
t1 = 60 s., t2 = 60 s., maxM1 = 4, maxM2 = 8. Nachfolgende Tab. 37 ist wie folgt aufgebaut:
• Jede Zeile von Tab. 37 präsentiert die Mittelwerte über alle 150 Testinstanzen eines
Testfalls aus Tab. 34. Die ersten drei Spalten enthalten die Dimension, die Bezeichnung
des jeweiligen Testfalls sowie den zugehörigen Wert für L0.
• „BPHL“ steht für die Vollversion der Heuristik inklusive Nachoptimierung, „BPHL-“
bezeichnet die reduzierte Version ohne Nachoptimierung.
• Pro Version und Testfall werden die mittlere Anzahl an benötigten Containern (nb), die
relative Abweichung vom Lower Bound gap = (nb - L0) / L0 (in %) sowie die
durchschnittliche Volumenauslastung VU in den Containern (in %) angegeben. Für die
Vollversion BPHL werden neben Anzahl und Prozentsatz der Instanzen (nopt), in
welchen der Optimalwert L0 erreicht wurde, zusätzlich die mittlere Rechenzeit pro
Instanz in (1.86 GHz-) Sekunden angegeben (Spalte t_tot).
• Unter „Wirkung von 3BPPO“ werden die Ergebnisabweichungen der Versionen BPHL
und BPHL- zusammengefasst. Speziell gibt ni1 die Anzahl der Instanzen pro Testfall
an, in welcher die Nachoptimierung (3BPPO) zu einer Bineinsparung führt.
• Unter „Wirkung von 1BPH“ werden die Rechenzeiten des Moduls 1BPH absolut und
prozentual bzgl. der Gesamtrechenzeit angegeben (Spalte t_1BPH). Zudem gibt ni2 die
Anzahl der Instanzen pro Testfall an, für die 1BPH zu einer Binreduzierung führt.
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 173
Tab. 37. BPHL Testresultate für 1800 Probleminstanzen.
BPHL BPHL- Wirkung von 3BPPO Wirkung von 1BPH Dim Test-
fall L0 nb (Bins)
gap (%)
VU (%) nopt nopt
(%) t_tot (s)
nb (Bins)
gap (%)
VU (%)
nb (Bins)
gap (%)
VU (%) ni1
t_1BPH (s)
t_1BPH (%) ni2
MB01 11.0 10.40 86.33 11 7.3 125.5 11.1 10.87 85.97 -0.05 -0.47 0.36 7 0.9 0.7 3
MB02 10
10.7 6.67 88.99 50 33.3 99.1 10.7 7.13 88.60 -0.05 -0.47 0.39 7 1.2 1.2 0
MB03 46.9 17.17 84.29 0 0.0 101.2 47.8 19.52 82.63 -0.94 -2.35 1.66 97 2.2 2.2 13
MB04 40
44.0 10.10 89.71 0 0.0 97.1 45.1 12.68 87.65 -1.03 -2.58 2.06 137 1.9 1.9 0
MB05 130.4 30.41 76.33 0 0.0 123.2 133.9 33.86 74.37 -3.45 -3.45 1.97 132 3.2 2.6 12
3D
MB06 100
122.1 22.11 81.51 0 0.0 122.6 124.4 24.38 80.02 -2.27 -2.27 1.49 147 2.6 2.1 6
Mittel (3D) 16.14 84.53 10.2 6.8 111.5 18.07 83.21 -1.30 -1.93 1.32 87.8 2.0 1.8 5.7
MB07 10.2 2.00 93.28 120 80.0 26.7 10.2 2.00 93.28 0.00 0.00 0.00 0 0.1 0.5 2
MB08 10
10.2 1.53 93.40 127 84.7 22.5 10.2 1.73 93.21 -0.02 -0.20 0.18 3 0.1 0.6 0
MB09 41.4 3.53 95.38 4 2.7 118.1 41.5 3.87 95.07 -0.13 -0.33 0.31 16 2.3 1.9 21
MB10 40
40.9 2.17 96.61 27 18.0 106.5 41.0 2.42 96.38 -0.10 -0.25 0.24 15 4.2 3.9 11
MB11 111.1 11.07 89.57 0 0.0 122.5 111.9 11.87 88.92 -0.80 -0.80 0.64 78 1.4 1.1 23
2D
MB12 100
104.7 4.71 95.03 0 0.0 122.9 105.4 5.38 94.43 -0.67 -0.67 0.60 83 1.2 1.0 10
Mittel (2D) 4.17 93.88 46.3 30.9 86.5 4.54 93.55 -0.29 -0.37 0.33 32.5 1.5 1.5 11.2
Mittel 10.16 89.20 28.3 18.8 99.0 11.31 88.38 -0.79 -1.15 0.82 60.2 1.8 1.7 8.4
174 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
Die Ergebnisse des Tests werden nachfolgend unter drei Aspekten analysiert. Erstens wird
die Leistung der Heuristik BPHL beurteilt. Zweitens wird die Wirksamkeit einzelner
Komponenten der Heuristik eingeschätzt. Drittens wird der Zusammenhang zwischen
gewissen Instanzparametern einerseits und der erreichten Lösungsgüte andererseits
betrachtet.
Ein direkter Vergleich von BPHL mit anderen Bin Packing-Verfahren ist derzeit nicht
möglich, da für die neuen Instanzen noch keine Vergleichswerte vorliegen. Auch ein Test
von BPHL anhand bekannter Benchmarkinstanzen für das 2D-BPP oder 3D-BPP scheidet
aus, weil diese eine strenge Orientierungsrestriktion enthalten, welche BPHL aufgrund des
integrierten CLP-Verfahrens nicht berücksichtigt. Jedoch kann die mit BPHL erreichte
Lösungsgüte indirekt bewertet werden.
Die von BPHL im 3D-Fall erreichte mittlere Auslastung von 84.5% liegt nicht sehr weit
unter den Auslastungswerten, die für das CLP mit einem Container von aktuellen Heuristiken
erreicht werden. So erzielte das Baumsuchverfahren von ELEY (2002) für die ersten sieben
Testfälle von BISCHOFF und RATCLIFF eine mittlere Auslastung von 88.8%. Das
GRASP-Verfahren von MOURA UND OLIVEIRA (2005) erreichte für alle 15 Testfälle von
BISCHOFF und RATCLIFF eine mittlere Auslastung von 86.7%. Im 2D-Fall gilt eine analoge
Aussage.
Für einen weiteren indirekten Vergleich der Lösungsgüte sei die Abweichung (gap)
betrachtet. BPHL erreicht für die 3D-Instanzen eine mittlere Abweichung zu L0 von 16.1%
und für die 2D-Instanzen eine mittlere Abweichung von 4.2%. FAROE et al. (2003)
verwenden zur Auswertung der Ergebnisse ihrer leistungsfähigen Metaheuristik den
Lower Bound L2, der L0 dominiert (vgl. MARTELLO et al, 2000). Für die berechneten 3D-
Instanzen wird eine mittlere Abweichung von 6.8% und für die beiden 2D-Testfälle eine
mittlere Abweichung zu L2 von 7.2% bzw. 5.5% erzielt. Nun besitzen die von FAROE et al.
berechneten Instanzen anders als die hier getesteten Instanzen eine Orientierungsrestriktion.
Dennoch spricht auch dieser Ergebnisvergleich dafür, dass BPHL in der Regel eine
befriedigende Lösungsqualität erreicht. Gute Ergebnisse liegen insbesondere für die 2D-
Testfälle mit L0 ∈ {10, 40} sowie für die 3D-Testfälle mit L0 = 10 vor. Bei den letztgenannten
3D-Testfällen (MB01, MB02) wäre eine mittlere Volumenauslastung von 95.1% über die
zugehörigen 300 Instanzen erforderlich, um den Wert von L0 bei jeder Instanz zu realisieren.
Bei dieser Sachlage ist eine mittlere Abweichung von ca. 8.5% für die beiden Testfälle
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 175
MB01 und MB02 offensichtlich ein guter Wert. Das gilt vor allem, da der Lower Bound L0
im Mittel um weniger als ein Bin verfehlt wird. Auch die erreichten Prozentsätze optimaler
Lösungen (nopt) mit Bezug auf L0 sprechen für eine teils gute bis sehr gute Lösungsqualität.
Auch zur Beurteilung der benötigten Rechenzeiten sei ein Vergleich mit dem Verfahren von
FAROE et al. angestellt. Diese Metaheuristik wurde auf einer Workstation mit einer
Taktfrequenz von 500 MHz getestet. Als Zeitschranke wurden 1000 Sekunden für
3D-Instanzen bzw. 100 Sekunden für 2D-Instanzen verwendet (das Zeitlimit wurde stets
ausgeschöpft). Nun wurde BPHL auf einem schnelleren Prozessor (1.86 GHz) getestet.
Jedoch muss beachtet werden, dass die berechneten Instanzgrößen stark differieren.
FAROE et al. berechneten 3D-Instanzen mit 50 bis maximal 200 Kisten und 2D-Instanzen mit
20 bis 100 Rechtecken. Dagegen werden hier Instanzen mit durchschnittlich mehr als 1500
Packstücken berechnet (vgl. Tab. 34). Die mittlere von BPHL benötigte Rechenzeit von ca.
100 Sekunden ist daher als recht gering einzustufen. Zusammenfassend kann festgestellt
werden, dass BPHL offenbar in der Lage ist, für extrem große zwei- und dreidimensionale
Bin Packing-Instanzen in knapp bemessener Rechenzeit Lösungen mit befriedigender
Qualität zu ermitteln.
Betrachtet sei nun die Wirksamkeit einzelner Verfahrenskomponenten. Das Modul 1BPH zur
Lösung des eindimensionalen BPP zielt auf eine Bineinsparung durch eine Umverteilung der
Schichten ab. In 101 der 1800 Instanzen (5.6% der Instanzen) ist diese Maßnahme
mindestens einmal im Suchverlauf erfolgreich. Der Rechenaufwand ist sehr gering und
beträgt im Mittel 1.8 s. pro Instanz; diese Zeit entspricht einem durchschnittlichen Anteil von
1.8% der mittleren Rechenzeit pro Instanz.
Die Nachoptimierungsprozedur 3BPPO bewirkt eine mittlere Reduzierung der Abweichung
von L0 um 1.15%-Punkte und eine mittlere Steigerung der Volumenauslastung um 0.82%-
Punkte, bezogen auf alle 1800 Instanzen. Für etwa 40% der 1800 Instanzen führt 3BPPO zu
einer Ergebnisverbesserung. Weil für die Heuristik ohne Nachoptimierung (BPHL-) sowie
für die Nachoptimierung (3BPPO) im Test jeweils maximal 60 Sekunden Rechenzeit
verfügbar waren (t1 = 60 s., t2 = 60 s.), werden keine näheren Angaben zum Zeitbedarf von
BPHL- und 3BPPO gemacht. Durch einen Verzicht auf die Nachoptimierung kann bei der
gegebenen Parametrisierung die Rechenzeit um fast die Hälfte gesenkt werden, wobei eine
nur mäßig schlechtere Lösungsqualität die Folge ist (vgl. Tab. 37). Dies unterstreicht
176 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
nochmals die Fähigkeit der Heuristik BPHL, in kurzer Zeit extrem große Instanzen
befriedigend zu lösen.
Abb. 32 verdeutlicht anhand der Instanz MB06_015 den Suchverlauf von BPHL. Bereits
nach wenigen Sekunden ist eine Ausgangslösung mit 133 Bins ermittelt, die sogleich mit
einer Umverteilung der Schichten auf 132 verbessert wird (Modul 1BPH ist erfolgreich). In
den ersten 60 Sekunden der Suche werden dann die Suchparameter (M1, M2) sukzessive
erhöht, und eine Lösung mit 128 Bins wird gefunden. Anschließend werden im Zuge der
Nachoptimierung mittels 3BPPO immer mehr Schichten der bisherigen Bestlösung aufgelöst
und durch Schichten in alternativer Fortschrittsrichtung ersetzt, wodurch eine weitere
Binreduzierung auf schließlich 122 Bins erfolgt.
Suchverlauf von MB06_015
122
124
126
128
130
132
134
0,0 20,0 40,0 60,0 80,0 100,0 120,0
CPU-time (s.)
nbbe
st
Abb. 32. Suchverlauf von BPHL am Beispiel der Testinstanz MB06_015.
Abschließend sei der Frage möglicher Zusammenhänge zwischen den Parametern der
Testinstanzen einerseits und der erreichten Lösungsgüte andererseits nachgegangen.
Für 2D-Instanzen werden im Vergleich zu 3D-Instanzen im Mittel deutlich höhere
Auslastungen und folgerichtig geringere Abweichungen vom Lower Bound L0 erreicht.
Übereinstimmend werden in der Literatur für das 2D-Knapsack-Problem bzw.
2D-Strip Packing-Problem allgemein höhere Volumenauslastungen erreicht als für
entsprechende 3D-Probleme. Gute Verfahren für den 2D-Fall erzeugen Auslastungen von
98% oder mehr, während derart hohe Auslastungen im 3D-Fall selten erreicht werden.
Generell scheint es plausibel, dass das Erreichen einer gewissen Packdichte in einem
Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems 177
Behälter mit steigender Dimensionszahl schwieriger wird, weil die Vermeidung von Lücken
in größerem Umfang die simultane Einhaltung gewisser Maßbeziehungen erfordert.
Ein recht klarer Zusammenhang lässt sich zwischen den Werten des Lower Bound L0
einerseits und den Auslastungen bzw. Abweichungen zu L0 andererseits beobachten. Im
Allgemeinen gilt, dass bei steigendem L0 die erreichten Auslastungen sinken und zugleich
die Abweichungen vom Lower Bound zunehmen; eine Ausnahme bilden lediglich die
2D-Testfälle MB09 und MB10. Auch dieser Trend erscheint plausibel, da bei den
berechneten Testfällen mit steigendem L0 die relative Größe der Packstücke zu den
Containermaßen ansteigt und die Packstücke somit „sperriger“ werden. Die Module 1BPH
(zur Schichtumverteilung) bzw. 3BPPO (zur Nachoptimierung) erweisen sich für die
Instanzen mit höheren Werten für L0 (bei L0 ∈ {40, 100}) bzw. mit relativ großen
Packstücken als besonders erfolgreich.
Schließlich wird für die Testfälle, welche mit Modus 2 erzeugt wurden, generell eine bessere
Lösungsqualität erreicht als für die entsprechenden Testfälle aus Modus 1 (vgl. Tab. 34). Die
mit Modus 2 erzeugten Kistenmengen besitzen eine viel höhere Heterogenität. Da beim
3D-CLP in der Vergangenheit umgekehrt für Testfälle mit Kistenmengen von geringer
Heterogenität besonders hohe Auslastungen erreicht wurden, wirkt der hier festgestellte
Trend zunächst etwas überraschend. Nun kann sich die Heterogenität einer Kistenmenge
zumindest in zweierlei Hinsicht auf die erreichbare Auslastung auswirken. Einerseits
ermöglicht die Existenz einer gewissen Anzahl von Kisten pro Kistentyp die Bildung
zusammenhängender Teilanordnungen (Blöcke) aus Kisten gleichen Typs und räumlicher
Orientierung ohne Innenverluste. Insofern kann sich eine relativ geringe Heterogenität
positiv auf eine hohe Gesamtauslastung auswirken. Andererseits wächst mit zunehmender
Heterogenität der Kistenmenge auch der Reichtum an Kombinationsvarianten für bestimmte
Maße, speziell für die Containerabmessungen, was ebenfalls eine hohe Gesamtauslastung
begünstigen kann. Eine mögliche Interpretation für den beobachteten Trend könnte nun darin
bestehen, dass bei dem hohen mittleren Heterogenitätsgrad der hier eingeführten Instanzen
der zuletzt genannte Einfluss überwiegt. Hinzu kommt, dass bei der großen Mehrzahl der
nach Modus 1 erzeugten Instanzen meist zu wenige Exemplare pro Kistentyp vorhanden
sind, um größere Blöcke bilden zu können; daher erweist sich vermutlich der Vorteil der
nach Modus 2 erzeugten Instanzen bezüglich der Kombinierbarkeit von Maßen als
178 Kapitel 6 : Ein Verfahren zur Lösung des mehrdimensionalen Bin Packing-Problems
ausschlaggebend. Jedoch muss diese Erklärung im Lichte weiterer Testergebnisse für die
eingeführten Instanzen überprüft werden.
6.6 Zusammenfassung der Ergebnisse
In Kapitel 6 wurde eine Heuristik für das mehrdimensionale Bin Packing-Problem (BPP) mit
einem Containertyp und rechteckigen Packstücken vorgestellt. Die Heuristik basiert auf
einem Verfahren für das eindimensionale BPP sowie einem Verfahren für das
3D-Container Loading-Problem (CLP), welches dem schichtbildenden Ansatz folgt. Als
3D-CLP-Verfahren wird hier das Baumsuchverfahren von PISINGER (2002) gewählt. Ihrem
Typ nach ist die BPP-Heuristik ein auf recht einfachen Verfahrensideen basierendes
Verbesserungsverfahren. Um ihre Eignung für sehr große Probleminstanzen nachzuweisen,
wurden 1800 neue Instanzen mit durchschnittlich mehr als 1500 Stücken eingeführt. Neben
der Dimensionalität werden auch die relative Packstückgröße sowie die Heterogenität der
Packstückmenge systematisch variiert. Der Test ergab, dass die Heuristik in der Lage ist, für
die extrem großen Instanzen in kurzen Rechenzeiten von ein bis zwei Minuten Lösungen zu
berechnen, die zumindest in der Regel eine befriedigende Volumenauslastung aufweisen.
Hier wurde erstmals eine Heuristik für das mehrdimensionale BPP anhand von Instanzen der
angegebenen Größenordnung getestet und bewertet. Empirisch untersucht und analysiert
wurde auch die Abhängigkeit der erzielten Lösungsqualität von der mittleren relativen
Packstückgröße und der Heterogenität der Kistenmenge einer Instanz. Die Heuristik beachtet
bisher nur die Guillotineschnitt-Bedingung. Weitere Restriktionen, die etwa die Orientierung
der Packstücke sowie die Stabilität der Beladung betreffen, können durch die Wahl eines
alternativen 3D-CLP-Verfahrens (mit schichtbildendem Ansatz) relativ einfach
berücksichtigt werden. Dies bleibt ein Gegenstand weiterer Forschungstätigkeit.
Kapitel 7 : Zusammenfassung und Ausblick 179
7 Zusammenfassung und Ausblick
In der vorliegenden Arbeit wurden vier Verfahren zur Lösung verschiedener
mehrdimensionaler Cutting and Packing-Probleme sowie ein Verfahren zur Erzeugung
entsprechender Probleminstanzen vorgestellt. Die erzielten Ergebnisse werden hier in zwei
Stufen zusammengefasst. In Abschnitt 7.1 geht es zunächst um die verfahrensbezogene
Auswertung der Ergebnisse, während in Kapitel 7.2 die Ergebnisse im Zusammenhang
betrachtet und ein Ausblick auf mögliche weitere Forschungsaktivitäten gegeben wird.
7.1 Zusammenstellung der Ergebnisse für die einzelnen Verfahren
In Kapitel 2 wurde ein paralleler Tabu Search-Algorithmus (TSA) für das
3D-Containerbeladeproblem mit einem zu beladenden Container und quaderförmigen schwach
heterogenen Packstücken vorgestellt. Der verteilt-parallele Ansatz basiert auf dem Konzept der
multiplen Suchpfade, vgl. TOULOUSE et al. (1996), d.h., es werden mehrere Suchpfade im
Lösungsraum simultan durchlaufen. Die parallele Suche wird von unterschiedlich
konfigurierten Instanzen eines (sequentiellen) TSA durchgeführt. Die Instanzen kooperieren
durch den Austausch von Bestlösungen, wobei ein Lösungsaustausch jeweils am Ende
definierter Suchphasen stattfindet. Die TSA-Instanzen laufen auf einer entsprechenden Anzahl
von Workstations eines LAN. Die Effizienz der parallelen Tabu-Suche wurde anhand eines
umfangreichen Vergleichstests nachgewiesen, der auch Heuristiken anderer Autoren für das
Containerbeladeproblem einbezieht.
In Kapitel 3 wurde ein Simulated Annealing-Algorithmus zur Lösung des
Containerbeladeproblems mit einem einzelnen Container vorgestellt. Ein fairer Vergleich
beider Suchstrategien TS und SA konnte erfolgen, da beide Verfahren auf identischen
problemspezifischen Elementen (Basisheuristik, Nachbarschaftsdefinition) basieren. SA
schnitt im Durchschnitt besser ab als TS, was allerdings nur für die spezifische
Implementierung der Strategien nachgewiesen wurde und keinen Anspruch auf
Verallgemeinerung zulässt. Der SA-Algorithmus wurde zudem zu einem hybriden
metaheuristischen Verfahren ausgebaut, in welchem Tabu-Suche und Simulated Annealing
gleichzeitig verwendet werden. Bei der Parallelisierung kommen verschiedene Kühlschemata
des SA simultan zum Zuge. Die Kommunikation zwischen den parallelen
Verfahrensinstanzen hat sich im vorliegenden Fall als kontraproduktiv erwiesen.
180 Kapitel 7 : Zusammenfassung und Ausblick
Probleminstanzen unterschiedlicher Heterogenität wurden untersucht und die Resultate
verglichen, wobei SA eher für den stark heterogenen, TS eher für den schwach heterogenen
Fall geeignet war.
In Kapitel 4 wurde eine Heuristik zum Erzeugen von zwei- und dreidimensionalen
C&P-Instanzen der Problemtypen CLP, SPP, BPP mit quaderförmigen Packstücken
vorgestellt. Die Aufgabe besteht darin, Instanzen zu erzeugen, deren Optimallösung bekannt
ist und deren Problemgröße und Heterogenität vorgegeben sind. Außerdem sind bestimmte
Anforderungen an die erzeugten Kistentypen (bezüglich Länge, Anzahl, Volumen und Form)
einzuhalten. Die Aufgabe wird gelöst, indem der (oder die) Container schrittweise verlustfrei
in Packräume und anschließend in einzelne Kisten zerlegt werden. Diese Kisten bilden dann
die Kistenmenge zu der erhaltenen Optimallösung. Die verwendete Basisheuristik stellt eine
Verallgemeinerung der Ansätze von HOPPER und TURTON (2002) bzw.
WANG und VALENZUELA (2001) auf 3D-Instanzen dar. Beim Zerschneiden der Packräume
werden bestimmte vorgegebene Schnittmustervorgaben (Non-Guillotine, Guillotine, Layer)
optional beachtet, zudem kommen ausschließlich einfache Anordnungen der Kisten innerhalb
der Packräume zum Einsatz, bei denen ein Packraum nur mit Kisten eines Typs in identischer
räumlicher Orientierung gefüllt wird. Eine anschließende Nachbarschaftssuche soll
sicherstellen, dass komplexere Packpläne bzw. Optimallösungen gefunden werden, wobei
möglichst Kisten eines Typs in unterschiedlichen Anordnungen innerhalb der Optimallösung
verwendet werden. Hierzu werden einzelne Packräume verschmolzen und neu unterteilt, so
dass zwei Nachbarlösungen zwar eine verwandte Packraumstruktur, aber nicht zwingend
identische Kistentypen oder Kistenzahlen verwenden. Das entwickelte Verfahren eignet sich
gleichermaßen zum Erstellen von Instanzen des CLP, SPP und BPP und kann prinzipiell
Probleme beliebiger Größe, Heterogenität und Packdichte im Optimum erzeugen. In der
vorliegenden Arbeit wird es ausschließlich als Generator für SPP-Instanzen eingesetzt.
In Kapitel 5 wurde eine Heuristik für das dreidimensionale Strip Packing-Problem
vorgestellt, welche von einem schichtbildenden Verfahren von PISINGER (2002) abgeleitet
wurde. Zur Adaptation an das 3D-SPP wurden zwei Ansätze erprobt. Während die
Adaptation mit offenem Container quasi von einem beliebig langen Container ausgeht, führt
die Adaptation mit geschlossenem Container die Lösung einer SPP-Instanz auf die
Berechnung mehrerer CLP-Instanzen mit sinkenden Containerlängen zurück. Die
Adaptationsansätze entstammen der Arbeit von BORTFELDT und GEHRING (1999a). Zur
Reduzierung des Verfahrensaufwands werden bei der Adaptation mit geschlossenem
Kapitel 7 : Zusammenfassung und Ausblick 181
Container zur Berechnung der jeweils nächsten CLP-Instanz möglichst viele Schichten hoher
Auslastung von der vorherigen SPP-Bestlösung übernommen und nur wenige Schichten neu
berechnet. Dadurch konnte der Aufwand bei der Berechnung gering gehalten und redundante
Rechenschritte vermieden werden. Prinzipiell kann jedes CLP-Verfahren in einen SPP-
Algorithmus transformiert werden, indem die Lösung des Strip Packing-Problems auf die
Lösung einer Folge von CLP-Instanzen mit sinkenden Containerlängen zurückgeführt wird.
Besonders einfach gestaltet sich dabei die Implementierung, da das CLP-Verfahren
gewissermaßen als „Black box“ behandelt wird, mit dem lediglich eine Interaktion über seine
Input/Output-Schnittstelle erfolgt. Nachgewiesen wurde vor allem die enge Verbindung von
SPP und CLP. Das Verfahren wurde mit Instanzen getestet, die mit dem in Kapitel 4
entwickelten Generator erzeugt wurden.
In Kapitel 6 wurde eine Heuristik für das mehrdimensionale Bin Packing-Problem (BPP) mit
einem Containertyp und rechteckigen Packstücken vorgestellt. Die Heuristik basiert auf
einem Verfahren für das eindimensionale BPP von BORTFELDT (2005) sowie einem
Verfahren für das 3D-Container Loading-Problem von PISINGER (2002), welches bereits in
Kapitel 5 zum Einsatz kam. Ihrem Typ nach ist die Heuristik ein auf recht einfachen
Verfahrensideen basierendes Verbesserungsverfahren. Zu bemerken ist außerdem, dass ein
neuer Lower Bound für das BPP mit (teilweise) orientierungsfreien Kisten verwendet wird,
welcher den wohlbekannten kontinuierlichen Lower Bound dominiert und der aus den
Bounds von MARTELLO, PISINGER UND VIGO (1998) abgeleitet wurde. Der neue Bound ist auf
Kistenmengen zugeschnitten, deren Abmessungen relativ groß im Vergleich zu den
Containermaßen ausfallen. Um die Eignung der Heuristik für sehr große Probleminstanzen
nachzuweisen, wurden 1800 neue Instanzen mit durchschnittlich mehr als 1500 Stücken
eingeführt. Neben der Dimensionalität wurden auch die relative Packstückgröße sowie die
Heterogenität der Packstückmenge systematisch variiert. Hier wird erstmals eine Heuristik
für das mehrdimensionale BPP anhand von Instanzen der angegebenen Größenordnung
getestet und bewertet.
7.2 Zusammenhang der Erkenntnisse und Ausblick
Die im Rahmen dieser Dissertation entwickelten Verfahren stehen in einem inneren
Zusammenhang. Alle Verfahren behandeln Probleme des Cutting and Packing mit zwei- und
dreidimensionalen rechteckigen Items. Die vorgestellten Algorithmen decken das Spektrum
der Basistypen der C&P-Problematik nach WÄSCHER et al. (2007) weitgehend ab (vgl.
182 Kapitel 7 : Zusammenfassung und Ausblick
Abschnitt 1.2.2): zwei Verfahren zur Outputmaximierung werden in den Kapiteln 2 und 3
vorgestellt, während sich Kapitel 6 der Inputminimierung und Kapitel 5 dem Open
Dimension Problem widmet. Die Verfahren werden jeweils mit schwach und stark
heterogenen Problemen getestet, wobei sich die Verfahren aus den Kapiteln 2 und 3 eher für
schwach heterogene, die Verfahren der Kapitel 5 und 6 eher für stark heterogene Probleme
eignen. Die vorliegende Arbeit ist ferner durch ihre Konzentration auf große Problemgrößen
charakterisiert. So werden beim Test der BPP-Heuristik Instanzen mit durchschnittlich ca.
1.500 Kisten und maximal etwa 4.200 Kisten berechnet. Da in der Literatur bisher nur
wenige Probleminstanzen dieser Größe existieren, wurde zusätzlich das Verfahren in
Kapitel 4 entwickelt, welches im Gegensatz zu den restlichen Verfahren kein C&P-Problem
löst, sondern in der Lage ist, Probleminstanzen beliebiger Größe und Charakteristik für alle
Basistypen der Typologie von WÄSCHER et al. (2007) zu erzeugen.
Neben dieser Beschreibung des Umfangs der bearbeiteten Problematik und des
Zusammenhangs der Verfahren sei nachfolgend auf die Gesamtergebnisse eingegangen.
Allgemein gilt für kombinatorische Optimierungsprobleme, dass die empirisch ermittelte
Lösungsqualität als ein Gradmesser für das Verständnis der behandelten Problemwelt
betrachtet werden kann (vgl. BORTFELDT, 2010). Für die vorgestellten Lösungsverfahren
kann hierzu Folgendes festgestellt werden. Für das CLP erreichte das parallele
Hybridverfahren PHYB-XL aus Kapitel 3 bei seiner Publikation im Jahre 2004 bessere
Ergebnisse als alle Vergleichsverfahren und blieb für mehrere Jahre ungeschlagen. Erst das
im Jahre 2008 publizierte Verfahren von PARREÑO et al. erzielte im Mittel eine über 0.6
Prozentpunkte höhere Auslastung für die 700 Testinstanzen von BISCHOFF und
RATCLIFF (1995). Das Strip Packing-Verfahren SPBBL-CC stellte sich als sehr effektives
und effizientes Verfahren zum Lösen von Instanzen mit stark heterogenen Kistenvorräten
heraus und schlug im Bezug auf die Rechenzeit und Volumenauslastung alle vorhandenen
Konkurrenzverfahren. Dies ist einerseits auf das für viele Instanzen bestens geeignete Branch
and Bound-Verfahren von PISINGER (2002) zurückzuführen, andererseits aber auch auf den
spezifischen Adaptationsansatz mit geschlossenen Containern sowie der Tatsache, dass Teile
vorher ermittelter Lösungen möglichst beibehalten und in jedem Iterationsschritt jeweils
möglichst kleine Subprobleme gelöst werden. Beim BPP-Verfahren wurden ebenfalls
Bestwerte erzielt, die sich allerdings wegen unterschiedlicher Ausgestaltung der
Nebenbedingungen nur bedingt mit den Ergebnissen anderer Autoren vergleichen lassen. Für
die hinzugekommenen sehr großen BPP-Instanzen liegen keine Vergleichsergebnisse vor.
Kapitel 7 : Zusammenfassung und Ausblick 183
Insgesamt wurde jedoch gezeigt, dass das entwickelte Verfahren in sehr kurzer Rechenzeit
akzeptable Ergebnisse auch für diese Problemgröße erzielt.
Methodisch lassen sich folgende Schlussfolgerungen ziehen. Bezüglich der Struktur von
C&P-Verfahren können prinzipiell mehrere Stufen unterschieden werden. Auf der untersten
Stufe ist eine Basisheuristik für das Erzeugen von einzelnen Lösungen zuständig. Sie
integriert spezielles problemspezifisches C&P-Wissen. Auf der mittleren Ebene kommen die
allgemeinen Suchstrategien der Metaheuristiken (z.B. Nachbarschaftsverfahren) zum Einsatz,
die an die C&P-Problematik angepasst werden, beispielsweise durch geeignete Definition
von Lösungscodierung und Nachbarschaft. Als übergeordnete Stufe kann die Parallelisierung
und Hybridisierung der Verfahren angesehen werden. Folgende Erkenntnisse wurden für die
einzelnen Stufen gewonnen.
Im Rahmen der Dissertation wurden die ursprünglichen Basisheuristiken von
BORTFELDT und GEHRING (1998) sowie das Verfahren von PISINGER (2002) weiterentwickelt,
indem zusätzliche Nebenbedingungen integriert wurden. Dabei stellte sich heraus, dass dies
keineswegs triviale Aufgaben waren. Die ursprüngliche Logik bei der Implementierung des
Verfahrens musste teilweise abgeändert werden, wodurch größere Änderungen im Quellcode
notwendig wurden. So wird z.B. beim Erzeugen von Streifen im Verfahren von Pisinger
ursprünglich nicht zwischen horizontalen und vertikalen Streifen unterschieden, da eine
Orientierungsrestriktion nicht beachtet wird. Bei dem Hinzufügen dieser Nebenbedingung
muss aber beachtet werden, dass horizontale Streifen nicht einfach als Drehung vertikaler
Streifen verwendet werden dürfen. Beim Verfahren von BORTFELDT und GEHRING (1998)
wurden zum Aufheben der Bedingung der vollständigen Unterstützung der Packstücke neben
den ursprünglichen 6 Zerlegungsvarianten für Packräume weitere 26 Varianten hinzugefügt
und verwaltet.
Schließlich wurde eine neuartige Basisheuristik im entwickelten Problemgenerator integriert.
Das sukzessive „Zersägen“ von Containern unter Berücksichtigung zahlreicher Vorgaben
(Guillotinierbarkeit, Form der ausgeschnittenen Objekte, Heterogenität u.s.w.) wurde in
dieser Konsequenz bisher nicht im 3D-Bereich realisiert. Der Instanzgenerator erzeugt
Instanzen beliebiger Größe und Heterogenität mit bekanntem Optimum und kann damit dazu
beitragen, die Eignung von Lösungsverfahren besser zu beurteilen.
184 Kapitel 7 : Zusammenfassung und Ausblick
Auf der übergeordneten Ebene wurden mehrere Suchstrategien verwendet. Neben Tabu
Search wurde Simulated Annealing als weitere Strategie zum Lösen von CLP eingeführt.
Viel Aufwand wurde betrieben, um unterschiedliche erfolgversprechende Kühlpläne zu
entwerfen. So wurden neben dem Standardmodell von SA mehrere Varianten in Betracht
gezogen, darunter die Kühlpläne „Constant temperature annealing“, „Geometric Reheating“
sowie „Threshold Accepting“. Die Ergebnisse waren eher enttäuschend, so dass
schlussendlich ein einfacher Kühlplan zum Einsatz kam. Generell wurde die Erfahrung
gesammelt, dass die Entwicklung einer besseren (konstruktiven) Basisheuristik im
Allgemeinen einen größeren Einfluss auf die Lösungsgüte zur Folge hat als eine
Modifikation der übergeordneten Suchstrategie oder von deren Elementen. Erstmalig wurde,
nach Wissen des Autors, in dieser Dissertation ein Vergleich konkurrierender Suchstrategien
für das C&P durchgeführt. Diese Faktoranalyse war möglich, da beide Vergleichsverfahren
identisch waren bzgl. der verwendeten Basisheuristik und sich ausschließlich durch die
Metaheuristik unterschieden. Beim Test lag SA leicht vor TS. Verallgemeinern lässt sich
dieses Resultat allerdings nicht. Der wesentlich höhere Konfigurierungsaufwand von SA
spricht außerdem eher gegen den Einsatz dieser Strategie. Wegen des stochastischen
Charakters von SA sind zudem mehrere Testläufe notwendig, um verlässliche Mittelwerte zu
bilden und so einen Vergleich mit den Ergebnissen von Konkurrenzverfahren zu
ermöglichen.
Auf der höchsten Verfahrensebene wurden Hybridisierung und Parallelisierung eingesetzt.
Beim vorgestellten Hybridverfahren für CLP wurden zwei Metaheuristiken verwendet.
Simulated Annealing wird angewendet, um eine möglichst breite Suche nach Lösungen mit
gutem Zielfunktionswert zu erreichen. In der nachgeschalteten zweiten Phase wird die
Nachbarschaft der zwischenzeitlichen Bestlösung mit Tabu Search intensiv abgesucht. TS,
SA und Hybridverfahren für das CLP wurden zudem parallelisiert, wobei simultan mehrere
Suchpfade erkundet werden. Jeder Prozess löst dabei das gesamte Problem. Durch
unterschiedliche Konfigurierung der TS-Prozesse wurde eine gewisse Diversifikation bei der
Suche erreicht. Periodisches Abstimmen der Prozesse durch das Austauschen von Lösungen
hat sich bei TS bewährt, während dies bei den SA-Varianten nicht zum Erfolg führte. Bei der
SA- und Hybridvariante wurden die besten Ergebnisse mit unabhängigen, aber identisch
konfigurierten Prozessen erzielt. Wie erwähnt erreichte PHYB-XL, eine massiv
parallelisierte Variante mit 64 parallelen Prozessen, bei Publikation die besten Resultate für
die 700 Probleme von BISCHOFF UND RATCLIFF (1995) und blieb über Jahre hinweg im Mittel
Kapitel 7 : Zusammenfassung und Ausblick 185
ungeschlagen. Parallelisierung und Hybridisierung haben sich somit als zusätzliches Mittel
der Verfahrensoptimierung bewährt. Die hierbei erzielte Verbesserung fällt allerdings eher
bescheiden aus, so dass es sich anbietet, zunächst alle anderen Ansatzpunkte für eine
Verbesserung auf der untergeordneten Ebene auszureizen, bevor Parallelisierung und
Hybridisierung eingesetzt werden.
Als weitere Erkenntnis der vorliegenden Arbeit kann gewertet werden, dass ein für das CLP
bewährtes Verfahren zur Bearbeitung verwandter Problemstellungen eingesetzt werden kann.
Prinzipiell lässt sich jedes schichtbildende Verfahren für das CLP nach dem beschriebenen
Schema zum SPP-Verfahren und anschließend zu einem BPP-Verfahren aufrüsten. Es
handelt sich daher um ein generisches Transformationsschema und der enge Zusammenhang
der genannten Problemstellungen wurde empirisch verifiziert. Die Behandlung verschiedener
C&P-Problemtypen mit einem weitgehend einheitlichen Algorithmus ist eine Tendenz in der
aktuellen Literatur. Dies wird auch in der Verwendung von CLP-Algorithmen als
Komponente bei Tourenplanproblemen ersichtlich, einem weiteren Trend in der aktuellen
Forschung, vgl. z.B. GENDREAU et al. (2006).
Schließlich wurde in dieser Arbeit erstmals ein Verfahren zum Erzeugen von
3D-Instanzen mit beliebiger Charakteristik (Problemgröße, Heterogenität u.s.w.) und
bekanntem Optimum vorgeschlagen. Weiterhin können Instanzen mit den in Kapitel 1.2.4
eingeführten praxisrelevanten Restriktionen erzeugt werden. Die Erstellung umfangreicher
Testreihen für verschiedene spezifische Fragestellungen bleibt Gegenstand weiterer
Forschung.
Zusammenfassend kann festgestellt werden, dass die vorliegende Dissertation, durch die
Entwicklung leistungsfähiger Lösungsverfahren für drei wichtige C&P-Problemtypen, die
generische Erweiterung eines schichtbildenden CLP-Verfahrens zu einem SPP- und BPP-
Verfahren, sowie den Entwurf eines Problemgenerators, einen Beitrag zur besseren
Beherrschung und zum besseren Verständnis der schwierigen kombinatorischen
Optimierungsprobleme des Cutting and Packing geleistet hat.
Erklärung 187
Literaturverzeichnis
AARTS, E., J. KORST (1989) : Simulated Annealing and Boltzmann Machines: a stochastic approach to combinatorial optimization and neural computing, John Wiley & Sons, Inc., New York, NY
ALBA , E. (2005) : Parallel Metaheuristics - A new class of algorithms, ISBN: 9780471678069
ALTIPARMAK , F., I. KARAOGLAN (2008) : An adaptive tabu-simulated annealing for concave cost transportation problems, Journal of the Operational Research Society, Vol. 59, pp. 331-341
AZENCOTT, R. (1992) : Parallel Simulated Annealing: An Overview of Basic Techniques, in: Azencott, R. (ed.) (1992), Simulated Annealing: Parallelization Techniques, John Wiley & Sons, New York, NY, pp. 37-46
BEASLEY, J.E. (1985) : Algorithms for Unconstrained Two-Dimensional Guillotine Cutting, Journal of the Operational Research Society, Vol. 36 (4), pp. 297-306
BEASLEY, J.E. (1985) : An Exact Two-Dimensional Non-Guillotine Cutting Tree Search Procedure, Operations Research, Vol. 33 (1), pp.49-64
BELOV, G., G. SCHEITHAUER (2003) : A branch-and-cut-and-price algorithm for one- and two-dimensional two-staged cutting (stock) problems, Technische Universität Dresden, März 2003, Ref.: MATH-NM-03-2003
BENGTSSON, B.-E. (1982) : Packing Rectangular Pieces - A Heuristic Approach, The Computer Journal, Vol. 25, pp. 353-357
BERKEY, J.O., P.Y. WANG (1987) : Two dimensional finite bin packing algorithms, Journal of the Operational Research Society, Vol. 38, pp. 423-429
BISCHOFF, E.E. (2004) : Three dimensional packing of items with limited load bearing strength, European Journal of Operational Research, Vol. 168, pp. 952-966
BISCHOFF, E.E., F. JANETZ, M.S.W. RATCLIFF (1995) : Loading pallets with non-identical items, European Journal of Operational Research, Vol. 84 (3), pp. 681-692
BISCHOFF, E.E., M.D. MARIOTT (1990) : A comparative evaluation of heuristics for container loading, European Journal of Operational Research, Vol. 44, pp. 267-276
BISCHOFF, E.E., M.S.W. RATCLIFF (1995) : Issues in the Development of Approaches to Container Loading, Omega, Vol. 23, pp. 377-390
BOROVSKA, P., G. YANCHEV (2009) : The ParMetaOpt Experience: Performance of Parallel Metaheuristics on Scheduling Optimization, Proceedings of the 9th WSEAS International Conference on Applied Informatics and Communications (AIC' 09)
BORTFELDT, A. (2000) : Eine Heuristik für Multiple Containerladeprobleme, OR Spectrum, Vol. 22, pp. 239-261
BORTFELDT, A. (2005) : A hybrid procedure for the one-dimensional bin packing problem, Presentation on the 2nd ESICUP-Meeting, Southampton 2005, cf. http://paginas.fe.up.pt/~esicup/
BORTFELDT, A. (2006) : A genetic algorithm for the two-dimensional strip-packing problem, European Journal of Operational Research, Vol. 172, pp. 814-837
188 Literaturverzeichnis
BORTFELDT, A. (2007) : Verfahren für das eindimensionale Bin Packing Problem (1D-BPP), Vortrag in der Forschungswerkstatt der Fakultät Wirtschaftswissenschaft der FernUniversität in Hagen, März 2007
BORTFELDT, A. (2010) : Metaheuristiken für Cutting- und Packing-Probleme, Habilitationsschrift
BORTFELDT, A., D. MACK (2007) : A Heuristic for the Three-dimensional Strip Packing Problem, European Journal of Operational Research, Vol. 183, pp. 1267-1279
BORTFELDT, A., H. GEHRING (1997) : Ein Tabu Search-Verfahren für Containerbeladeprobleme mit schwach heterogenem Kistenvorrat, Diskussionsbeitrag des Fachbereichs Wirtschaftswissenschaft, FernUniversität Hagen, Germany, Nr. 240
BORTFELDT, A., H. GEHRING (1998) : Ein Tabu Search-Verfahren für Containerbeladeprobleme mit schwach heterogenem Kistenvorrat, OR Spektrum, Vol. 20, pp. 237-250
BORTFELDT, A., H. GEHRING (1999a) : Two metaheuristics for strip packing problems, in: Despotis, D.K.; Zopounidis, C. (eds.), Proceedings of the Fifth International Conference of the Decision Sciences Institute, Athens, Vol. 2, pp. 1153-1156
BORTFELDT, A., H. GEHRING (1999b) : Zur Behandlung von Restriktionen bei der Stauraumoptimierung am Beispiel eines genetischen Algorithmus für das Containerbeladeproblem, Erste Wissenschaftliche Tagung Logistik Management (LM'99). Bremen, 23.–25. Juni 1999
BORTFELDT, A., H. GEHRING (2001) : A Hybrid Genetic Algorithm for the Container Loading Problem, European Journal of Operational Research, Vol. 131, pp. 143-161
BORTFELDT, A., H. GEHRING (2006) : New Large Benchmark Instances for the Two-Dimensional Strip Packing Problem with Rectangular Pieces, 39th Hawaii International International Conference on Systems Science (HICSS-39 2006),
BORTFELDT, A., H. GEHRING, D. MACK (2003) : A Parallel Tabu Search Algorithm for Solving the Container Loading Problem , Parallel Computing, Vol. 29, pp.641-662
BROOKS, R.L., C.A.B. SMITH , A.H. STONE, W.T. TUTTE (1940) : The Dissection of Rectangles into Squares, Duke Math. Journal, Vol. 7, pp.312-340
BRUNETTA, L., P. GRÉGOIRE (2005) : A General Purpose Algorithm for Three-Dimensional Packing, INFORMS Journal on Computing, Vol. 17 (3), pp. 328-338
BURKE, E.K., G. KENDALL, G. WHITWELL (2004) : A New Placement Heuristic for the Orthogonal Stock-Cutting Problem, INFORMS Operations Research, Vol. 52 (4), pp. 655-671
CAPRARA, A., M. MONACI (2004) : On the two-dimensional Knapsack Problem, Operations Research Letters, Vol. 32, pp.5-14
CHRISTOFIDES, N., C. WHITLOCK (1977) : An Algorithm for Two-Dimensional Cutting Problems, Operations Research, Vol. 25 (1), pp. 31-44
CLAUTIAUX , F., J. CHARLIER, A. MOUKRIM (2007) : A new exact method for the orthogonal packing problem, European Journal of Operational Research, Vol. 183 (3), pp. 1196-1211
COFFMAN JR., E.G., P.W. SHOR (1990) : Average-case analysis of cutting and packing in two dimensions, European Journal of Operational Research, Vol. 44, pp. 134-144
Erklärung 189
COFFMAN JR., E.G., J. CSIRIK, D.S. JOHNSON, G.J. WOEGINGER (2004) : An introduction to Bin Packing, Bilbliographie, cf. http://www.inf.u-szeged.hu/~csirik/ed5ut.pdf
CRAINIC, T.G., M. TOULOUSE, M. GENDREAU (1995) : Synchronous Tabu Search Parallelization Strategies for Multicommodity Location-Allocation with Balancing Requirements, OR Spektrum, Vol. 17, pp. 113-123
CRAINIC, T.G., M. TOULOUSE (2003) : Parallel Strategies for Meta-Heuristics, in: Handbook of Metaheuristics, Glover and Kochenberger, pp. 475-513
DAVIES, A.P., E.E. BISCHOFF (1998) : Weight Distribution Considerations in Container Loading, European Business Management School, University of Wales, Swansea, Statistics and OR Group, Arbeitsbericht.
DE CASTRO SILVA , J.L., N.Y. SOMA, N. MACULAN (2003) : A greedy search for the three-dimensional bin packing problem: the packing stability case, International Transactions in Operational Research, Vol. 10, pp. 141-153
DEBUDAJ-GARBYSZ, A., Z. J. CZECH (2007) : Theoretical and Practical Issues of Parallel Simulated Annealing, in: Parallel Processing and Applied Mathematics,7th International Conference, PPAM 2007, Gdansk, Poland, pp.189-198
DELL'AMICO, M., S. MARTELLO, D. VIGO (2002) : A lower bound for the non-oriented two-dimensional bin packing problem, Discrete Applied Mathematics, Vol. 118, pp. 13-24
DERELIA, T., G. S. DASB (2007) : A Hybrid Simulated-Annealing Algorithm for Two-Dimensional Strip Packing Problem, in: Adaptive and Natural Computing Algorithms
DOWSLAND, K. A. (1993a) : Simulated Annealing, in: Reeves, C.R. (ed.) (1993), Modern Heuristic Techniques for Combinatorial Problems, Blackwell Scientific Publications, Oxford, pp. 20-69
DOWSLAND, K. A. (1993b) : Some experiments with simulated annealing techniques for packing problems, European Journal of Operational Research, Vol. 68, pp. 389-399
DYCKHOFF, H. (1990) : A typology of cutting and packing problems, European Journal of Operational Research, Vol. 44, pp. 145-159
DYCKHOFF, H., U. FINKE (1992) : Cutting and Packing in Production and Distribution, Heidelberg, Physica-Verlag
DYCKHOFF, H., G. SCHEITHAUER, J. TERNO (1997) : Cutting and Packing. Annotated bibliographies in combinatorial optimization, Chichester, John Wiley & Sons
EGEBLAD, J., D. PISINGER (2009) : Heuristic approaches for the two- and three-dimensional knapsack packing problem, Computers and Operational Research, Vol. 36, pp. 1026-1049
EL BOURI, A., N. POPPLEWELL, S. BALAKRISHNAN , A. ALFA (1994) : A search based heuristic for the two-dimensional bin-packing problem, INFORMS Journal on Computing, Vol. 32, pp. 265-274
ELEY, M. (2002) : Solving Container Loading Problems by Block Arrangements, European Journal of Operational Research, Vol. 141, pp. 393-409
ELEY, M. (2003) : A bottleneck assignment approach to the multiple container loading problem, OR Spectrum, Vol. 25, pp. 45-60
ENSLOW, H. P. (1978) : What is a "Distributed" Data Processing System?, in: Computer 11, pp. 13-21
190 Literaturverzeichnis
FALKENAUER, E. (1998) : On Method Overfitting, Journal of Heuristics, Vol. 4, pp. 281-286
FANSLAU, T, A. BORTFELDT (2010) : A Tree Search Algorithm for Solving the Container Loading Problem, INFORMS Journal on Computing, Vol. 22 (2), pp. 222-235
FAROE, O., D. PISINGER, M. ZACHARIASEN (2003) : Guided local Search for the Three-Dimensional Bin-Packing Problem, INFORMS Journal on Computing, Vol. 15, pp. 267-283
FEKETE, S. P., J. SCHEPERS, J. C. VAN DER VEEN (2007) : An Exact Algorithm for Higher-Dimensional Orthogonal Packing, Operations Research, Vol. 55 (3), pp. 569-587
FEKETE, S.P., J. SCHEPERS (1997) : On more-dimensional packing III: Exact Algorithms, Mathematisches Institut, Universität zu Köln, Technical Report ZPR97-290
GAREY, M.R., D.S. JOHNSON (1979) : Computers and Intractibility: A guide to the theory of NP-completeness, W.H. Freeman and Company, San Francisco
GEHRING, H., A. BORTFELDT (1997) : A Genetic Algorithm for Solving the Container Loading Problem, International Transactions in Operational Research, Vol. 4, pp. 401-418
GEHRING, H., A. BORTFELDT (2002) : A Parallel Genetic Algorithm for Solving the Container Loading Problem, International Transactions in Operational Research, Vol. 9, pp. 497-511
GENDREAU, M. (2003) : An Introduction to Tabu Search, in: Handbook of Metaheuristics, Glover and Kochenberger, pp. 37-54
GENDREAU, M., M. IORI, G. LAPORTE, S. MARTELLO (2006) : A tabu search algorithm for a routing and container loading problem, Transportation Science, Vol. 40, pp. 342-350
GEORGE, J.A., D.F. ROBINSON (1980) : A heuristic for packing boxes into a container, Computers and Operational Research, Vol. 7, pp. 147-156
GLOVER, F., G.A. KOCHENBERGER (2003) : Handbook of Metaheuristics, Kluwer Academic Publishers, Dordrecht, Nederlands
GOMES, M., J. F. OLIVEIRA (2006) : Solving Irregular Strip Packing problems by hybridising simulated annealing and linear programming, European Journal of Operational Research, Vol. 171, pp. 811-829
GRAFFIGNE, C. (1992) : Parallel Annealing by Periodically Interacting Multiple Searches: An Experimental Study, in: Azencott, R. (ed.) (1992), Simulated Annealing: Parallelization Techniques, John Wiley & Sons, New York, NY, pp. 47-79
HAMMAMI , M., K. GHÉDIRA (2005) : COSATS: A new Cooperation Model between Simulated Annealing and Tabu Search for the K-Graph Partitioning Problem, Advances in Soft Computing, Vol. 29, pp.863-873
HEINRICI, A. (1996) : Leistungsvergleich von Nachbarschaftssuchverfahren, Akademische Abhandlungen zu den Wirtschaftswissenschaften (ISBN: 3-930324-76-8)
HEMMINKI , J. (1994) : Container loading with variable strategies in each layer, Presented at ESI-X, Euro Summer institute, Jouy-En-Josas, France, July 2-15, 1994
HENDERSON, D., S. H. JACOBSON, A. W. JOHNSON (2003) : The Theory and Practice of Simulated Annealing, in: Handbook of Metaheuristics, Glover and Kochenberger, pp. 287-320
Erklärung 191
HIFI, M. (2002) : Approximate Algorithms for the Container Loading Problem , International Transactions in Operational Research, Vol. 9, pp. 747-774
HOPPER, E., B.C.H. TURTON (2000) : An empirical investigation of meta-heuristics and heuristic algorithms for a 2D packing problem, European Journal of Operational Research, Vol. 128, pp. 34-57
HOPPER, E., B.C.H. TURTON (2001) : A review of the application of meta-heuristic algorithms to 2D strip packing problems, Artificial Intelligence Review, Vol. 16, pp. 257-300
HOPPER, E., B.C.H. TURTON (2002) : Problem Generators for Rectangular Packing Problems, Studia Informatica Universalis, Vol. 2 (1), pp. 123-136
IORI, M, S. MARTELLO, M. MONACI (2002) : Metaheuristic algorithms for the strip packing problem, in: Pardalos, P., Korotkich, V. (eds.): Optimization and Industry: New Frontiers. Kluwer Academic Publishers
IVANCIC, N., K. MATHUR, B.B. MOHANTY (1989) : An Integer-Programming Based Heuristic Approach to the Three-Dimensional Packing Problem, Journal Manufacturing and Operations Management, Vol. 2, pp. 268-298
J. AROSTEQUI, S. N. KADIPASAOGLU, B, M. KHUMAWALA (2006) : An empirical comparison of Tabu Search, Simulated Annealing, and Genetic Algorithms for facilities location problems, International Journal of Production Economics, Vol. 103 (2), pp. 742-754
KIRKPATRICK, S., C.D. GELLAT , M.P. VECCHI (1983) : Optimization by Simulated Annealing, Science, Vol. 220, pp. 671-680
KRÖGER, B. (1993) : Parallele genetische Algorithmen zur Lösung eines zweidimensionalen Bin Packing Problems, Dissertation, Fachbereich Mathematik und Informatik, Universität Osnabrück
KRÖGER, B. (1995) : Guillotineable bin packing: A genetic approach, European Journal of Operational Research, Vol. 84, pp. 645-661
LANDA-SILVA , D., E. K. BURKE (2007) : Asynchronous Cooperative Local Search for the Office-Space-Allocation Problem, INFORMS Journal on Computing, Vol. 19 (4), pp. 575-587
LIM A., B. RODRIGUES, Y. WANG (2003) : A multi-faced buildup algorithm for three-dimensional packing problems, Omega, Vol. 31, pp.471-481
LIM , A., B. RODRIGUES, J. ZHANG (2005) : Tabu Search embedded simulated annealing for the shortest route cut and fill problem, Journal of the Operational Research Society, Vol. 56 (3), pp.816-824
LIU, J., Y. YUE, Z. DONG, C. MAPLE, M. KEECH (2011) : A novel hybrid tabu search approach to container loading, Computers & Operations Research, Vol. 38 (4), pp.797-807
LIU, W.Y., C. LIN, C. YU (2010) : On the three-dimensional container packing problem under home delivery service, Asia-Pacific Journal of Operational Research, to appear
LODI, A., S. MARTELLO, D. VIGO (1998) : Neighborhood search algorithm for the guillotine non-oriented two-dimensional bin packing problem, in: S. Voss, S. Martello, I.H. Osman, C. Roucairol (eds.), Meta-Heuristics: Advances and Trends in Local Search Paradigms for Optimisation, Kluwer Academic Publishers, Boston, pp. 125-139
192 Literaturverzeichnis
LODI, A., S. MARTELLO, D. VIGO (1999) : Approximation algorithms for the oriented two-dimensional bin packing problem, European Journal of Operational Research, Vol. 112, pp. 158-166
LODI, A., S. MARTELLO, D. VIGO (1999) : Heuristic and metaheuristic approaches for a class of two-dimensional bin packing problems, INFORMS Journal on Computing, Vol. 11, pp. 345-357
LODI, A., S. MARTELLO, D. VIGO (2002) : Heuristic algorithms for the three-dimensional bin packing problem, European Journal of Operational Research, Vol. 141, pp. 410-420
LODI, A., S. MARTELLO, D. VIGO (2004) : TSpack: A unified tabu search code for multi-dimensional bin packing problems, Annals of Operations Research, Vol. 131, pp. 203-213
LOH, T.H., A.Y.C. NEE (1992) : A packing algorithm for hexahedral boxes, Proceedings of the Conference of Industrial Automation, Singapore, pp.115-126
MACK D., A. BORTFELDT (2010) : A Heuristic for the More-dimensional Bin Packing Problem, Central European Journal of Operational Research, im Druck (akzeptiert am 23.11.2009)
MACK D., A. BORTFELDT, H. GEHRING (2004) : A Parallel Hybrid Local Search Algorithm for the Container Loading Problem, International Transactions in Operational Research, Vol. 11, pp. 511-533
MARTELLO, S., D. PISINGER, D. VIGO (2000) : The three-dimensional bin packing problem, Oper. Res., Vol. 48, pp. 256-267
MARTELLO, S., D. VIGO (1998) : Exact solution of the two-dimensional finite bin packing problem, Management Science, Vol. 44, pp. 388-399
MARTELLO, S., M. MONACI, D. VIGO (2003) : An Exact Approach to the Strip-Packing Problem, INFORMS Journal on Computing, Vo. 15 (3), pp. 310-319
MARTELLO, S., P. TOTH (1990) : Lower bounds and reduction procedures for the bin-packing problem, Discrete Applied Mathematics, Vol. 26, pp. 59-70
METROPOLIS, N., A. ROSENBLUTH, M. ROSENBLUTH, A. TELLER, E. TELLER (1953) : Equation of State Calculations by Fast Computing Machines, Journal of Chemical Physics, Vol. 21, pp. 1087-1092
MONACI, M. (2001) : Algorithms for Packing and Scheduling Problems., Ph.D. Thesis, Università degli studi di Bologna
MORABITO, R., M. ARENALES (1994) : An AND/OR-graph Approach to the Container Loading Problem, International Transactions in Operational Research, Vol. 1, pp. 59-73
MORABITO, R., S. MORALES (1998) : A simple and effective recursive procedure for the manufacturer’s pallet loading problem, Journal of the Operational Research Society, Vol. 49, pp. 819-828
MOURA, A., J.F. OLIVEIRA (2005) : A GRASP Approach to the Container Loading Problem, IEEE Intelligent Systems, Vol. 20, pp. 50-57
MUMFORD-VALENZUELA , C.L., J. VICK, P.Y. WANG (2003) : Heuristics for large strip packing problems with guillotine patterns: An empirical study, in: Metaheuristics: Computer Decision-Making; Kluwer Academic Publishers B.V., pp.501-522
Erklärung 193
NGOI, B.K.A., M.L. TAY , E.S. CHUA (1994) : Applying spatial representation techniques to the container loading problem, International Journal of Production Research, Vol. 32, pp. 111-123
PARREÑO, F., R. ALVAREZ-VALDES, J.F. OLIVEIRA , J.M. TAMARIT (2008) : A maximal-space algorithm for the container loading problem, INFORMS Journal on Computing, Vol. 20, No. 3, pp.412-422
PAUL, G. (2010) : Comparative Performance of Tabu Search and Simulated Annealing Heuristics for the Quadratic Assignment Problem, Computer Science
PISINGER, D. (1998) : A Fast Algorithm for Strongly Correlated Knapsack Problems., Discrete Applied Mathematics , Vol. 89 (1-3), pp. 197-212
PISINGER, D. (2002) : Heuristics for the Container Loading Problem, European Journal of Operational Research, Vol. 141, pp. 143-153
PISINGER, D. (2007) : Denser Packing Obtained in O(n log log n) Time, INFORMS Journal on Computing, Vol. 19 (3), pp. 395-405
PISINGER, D., M. SIGURD (2007) : Using Decomposition Techniques and Constraint Programming for Solving the Two-Dimensional Bin-Packing Problem, INFORMS Journal on Computing, Vol. 19, pp. 36-51
REEVES, C.R. (1993) : Modern Heuristic Techniques for Combinatorial Problems, Halsted Press (publisher)
SCHEITHAUER, G. (1992) : Algorithms for the Container Loading Problem, Operations Research Proceedings, Berlin, Springer-Verlag, pp.445-452
SCHEITHAUER, G., J. TERNO (1996) : The G4-Heuristic for the Pallet Loading Problem, Journal of the Operational Research Society, Vol. 47, pp. 551-522
SCHNECKE, V. (1996) : Hybrid genetic algorithms for solving constrained packing and placement problems, Ph.D. Thesis, Fachbereich Mathematik und Informatik, Universität Osnabrück
SCHOENFIELD, J.E. (2002) : Fast, exact solution of open bin packing problems without linear programming, Draft, US Army Space & Missile Defense Command, Huntsville, Alabama, USA
SINGH KAMBOJ, M., J. SENGUPTA (2009) : Comparative Analysis of Simulated Annealing and Tabu Search Channel Allocation Algorithms, International Journal of Computer Theory and Engineering, Vol.1 (5), pp. 1793-8201
SIXT , M. (1996) : Dreidimensionale Packprobleme. Lösungsverfahren basierend auf den Metaheuristiken Simulated Annealing und Tabu-Suche, Peter Lang, Europäischer Verlag der Wissenschaften, Frankfurt am Main
TERNO, J., G. SCHEITHAUER, U. SOMMERWEISS, J. RIEME (2000) : An efficient approach for the multi-pallet loading problem, European Journal of Operational Research, Vol. 123, pp. 372-381
TOULOUSE, M., T.G. CRAINIC, M. GENDREAU (1996) : Issues in Designing Parallel and Distributed Search Algorithms for Discrete Optimization Problems, Publications CRT-96-36, Centre de recherche sur les transports, Université de Montréal, Canada
WANG, P.Y., C.L. VALENZUELA (2001) : Data set generation for rectangular placement problems, European Journal of Operational Research, Vol. 134, pp. 150-163
194 Literaturverzeichnis
WÄSCHER, G., H. HAUSSNER, H. SCHUMANN (2004) : An Improved Typology of Cutting and Packing Problems, Working Paper, Faculty of Economics and Management, Otto von Guericke University Magdeburg, Germany, WP Nr. 24/2004
WÄSCHER, G., H. HAUSSNER, H. SCHUMANN (2007) : An Improved Typology of Cutting and Packing Problems, European Journal of Operational Research, Vol. 183, pp. 1109-1130
Erklärung 195
Name: Daniel Mack
Geboren: 1. Juni 1968 in Ettelbrück (Luxemburg)
Staatsangehörigkeit: Luxemburger, verheiratet mit Pascale Merens seit 21.11.1989, Vater von vier gemeinsamen Kinder (1991, 1992, 1994, 1997)
Ausbildung:
2003 -2011: Promotion an der FernUniversität in Hagen, Fachbereich Wirtschaftswissenschaft, Lehrstuhl Wirtschaftsinformatik.
Koautor mehrerer wissenschaftlicher Beiträge im Rahmen der Promotion:
2003: “A parallel tabu search algorithm for solving the container loading problem” (Bortfeldt, Gehring, Mack), in: Parallel Computing, Vol. 29 (5);
2004: “A parallel hybrid local search algorithm for the container loading problem” (Mack, Bortfeldt, Gehring), in: International Transactions in Operational Research, Vol. 11 (5);
2007: “A heuristic for the three-dimensional strip packing problem” (Bortfeldt, Mack), in: European Journal of Operational Research, Vol. 183
2010: “A heuristic for solving large bin packing problems in two and three dimensions” (Mack, Bortfeldt), in: Central European Journal of Operations Research, DOI: 10.1007/s10100-010-0184-1
1996-2002: Fernstudium der Betriebswirtschaft an der FernUniversität in Hagen, Abschluss zum Diplom-Kaufmann II.
1987-1991: Studium der Wirtschaftsmathematik an der Universität Kaiserslautern, Grundstudium und Abschluss der Diplomvorprüfung
1980-1987: Gymnasium in Diekirch, Luxemburg. Section B-classique (Mathematik, Latein)
1974-1980: Grundschule in Redingen, Luxemburg
Beruflicher Werdegang:
1991-2011 Angestellter der Banque et Caisse d’Epargne de l’Etat, Luxembourg (BCEE)
1991-2003 : Mitarbeiter der Leasingabteilung
2003-2011 : Risikomanagement, seit 2007: stellvertretender Abteilungsleiter.
Luxemburg, den 12.10.2011
Erklärung 197
Hiermit versichere ich, dass ich die vorliegende Dissertation selbständig und ohne unerlaubte
Hilfe angefertigt habe und andere als die in der Dissertation angegebenen Hilfsmittel nicht
benutzt habe. Insbesondere habe ich nicht die Hilfe einer Promotionsberaterin / eines
Promotionsberaters in Anspruch genommen. Alle Stellen, die wörtlich oder sinngemäß aus
veröffentlichten oder nicht veröffentlichten Schriften entnommen sind, habe ich als solche
kenntlich gemacht.
Luxemburg, den 12.10.2011
Daniel Mack