Stochastic Methods · First introduced 7 Apr 2026

Stochastic Programming

The question is never whether uncertainty exists. The question is whether your optimisation model acknowledges it. — George B. Dantzig, on stochastic linear programming (1955)

Stochastic programming minimises expected cost across a probability distribution of scenarios rather than against a single forecast — producing decisions that are good on average rather than guaranteed for the worst case.

Core idea

In stochastic programming, uncertainty is represented as a discrete set of scenarios, each with an assigned probability. Rather than optimising a single forecast, the model chooses decisions that minimise the expected cost across all scenarios weighted by their probabilities. The decisions split into two (or more) stages: here-and-now decisions made before uncertainty is revealed, and wait-and-see recourse decisions made after observing which scenario actually occurred.

The critical assumption is that you have probability information. If the distribution is accurate, stochastic programming produces the best average outcome. But it accepts that in tail scenarios — the ones with low probability — costs can be arbitrarily high. The model trades off good average performance against non-negligible risk in bad scenarios.


Concrete example: warehouse inventory under uncertain demand
Scenario — supply chain

Stage 1 (before uncertainty): The warehouse manager places an order for inventory with her supplier, committing to a quantity before knowing whether demand this week will be low (probability 0.5: 100 units), medium (0.3: 250 units), or high (0.2: 500 units).

Stage 2 (after uncertainty): Once demand is revealed, the manager decides whether to place an emergency reorder at a higher unit cost. If she ordered 250 units in stage 1 and demand is high, she reorders 250 more; if demand is low, she doesn't reorder.

Optimisation: Choose stage-1 order quantity to minimise E[holding cost + stockout penalty + emergency order cost]. The expected value weights each scenario: 0.5 × (cost if low demand) + 0.3 × (cost if medium) + 0.2 × (cost if high). The model accepts that a 0.2 probability of high demand creates high costs in that scenario — but costs are minimised on average across the full distribution.


Why practitioners confuse this with robust optimisation
Risk posture and probability information are the separators

Stochastic programming assumes you have probability information and optimises the expected cost. It is risk-neutral: paying 1 unit of cost for certain is the same as paying 2 units with 0.5 probability.

Robust optimisation assumes you have no probability information, only a set of plausible scenarios. It optimises for the worst case within that set. It is risk-averse: it refuses to accept any plan that fails in any scenario in the uncertainty set.

The confusion arises because practitioners often call "conservative" or "safe" plans "robust," when what they really mean is that the plan works well under a broad range of scenarios. That is actually a property of stochastic programming with a wide probability distribution. The distinction is sharp: if you don't have probabilities, use robust optimisation; if you do, use stochastic programming.


Where this shows up in practice
Supply Chain
Inventory planning under uncertain demand; production scheduling under uncertain order arrivals and machine breakdowns.
Finance
Portfolio optimisation under uncertain asset returns and interest rates; multi-period wealth management across multiple market scenarios.
Energy
Hydro reservoir scheduling under uncertain inflows; day-ahead power generation commitment under uncertain renewable supply.
Transport
Fleet routing under uncertain travel times; driver allocation under uncertain demand for rides or deliveries.

One-line version

Stochastic programming minimises expected cost and accepts that bad scenarios will sometimes occur. If occasional failure is unacceptable rather than just costly, robust optimisation is the right model — not a better scenario set.


Related concepts