200 likes | 319 Views
Ein Baumsucheverfahren zur Lösung des 2-dimensionalen Strip-Packing Problems. T. Fanslau und A. Bortfeldt FernUniversität Hagen. Inhalt: Einleitung Verfahrensansatz Greedy-Algorithmus für das 2D-KP Baumsucheverfahren für das 2D-KP Testergebnisse Zusammenfassung. 1 Einleitung .
E N D
Ein Baumsucheverfahren zur Lösung des 2-dimensionalen Strip-Packing Problems T. Fanslau und A. Bortfeldt FernUniversität Hagen Inhalt: • Einleitung • Verfahrensansatz • Greedy-Algorithmus für das 2D-KP • Baumsucheverfahren für das 2D-KP • Testergebnisse • Zusammenfassung
1 Einleitung 2D-Strip-Packing Problem (2D-SPP) Gegeben: - ein Streifen fester Breite wC - eine Menge R von Rechtecken (Teile, Stücke) Bestimme: zulässige Anordnung aller Rechtecke in dem Streifen, so dass die benutzte Länge lCused minimal ist. Zulässigkeitsbedingungen: • Keine 2 Rechtecke überlappen • Jedes Rechteck liegt vollständig innerhalb des Streifens • Jedes Rechteck ist parallel zu den Streifenseiten angeordnet.
Typische Restriktionen: (C1) Orientierungs-Restriktion: feste Orientierung aller Rechtecke; 90°-Drehung nicht erlaubt.(C2) Guillotineschnitt-Restriktion: alle in einem (Teil-) Stauplan platzierten Stücke sind durch eine Folge von Guillotine-Schnitten reproduzierbar (d.h. Kante-zu-Kante-Schnitte parallel zu den Streifen-Seiten).
Untertypen des 2D-Strip-Packing Problems: Untertyp (C1) gefordert: (C2) gefordert: feste Orientierung? Guillotine-Schnitte?OG ja jaRG nein jaOFjaneinRF nein nein Eingrenzung: nur Untertyp OF wird hier behandelt Aktuelle Verfahren für 2D-SPP, Untertyp OF: Beachte: 2D-SPP – NP-schwer, grosse Instanzen können nur mit heurist. Verfahren berechnet werden Alvarez-Valdes et al. (2006) – GRASP-VerfahrenBelov et al. (2007) – Sequential Value Correction (SVC)-Verfahren
2 Verfahrensansatz Lösung des 2D-SPP wird auf Lösung einer Kette von Instanzen des 2D-Knapsack Problems (2D-KP) zurückgeführt 2D-KP:Gegeben: Container-Rechteck mit Breite wC, Länge lC; Menge R kleinerer RechteckeBestimme: Anordnung einer Teilmenge der Rechtecke, so dass die verstaute Fläche maximal wirdZulässigkeitsbedingungen/Restriktionen: wie 2D-SPP, Untertyp OF Verfahren umfasst 2 Phasen:(1) Ermittlung einer guten Startlösung(2) Verbesserung der StartlösungPro Phase werden in der Regel mehrere Instanzen des 2D-KP mit immer kleineren Containerlängen (lC) berechnet.
Phase 1: Ermittlung einer Startlösung Ziel: mit geringem Aufwand gute Startlösung (für Baumsuche) mit bereits kleiner Länge (lCused) erzeugen Vorgehen:- mit einem Greedy-Algorithmus für das 2D-KP (!) werden mehrere 2D-KP-Instanzen (unabhängig) berechnet- anfangs wird lC so gross gewählt, dass garantiert eine SPP- Lösung ermittelt wird, die alle Rechtecke enthält- dann werden weitere lC-Werte mittels Intervallschachtelung bestimmt und zugehörige 2D-KP-Instanzen berechnet- Regel: wurde für letzten lC-Wert SPP-Lösung erzielt,so wird lC reduziert; andernfalls wird lC erhöht.
Phase 1: Ermittlung einer Startlösung lC := hinreichend grosser Startwerterzeuge mittels Greedy-Verfahren Lösung s für 2D-KP (wC, lC, R)initialisiere Bestlösung sbest := slCoben := benutzte Länge lCused(s)lCunten := int ((gesamte zu verstauende Fläche-1)/wC)while (lCoben – lCunten > 1) do neue Containerlänge lC := int( (lCoben+lCunten)/2 ) erzeuge mittels Greedy-Verfahren Lösung s für 2D-KP (wC, lC, R) if (s ist SPP-Lösung, d.h. alle Teile verstaut) then lCoben := benutzte Länge lCused(s); sbest := s else lCunten := lC endif endwhile Beachte:Für lCoben wurden bereits alle Teile erfolgreich verstaut. Für lCunten noch nicht.
Phase 2: Verbesserung der Startlösung Ziel: Lösung mit fast-optimaler Länge (lCused) in vorgegebenem Zeitlimit erzeugen Vorgehen:- mit einem Baumsuche-Verfahren für das 2D-KP (!) werden mehrere 2D-KP-Instanzen (unabhängig) berechnet- wurde für einen lC-Wert eine SPP-Lösung ermittelt, so wird lC um eine Längeneinheit reduziert und möglichst die nächstbeste SPP-Lösung berechnet- andernfalls wird die Baumsuche mit höherem Aufwand für denselben lC-Wert wiederholt, um doch noch eine SPP-Lösung für dieses lC zu erhalten- Abbruch der Berechnung . wenn Zeitlimit überschritten wurde oder . wenn optimale Länge erreicht wurde (Nachweis mit material lower bound).
Phase 2: Verbesserung der Startlösung wähle Suchaufwand-Parameter se := 2 // anfangs geringer Aufwand! setze lC := lCunten // letzter Wert aus Phase 1 while (Time-Limit nicht überschritten ) and (lC * lW >= gesamte zu verstauende Fläche ) doerzeuge mittels Baumsuche Lösung s für 2D-KP (wC, lC, R)if (s ist SPP-Lösung, d.h. alle Teile verstaut) then lC := lCused(s) – 1; sbest := s // reduziere Länge oder …else se := se * 2 endif // verdopple Suchaufwand endwhilereturn sbest
3 Greedy-Algorithmus für das 2D-KP Containerbreite wC Vorne (0,0) Links Containerlänge lC Erstellung eines Stauplans:- der Container wird schrittweise mit je einem weiteren Rechteck gefüllt, bis kein weiteres mehr zulässig eingefügt werden kann oder alle platziert sind- ein platziertes Rechteck darf nicht nach links bzw. vorne verschiebbar sein- der Container wird von der Ecke Vorne/Links aus „diagonal“ gefüllt.
Entscheidungen pro Rechteck-Platzierung(1) Ort des nächsten Rechtecks- die Ecke Vorne/Links (V/L) des ersten Rechtecks muss in der V/L-Ecke (0,0) des Containers liegen, weil das Rechteck sonst verschiebbar wäre- für folgende Rechtecke existieren mehrere mögliche Punkte (genannt Kandidaten-Ecken) für die V/L-Ecke(2) Auswahl des nächsten Rechtecks- meist können in der ausgewählten Kandidaten-Ecke mehrere unverbrauchte Rechtecke zulässig platziert werdenBeachte:- mit Regeln für die Entscheidungen (1) und (2) ist der Greedy-Algorithmus komplett spezifiziert- Orientierung aller Rechtecke steht von vornherein fest – Untertyp OF
(1) Ort des nächsten Rechtecks Containerbreite wC VorneLinks (0,0) Containerlänge lC - Beispiel: nach Platzierung des ersten Rechtecks ergeben sich 2 Kandidaten-Ecken für das zweite Rechteck - allgemeine Regel: unter allen Kandidaten-Ecken, welche die unverschiebliche Platzierung eines Rechtecks garantieren, wird diejenige Ecke ausgewählt, deren Abstand von (0,0) minimal ist- Abstand eines Punkts P von (0,0): dist(P) := l(P) + w(P) („Diagonale Schicht“)
(2) Auswahl des nächsten Rechtecks Containerbreite wC Pc (0,0) Containerlänge lC - Zuerst wird Kandidaten-Ecke Pc für nächstes Rechteck bestimmt- dann werden alle mögl. Platzierungen in Pc bewertet- das Rechteck mit bester Bewertung wird endgültig in Pc platziert- Idee der Bewertung: Grundsätzlich werden flächengrosse Rechtecke bevorzugt;ist aber ein Rechteck vorhanden, das genau bis zur Ecke einer an Pc angrenzenden Seite reicht, so wird dessen Platzierung vorgezogen;Motiv: möglichst grosse Blöcke bilden!
(2) Auswahl des nächsten Rechtecks Containerbreite wC Pc (0,0) Containerlänge lC Sortierung von Reckteck-Platzierungen nach Bewertungsgüte:- Platz 1: Rechteck, für das beide Maße mit den Maßen in Pc beginnender (paralleler) Seiten übereinstimmen - Folgende Plätze: Rechtecke, für die ein Maß mit dem Maß einer in Pc beginnenden Seite übereinstimmt; Zusatzkrit.: Flächengröße - Letzte Plätze: Rechtecke, für die kein Maß mit dem Maß einer in Pc beginnenden Seite übereinstimmt; Zusatzkrit.: Flächengröße.
4 Baumsuche-Verfahren für das 2D-KP Prinzip: - Bei der Lösung einer 2D-KP-Instanz wird zur Ermittlung der (n+1)-ten Rechteckplatzierung je eine gesonderte Baumsuche durchgeführt. Dabei bleiben die ersten n Platzierungen unverändert. - Die Kandidaten-Ecke für jede Platzierung wird wie im Greedy-Verfahren bestimmt. - Bei der Auswahl der Rechtecke wird die Bewertung des Greedy-Verfahrens angewendet.
Ansatz für Baumsuche zur Ermittlung der (n+1)-ten Platzierung: - Es werden mehrere vollständige Lösungen provisorisch erzeugt, die alle den bisher ermittelten Teilstauplan mit n Platzierungen fortsetzen. Die (n+1)-te Platzierung der besten vollständigen Lösung wird als endgültige (n+1)-te Platzierung übernommen. • Es wird eine zusätzliche Suchtiefe sd festgelegt- Für die Platzierungen n+1, n+2, …, n+sd werden jeweils mehrere Platzierungs-Varianten getestet. - Für die Platzierungen n+sd+1, … wird jeweils nur die bewertungsbeste Rechteck-Platzierung verwendet (Greedy).- Die Suchtiefe sd wächst mit dem Suchaufwand se und damit auch die Erfolgsaussicht der Suche.
Ansatz für Baumsuche zur Ermittlung der (n+1)-ten Platzierung: • Vollständige provisorische Lösungen werden mittels verschiedener Erweiterungsstrategien (ES) erzeugt.- jede ES berechnet ihre eigene Bestlösung; die Bestlösung über alle ES definiert endgültig die (n+1)-te Platzierung.- jede Erweiterungsstrategie ergibt sich durch Kombination von Elementarsuchen, wobei deren Kombination durch eine zahlentheoret. Partition der Suchtiefe sd definiert wird. - Beispiel: sd = 3Partitionen von 3: 3 = 2+1 = 1+2 = 1+1+1Hier: 2+1, d.h.:- 2 Summanden: ES wird aus 2 Elementarsuchen kombiniert- erster Summand 2: Elementarsuche über 2 Tiefenniveaus- zweiter Summand 1: Elementarsuche über 1 Tiefenniveau.
Erweiterungsstrategie 2+1 Teilstauplan bis Platzierung n 0 • Elementarsuche 1: Baum mit 2 Niveaus und je 2 Nachfolgern erzeugt • Elementarsuche 2: Baum mit 1 Niveau und 8 Nachfolgern erzeugt. • Verkettung: Beste vollständige Lösung aus Suche 1 ergibt Input für Suche 2 • Beste Lösung aus nachfolgender Suche 2 ergibt Bestlösung der Erweiterungsstrategie Elementarsuche 1, Platz n+1 1 zusätzliche Suchtiefen Elementarsuche 1, Platz n+2 2 ... Elementarsuche 2, Platz n+3 3 Vollständige Lösung (Greedy) Unvollständige Lösung
Testergebnisse Berechnete Instanzen: C1-C7, Hopper und Turton (2000), N1-N7, T1-T7, Hopper (2000) alle Instanzen lassen eine verlustfreie Anordnung aller Teile zu Abstand der gefundenen Streifenlänge zur optimalen Streifenlänge in %: *) AMD Duron 1800MHz, GNU C++, Windows 2000, Parameter (50s, breite=5, maxtief=9)
6 Zusammenfassung • Baumsucheverfahren für 2D-SPP, Untertyp OF vorgestellt- Charakteristische Merkmale: - Problemspezifische Heuristik, die darauf abzielt grosse Blöcke mit langen Kanten zu bilden - Effektive sparsame Baumsuche mit Balance zwischen Breite der Suche und Tiefe, d.h. Grad der Vorausschau- Test an Hopper/Turton-Instanzen: Ergebnisse von Konkurrenzverfahren deutlich verbessert- Ausblick: Verallgemeinerung der problemspezifischen Heuristik für nicht verlustfreie Instanzen.