Stochastic Programming
Stochastic programming optimizes decisions when some data is random, using probability distributions to model uncertainty and expected outcomes.
Deciding under uncertainty
Deterministic optimization assumes all data is known. In reality demand, yields, weather, and prices are uncertain when decisions are made. Stochastic programming models the uncertain data as random variables with a known (or estimated) probability distribution, and optimizes a probabilistic objective, most often the expected cost, over that distribution.
Recourse: decisions in stages
The key structure is recourse: some decisions are made now (here-and-now), before uncertainty is revealed, and others are made later (wait-and-see), after observing the outcome. The now-decision must be robust across all futures because it cannot be changed, while the later decisions adapt to what actually happens. This staged view distinguishes stochastic programming from simply optimizing an average.
Solution approaches
Continuous distributions are usually discretized into a finite set of scenarios, each with a probability, turning the expectation into a weighted sum. The resulting deterministic-equivalent program is large but structured, with one block of constraints per scenario coupled by the shared first-stage decision. Decomposition methods such as Benders (L-shaped) exploit this block structure to solve problems too large to tackle whole.
- Scenario generation: sample or discretize the distribution
- Deterministic equivalent: one large program over all scenarios
- L-shaped / Benders decomposition: solve stage by stage
- Progressive hedging: decompose by scenario, enforce agreement
Measures beyond the mean
Optimizing expected cost ignores tail risk. Risk-averse stochastic programming instead optimizes a risk measure such as conditional value-at-risk, which weights bad outcomes more heavily. This produces decisions that accept a slightly higher average cost in exchange for protection against rare severe outcomes, which is often what a planner actually wants. Stochastic programming applies wherever staged decisions meet quantifiable uncertainty, from energy dispatch to supply-chain and capacity planning.