Hafenlogistik · Verständlich erklärt

Der Containerstapel verständlich erklärt

Ein neuer Karton kommt ins Lager, und niemand weiß genau, wann er wieder abgeholt wird. Liegt er auf dem falschen Stapel, muss später erst anderes weggeräumt werden. Die Seite zeigt am Beispiel eines Containerhafens, wie viel ungefähres Wissen hilft und ab wann es schadet.

Zuletzt aktualisiert:

Teil 1 · Für Einsteiger

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

Wohin mit dem neuen Karton?

Stellen Sie sich einen Lagerraum vor. Dort stehen Kartons in mehreren Stapeln nebeneinander. An einen Karton kommen Sie nur heran, wenn nichts darauf liegt. Soll ein Karton ganz unten heraus, müssen Sie erst alle darüber wegheben.

Jetzt kommt ein neuer Karton an. Sie wissen nur ungefähr, wann er wieder abgeholt wird. Legen Sie ihn auf einen Karton, der früher abgeholt wird, steht er im Weg. Dann müssen Sie ihn erst woanders ablegen. Das kostet Zeit und bringt nichts voran.

Ein Containerhafen hat dasselbe Problem, nur größer. Mehrere Stapel nebeneinander heißen dort Block. Ein Kran hebt die Container. Jedes Anheben eines Containers, der nur im Weg steht, heißt Umstapelung. Der Block wird nie ganz voll: Es bleibt immer so viel Platz frei, wie ein ganzer Stapel fasst. Dort finden weggehobene Container sicher einen Platz.

Zu dieser Seite gehört ein Programm zum Ausprobieren im Browser, kurz Demo. Ganz unten in diesem Teil gibt es zwei Knöpfe. Der erste öffnet die Demo, der zweite führt zum zweiten Teil für Fachleute. Zum Verstehen brauchen Sie die Demo nicht. Alles hier beschreibt ein vereinfachtes Rechenbild: Ein Programm spielt viele zufällige Abläufe durch und zählt die Umstapelungen. Ein echter Hafen ist es nicht.

Wie gut ist das Wissen über die Abholung?

Die Abholzeit eines Containers kennt man nur ungefähr, denn Lastwagen und Schiffe kommen mal früher, mal später. Die Zeit, die ein Container im Mittel im Block steht, heißt Standzeit. Wie weit die Schätzung danebenliegt, heißt Schätzfehler. Er wird als Bruchteil der Standzeit angegeben.

Ein Beispiel: Steht ein Container im Mittel zwei Wochen im Block, liegt die Schätzung bei einem Fehler von 25 % typisch gut drei Tage daneben. Bei zwei ganzen Standzeiten wären es etwa vier Wochen. Ein Fehler von null heißt: Die Abholzeit ist genau bekannt.

Das Rechenbild vergleicht vier Regeln für die Wahl des Stapels, auf den ein neuer Container kommt:

  • Zufällig: irgendein Stapel mit Platz. Das Einlagern nutzt kein Wissen. Die Regel zeigt, was das kostet.
  • Niedrigster Stapel: der Stapel mit den wenigsten Containern. Das ist die Alltagsregel, denn sie hält alle Stapel niedrig. Sie ignoriert die Schätzung beim Einlagern.
  • Bestfit: ein Stapel, dessen oberster Container nach der Schätzung später abgeholt wird als der neue. Dann blockiert der Neue nichts. Unter diesen nimmt die Regel den, dessen oberster Container nur wenig später geht. So bleiben Stapel mit sehr spät abgeholten Containern für noch spätere frei. Sonst nimmt sie den Stapel, dessen oberster am spätesten geht. Sie vertraut der Schätzung.
  • Unsicherheits-bewusst: wie Bestfit, aber sie rechnet ein, wie groß der Schätzfehler ist. Für jeden Stapel schätzt sie, wie wahrscheinlich der Neue dort einen früher abzuholenden Container blockiert. Sie wählt den Stapel mit der kleinsten Wahrscheinlichkeit.

Beim Wegräumen wählt für alle vier Regeln Bestfit den neuen Platz. So misst der Vergleich nur das Einlagern.

Dazu kommt ein Rechner, der die Zukunft kennt. Er kennt die wahren Abholzeiten und auch die ganze Reihenfolge, in der die Container ankommen. Bei kleinen Blöcken, etwa mit vier Stapeln zu je vier Plätzen, findet er die kleinstmögliche Zahl an Umstapelungen. Sein Ergebnis heißt Optimum mit Hellsehen.

Was die Messung zeigt

Die Zahlen stammen aus Simulationen, nicht aus einem echten Hafen. Der Block hatte sechs Stapel für je höchstens fünf Container. Es kamen 120 Container nacheinander. Gleichzeitig durften höchstens 80 % des Platzes belegt sein, gerechnet ohne den Platz für einen freien Stapel. Im Mittel stand weniger darin, denn der Ablauf beginnt und endet leer.

Ist die Abholzeit genau bekannt, lohnt sich das Vertrauen. Bestfit brauchte nur etwa ein Drittel der Umstapelungen von Zufällig. Im Mittel über 200 Abläufe waren es 23 gegen 77. Der Grund: Wer die Reihenfolge kennt, legt früh Abgeholte nach oben. Dann liegt weniger Spätes auf Frühem. Auch Niedrigster Stapel braucht dann mehr als Bestfit.

Doch jede Schätzung hat einen Fehler, und der Vorsprung schmilzt mit ihm. Ab einem bestimmten Fehler braucht Bestfit sogar mehr Umstapelungen als Niedrigster Stapel. Dieser Kipppunkt lag bei einer Belegungsgrenze von 60 % bei einem Fehler von 56 %, also gut einer halben Standzeit. Bei 80 % lag er bei 134 %, also mehr als einer ganzen Standzeit. Er hängt also vom Block ab. Jenseits davon schadet es im Mittel, der Schätzung beim Einlagern zu trauen.

Eine Deutung, gestützt auf eine eigene Rechnung dieser Seite: Bestfit packt Container nach der Schätzung eng zusammen. Ist die Schätzung falsch, liegt oft Spätes auf Frühem. Bei einem Fehler von zwei ganzen Standzeiten waren die Stapel im Mittel höher als bei Niedrigster Stapel.

Die vierte Regel, Unsicherheits-bewusst, ist vorsichtiger. Bei großem Fehler schneidet sie besser ab als Bestfit, bei kleinem schlechter. Bei einer Belegungsgrenze von 60 % gilt das schon bei einem Fehler von etwa einer halben Standzeit, bei 80 % klar erst bei zwei Standzeiten. Eine Deutung: Wo die Schätzung kaum verlässlich ist, ist es klüger, einen Stapel zu wählen, auf dem auch eine falsche Schätzung nichts blockiert, als passgenau zu packen. Keine Regel gewinnt überall.

Häufige Missverständnisse

  • „Wer die Abholzeit genau kennt, muss nie umstapeln.“ Auch dann bleiben Umstapelungen übrig. Steht auf jedem Stapel schon ein Container und wird der Neue später abgeholt als jeder oberste, blockiert er einen davon. Selbst wer die ganze künftige Ankunftsfolge kennt, kommt bei kleinen Blöcken oft nicht ohne jeden Hub aus.
  • „Die Lücke zum Rechner mit Hellsehen zeigt, was eine bessere Regel noch herausholen könnte.“ Bei genau bekannter Abholzeit brauchte Bestfit bei kleinen Blöcken etwa das Doppelte bis Dreifache des Optimums. Der Rechner kennt aber zusätzlich alle künftigen Ankünfte. Die Lücke ist großenteils der Preis des Nicht-Wissens. Es ist, als räumten Sie heute klüger, wenn Sie schon wüssten, welche Pakete morgen kommen.

Woran Sie das im Alltag erkennen

  • Im Kühlschrank steht das Joghurt mit dem früheren Ablaufdatum hinter dem neuen. Sie müssen erst umräumen, um es zu erreichen.
  • Sie packen den Kofferraum für einen Ausflug mit mehreren Stopps. Stimmt Ihre Vermutung zur Reihenfolge nicht, wühlen Sie bei jedem Halt.

Wie ernst ist das Rechenbild zu nehmen?

Das Rechenbild zieht die Abholreihenfolge zufällig. Echte Container sind oft nach Schiff oder Ziel gebündelt, das senkt die Umstapelungen und fehlt hier. Die Zahlen zeigen daher, wie die Regeln zueinander stehen, nicht, wie viel ein echter Hafen umstapelt.

Was Sie mitnehmen

  • Fragen Sie vor dem Einsortieren: Wie sicher weiß ich, wann ich das wieder brauche?
  • Ist Ihre Vermutung sehr grob, kann es besser sein, einfach gleichmäßig niedrig zu stapeln, statt jeder Vermutung genau zu folgen.
  • Vergleichen Sie Ihr Ergebnis mit dem, was jemand mit allem Vorwissen erreichen würde. Der Abstand zeigt oft nur, was Sie nicht wissen können.

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

Dieser Teil ist eigenständig lesbar. Er beschreibt eine Variante des Blocks Relocation Problem mit ankommenden Containern und geschätzten Abholzeiten, wie die Demo sie simuliert. Das zugrunde liegende Blocks Relocation Problem ist im Allgemeinen NP-schwer.

  • Block: \(S\) Stapel der Höhe \(H\); nur der oberste Container eines Stapels ist erreichbar. Der Standardblock der Demo hat 6 Stapel der Höhe 5 (6×5) und 120 Container.
  • Ereignisfolge: \(n\) Container \(i = 1, \dots, n\) mit Ankunft \(a_i\) und Abholung \(d_i\), \(a_i < d_i\), beide als Nummer in der Ereignisfolge. Die Ereignisfolge wird zuerst vollständig erzeugt, die wahren Abholungen \(d_i\) stehen damit fest; die Regeln werden dann auf ihr abgespielt und sehen nur die Schätzung. Die Zeit wird also in Ereignisschritten gemessen, nicht in Stunden. In jedem Schritt kommt mit fester Wahrscheinlichkeit ein Container an, solange Container übrig sind und die Belegungsgrenze nicht erreicht ist; ein leerer Block erzwingt eine Ankunft. Sonst wird ein gleichverteilt zufällig gewählter anwesender Container abgeholt. Die Abholreihenfolge ist daher von der Ankunftsreihenfolge unabhängig, abgesehen davon, dass nur Anwesende abgeholt werden. Der Durchsatz ist die Zahl \(n\) der Container über den ganzen Ablauf.
  • Belegungsgrenze: Gleichzeitig sind höchstens \(\text{cap} = \lfloor \varphi\,(S-1)\,H \rceil\) Container anwesend, mit dem Füllgrad \(\varphi \le 1\); die Voreinstellung der Demo ist 80 %. Es bleibt also stets Platz für einen ganzen Stapel frei, als Ausweichplatz (Begründung weiter unten).
  • Mittlere Standzeit: \(\bar D = \frac1n \sum_i (d_i - a_i)\), in Ereignisschritten.
  • Schätzung: Die Regeln sehen beim Einlagern nur \(\hat d_i = d_i + \varepsilon_i\) (für den ankommenden Container kurz \(\hat e = \hat d_i\)) mit unabhängigen, normalverteilten Fehlern \(\varepsilon_i\) der Standardabweichung \(\sigma \bar D\). Der Schätzfehler \(\sigma\) ist ein Bruchteil der mittleren Standzeit; \(\sigma = 0\) heißt exakt bekannt.
  • Kosten: Abgeholt wird in der wahren Reihenfolge. Nur die Container über dem Ziel werden umgestapelt, jeder Hub zählt als eine Umstapelung. Den neuen Stapel eines weggehobenen Containers wählt für alle Regeln dieselbe Regel, Bestfit mit den Schätzungen. So misst der Vergleich nur die Einlagerungsentscheidung.
  • Zufällig: ein beliebiger Stapel mit Platz; die Untergrenze ohne Information beim Einlagern (beim Umstapeln nutzt auch sie die Schätzungen, siehe Kosten).
  • Niedrigster Stapel: der Stapel mit den wenigsten Containern; die Alltagsregel und die Referenz für die Ersparnis. Sie ignoriert die Schätzung beim Einlagern.
  • Bestfit: Mit \(\hat e\) wie oben und \(\text{top}(s)\) als geschätzter Abholung des obersten Containers von Stapel \(s\) (leerer Stapel: \(\infty\)) wählt Bestfit unter den Stapeln mit \(\text{top}(s) \ge \hat e\) den mit dem kleinsten \(\text{top}(s)\); gibt es keinen, den mit dem größten.
  • Unsicherheits-bewusst: Sie wählt den Stapel mit der kleinsten Blockierwahrscheinlichkeit \(P_s\) (Formel unten). Praktisch gleich riskante Stapel, bei auf zwei Stellen gerundeter Wahrscheinlichkeit, entscheidet ein zweites Kriterium: Ist das Risiko klein, gilt die engste Passung wie bei Bestfit, sonst der niedrigste Stapel. Laut Beschreibung der Demo fällt sie bei großem \(\sigma\) auf den Ausgleich zurück; das wurde hier nicht nachgemessen. Bei \(\sigma = 0\) ist sie deshalb nicht mit Bestfit gleich, wenn jeder Stapel blockiert: Sie nimmt dann den niedrigsten Stapel, Bestfit den mit dem spätesten obersten.
  • Optimum mit Hellsehen: exakte Suche (IDA*-artig) über alle Einlagerungs- und Umstapelentscheidungen, mit den wahren Abholzeiten aller Container und der vollständig bekannten Ankunftsfolge, auch der noch nicht angekommenen Container. Sie ist eine untere Schranke für jede Online-Regel und nicht erreichbar. Mit einem Zeitlimit von 10 s liefert sie bei großen Blöcken nur ein Intervall aus bewiesener unterer und oberer Schranke, nie einen unbewiesenen Wert als Optimum.
  • Urteil über zwei Regeln: Ein Unterschied gilt als klar, wenn die gepaarte Differenz über dieselben Ereignisfolgen mehr als zwei Standardfehler beträgt, sonst als „kein klarer Unterschied“.

Die Formeln

Die Regeln sehen nur die geschätzte Abholung, die wahre plus Rauschen:

\[\hat d_i = d_i + \varepsilon_i\]

\[\varepsilon_i \sim \mathcal N\big(0, (\sigma \bar D)^2\big)\]

Die Unsicherheits-bewusste Regel bewertet jeden Stapel \(s\) mit der Wahrscheinlichkeit, dass der neue Container einen früher abgeholten blockiert; \(\Phi\) ist die Verteilungsfunktion der Standardnormalverteilung:

\[P_s = \Phi\!\Big(\dfrac{\hat e - \text{top}(s)}{\sigma \bar D \sqrt 2}\Big)\]

Das Ziel ist die Zahl der Umstapelungen, wobei \(B_j\) die Container sind, die bei der Abholung \(j\) über dem abgeholten liegen und weggehoben werden:

\[\min \; \sum_{j} |B_j|, \qquad B_j = \{\text{Container über dem bei Abholung } j \text{ abgeholten Container}\}\]

Die untere Schranke des exakten Lösers zählt die Container, die über einem früher abfahrenden im selben Stapel liegen, denn jeder von ihnen muss mindestens einmal umgestapelt werden. Dabei ist \(X\) der Zustand des Blocks:

\[h(X) = \big|\{\, c \in X : c \text{ liegt über einem früher abfahrenden Container im selben Stapel} \,\}\big|\]

Warum ein freier Stapel genügt

Dieser Abschnitt begründet die Belegungsgrenze. Er ist eine Rechnung der Demo, hier nachvollzogen. Liegen beim Abholen \(k\) Container über dem Ziel in Stapel \(x\) und sind \(m\) Container anwesend, müssen diese \(k\) auf andere Stapel passen.

  • Schritt 1, freie Plätze außerhalb von \(x\): Der Block hat \(S H\) Plätze, davon sind \(S H - m\) frei und \(H - |x|\) davon in Stapel \(x\) selbst. Außerhalb von \(x\) sind also \(S H - m - (H - |x|)\) Plätze frei.
  • Schritt 2, Einsetzen der Grenze: Für \(m \le (S-1)\,H + 1\) ist das mindestens \(|x| - 1\), denn \(S H - m - (H - |x|) \ge S H - (S-1)H - 1 - H + |x| = |x| - 1\). Die Rechnung erlaubt einen Container mehr, als die Belegungsgrenze \(\text{cap}\) zulässt; die Demo nutzt diese Reserve nicht.
  • Schritt 3, Vergleich: Über dem Ziel liegen höchstens \(|x| - 1\) Container, also \(k \le |x| - 1\). Die freien Plätze reichen, das Umstapeln gelingt, solange die Belegung diese Grenze einhält. Weil \(\text{cap} \le (S-1)\,H\) ist, ist das stets der Fall.

Wie die Unsicherheits-bewusste Regel rechnet

Rechnung dieser Seite, keine Messung der Demo. Sie begründet die Formel für \(P_s\) und rechnet eine Entscheidung durch.

  • Schritt 1, die Differenz der wahren Abholungen: Der neue Container blockiert den obersten Container von Stapel \(s\), wenn seine wahre Abholung später liegt. Mit den Schätzungen ist \(d_\text{neu} - d_\text{oben} = (\hat e - \text{top}(s)) - (\varepsilon_\text{neu} - \varepsilon_\text{oben})\).
  • Schritt 2, die Streuung: Die Differenz zweier unabhängiger Fehler ist normalverteilt mit der Standardabweichung \(\sigma \bar D \sqrt 2\). Nimmt man die wahre Abholung bei gegebener Schätzung als um diese normalverteilt (flache Vorverteilung, eine Näherung), ergibt sich \(P_s\) wie oben.
  • Schritt 3, ein Beispiel: Sei \(u = \sigma \bar D \sqrt 2\). Der Stapel A trägt oben eine Schätzung \(\hat e + u\), der Stapel B \(\hat e + 3u\), der Stapel C \(\hat e - u\). Bestfit wählt A, den engsten der nicht blockierenden Stapel. Die Wahrscheinlichkeiten sind \(P_A = \Phi(-1)\), knapp ein Sechstel, \(P_B = \Phi(-3)\), weniger als ein Hundertstel (auf zwei Stellen gerundet null), und \(P_C = \Phi(1)\), gut fünf Sechstel. Die Unsicherheits-bewusste Regel wählt deshalb B.
  • Schritt 4, die Deutung: B trägt oben die späteste Abholung und wäre der Platz für einen später folgenden Container, der noch später geht. Die Regel zahlt diese Passgenauigkeit für ein kleineres Risiko. Ist \(\sigma\) klein, sind \(P_A\) und \(P_B\) beide nahe null, und das zweite Kriterium wählt wie Bestfit die engste Passung, also A. Wird \(\sigma\) groß, steigen die Risiken, und die Regel meidet die enge Passung, die Bestfit beibehält. Dass sie dadurch bei großem \(\sigma\) gewinnt, ist eine Deutung dieser Seite, keine Messung.

Die untere Schranke und ihre Reichweite

Der exakte Löser fragt bei einem Budget \(b\), ob es eine Fortsetzung mit höchstens \(b\) Umstapelungen gibt, und erhöht \(b\) schrittweise (iterative Vertiefung). Das erste machbare Budget ist das Optimum. Die Schranke \(h(X)\) ist zulässig, weil jeder Container über einem früher abfahrenden vor dessen Abholung mindestens einmal weggehoben werden muss. Die Kinder werden in Bestfit-Reihenfolge durchsucht, und der Löser bricht beim ersten Fund ab. Bei Zeitlimit liefert das zuletzt begonnene Budget eine bewiesene untere Schranke, ein Bestfit-Lauf mit den wahren Abholungen die obere.

Eine Bemerkung der Demo, hier nicht nachgeprüft: Kommen alle Container vor der ersten Abholung, ist eine Belegung ohne Umstapeln genau dann möglich, wenn sich die nach Abholung geordnete Ankunftsfolge in höchstens \(S\) fallende Teilfolgen der Länge höchstens \(H\) zerlegen lässt; ohne Höhengrenze genau dann, wenn die längste steigende Teilfolge höchstens \(S\) lang ist. Im verschränkten Ablauf der Demo gilt das nicht so einfach.

Befunde

Alle Zahlen stammen aus Simulationen mit zufälligen Ereignisfolgen, nicht aus Echtdaten, und sind Mittel über viele Ereignisfolgen. Die Kipppunkte stammen aus einer Kurve über Fehlerstufen mit dreißig Ereignisfolgen je Stufe und linearer Interpolation zwischen den Stufen. Der Vorsprung ist der Quotient der Mittel (Zufällig durch Bestfit), kein Mittel von Quotienten.

FrageBefund
Wert exakter Kenntnis (Block 6×5, Füllgrad 80 %, 120 Container, \(\sigma = 0\))Bestfit braucht rund 3-mal weniger Umstapelungen als Zufällig: Mittel über 200 Ereignisfolgen 23 gegen 77.
Hängt der Vorsprung vom Füllgrad ab?In einer früheren Messreihe mit 200 Containern waren es bei Füllgrad 60 % etwa 6×. Eine Nachrechnung dieser Seite mit dem Code der Demo (120 Container, Füllgrad 60 %, \(\sigma = 0\), 200 Ereignisfolgen) ergab ebenfalls etwa das Sechsfache. Der Vorsprung ist also bei niedrigerer Belegungsgrenze größer; die Containerzahl erklärt den Unterschied nicht.
Wo kippt Bestfit gegen Niedrigster Stapel? (Kipppunkt)Ab einem Schätzfehler zwischen etwa 55 % und 140 % der mittleren Standzeit braucht Bestfit mehr Umstapelungen. Bei 120 Containern liegt er bei 56 % (Füllgrad 60 %) und bei 134 % (Füllgrad 80 %), in einer früheren Messreihe mit 200 Containern laut README bei 75 % bzw. 139 %. Diese beiden Werte ließen sich mit dem heutigen Code nicht reproduzieren (Nachrechnung dieser Seite: andere Werte, mehrere Prozentpunkte daneben); sie liegen im Rauschen. Um den Kipppunkt herum ist der Unterschied nicht vom Rauschen zu trennen.
Wie schneidet die Unsicherheits-bewusste Regel ab?Sie gewinnt gegen Bestfit bei großem \(\sigma\) und verliert bei kleinem \(\sigma\). Nachrechnung dieser Seite (30 Ereignisfolgen je Stufe): Bei Füllgrad 60 % gewinnt sie schon ab einem Schätzfehler von etwa 50 %, bei Füllgrad 80 % klar erst bei 200 %; bis etwa 25 % verliert sie. Keine Regel gewinnt überall.
Wie weit liegt Bestfit vom Optimum mit Hellsehen? (\(\sigma = 0\))Etwa beim Doppelten (kleine Blöcke) bis Dreifachen (4×4 mit 30 Containern) des Optimums. Das Optimum kennt aber auch die künftigen Ankünfte; die Lücke ist großenteils der Preis des Nicht-Wissens, kein Verbesserungsspielraum für eine Online-Regel.
Wie weit reicht der exakte Löser? (10 s, 8 Instanzen je Größe)4×4 mit 18 Containern, 4×4 mit 30 und 5×4 mit 30: 8 von 8 in unter 1,1 s. 6×5 mit 40 Containern: 7 von 8; 6×5 mit 60: 6 von 8; 6×5 mit 120: 6 von 8 bei Füllgrad 60 %, aber nur 2 von 8 bei Füllgrad 80 %.

Was die Messung zeigt und wo ihre Grenzen liegen

Das zeigt die Messung:

  • Die Mittelwerte 23 gegen 77 und die Kipppunkte 56 % und 134 % ließen sich für diese Seite mit dem Code der Demo nachrechnen.
  • Der Vergleich misst die Einlagerungsentscheidung, weil alle Regeln beim Umstapeln dieselbe Regel nutzen. Laut Beschreibung der Demo blieb das Muster bei einheitlichem Umstapeln gleich, und die Unsicherheits-bewusste Regel war sogar gleich gut oder besser als mit eigener Umstapel-Logik (diese Messung stammt von vor der Korrektur der Blockierwahrscheinlichkeit).
  • Der exakte Löser stimmte laut Beschreibung der Demo auf 160 kleinen Instanzen mit einer unabhängigen Vollaufzählung überein; diese Gegenprobe wurde hier nicht wiederholt.

Das zeigt sie nicht:

  • Zufällige Abholreihenfolge: In echten Blöcken werden Container meist nach Schiff oder Zielgruppe gebündelt und getrennt gelagert. Das senkt die Umstapelungen stark und ist nicht abgebildet.
  • Gauß-Rauschen ohne Schiefe: Reale Standzeiten sind schief verteilt. Ein Schätzfehler von 25–50 % ist ein Wert zum Einordnen, kein gemessener.
  • Ein Block: keine Fahrzeiten und Kranwege, keine Gefahrgut-, Reefer- oder Gewichtsklassen; die Zeit wird in Ereignisschritten gezählt.
  • Die Referenz ignoriert die Schätzung nur beim Einlagern: Beim Umstapeln nutzen alle Regeln die Schätzung. Der Kipppunkt sagt daher, wann der Schätzung beim Einlagern zu trauen sich lohnt, nicht, ob die Schätzung insgesamt nützt.
  • Kipppunkt und Vorsprung hängen von Blockgröße, Füllgrad und Durchsatz ab: Es sind Größenordnungen aus einer Simulation, keine Messung an Echtdaten, und keine Naturgesetze.
  • Die Näherung für \(P_s\): Sie behandelt die wahre Abholung als um die Schätzung normalverteilt und kennt die Grenzen der Ereignisfolge nicht.
  • Der exakte Löser reicht nicht überall: Auf dem Standardblock (Füllgrad 80 %) liefert er meist ein breites Intervall statt eines Werts.

Erweiterungen und Verweise

Bewusst nicht gebaut sind eine Bündelung nach Schiff oder Zielgruppe (die realistischere Abholstruktur; zuerst müsste gemessen werden, wie stark sie das Bild verändert), schief verteilte Standzeiten und echte Daten statt Gauß-Rauschen, Reefer-Stellplätze, Gefahrgut und Gewichtsklassen als Nebenbedingungen, Vorsortieren in ruhigen Zeiten und mehrere Blöcke mit Kranfahrzeiten sowie eine stärkere untere Schranke, die auch den Standardblock beweist. Die Demo gehört zu einer Reihe von Hafen-Demos, die Kai, Kran, Gate und Hof behandeln; diese liegt eine Ebene tiefer im Stapelblock des Hofs:

  • berth-allocation-demo: der Kai (Liegeplätze).
  • quaycrane-demo: der Kran.
  • truck-appointment-demo: das Gate (Lkw-Termine).
  • yard-demo: der Hof.

Quellen

  • Quelltext, Tests und Messberichte der Demo: github.com/sebastian-hanisch/stapelplanung-demo.
  • Zum Blocks Relocation Problem und seiner Komplexität: M. Caserta, S. Schwarze, S. Voß, „A mathematical formulation and complexity considerations for the blocks relocation problem“, European Journal of Operational Research (2012).
  • Zur iterativen Vertiefung (IDA*): R. E. Korf, „Depth-first iterative-deepening: an optimal admissible tree search“, Artificial Intelligence (1985).

Die Quelle der Demo nennt keine Literatur. Die beiden Verweise sind aus dem Gedächtnis ergänzt und nicht nachgeschlagen; ebenso der Hinweis, dass das Blocks Relocation Problem im Allgemeinen NP-schwer ist (so auch die Demo). Die Rechnungen dieser Seite sind keine Messungen der Demo.