Wann bestellen und wie viel auf Lager halten bei ungewisser Nachfrage?
Stellen wir uns vor, wir betreiben einen Online-Shop für ein beliebtes Produkt, zum Beispiel hochwertige Kaffeebohnen. Jeden Tag bestellen Kunden bei uns, aber wir wissen nie genau, wie viele es sein werden. Mal sind es 10 Beutel, mal 30.
Das bringt uns in ein klassisches Dilemma:
Im Gegensatz zu den bisherigen Vorlesungen, haben wir dieses mal eine ungewisse Nachfrage! Die zwei zentralen Fragen sind:
Um unser Lager gut zu steuern, müssen wir die Bestände präzise erfassen. Es gibt verschiedene Arten von Beständen, die wir unterscheiden müssen.
Die wichtigste Kennzahl für unsere Bestellentscheidung ist der Disponibler Bestand (\(I^D\)), auch “Bestandsposition” genannt. Er gibt an, wie viel Ware uns insgesamt zur Verfügung steht, um zukünftige Nachfragen zu decken.
\[ I^D = \text{Physischer Bestand} + \text{Bestellbestand} - \text{Fehlbestand} \] \[ I^D = I^P + I^O - I^B \]
Warum ist diese Zahl so wichtig? Weil sie die gesamte Versorgungslage berücksichtigt. Eine Bestellung auszulösen, nur weil der physische Bestand niedrig ist, wäre ein Fehler, wenn bereits eine große Lieferung unterwegs ist.
Schauen wir uns an, wie sich diese Zahlen im Zeitverlauf ändern. Wir verwenden eine (s, q)-Politik.
Szenario:
Ablauf innerhalb einer Woche:
Woche | Ereignisse | \(d_t\) | \(I^P\) | \(I^O\) | \(I^B\) | \(I^D\) | Kommentar |
---|---|---|---|---|---|---|---|
0 | Start | - | 120 | 0 | 0 | 120 | Anfangszustand. \(I^D > s\), keine Bestellung. |
1 | Nachfrage | 30 | 90 | 0 | 0 | 90 | \(I^P\) sinkt. \(I^D = 120 - 30 = 90\). \(I^D < s\), also Bestellung! |
Bestellung | 90 | 250 | 0 | 340 | Bestellung über 250 Stück wird ausgelöst. \(I^O\) steigt. \(I^D\) steigt sofort um 250. | ||
2 | Nachfrage | 40 | 50 | 250 | 0 | 300 | \(I^P\) sinkt. \(I^D = 340 - 40 = 300\). \(I^D > s\), keine neue Bestellung. |
3 | Nachfrage | 50 | 0 | 250 | 0 | 250 | \(I^P\) sinkt auf 0. \(I^D = 300 - 50 = 250\). \(I^D > s\), keine neue Bestellung. |
4 | Wareneingang | 250 | 0 | 0 | 250 | Die Bestellung aus Woche 1 (vor \(L=3\) Wochen) trifft ein! | |
Nachfrage | 45 | 205 | 0 | 0 | 205 | \(I^P\) sinkt. \(I^D = 250 - 45 = 205\). \(I^D > s\), keine neue Bestellung. |
Frage: “Wie hoch ist die Wahrscheinlichkeit, dass wir in einem Bestellzyklus keinen Fehlbestand haben?”
Ein \(\alpha\)-Servicegrad von 99% bedeutet, dass in 99 von 100 Bestellzyklen (die Zeit zwischen zwei Bestellungen) die Nachfrage vollständig aus dem Lager bedient werden kann. Er fokussiert auf das Ereignis eines Fehlbestands.
Formelhaft ausgedrückt ist der \(\alpha\)-Servicegrad1 die Wahrscheinlichkeit, dass die Nachfrage im Risikozeitraum (\(Y_L\)) den Bestellpunkt (\(s\)) nicht übersteigt: \[ \alpha = P(Y_L \le s) \]
Frage: “Welchen prozentualen Anteil der gesamten Nachfrage können wir direkt aus dem Lager bedienen?”
Ein \(\beta\)-Servicegrad von 99% bedeutet, dass 99 von 100 nachgefragten Einheiten sofort geliefert werden können. Er fokussiert auf die Menge der nicht gelieferten Einheiten.
Er wird berechnet, indem man die erwartete Fehlmenge pro Zyklus (\(E(B)\)) ins Verhältnis zur Bestellmenge (\(q\)) setzt: \[ \beta = 1 - \frac{E(B)}{q} \]
Frage: “Wie viel Prozent der Zeit ist unser Produkt tatsächlich auf Lager und verfügbar?”
Dieser Servicegrad betrachtet das Problem aus einer zeitlichen Perspektive. Ein \(\gamma\)-Servicegrad von 99% bedeutet, dass an 99 von 100 Tagen ein Kunde, der unseren Shop besucht, das Produkt in den Warenkorb legen könnte. Er fokussiert sich auf die permanente Verfügbarkeit.
Konzeptionell lässt er sich so darstellen: \[ \gamma \approx \frac{\text{Zeit mit positivem Lagerbestand}}{\text{Gesamtzeit}} \] Die exakte Berechnung ist aufwändiger, aber das Ziel ist einfach die Minimierung der Zeitfenster, in denen Kunden ein leeres Regal vorfinden.
Zusammenfassend:
Der kritischste Moment für jedes Lager ist die Wiederbeschaffungszeit (WBZ), auch Risikozeitraum genannt. Das ist die Zeitspanne \(L\) zwischen dem Absenden einer Bestellung und dem Eintreffen der Ware. In dieser Zeit können wir nicht auf unvorhergesehen hohe Nachfrage reagieren – unser Lager ist auf sich allein gestellt.
Um unseren Bestellpunkt \(s\) festzulegen, müssen wir die Nachfrage während dieses Risikozeitraums (\(Y_L\)) modellieren.
Sehr oft kann die Summe vieler kleiner, zufälliger Nachfragen durch eine Normalverteilung (Glockenkurve) angenähert werden.
Angenommen, die wöchentliche Nachfrage hat einen Mittelwert \(\mu_d\) und eine Standardabweichung \(\sigma_d\). Für eine WBZ von \(L\) Wochen gilt dann für die Gesamtnachfrage \(Y_L\):
Beispiel:
Daraus folgt:
Wir erwarten also, in den 4 Wochen 200 Stück zu verkaufen, mit einer Unsicherheit von \(\sigma_L = 30\).
Manchmal ist die Nachfrage klein und diskret. Zum Beispiel verkauft ein Kiosk pro Tag 0, 1 oder 2 Flaschen einer speziellen Limonade. Wie ermittelt man die Nachfrageverteilung für eine WBZ von 2 Tagen? Wir müssen alle Möglichkeiten kombinieren. Diesen Prozess nennt man Faltung.
Beispiel:
Wir wollen die Verteilung für \(Y_2 = D_1 + D_2\) finden, wobei \(D_1\) die Nachfrage an Tag 1 und \(D_2\) die an Tag 2 ist.
Die Verteilung für die Gesamtnachfrage über 2 Tage ist also:
\(Y_2\) | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
P(\(Y_2\)) | 0.04 | 0.24 | 0.44 | 0.24 | 0.04 |
Der Bestellpunkt \(s\) muss so hoch sein, dass er die Nachfrage während der Wiederbeschaffungszeit mit hoher Wahrscheinlichkeit decken kann. Er besteht aus zwei Teilen:
\[ s = (\text{Erwartete Nachfrage während WBZ}) + (\text{Sicherheitspuffer}) \] \[ s = \mu_L + \text{Sicherheitsbestand (SS)} \]
Der Sicherheitsbestand (SS) ist der zusätzliche Vorrat, den wir nur für den Fall halten, dass die Nachfrage höher als erwartet ausfällt. Seine Höhe hängt direkt von unserem gewünschten Servicegrad ab.
Bei normalverteilter Nachfrage lässt sich der Bestellpunkt direkt mit einer Formel berechnen, die den Sicherheitsbestand bereits enthält:
\[ s = \mu_L + z \cdot \sigma_L \]
Hierbei ist:
Je höher der Servicegrad, desto größer der z-Wert und desto mehr Sicherheitsbestand halten wir. 1
\(\alpha\)-Servicegrad | z-Wert | Bedeutung |
---|---|---|
50% | 0.000 | Exakt der Erwartungswert (kein Puffer). |
55% | 0.126 | 0.126 Standardabweichungen als Puffer. |
60% | 0.253 | 0.253 Standardabweichungen als Puffer. |
65% | 0.385 | 0.385 Standardabweichungen als Puffer. |
70% | 0.524 | 0.524 Standardabweichungen als Puffer. |
75% | 0.674 | 0.674 Standardabweichungen als Puffer. |
80% | 0.842 | 0.842 Standardabweichungen als Puffer. |
85% | 1.036 | 1.036 Standardabweichungen als Puffer. |
90% | 1.282 | 1.282 Standardabweichungen als Puffer. |
95% | 1.645 | 1.645 Standardabweichungen als Puffer. |
99% | 2.326 | 2.326 Standardabweichungen als Puffer. |
Beispiel (Fortsetzung von Fall 1):
Wir würden also immer dann eine neue Bestellung auslösen, wenn unser verfügbarer Bestand auf 270 Stück sinkt.
Wir wissen nun, wie wahrscheinlich ein Fehlbestand ist (\(\alpha\)-Servicegrad).
Hier können wir die sogenannte Einheiten-Verlustfunktion \(G_u(z)\) verwenden:
\[ E(B) = \sigma_L \cdot G_u(z) \]
Der Wert für \(G_u(z)\) hängt nur vom Sicherheitsfaktor \(z\) ab. 1
z-Wert | \(G_u(z)\) |
---|---|
1.282 | 0.047 |
1.645 | 0.021 |
2.326 | 0.003 |
Beispiel (Fortsetzung von Fall 1): \(z=2.326\), \(\sigma_L=30\).
Hier berechnen wir den Erwartungswert direkt, indem wir alle möglichen Fehlmengen mit ihrer Wahrscheinlichkeit gewichten:
\[ E(B) = \sum_{\text{alle } y} \max(0, y - s) \cdot P(Y_L=y) \]
Beispiel (Limonaden-Kiosk, unser Beispiel aus Fall 2):
Das bedeutet, dass wir im Durchschnitt 0.04 Flaschen pro Zyklus verlieren.
Mit unserem berechneten Wert für die erwartete Fehlmenge \(E(B)\) und der in Abschnitt 3 vorgestellten Formel können wir nun den \(\beta\)-Servicegrad (Fill Rate) für eine gegebene Bestellmenge \(q\) ausrechnen.
Beispiel (Smartphone): Wir haben \(E(B)=0.09\) berechnet, die feste Bestellmenge sei \(q=500\).
\(\beta = 1 - \frac{E(B)}{q} = 1 - \frac{0.09}{500} = 1 - 0.00018 = 0.99982\)
Manchmal ist es nicht nur wichtig, ob ein Fehlbestand auftritt, sondern auch, wen er betrifft.
Stellen wir uns vor, wir beliefern nicht nur Privatkunden, sondern auch ein Luxus-Café, das ein wichtiger Stammkunde ist. Ein Fehlbestand bei diesem Kunden wäre weitaus schlimmer als bei einem einmaligen Online-Besteller. Hier kann man über Kundenklassen nachdenken.
Man kann den Bestand so steuern, dass wichtige Kunden bevorzugt behandelt werden. Zwei einfache Strategien sind:
Neben den Servicegraden können wir auch fragen: Was bedeutet ein bestimmter Sicherheitsbestand für die Wartezeit der Kunden?
Reichweite: Stellt die Frage: “Wie viele Perioden (z.B. Wochen) reicht unser Lagerbestand noch, ab dem Moment, in dem wir nachbestellen?” Eine einfache Näherungsformel für die erwartete Reichweite lautet: \[ \text{Erwartete Reichweite} \approx \frac{s}{\mu_d} \] wobei \(s\) der Bestellpunkt und \(\mu_d\) die durchschnittliche Nachfrage pro Periode ist. Bei einem Bestellpunkt von \(s=270\) und einer wöchentlichen Nachfrage von \(\mu_d=50\) wäre die erwartete Reichweite also \(270 / 50 = 5.4\) Wochen. 1
Lieferunfähigkeitsdauer: Dies ist die durchschnittliche Zeit, in der wir keine Ware haben. Eine Lieferunfähigkeit entsteht, wenn die Wiederbeschaffungszeit länger ist als die Reichweite des Bestands. \[ \text{Erwartete Lieferunfähigkeitsdauer} \approx \max(0, L - \text{Erwartete Reichweite}) \] wobei \(L\) die Wiederbeschaffungszeit ist. Nehmen wir an, wir würden einen niedrigeren Servicegrad von 85% anstreben (\(\alpha=0.85\), \(z=1.036\)). Der neue Bestellpunkt wäre \(s = 200 + 1.036 \cdot 30 \approx 231\). Die erwartete Reichweite wäre dann \(231 / 50 \approx 4.62\) Wochen. Mit einer Wiederbeschaffungszeit von \(L=4\) Wochen ergibt sich:
\[ \text{Erwartete Lieferunfähigkeitsdauer} \approx \max(0, 4 - 4.62) = 0 \]
Selbst bei einem 85%-Servicegrad erwarten wir nach dieser Näherung keine Lieferunfähigkeit. Würde unsere Wiederbeschaffungszeit jedoch auf \(L=5\) Wochen steigen, wäre die Situation anders:
\[ \text{Erwartete Lieferunfähigkeitsdauer} \approx \max(0, 5 - 4.62) = 0.38 \text{ Wochen} \]
Wir müssten also mit einer durchschnittlichen Lieferunfähigkeit von fast einer halben Woche rechnen. 2
Beide Kennzahlen hängen direkt von unserem Sicherheitsbestand ab. Ein höherer Sicherheitsbestand (und damit ein höherer Bestellpunkt \(s\)) erhöht die Reichweite und senkt die Dauer der Lieferunfähigkeit. Diese Kennzahlen helfen uns, die Auswirkungen unserer Bestandsentscheidungen direkt in “Kundenwartezeit” zu übersetzen.
Vorlesung 04: Bestandsmanagement | Tobias Vlćek | Home