Operations & Supply Chain
Wagner-Whitin Dynamic Lot-Sizing Forward DP Formula vs Silver-Meal
Implement Wagner and Whitin’s (1958) zero-inventory regeneration dynamic programming recurrence F_t in Excel and Arte Sheets and expose where myopic Silver-Meal overpays.
Trace by hand a 4-period schedule where Silver-Meal misses the global optimum
Wagner and Whitin (1958) proved the Zero-Inventory Property: an optimal production schedule only places a setup order in period j when entering inventory I_{j-1} = 0, so each order covers an integer block of periods j..t. Forward DP evaluates F_t = MIN_{1 <= j <= t}(F_{j-1} + S + h * SUM_{k=j+1..t}(k - j)*D_k) with F_0 = 0.
Test setup cost S = 100 (B2), holding cost h = 1 (B3), and lumpy demands D1 = 40, D2 = 80, D3 = 30, D4 = 120 in B5:E5. Myopic Silver-Meal sees average cost per period fall across P1 (100), P1..P2 (90), and P1..P3 (240 / 3 = 80) before jumping at P4 (600 / 4 = 150), locking in [P1..P3] + [P4] = 240 + 100 = 340! Exact Wagner-Whitin DP computes F_1 = 100, F_2 = MIN(180, 200) = 180, F_3 = MIN(240, F_1 + 100 + 30, F_2 + 100) = MIN(240, 230, 280) = 230 (placing a fresh setup at P2 to cover P2..P3!), and F_4 = MIN(600, 470, 400, 330) = 330 — beating Silver-Meal by 10!
| Horizon Step | Wagner-Whitin DP Candidates (j = 1..t) | Optimal F_t |
|---|---|---|
| Period 1 (D1 = 40) | j=1: 0 + 100 | F_1 = 100 |
| Period 2 (D2 = 80) | MIN(j=1: 180, j=2: 100 + 100) | F_2 = 180 |
| Period 3 (D3 = 30) | MIN(j=1: 240, j=2: 100 + 130, j=3: 180 + 100) | F_3 = 230 (Splits at P2!) |
| Period 4 (D4 = 120) | MIN(j=1: 600, j=2: 470, j=3: 400, j=4: 230 + 100) | F_4 = 330 (vs 340 Silver-Meal) |
Wagner-Whitin Period-3 Regeneration Cost F_3 Formula
Evaluate all three zero-inventory regeneration origins j = 1, 2, 3 via MIN inside row 6 so you can see j = 2 (230) beat the P1..P3 single batch (240).
=MIN($B$2 + $B$3 * (C5 + 2 * D5), B6 + $B$2 + $B$3 * D5, C6 + $B$2)4-Period Optimal Cost F_4 & Silver-Meal Gap Check
Evaluate F_4 across all four regeneration origins j = 1..4. If you practise with the in-app Pro assistant, ask: “Give me a hint on why starting a new order in Period 2 saves money by Period 3 even though F_2 was cheaper without a Period-2 setup.” Now raise setup cost S in B2 from 100 to 150: F_3 flips to a single P1..P3 batch (290 vs 330) and F_4 equals 440, matching Silver-Meal.
=IF(OR(B2 < 0, B3 < 0), "Invalid Cost Input", MIN(B2 + B3 * (C5 + 2 * D5 + 3 * E5), B6 + B2 + B3 * (D5 + 2 * E5), C6 + B2 + B3 * E5, D6 + B2))Try the example
Use the original values or change them to test your understanding.