453. Capacity-Constrained

Relax one dimension from basic EOQ: capacity is no longer unlimited. A shared resource — warehouse space, working-capital budget, or shelf footprint — caps the total inventory you can hold at any moment. Multiple items compete for the same budget.

453.1. Setup

𝑛 items indexed 𝑖=1,…,𝑛:

Constraint (peak inventory after a fresh order arrives):

∑𝑖=1𝑛𝑣𝑖𝑄𝑖≤𝑉

If individual EOQs already satisfy the constraint, the constraint is not binding — use them directly. The interesting case is when ∑𝑖𝑣𝑖𝑄𝑖basic>𝑉.

453.2. Lagrangian formulation

Minimize total cost subject to the capacity constraint:

min𝑄1,…,𝑄𝑛∑𝑖[𝑆𝑖(𝐷𝑖/𝑄𝑖)+ℎ𝑖(𝑄𝑖/2)]s.t.∑𝑖𝑣𝑖𝑄𝑖≤𝑉

Introduce Lagrange multiplier 𝜆≥0 for the constraint:

𝐿(𝑄1,…,𝑄𝑛,𝜆)=∑𝑖[𝑆𝑖(𝐷𝑖/𝑄𝑖)+ℎ𝑖(𝑄𝑖/2)]+𝜆(∑𝑖𝑣𝑖𝑄𝑖−𝑉)

453.3. KKT / FOC in 𝑄𝑖

For each 𝑖, 𝜕𝐿/𝜕𝑄𝑖=0:

−𝑆𝑖𝐷𝑖𝑄𝑖2+ℎ𝑖2+𝜆𝑣𝑖=0𝑆𝑖𝐷𝑖𝑄𝑖2=ℎ𝑖2+𝜆𝑣𝑖=ℎ𝑖+2𝜆𝑣𝑖2𝑄𝑖∗(𝜆)=2𝑆𝑖𝐷𝑖ℎ𝑖+2𝜆𝑣𝑖

This is basic EOQ with an inflated holding cost ℎ𝑖+2𝜆𝑣𝑖. The Lagrange multiplier 𝜆 raises the effective holding cost on every item in proportion to its capacity consumption 𝑣𝑖 — items that hog more capacity get penalized more, shrinking their 𝑄𝑖.

453.4. Find 𝜆 from the constraint

If the constraint binds, ∑𝑖𝑣𝑖𝑄𝑖∗(𝜆)=𝑉. This is one equation in one unknown 𝜆 — solve numerically (or in closed form for some special cases).

Special case: budget constraint with proportional holding. If 𝑣𝑖=𝑐𝑖 (capacity is dollars), ℎ𝑖=𝑖𝑐𝑖 (carrying-rate model), and we substitute into 𝑄𝑖∗(𝜆):

𝑄𝑖∗=2𝑆𝑖𝐷𝑖𝑖𝑐𝑖+2𝜆𝑐𝑖=2𝑆𝑖𝐷𝑖𝑐𝑖⋅1𝑖+2𝜆

Then 𝑣𝑖𝑄𝑖∗=𝑐𝑖𝑄𝑖∗=2𝑆𝑖𝐷𝑖𝑐𝑖/𝑖+2𝜆. Sum:

∑𝑖𝑣𝑖𝑄𝑖∗=(1𝑖+2𝜆)∑𝑖2𝑆𝑖𝐷𝑖𝑐𝑖=𝑉

Solve for 𝜆:

𝑖+2𝜆=∑𝑖2𝑆𝑖𝐷𝑖𝑐𝑖𝑉𝜆=12[(∑𝑖2𝑆𝑖𝐷𝑖𝑐𝑖𝑉)2−𝑖]

For other constraint forms, 𝜆 comes out of a 1-D root-finding pass over ∑𝑖𝑣𝑖𝑄𝑖∗(𝜆)−𝑉=0 (monotone decreasing in 𝜆, so bisection works).

453.5. Algorithm

  1. Compute unconstrained 𝑄𝑖basic=2𝑆𝑖𝐷𝑖/ℎ𝑖 for each 𝑖.
  2. Check ∑𝑖𝑣𝑖𝑄𝑖basic≤𝑉. If yes, done — constraint not binding.
  3. Else, solve for 𝜆 (closed form above, or numerical).
  4. Each 𝑄𝑖∗=2𝑆𝑖𝐷𝑖/(ℎ𝑖+2𝜆𝑣𝑖).

453.6. Final formulas

𝑄𝑖∗(𝜆)=2𝑆𝑖𝐷𝑖ℎ𝑖+2𝜆𝑣𝑖where𝜆≥0satisfies∑𝑖𝑣𝑖𝑄𝑖∗(𝜆)=𝑉

Sanity check: if 𝑉→∞ (no constraint), 𝜆→0 and 𝑄𝑖∗→2𝑆𝑖𝐷𝑖/ℎ𝑖 — basic EOQs ✓.

Example

Given (2 items sharing a budget-constrained warehouse):

  • Item 1: 𝐷1=12000, 𝑆1 = $50, 𝑐1 = $10, 𝑖=0.20 → ℎ1=2
  • Item 2: 𝐷2=6000, 𝑆2 = $50, 𝑐2 = $20, 𝑖=0.20 → ℎ2=4
  • Constraint: peak inventory value ∑𝑖𝑐𝑖𝑄𝑖≤𝑉 where 𝑉 = $10,000

Step 1 — unconstrained EOQs and constraint check

𝑄1basic=2⋅50⋅120002=775𝑄2basic=2⋅50⋅60004=387

Peak inventory value =10⋅775+20⋅387=7750+7740=15490. Exceeds the $10,000 budget — constraint binds.

Step 2 — find 𝜆 via the closed-form

∑𝑖2𝑆𝑖𝐷𝑖𝑐𝑖=2⋅50⋅12000⋅10+2⋅50⋅6000⋅20=12000000+12000000≈3464+3464=6928𝑖+2𝜆=692810000=0.6928→𝑖+2𝜆=0.482𝜆=0.48−0.20=0.28→𝜆=0.14

Step 3 — constrained order quantities

Effective holding cost per item: ℎ𝑖+2𝜆𝑣𝑖=ℎ𝑖+0.28𝑐𝑖:

  • Item 1: ℎ1eff=2+0.28⋅10=4.8
  • Item 2: ℎ2eff=4+0.28⋅20=9.6
𝑄1∗=2⋅50⋅120004.8=250000=500𝑄2∗=2⋅50⋅60009.6=62500=250

Step 4 — verify the constraint

10⋅500+20⋅250=5000+5000=10000 ✓ exactly hits the budget.

Step 5 — total cost and comparison to basic EOQ

  • Item 1 cost: 50⋅12000/500+2⋅500/2=1200+500=1700
  • Item 2 cost: 50⋅6000/250+4⋅250/2=1200+500=1700
  • Total constrained: $3400

Unconstrained (basic EOQ for each):

  • Item 1: 2⋅50⋅12000⋅2≈1549
  • Item 2: 2⋅50⋅6000⋅4≈1549
  • Total unconstrained: $3098

Capacity penalty: $302/year (about 10% over unconstrained). The Lagrange multiplier 𝜆=0.14 acts as a shadow price — each $ of additional warehouse budget would save approximately 𝜆 × marginal value per year.