Spending a Budget Across Two Levels

Manuel D. Rossetti, PhD P.E.

Agenda

  • What is actually being chosen, and against what
  • Marginal analysis, and the convexity that licenses it
  • Two echelons break that convexity
  • Flushout: buying one unit can empty part of the depot
  • Combining items, and why unit price is the wrong ranking
  • Two optimizers that disagree, and which one respects the budget

Everything So Far Was Handed Its Answer

Both models take \(S_0\) and the \(S_j\) as arguments and return backorders.

They evaluate a plan. They do not produce one.

A utility with nine repairable items and four storerooms is choosing forty-five numbers, and they are not independent, because they compete for the same money.

The Objective

\[ \mathit{EBO} = \sum_{\text{items}}\;\sum_{j=1}^{J}\bar{B}_j(S_j) \]

subject to the total cost not exceeding a budget.

Backorders, not dollars. A repairable part does not cost money when it is missing: it grounds the aircraft.

Notice What Is Missing From That Sum

\(\bar{B}_0\) does not appear.

No crew waits at a depot.

A depot backorder costs by lengthening \(\bar{W}\), which inflates every storeroom’s pipeline, which raises the storeroom backorders the objective does count.

So depot stock is valued entirely for what it does four hundred miles away.

That is what makes this one optimization rather than five.

Marginal Analysis

For each item and each location, compute the delta value:

\[ \delta(S) = \frac{\bar{B}(S) - \bar{B}(S+1)}{c} = \frac{G^{0}(S)}{c} \]

backorders removed per dollar. Then buy repeatedly, always taking the largest.

Earliest published reference: O. Gross, RAND, 1956.

An Aside on the Name

Sherbrooke tells the story of briefing a general in Strategic Air Command on the technique.

The general objected that SAC would never accept anything marginal.

Sherbrooke adds that recent references sometimes call it the “greedy heuristic”, hardly an improvement.

Why It Works

The procedure is only defensible if the delta values decline as you buy.

They do, at a single location: \(G^{0}\) is a complementary distribution function and never rises.

That is convexity of \(\bar{B}(S)\), and the sum of convex functions is convex.

If they did not: a one-step look-ahead would undervalue the item, and other items whose deltas sit in between would be bought prematurely.

And at Two Echelons It Is Not So

Fix the depot’s stock and vary a storeroom’s: convex, for the single-location reason.

But the depot’s stock is a decision too, and moving it changes \(\bar{W}\), which moves every storeroom at once.

Each row of Table 3-3 is convex […] But as we move from one level of depot stock to another in the optimal solutions, there is no assurance of convexity.

On the Chapter’s Own Item

Best split of a given number of transformers, computed with VARI-METRIC.

Units \(S_0\) at storerooms \(\mathit{EBO}\) Reduction
10 10 0 18.6080 0.9967
11 11 0 17.6154 0.9927
12 12 0 16.6303 0.9850
13 9 4 15.6433 0.9870
14 10 4 14.6587 0.9846
15 11 4 13.6817 0.9770
19 15 4 9.9647 0.8842
20 12 8 9.1088 0.8559
21 13 8 8.2462 0.8627

Read the Reduction Column for an Increase

The twelfth transformer removes 0.9850.

The thirteenth removes 0.9870, which is more.

A procedure comparing one-step improvements will undervalue this item at exactly those points, and spend the money elsewhere.

Name the Bad Point Carefully

The reduction rising at 13 means total 12 lies above the line joining 11 and 13.

Check it:

\[ \frac{17.6154 + 15.6433}{2} = 16.6294 < 16.6303 \]

So 12 is the plan never worth buying. It is easy to name the row below it instead, and strike out the wrong one.

Convexification

[The non-convex points] are easily dealt with by excluding them as potential solutions […] the marginal analysis will jump to the next convex point at the correct time, buying at least two more units of stock of the item.

So totals 12 and 20 are struck out.

The procedure moves from 11 straight to 13, quoting the average of the two reductions as its delta value.

Now Read the Depot Column

Units 10 11 12 13 … 19 20 21
Best \(S_0\) 10 11 12 9 15 12 13

The optimal depot stock falls as the total rises.

Buy one more transformer, and the right answer is to move three of the ones you already had out of the depot.

Flushout

after three units of stock have been allocated optimally to depot and more stock is available for allocation, it becomes optimal to take some of that depot stock and flush it out to the bases.

Sherbrooke notes it is more common when the bases are alike, which is why the four storerooms here were made identical.

Why It Happens

Depot stock is pooled, and pooled stock is efficient.

A unit there buys \(G^{0}(S_0)/\lambda_0\) off the delay, divided among four storerooms.

A unit at a storeroom is not pooled, helps only that storeroom, but helps immediately and sits on the right shelf.

While the depot is nearly empty, the pooling dominates: the delay it removes is enormous.

Once the depot is comfortable, the delay left to remove is small, and a unit does more good where a crew can reach it.

This Is the Positioning Answer

The first deck asked where stock should sit and said the answer would come out of a policy calculation.

Here it is, as a column of a table whose purpose was to choose stock levels.

Not “should this item be forward stocked?”

But “forward stocked at what level of total investment?”

That is a better question, it is the one a utility can act on, and the answer is not monotone, so no rule of thumb produces it.

Combining Items

Same rule, with the reductions divided by unit cost.

when we combine across items, the backorder reductions (first differences) must be divided by unit cost.

Add a voltage regulator at $9,500, failing 12 times a year at each storeroom, a fifth rebuilt locally.

The Merged Sequence

Step Bought \(\delta\) per $1,000 Cumulative \(\mathit{EBO}\) xfmr \(\mathit{EBO}\) reg
1 transformer 0.2632 $3,800 27.6027 11.7041
12 transformer, two 0.2595 $49,400 15.6433 11.7041
19 transformer, two 0.2261 $79,800 8.2462 11.7041
28 transformer 0.1148 $114,000 2.5852 11.7041
29 regulator 0.1053 $123,500 2.5852 10.7042
34 transformer 0.0988 $165,300 2.2096 6.7655
41 regulator 0.0734 $214,700 1.3122 3.5973

The delta column never rises. That is what convexification bought.

Twenty-Eight Transformers First

Not one regulator until $114,000 has gone into transformers.

That is not a judgement about regulators. It is arithmetic.

The transformer removes about a quarter of a backorder per thousand dollars; the regulator about a tenth.

A planner reasoning by unit price would have bought regulators first, on the grounds that they are the expensive item and therefore the important one.

What the Procedure Returns

Not one answer. A curve.

Every step of the merge is an efficient plan for the money spent up to that point.

That is more useful than a single plan, because the budget is usually not fixed until somebody has seen what the money buys.

“Is the step from $114,000 to $123,500 worth it?” is a question the utility can answer and the model cannot.

One Practical Warning

The last buy can overshoot badly if the final unit selected is an expensive one.

Remedy: take the levels reached after the overshoot as minimum levels, rerun, and repeat.

That is not a defect in marginal analysis. It is the integrality of the problem, the same overshoot that made the newsvendor rule a first level at or above rule.

There Is a Second Optimizer

Attach a price \(\theta\) to money and minimise

\[ w(\theta) = \sum_j \bar{B}_j(S_j) + \theta\left(c_0 S_0 + \sum_j c_j S_j\right) \]

At a fixed \(\theta\) the storerooms no longer compete for a budget, so each solves its own newsvendor:

\[ S_j = \min\left\{S : G(S) \ge 1 - \theta c_j\right\} \]

No search at a storeroom at all. The depot still needs one.

Then Find the Right Price

Cost falls as \(\theta\) rises, so the budget gap is decreasing.

Enumerate a grid and keep the smallest absolute gap.

Or bisect on the sign change.

These are not the same stopping rule, and they do not agree.

The Cost Is a Step Function

Stock levels are integers, so near the answer the cost steps straight over the budget:

\(\theta\) \(5.1356 \times 10^{-5}\) \(5.1361 \times 10^{-5}\)
cost $250,800 $247,000

No multiplier spends exactly $250,000. A search has to choose a side.

Three Searches, Two to One

Search Spend Storeroom backorders Inside budget
Marginal analysis $247,000 2.8792 yes
Lagrangian, bisection $247,000 2.8792 yes
Lagrangian, enumeration $250,800 2.6840 no, by $800

The bisection converges on the step and returns the feasible side.

The enumeration keeps the smallest absolute gap, and $800 over is nearer than $3,000 under.

Neither Rule Is Wrong

A planner who must not overspend wants the bisection or the marginal analysis.

A planner asking what the budget nearly buys is better served by the enumeration, which reports here that $800 more removes another 0.2 backorders.

What you must not do is read the enumeration’s answer as though it respected the budget.

And the Two Approaches Differ Again

Marginal analysis returns the whole curve and never overspends. It pays for that by enumerating every plan for every item first.

The Lagrangian returns one plan and gets there without building a curve at all.

Which recommends it when the item count runs into the thousands and the budget is genuinely fixed.

One Scale Trap

A storeroom stocks nothing once \(\theta \ge 1/c_j\).

For a $3,800 transformer the entire useful range is \(2.6 \times 10^{-4}\).

Search \((10^{-3}, 10^{-1})\) and the algorithm reports, correctly and uselessly, that no root exists: every candidate prices money so dearly that nothing is stocked.

Bound the interval by \(1/c\), do not guess it.

Where We Landed

  • Positioning is answered as a schedule against the budget, not once and for all
  • Two echelons break the convexity that licenses the greedy rule; convexify
  • Flushout is real, counterintuitive, and no rule of thumb produces it
  • Rank by backorders per dollar, never by unit price
  • Two optimizers, two stopping rules, and only some respect the budget

All of it rests on \(Q = 1\): the demand a storeroom passes up is its own demand, arrival for arrival.

Remove that, and the pass-up stream has to be derived from scratch.

⌂ Index