Packen · Verständlich erklärt

Stützfläche und Schwerpunkt verständlich erklärt

Wer Umzugskisten in einen Container lädt, darf keine Kiste schweben lassen, und die schweren sollen nicht alle auf einer Seite stehen. Das Aufliegen kostet Platz und ändert, welche Kisten man zuerst einlädt. Das Gewicht in der Mitte lässt sich verbessern, aber nicht verbindlich zusagen. Die Seite zeigt, wie viel das Aufliegen kostet und wo beim Gewicht die Grenze liegt.

Zuletzt aktualisiert:

Teil 1 · Für Einsteiger

Ein Wort unbekannt? Das Begriffsverzeichnis erklärt es in wenigen Sätzen.

Das Bild: Kisten im Container

Sie laden Umzugskisten in Container, so wenige wie möglich. Dabei gelten zwei Anforderungen. Erstens darf keine Kiste schweben: Jede steht auf dem Boden oder auf anderen Kisten. Den Teil ihrer Unterseite, der aufliegt, nennen Fachleute die Stützfläche. Eine Kiste, die nur mit einer Ecke auf einer anderen liegt, kippt in der Kurve. Verlangt wird deshalb, dass mindestens ein bestimmter Anteil der Unterseite aufliegt: eine Mindest-Stützfläche.

Ein Rechenbeispiel: Die Unterseite einer Kiste misst 10 mal 10 Kästchen (Kästchen = Längeneinheit), das sind 100 Kästchen. Sitzt sie 2 Kästchen seitlich versetzt auf einer gleich großen Kiste, liegen 80 von 100 Kästchen auf, also 80 %. Bei einer Mindest-Stützfläche von 80 % ist das gerade noch erlaubt, bei 100 % nicht.

Zweitens darf das Gewicht nicht einseitig liegen. Stehen alle schweren Kisten links, neigt sich der Stapel dorthin. Den Punkt, an dem sich alle Kisten zusammen im Gleichgewicht halten ließen, nennen Fachleute den Schwerpunkt. Er soll in einem kleinen Quadrat um die Mitte des Containerbodens liegen, dem Fenster.

Gesucht ist: Wie viele Container mehr als ohne diese Anforderungen braucht man? Zu dieser Seite gehört ein Programm zum Ausprobieren im Browser, die Demo. Sie rechnet mit erfundenen Ladungen, das sind Mengen von Kisten mit Gewichten. Die Ladungen sind zufällig erzeugt, aber mit festen Startzahlen, also bei jedem Lauf dieselben. Ein Container hat in der Demo einen Boden von 100 mal 100 Kästchen, das Fenster misst 10 mal 10.

Wie eingeladen wird, legt ein Packverfahren fest: Man sortiert die Kisten, die größten zuerst, nimmt sie der Reihe nach und setzt jede in den ersten Container, in dem ein erlaubter Platz sie aufnimmt. „Größte“ lässt sich nach Rauminhalt oder nach der Größe der Unterseite messen. Ein Platz ist erlaubt, wenn nichts überlappt und die Mindest-Stützfläche erreicht wird.

Warum kostet die Stützfläche Platz?

Ohne Mindest-Stützfläche darf eine breite Kiste mit einem Teil ihrer Unterseite auf einer niedrigen Kiste liegen und mit dem Rest über deren Kante ragen. Mit der Mindest-Stützfläche ist dieser Platz verboten, die Kiste muss woanders hin, und der Platz bleibt ungenutzt. Ungenutzter Platz summiert sich, bis ein weiterer Container nötig wird.

Die Demo rechnet vier Einstellungen durch: gar keine Mindest-Stützfläche, 50, 80 oder 100 %. Im Durchschnitt über 12 Kombinationen aus vier Kistenformen und drei Kistenzahlen (20, 40 oder 80 Kisten) braucht eine Ladung bei 100 % knapp drei Container mehr als ohne, wenn nach Rauminhalt sortiert wird, und gut einen mehr, wenn nach der Unterseite sortiert wird. Bei 80 % sind es gut einen beziehungsweise weniger als einen.

Am meisten kosten flache Kisten, also breite, tiefe, aber niedrige Kisten mit großer Unterseite: bei 80 Kisten und 100 % gut zehn Container mehr, nach Rauminhalt sortiert.

Und der Schwerpunkt?

Die Kisten haben in der Demo Gewichte, die mit der Ladung zufällig erzeugt werden. Die weiche Regel setzt die nächste Kiste auf den erlaubten Platz, an dem der Schwerpunkt der Mitte am nächsten kommt. Das Verschieben schiebt in einem fertig gepackten Container alle Kisten gemeinsam so nahe an die Mitte, wie die Wände es erlauben. Es kostet keinen Container, weil sich nur die Lage im Container ändert, nicht die Zahl der Kisten, die hineinpassen. Es braucht aber Spielraum: Füllen die Kisten die ganze Breite oder liegen sie schon an der Wand, bleibt wenig oder nichts zu verschieben.

Die harte Regel greift ab einer Füllschwelle, einem Füllstand des Containers, der in der Demo bei 50 % oder 75 % seines Raums liegt. Ist der Container voller, verbietet sie jeden Platz, nach dem der Schwerpunkt außerhalb des Fensters läge. Bei der niedrigen Schwelle kostete sie bis zu knapp zwei Container mehr als die weiche Regel, schützte aber höchstens 46 % der Container; bei 75 % kostete sie kaum etwas und schützte höchstens 20 %.

Wie gut die Ansätze wirken, zeigt der Anteil der Container, deren Schwerpunkt im Fenster liegt. Bei 80 % Mindest-Stützfläche waren es mit der weichen Regel je nach Kistenform und Kistenzahl bis zu 95 %, mit dem Verschieben dazu 44 bis 100 %. Eine Garantie ergibt sich daraus nicht.

Möglich wäre mehr: Ein zweites Programm, das nur zum Nachprüfen dient, suchte bei kleinen Ladungen die beste Packung exakt, ohne feste Platzierungsregel und ohne Mindest-Stützfläche. In jedem Fall, in dem es die beste Packung fand, kostete das Fenster keinen zusätzlichen Container.

Was hilft?

Das Packverfahren beginnt mit der Sortierung. Die Demo vergleicht dafür vier Maße: Rauminhalt, Unterseite, Höhe und die Reihenfolge der Lieferung, beim Schwerpunkt zusätzlich das Gewicht („schwere zuerst“). Gezählt wird der Durchschnitt über die Ladungen einer Kombination. Die vier Kistenformen sind mittlere, kleine, flache und „breite“ Kisten; bei den „breiten“ sind die Kantenlängen besonders verschieden.

Ohne Mindest-Stützfläche hat der Rauminhalt in 10 der 12 Kombinationen die wenigsten Container, in zwei Kombinationen mit kleinen Kisten liegt er gleichauf mit anderen Maßen. Mit 80 % oder 100 % hat die Unterseite in allen 12 den niedrigsten Durchschnitt; bei mittleren Kisten und 80 % ist der Vorsprung gering. Bei 50 % gewinnt mal das eine, mal das andere Maß.

In diesen erfundenen Ladungen lohnt es sich also, bei 80 % oder mehr nach der Unterseite zu sortieren. Warum, sagt die Rechnung nicht; eine Vermutung ist, dass Kisten mit großer Unterseite zuerst einen tragfähigen Unterbau legen.

Häufige Missverständnisse

  • „Was nicht schwebt, steht sicher.“ Nein: Die Stützfläche ist eine Zahl in der Rechnung. Reibung, Tragkraft der unteren Kisten und Drehen der Kisten kommen in der Demo nicht vor.
  • „Schwere Kisten zuerst, dann liegt das Gewicht in der Mitte.“ Nein: Mit 80 % und der weichen Regel brauchte „schwere zuerst“ in allen 12 Kombinationen mehr Container als die Sortierung nach der Unterseite mit derselben Regel. Der Anteil der Container mit Schwerpunkt im Fenster war nirgends um mehr als einen Prozentpunkt höher (Unterschied zweier Prozentwerte).

Woran Sie das im Betrieb erkennen

  • Zwischen den Kisten bleiben Plätze frei, die niemand nutzen darf, weil die Kiste dort halb im Leeren stünde. Verlangen Sie eine Mindest-Stützfläche, kann ein Plan, der vorher aufging, einen Container mehr brauchen; die Zahlen stehen oben.
  • Gegenprobe: Planen Sie dieselben Kisten mit und ohne Mindest-Stützfläche; der Unterschied in Containern ist ihr Preis.

Wie ernst sind die Rechnungen zu nehmen?

Die Kisten und ihre Gewichte sind erfunden, Praxisdaten gibt es nicht. Kisten werden nicht gedreht. Tragkraft der unteren Kisten und Gewichtsgrenzen je Container fehlen, und es gibt nur das eine beschriebene Packverfahren. Der Rat, nach der Unterseite zu sortieren, gilt darum nur für Ladungen, die den erfundenen ähneln.

Was Sie mitnehmen

  • Eine Mindest-Stützfläche kostet Container und kann ändern, nach welchem Maß man am besten sortiert.
  • Das Gewicht in der Mitte kann man verbessern, aber nicht verbindlich zusagen.

Hinweis: Alle Demos rechnen mit synthetischen oder frei verfügbaren Beispieldaten und laufen auf einem externen Anbieter (Datenschutz). Bitte geben Sie darin keine vertraulichen oder personenbezogenen Daten ein. Die Ergebnisse gelten für die jeweilige Demo-Instanz und lassen sich nicht ungeprüft auf reale Fälle übertragen; für darauf gestützte Entscheidungen übernehme ich keine Gewähr.

Teil 2 · Für Fachleute

Modell und Annahmen

Gegeben sind \(n\) Quader mit ganzzahliger Breite \(w_i\), Tiefe \(d_i\) und Höhe \(h_i\) sowie einer Masse \(m_i\), ohne Drehung, und Behälter der Größe \(C \times C \times C\) mit \(C\) = 100. Alle Quader sind vor dem Packen bekannt. Gesucht ist eine überlappungsfreie Platzierung in möglichst wenigen Behältern, bei der jeder Quader auf mindestens dem Anteil \(s\) seiner Grundfläche aufliegt und der Schwerpunkt jedes Behälters möglichst nahe der Mitte liegt. Das Modell ist eigen; die Dokumentation der Demo (ihre README im Quelltext-Repository, siehe Quellen) übernimmt keine Zahl und keine Aussage der Literatur.

  • Koordinaten: \(x\) ist die Breite, \(y\) die Tiefe, \(z\) die Höhe. Der Ursprung liegt in der linken hinteren unteren Ecke des Behälters; \(x\) wächst nach rechts, \(y\) nach vorn, \(z\) nach oben. \((x_i, y_i, z_i)\) ist die Lage der linken hinteren unteren Ecke von Quader \(i\). Die Masse hat keine Einheit (Volumen durch 1000 mal Dichte).
  • Dekodierer: So heißt hier das Verfahren, das aus einer Reihenfolge der Quader eine Packung baut: Extreme Points mit Projektionen, wie in der Extreme-Points-Demo derselben Linie (eigene Lesart). Ein Eckpunkt ist eine Stelle im Behälter, an der die linke hintere untere Ecke des nächsten Quaders liegen kann; er entsteht an einem gesetzten Quader in Richtung wachsender \(x\), \(y\) und \(z\) (die Punkte \((x+w, y, z)\), \((x, y+d, z)\) und \((x, y, z+h)\) an seiner Ecke) und aus deren Projektionen auf die nächste Fläche in Richtung kleinerer Werte. Die Quader werden nach einem Schlüssel absteigend sortiert (Volumen, Grundfläche oder Höhe; bei „Lieferung“ bleibt die Lieferreihenfolge, es wird nicht sortiert; Gleichstände bleiben in Lieferreihenfolge). Für den Schwerpunktvergleich kommt als fünfter Schlüssel die Masse hinzu („schwere zuerst“, absteigend nach Masse). Jeder Quader kommt in den ersten Behälter, in dem ein zulässiger Eckpunkt ihn aufnimmt; gibt es in keinem geöffneten Behälter einen, wird ein neuer geöffnet. Ohne Schwerpunktregel gilt der zulässige Eckpunkt mit kleinstem \((z, y, x)\), verglichen in dieser Reihenfolge: zuerst das kleinste \(z\) (tiefste Lage), dann das kleinste \(y\) (hinterster Punkt), dann das kleinste \(x\) (linkester Punkt).
  • Mindest-Stützfläche \(s\): 0, 50, 80 oder 100 %. Ein Eckpunkt ist nur zulässig, wenn der Quader dort auf mindestens dem Anteil \(s\) seiner Grundfläche aufliegt, auf dem Boden oder auf Oberseiten anderer Quader desselben Behälters. Bei \(s\) über 0 % ist Schweben verboten.
  • Masse: Volumen durch 1000 mal eine gleichverteilt zufällige Dichte von 0,5 bis 2,0. Die Massen sind zufällig erzeugt (mit festen Startzahlen), keine Praxisdaten.
  • Schwerpunkt und Fenster: Der Schwerpunkt eines Behälters ist der mit der Masse gewichtete Mittelwert der Mittelpunkte seiner Quader in \(x\) und \(y\). Das Fenster ist die halbe Breite \(f\) um die Mitte der Grundfläche, \(f\) = 5 oder 10. Rechnung dieser Seite: Das Fenster ±5 ist ein Quadrat der Seitenlänge 10 auf einer Grundfläche der Seitenlänge 100, also 1 % der Fläche; das Fenster ±10 hat die Seitenlänge 20, also 4 %.
  • Schwerpunktregeln: „nah“ wählt unter den zulässigen Eckpunkten den, bei dem der Schwerpunkt der Mitte am nächsten liegt. Das Verschieben schiebt je Behälter alle Quader gemeinsam um dieselbe ganze Zahl in \(x\) (\(\Delta_x\)) und dieselbe ganze Zahl in \(y\) (\(\Delta_y\)), so nahe an die Mitte, wie die Hüllbox der Ladung erlaubt (das kleinste Rechteck der Grundebene, das alle Quader des Behälters enthält); Lage zueinander und Stützflächen bleiben. Die harte Regel ab einer Füllschwelle wirkt wie „nah“, macht aber einen Eckpunkt unzulässig, wenn der Behälter danach mehr als die Schwelle seines Volumens füllt und der Schwerpunkt außerhalb des Fensters läge.
  • Schranken: das Volumen aller Quader durch das Behältervolumen, aufgerundet, und die Zahl der Quader, die in allen drei Maßen über die Hälfte reichen; das Größere von beiden. Sie gelten ohne Stützbedingung und sind mit ihr nur eine untere Grenze. Rechnung dieser Seite: Die zweite Schranke ist bei klein (Kanten höchstens 40) und flach (Höhe höchstens 30) immer 0, weil nie ein Quader in allen drei Maßen über 50 reicht; dort zählt nur die Volumenschranke.
  • Vier Verteilungen: mittel (alle Kanten 20 bis 60), breit (5 bis 70), klein (10 bis 40), flach (Breite und Tiefe 30 bis 80, Höhe 5 bis 30).
  • Messraster: vier Verteilungen mal drei Quaderzahlen (20, 40, 80) mal 100 feste Instanzen je Zelle (eine Zelle ist eine Kombination aus Verteilung und Quaderzahl, es gibt 12), vier Schlüssel, vier Werte der Mindest-Stützfläche, dazu sieben Schwerpunkt-Varianten (Mindest-Stützfläche 80 %, Schlüssel Grundfläche, außer bei „schwere zuerst“): keine Regel und „nah“, beide ohne und mit Verschieben, „nah“ mit dem Schlüssel Masse sowie die harte Regel ab 50 % und ab 75 % (beide ohne Verschieben). Gezählt wird der Anteil der Behälter im Fenster ±5 und ±10. Die Tabellenwerte sind Mittel über die Instanzen einer Zelle von (Behälter minus Schranke); die Schranke ist mit Stützbedingung vermutlich locker, ohne Bedingung bei kleinen Quadern fast scharf (klein, n = 80: 0,03 über der Schranke mit dem Volumen, 0,07 mit der Grundfläche); ein Optimum mit Stützbedingung gibt es nicht. Die Anteile im Fenster zählen Behälter, nicht Instanzen.
  • Orakel: So heißt hier ein exakter Löser (CP-SAT), der die Packung mit der kleinsten Behälterzahl sucht; eine Instanz heißt entschieden, wenn er das Optimum sowohl ohne als auch mit Fenster innerhalb des Zeitlimits bestimmt hat, sonst offen. Er rechnet mit hartem Schwerpunktfenster ±5, ohne Stützbedingung, bei 12 Quadern mit 40 und bei 20 Quadern mit 20 Instanzen je Verteilung, mit 20 beziehungsweise 30 Sekunden Zeitlimit je Instanz.

Die Formeln

Stützfläche: Die Stützfläche von Quader \(i\) mit \(z_i > 0\) ist der Anteil seiner Grundfläche, der von den Oberseiten der Quader \(j\) desselben Behälters mit \(z_j + h_j = z_i\) bedeckt wird; am Boden ist \(\sigma_i = 1\). Gelesen: für jeden Quader \(j\), auf dem \(i\) steht, die Länge des gemeinsamen Streifens in \(x\) mal die in \(y\) (Intervalle \([a, b)\) mit eingeschlossenem linkem und ausgeschlossenem rechtem Ende, Betragsstriche als Länge), summiert und durch die Grundfläche \(w_i d_i\) geteilt. Ein Eckpunkt ist nur zulässig, wenn \(\sigma_i \ge s\).

\[\sigma_i = \dfrac{1}{w_i d_i} \sum_j |\,[x_i, x_i + w_i) \cap [x_j, x_j + w_j)\,| \cdot |\,[y_i, y_i + d_i) \cap [y_j, y_j + d_j)\,|\]

Ergänzung dieser Seite: Die abgesetzte Formel steht so in der Demo; die Summe läuft dort nur über die Quader \(j\) mit \(z_j + h_j = z_i\) (siehe oben). Weil sich die Quader eines Behälters nicht überlappen, wird keine Fläche doppelt gezählt.

Schwerpunkt: Für einen Behälter \(B\) ist \(c_x\) das mit der Masse gewichtete Mittel der Mittelpunkte in \(x\), und \(c_y\) ist ebenso definiert.

\[c_x = \dfrac{\sum_{i \in B} m_i (x_i + w_i/2)}{\sum_{i \in B} m_i}\]

Der Schwerpunkt liegt im Fenster, wenn er in beiden Richtungen höchstens \(f\) von der Mitte \(C/2\) entfernt ist. Die Regel „nah“ minimiert den quadratischen Abstand zur Mitte nach dem Setzen, bei Gleichstand gilt der Eckpunkt mit kleinstem \((z, y, x)\):

\[(c_x - C/2)^2 + (c_y - C/2)^2\]

Starres Verschieben: Mit der Hüllbox \([x_{\min}, x_{\max}] \times [y_{\min}, y_{\max}]\) der Ladung eines Behälters (\(x_{\min}\) die kleinste linke Kante und \(x_{\max}\) die größte rechte Kante aller Quader des Behälters, ebenso in \(y\)) wird jeder Quader in \(x\) um \(\Delta_x\) und in \(y\) um \(\Delta_y\) verschoben; \(\Delta_y\) ist wie \(\Delta_x\) gebaut, mit \(y_{\min}\), \(y_{\max}\) und \(c_y\) (\(\Delta_x\) steht unten). Der Schwerpunkt wandert um \(\Delta_x\) und \(\Delta_y\); Lage der Quader zueinander und alle Stützflächen bleiben. Die Verschiebung ist durch die Hüllbox begrenzt, also nur so weit, wie die Wände es erlauben. „rund“ rundet auf die nächste ganze Zahl (bei .5 nach oben):

\[\Delta_x = \max(-x_{\min},\ \min(C - x_{\max},\ \mathrm{rund}(C/2 - c_x)))\]

Daran sieht man, warum das Verschieben keine Zusage ist: Ist \(x_{\min} = 0\) und \(x_{\max} = C\), also füllt die Ladung die ganze Breite, so ist \(\Delta_x = 0\), egal wo der Schwerpunkt liegt. Das ist eine Rechnung dieser Seite aus der Formel.

Schranke: Die untere Schranke des Volumens ist

\[L_{\mathrm{Vol}} = \left\lceil \tfrac{1}{C^3} \sum_i w_i d_i h_i \right\rceil \le \mathrm{OPT}\]

Die zweite Schranke ist die Zahl der Quader, die in allen drei Maßen größer als \(C/2\) sind. Rechnung dieser Seite: Zwei solche Quader überdecken in jeder Richtung die Mitte \(C/2\) des Behälters und würden sich überlappen, passen also nie in denselben Behälter; jeder braucht einen eigenen. \(\mathrm{OPT}\) ist die kleinste mögliche Zahl von Behältern über alle Platzierungen. Die Schranke \(L\) ist das Größere von beiden Zahlen. Weil die Stützbedingung nur Platzierungen ausschließt, ist das Optimum mit Bedingung nicht kleiner als ohne sie. Die Zahl \(L\) bleibt dieselbe und damit gültig; nur der Abstand zum wahren Optimum kann wachsen, die Schranke wird also nicht besser, vermutlich eher lockerer.

Befunde

Alle Zahlen sind Messungen an den erfundenen Instanzen der Demo (feste Startzahlen, ein Dekodierer) und stehen in der README. Zahlen der Tabellen sind Mittel über die Instanzen einer Zelle von (Behälter minus Schranke), sofern nicht anders vermerkt. „Optimum 1“ in den Beispielen heißt: Ohne Stützbedingung passen die zwölf Quader in einen Behälter (CP-SAT bestätigt es); mit Stützbedingung gibt es kein Optimum. Die Tests der Demo rechnen die Zahlen der README mit denselben Auswertungsfunktionen wie die App neu und suchen sie im Text der README; das zeigt, dass Text und Rechnung zusammenpassen, und sagt nichts darüber, ob das Modell die Praxis trifft. Die Tabellen unten zeigen nur n = 80; die übrigen Zellen stehen in der README.

FrageBefund und Voraussetzung
Beispiel 1 (zwölf Quader, Optimum 1)Ohne Bedingung braucht das Volumen 1 Behälter, mit 80 % Stützfläche 2; die Grundfläche bleibt bei 1. Lieferung und Höhe brauchen mit jeder Bedingung 2.
Beispiel 2 (zwölf andere Quader, Optimum 1)Mit 80 % Stützfläche und Grundfläche liegt der Schwerpunkt ohne Regel bei (47,0 / 40,0), mit „nah“ bei (47,3 / 41,6), ohne Regel verschoben bei (47,0 / 42,0): überall außerhalb des Fensters ±5. Mit „nah“ und Verschieben liegt er bei (47,3 / 49,6): im Fenster.
Was kostet die Stützbedingung?Im Mittel über die zwölf Zellen mit dem Volumen +0,42 / +1,23 / +2,69 Behälter bei einer Mindest-Stützfläche von 50 / 80 / 100 %, mit der Grundfläche +0,36 / +0,50 / +1,15. Flache Quader zahlen am meisten (n = 80, Volumen: 2,19 → 3,69 / 6,33 / 12,58).
Ändert die Bedingung den besten Schlüssel?Ja. Ohne Bedingung hat das Volumen in 10 von 12 Zellen als einziger Schlüssel das kleinste Mittel (zwei Zellen mit kleinen Quadern gleichauf mit anderen); mit 80 % und mit 100 % hat die Grundfläche es in allen 12 Zellen (gegen alle vier Schlüssel; die Tabellen hier zeigen nur Volumen und Grundfläche). Bei 50 % ist es gemischt (Volumen allein in 8). Die README gibt keine Streuung an; eine unabhängige Nachrechnung bei der Prüfung dieser Seite (nicht Teil der README) bildet je Instanz die Differenz der Behälterzahlen beider Schlüssel (gepaart) und mittelt sie. Bei 80 % liegt die Grundfläche danach in vier Zellen (mittel mit n = 20, 40 und 80, klein mit n = 40) nur 0,03 bis 0,08 Behälter vor dem Volumen, bei einem Standardfehler (Maß für die Unsicherheit dieses Mittels) von etwa 0,05; sie ist dort von einem Gleichstand nicht zu trennen.
Instanz für InstanzVon 1200 Instanzen braucht die Mindest-Stützfläche 80 % mit dem Volumen in 814 mehr Behälter als ohne Bedingung, mit der Grundfläche in 512; bei 100 % in 1073 beziehungsweise 746.
Hilft die weiche Regel „nah“?Mit ihr liegen 1 bis 95 % der Behälter im Fenster ±5 (ohne Regel 1 bis 50 %): am meisten bei kleinen Quadern (n = 20: 38 → 95 %), kaum bei flachen (1 bis 3 %). Sie ändert die Behälterzahl um −0,22 bis +0,07 (über die zwölf Zellen).
Hilft das starre Verschieben?Es kostet keinen Behälter, weil nur die Lage der Quader im Behälter wechselt, nicht, welche Quader in welchem Behälter liegen. Mit „nah“ und Verschieben liegen 44 bis 100 % der Behälter im Fenster ±5 und 69 bis 100 % im Fenster ±10; eine Garantie ist es nicht (wo die Ladung die ganze Breite oder Tiefe füllt oder schon an einer Wand anliegt, bleibt wenig oder nichts zu verschieben).
Hilft „schwere zuerst“?Nein: Bei Mindest-Stützfläche 80 % und Fenster ±5 braucht der Schlüssel Masse (mit „nah“) in allen 12 Zellen mehr Behälter als die Grundfläche mit „nah“ (+0,16 bis +2,55) und bringt den Anteil im Fenster nirgends um mehr als 1 Prozentpunkt nach oben. Eine unabhängige Nachrechnung bei der Prüfung dieser Seite (nicht Teil der README) fand den Anteil im Fenster mit dem Schlüssel Masse in 11 von 12 Zellen sogar niedriger als mit der Grundfläche.
Geht ein harter Schwerpunkt mit einer Füllschwelle?Nur teuer (ab 50 %) oder lückenhaft (ab 75 %): Ab 50 % Füllung kostet die harte Regel bis zu +1,89 Behälter gegenüber „nah“ (mittlere Quader, n = 80), und die Garantie gilt nur für die 0 bis 46 % der Behälter über der Schwelle; ab 75 % sind es höchstens +0,05 und 0 bis 20 % der Behälter.
Was wäre im besten Fall möglich?Das Orakel (freie Platzierung, ohne Stützbedingung, bei 12 und 20 Quadern): Das harte Fenster ±5 braucht in 236 von 236 entschiedenen Instanzen genauso viele Behälter wie ohne Fenster (4 von 240 nicht entschieden). Mit Stützbedingung und bei mehr Quadern ist das nicht gemessen.

Beispiel 1, Behälterzahl je Schlüssel und Mindest-Stützfläche:

Schlüssel0 %50 %80 %100 %
Lieferung2222
Volumen1122
Grundfläche1111
Höhe2222

Behälter über der Schranke bei n = 80 (Mittel über 100 Instanzen je Zelle; Mindest-Stützfläche 0 / 50 / 80 / 100 %). Ein Optimum fehlt, die Schranke ist vermutlich locker; gelesen wird der Unterschied zwischen den Spalten, nicht der Abstand zur Schranke:

Verteilung, n = 80Volumen 0 / 50 / 80 / 100 %Grundfläche 0 / 50 / 80 / 100 %
mittel1,98 / 2,32 / 2,62 / 3,422,24 / 2,47 / 2,54 / 2,64
breit1,60 / 2,01 / 2,73 / 4,272,15 / 2,28 / 2,35 / 2,69
klein0,03 / 0,21 / 0,91 / 1,240,07 / 0,21 / 0,48 / 0,93
flach2,19 / 3,69 / 6,33 / 12,582,35 / 3,86 / 4,01 / 6,22

Anteil der Behälter im Schwerpunktfenster bei n = 80 (Mindest-Stützfläche 80 %, Schlüssel Grundfläche):

Verteilung, n = 80keine Regel ±5nah ±5keine, verschoben ±5nah, verschoben ±5nah, verschoben ±10
mittel27 %39 %55 %64 %97 %
breit23 %30 %48 %52 %92 %
klein50 %69 %75 %89 %100 %
flach1 %3 %42 %44 %69 %

Die harte Regel ab einer Füllschwelle bei n = 80 (Mindest-Stützfläche 80 %, Schlüssel Grundfläche, Fenster ±5; „davon über der Schwelle“ ist der Anteil der fertigen Behälter, deren Füllgrad über der Füllschwelle liegt und für die die Garantie gilt; die harte Regel ist ohne Verschieben gemessen):

Verteilung, n = 80nah: Behälter über Schrankehart ab 50 %: Behälter über Schrankedavon über der Schwellehart ab 75 %: Behälter über Schrankedavon über der Schwelle
mittel2,444,3331 %2,4920 %
breit2,334,0519 %2,3414 %
klein0,550,8435 %0,5513 %
flach3,794,642 %3,790 %

Warum der Schwerpunkt nicht zugesagt wird

Die README formuliert es als Ergebnis: Ein harter Schwerpunkt wird nicht geliefert. Die Regeln und das Verschieben verbessern ihn, garantieren ihn aber nicht. Aus den Befunden folgen drei getrennte Gründe, jeder mit seiner Voraussetzung.

  • Das Verschieben braucht Spielraum. Füllt die Ladung die ganze Breite oder Tiefe oder liegt sie schon an einer Wand, bleibt wenig oder nichts zu verschieben (siehe die Formel für \(\Delta_x\)). Mit „nah“ und Verschieben liegen im Raster 44 bis 100 % der Behälter im Fenster ±5; die 44 % stehen bei flachen Quadern mit n = 80.
  • Die harte Regel ist teuer oder lückenhaft. Ab 50 % Füllung kostet sie bis zu +1,89 Behälter gegenüber „nah“ und schützt nur die 0 bis 46 % der Behälter über der Schwelle; ab 75 % kostet sie höchstens +0,05 und schützt 0 bis 20 % der Behälter. Der Rest der Behälter, unter der Schwelle, bleibt ohne Garantie. Die README nennt die harte Regel ein Gegenbeispiel zur Idee, einen harten Schwerpunkt über eine Füllschwelle zu erzwingen.
  • Möglich ist mehr, als das Verfahren erreicht (nur eingeschränkt vergleichbar). Das Orakel findet bei freier Platzierung, ohne Stützbedingung und bei 12 und 20 Quadern in 236 von 236 entschiedenen Instanzen Packungen mit Fenster ±5 ohne einen Behälter Mehrkosten. Die Aufgabe erlaubt es also; die README sagt ohne Zahl, die Heuristik erreiche das Fenster dort oft nicht; eine Nachrechnung bei der Prüfung dieser Seite (nicht Teil der README) an den Orakel-Instanzen fand das bei mittleren, breiten und flachen Quadern, bei kleinen erreichte die Heuristik das Fenster meist. Ein Vergleich beider am selben Fall fehlt: Die Heuristik ist im Raster mit 80 % Stützfläche gemessen, das Orakel ohne Stützbedingung.

Der Satz „kein harter Schwerpunkt“ gilt damit für dieses Verfahren (Extreme Points mit den hier geprüften Regeln), nicht für die Aufgabe. Die Aufgabe mit Stützbedingung und Schwerpunktfenster hat in der Demo kein Optimum, weil die Demo die Stützfläche im CP-SAT-Modell nicht abbildet (dort nur Überlappungsfreiheit und Schwerpunktfenster); die README hält sie für nicht als lineare Bedingung formulierbar (so, wie der Löser sie braucht); geprüft ist das nicht.

Was die Messung zeigt

  • Sie belegt Vergleiche: Gleiche Instanzen, gleicher Dekodierer, nur die Bedingung oder der Schlüssel wechselt. Darum sind die Unterschiede zwischen den Spalten der Tabellen und die Zählung „814 und 512 von 1200“ belastbar, soweit die erfundenen Instanzen reichen. Der Wechsel des besten Schlüssels ist belastbar für die Richtung bei flachen und breiten Quadern und bei 100 %; knappe Zellen (80 %: mittel mit n = 20, 40 und 80, klein mit n = 40) sind vom Gleichstand nicht zu trennen. Das Mittel über die zwölf Zellen gewichtet jede Zelle gleich; jede Zelle hat 100 Instanzen.
  • Sie belegt keine Abstände zum Optimum: Mit Stützbedingung gibt es kein Optimum, die Schranke ist nur eine untere Grenze und vermutlich locker. Die Zahlen „Behälter über der Schranke“ sind kein Abstand zum Optimum.
  • Der beste Schlüssel gilt für die vier geprüften Schlüssel, einen Dekodierer und diese Verteilungen. Warum die Grundfläche mit Stützbedingung gewinnt, ist in der README nicht untersucht; die Deutung „breite Böden zuerst bilden einen Unterbau“ ist eine Vermutung dieser Seite.
  • Streuung: Die README gibt zu den Mitteln keine Streuung an. Aussagen über einzelne Instanzen stützen sich nur auf die Zählungen (814, 512, 1073, 746 von 1200).
  • Anteile im Fenster zählen Behälter. Der letzte Behälter einer Packung ist meist nur teilweise gefüllt. Die README vermutet, dass er ohne Verschieben häufiger außerhalb des Fensters liegt und mit Verschieben seltener, weil die dünn gefüllte Ladung Spielraum hat, und nennt das eine Unsicherheit. Die Demo testet es nicht; eine Nachrechnung bei der Prüfung dieser Seite (nicht Teil der README) fand ohne Verschieben „häufiger außerhalb“ in 9 der 12 Zellen, nicht bei flachen Quadern.
  • Das Orakel deckt nur 12 und 20 Quader ab, 4 von 240 Instanzen blieben im Zeitlimit offen, und es gilt ohne Stützbedingung.

Grenzen

  • Quader ohne Drehung, eine Behältergröße, vier Verteilungen: Quaderzahlen 20, 40 und 80 im Raster (12 und 20 beim Orakel). Die Befunde sind Aussagen über diese erfundenen Familien.
  • Zufällige Massen: Echte Ladungen können schwere Teile bündeln. Praxisdaten sind nicht gemessen.
  • Ein Dekodierer: Extreme Points mit Projektionen (eigene Lesart) mit der Wahl „tiefster, hinterster, linkester Eckpunkt“ beziehungsweise den Schwerpunktregeln. Mit einem anderen Dekodierer können Kosten und Fensteranteile anders ausfallen.
  • Fehlende Physik: Stapellast, Gewichtsgrenzen je Behälter und Drehung kommen nicht vor. Eine Stützfläche von 80 % sagt nichts über Kippen, Reibung oder Tragfähigkeit der unteren Quader.
  • Kein Optimum mit Stützbedingung, kein harter Schwerpunkt: Das Optimum modelliert die Demo ohne Stützbedingung (die README hält sie für nicht als lineare Bedingung formulierbar; geprüft ist das nicht), einen harten Schwerpunkt liefert das Verfahren nicht (siehe oben).
  • Alle Quader sind vor dem Packen bekannt: Wer jeden Quader sofort einsortieren muss, kann nicht sortieren; das ist Online-Packen (jeder Quader muss eingeplant werden, bevor der nächste bekannt ist).
  • Bedienung: Die App wurde im Browser bedient (Presets, Würfel-Button, Regler und 3D-Ansicht auf Desktopbreite; auf Telefonbreite nur das Layout), nicht auf einem echten Touch-Gerät. Zur Laufzeit macht die Demo keine Aussage.

Erweiterungen und Verweise

Bewusst nicht umgesetzt sind ein harter Schwerpunkt als Konstruktion, ein Optimum mit Stützbedingung, Stapellast, Gewichtsgrenzen, Drehung, die Entladereihenfolge, ein Laufzeitvergleich sowie Gütegarantien und Zahlen aus der Literatur. Die Fall-Demos zu Beladeplan und Gewicht (ULD, Ladeeinheit der Luftfracht) zeigen laut README die Anwendung samt Kostenmodell; diese Demo erklärt den Mechanismus davor. Verwandte Teile derselben Linie:

Quellen

Für diese Seite wurde keine Literatur nachgeschlagen. Alle Zahlen stammen aus der README der Demo; die Flächenrechnung zum Fenster und die Folgerung zum Verschieben sind Rechnungen dieser Seite aus den Definitionen, keine Messungen.