Unit Commitment

UC · MILP

Day-Ahead · Binary Commitment · Thermal Generation

Which generators should a system operator start, stop, or keep running over the next 24 hours to meet load at minimum total cost — accounting for the fuel each burns, the thousands of dollars to fire up a cold boiler, the physical constraints on ramping, and the minimum time a steam turbine must run once committed? This is the unit commitment problem: a mixed-integer program that every grid operator in the world solves every single day.

The problem

Real-world decision · mathematical characterization

Every evening around 10 a.m. local time, the day-ahead market of a typical ISO — PJM, MISO, CAISO, ERCOT in North America; Nord Pool in Europe; AEMO in Australia — closes. By noon, the system operator must publish a 24-hour schedule: which of the hundreds to thousands of generators in its footprint will be committed (turned on) for each hour of the next day, and which will stay offline. Each “on” generator will then receive a dispatch instruction telling it exactly how many megawatts to produce.

The problem is harder than it sounds. A coal unit can take 4–8 hours to warm up from cold start and burns a significant amount of fuel doing so — typically $2,000–$10,000 per start. Once online, it must run for several hours before it can be shut down (the minimum up time) and, if shut down, must stay off for a minimum period (minimum down time) before restarting. Output can only change at a bounded rate (ramp rate), typically a few megawatts per minute. The system must also maintain spinning reserve — extra committed capacity held back to cover the sudden loss of any single large unit.

These constraints turn what would otherwise be a simple least-cost dispatch into a combinatorial optimization problem with a binary variable for each generator-hour pair. With 500 generators over 24 hours, that's 12,000 binaries. Modern ISOs solve unit-commitment instances with tens of thousands of binaries and millions of continuous variables using branch-and-cut in Gurobi or CPLEX, routinely to an optimality gap below 0.1% in under five minutes.

Historical note
Early UC was solved by priority-list heuristics (commit units in order of average cost until demand is met). Garver (1962) gave the first integer-programming formulation in IEEE Trans. Power Apparatus and Systems. In the 1980s and 90s Lagrangian relaxation dominated industry practice — the 1983 ERCOT deployment and the 1996 Electricité de France scheduler both used it. Modern mixed-integer solvers became competitive in the 2000s; tight-and-compact formulations (Carrión & Arroyo, 2006; Morales-España et al., 2013) collapsed branch-and-bound times by an order of magnitude and made direct MILP the new industry default.

Under high renewable penetration, the deterministic UC that served the industry for sixty years is increasingly inadequate. Wind and solar forecast errors of 10–20% are routine; committing only the units that a point forecast justifies leaves insufficient flexibility to respond when the forecast misses. Stochastic UC (Takriti, Birge & Long, 1996; reviewed in Zheng, Wang & Liu, 2015) optimizes over a scenario tree; robust UC (Bertsimas et al., 2013) optimizes against the worst outcome inside a budgeted uncertainty set; chance-constrained UC guarantees feasibility with a specified probability. These variants form the research frontier and are increasingly deployed in practice.

Mathematical formulation

Three-binary MILP · Carrión & Arroyo (2006)

Notation

We index generators by $i \in \mathcal{G}$ and hours by $t \in \mathcal{T} = \{1, \dots, T\}$.

Sets, parameters, decision variables
SymbolMeaningUnits
$\mathcal{G}$Set of generators
$\mathcal{T}$Set of hours in horizon
$D_t$System load in hour $t$MW
$R_t$Spinning-reserve requirement in hour $t$MW
$P_i^{\min}, P_i^{\max}$Technical min and max of generator $i$MW
$RU_i, RD_i$Ramp-up and ramp-down limitsMW/h
$TU_i, TD_i$Minimum up and down timesh
$c_i(p)$Variable production cost curve$/h
$SU_i$Start-up cost of generator $i$$
$u_{i,t}$On/off status (binary){0,1}
$v_{i,t}$Start-up indicator (binary){0,1}
$w_{i,t}$Shut-down indicator (binary){0,1}
$p_{i,t}$Power output of generator $i$ in hour $t$MW

Objective(total cost minimization)

Minimize the sum of variable production cost, start-up cost, and no-load cost over all generators and hours:

$$\min \quad \sum_{t \in \mathcal{T}} \sum_{i \in \mathcal{G}} \Big[\, c_i(p_{i,t}) \cdot u_{i,t} \;+\; SU_i \cdot v_{i,t} \,\Big] \qquad \text{(1)}$$

The production cost curve $c_i(p)$ is typically quadratic ($a_i + b_i p + c_i p^2$) or piecewise-linear. In the dispatch step the quadratic curve produces the familiar equal-incremental-cost rule of economic dispatch; for the MILP we linearize it via tangent cuts.

Constraints

Power balance: total generation meets load in every hour.

$$\sum_{i \in \mathcal{G}} p_{i,t} \;=\; D_t \qquad \forall t \in \mathcal{T} \qquad \text{(2)}$$

Generation limits: output bounded by technical min/max when committed, zero when off.

$$P_i^{\min} \, u_{i,t} \;\le\; p_{i,t} \;\le\; P_i^{\max} \, u_{i,t} \qquad \forall i, t \qquad \text{(3)}$$

Start-up / shut-down logic: link the three binaries.

$$v_{i,t} - w_{i,t} \;=\; u_{i,t} - u_{i,t-1} \qquad \forall i, t \qquad \text{(4)}$$ $$v_{i,t} + w_{i,t} \;\le\; 1 \qquad \forall i, t \qquad \text{(5)}$$

Minimum up / down times: if just started, stay on for $TU_i$ hours; if just stopped, stay off for $TD_i$.

$$\sum_{\tau = t}^{t+TU_i - 1} u_{i,\tau} \;\ge\; TU_i \cdot v_{i,t} \qquad \forall i, t \qquad \text{(6)}$$ $$\sum_{\tau = t}^{t+TD_i - 1} (1 - u_{i,\tau}) \;\ge\; TD_i \cdot w_{i,t} \qquad \forall i, t \qquad \text{(7)}$$

Ramp limits: output cannot change faster than the machine allows.

$$p_{i,t} - p_{i,t-1} \;\le\; RU_i \cdot u_{i,t-1} + P_i^{\min} \cdot v_{i,t} \qquad \forall i, t \qquad \text{(8)}$$ $$p_{i,t-1} - p_{i,t} \;\le\; RD_i \cdot u_{i,t} + P_i^{\min} \cdot w_{i,t} \qquad \forall i, t \qquad \text{(9)}$$

Spinning-reserve adequacy: committed capacity must cover load plus reserve.

$$\sum_{i \in \mathcal{G}} P_i^{\max} \, u_{i,t} \;\ge\; D_t + R_t \qquad \forall t \qquad \text{(10)}$$

Binary and non-negativity:

$$u_{i,t}, v_{i,t}, w_{i,t} \in \{0, 1\}; \quad p_{i,t} \ge 0 \qquad \forall i, t \qquad \text{(11)}$$

Alternative: tight-and-compact formulationMorales-España et al. (2013)

The three-binary formulation above is already much tighter than the classical one-binary formulation because constraints (4)–(5) expose start-up and shut-down as decision variables rather than inferring them from $u$ differences. Morales-España, Latorre & Ramos (2013) further tighten the LP relaxation by adding valid inequalities for the minimum up/down time constraints — producing an LP relaxation that in their computational study is typically within 0.01–0.1% of the integer optimum. This collapses branch-and-bound times by an order of magnitude versus formulation (6)–(7) and is the formulation most commercial ISO tools use today.

The trade-off is more constraints and a larger LP at each node of the branching tree — worth it on real instances because fewer nodes are explored.

Complexity

UC is NP-hard. Bard (1988) showed this by reduction from 3-PARTITION. The complexity comes from the binary $u_{i,t}$ variables coupled across time through the minimum up/down time and ramp constraints. Without these couplings the problem decomposes into $|\mathcal{G}|$ independent single-generator problems; it is the coupling constraints (2), (6), and (10) that make it hard.

Practical solvability depends on horizon length $T$, number of generators $|\mathcal{G}|$, and how tight the formulation is. The three-binary tight formulation of Carrión & Arroyo (2006) with the cuts of Morales-España et al. (2013) routinely solves 24-hour instances with thousands of generators to sub-1% gap in minutes on commodity hardware.

Real-world data

Benchmark libraries · test systems

IEEE Reliability Test System (RTS-96 / RTS-GMLC)

The RTS-GMLC (Reliability Test System — Grid Modernization Lab Consortium) extends the classic IEEE-RTS-96 to 73 thermal units and 25 renewable plants on a 73-bus three-area system with one year of hourly load and renewable profiles. It is the most common open benchmark for modern UC research.

MATPOWER test cases

MATPOWER provides steady-state power-flow cases (case9, case30, case118, case300, case2383wp, case13659pegase) that are standard in academic OPF/UC research. Generator cost curves, limits, and network data are included.

PGLIB-OPF benchmark library

The PGLIB-OPF library maintained by the IEEE PES Task Force packages 350+ test systems from 1-bus to 30,000-bus, covering North American, European, and Polish grids. Widely used to compare OPF solvers and convex relaxations.

Illustrative 8-unit pool (this page)

The interactive solver below uses a synthetic 8-generator pool spanning baseload coal through peaking oil and flexible hydro, with a characteristic 24-hour residential- commercial-industrial demand profile. Parameters are illustrative of US-northeast thermal fleets (not a specific utility's data) and serve as a pedagogical instance small enough to solve interactively in the browser.

UnitType$P^{\min}$ (MW)$P^{\max}$ (MW)Marginal cost (\$/MWh)Start-up (\$)Min up (h)
Coal-1Baseload100350255,0004
Coal-2Baseload80300284,5004
Gas-CCCombined-cycle50250352,0002
Gas-CT-1Peaker20150508001
Gas-CT-2Peaker20120557001
Gas-CT-3Peaker15100586001
Oil-PeakPeaker1080754001
HydroFlexible0200501

Interactive solver

Explore three canonical UC algorithms · generation-stack visualization

Parameters

6
900
10%

Algorithm

Adjust parameters and press Solve.

Generation stack & commitment

Stacked generation by technology (MW) · 24-hour horizon · white line = load
Commitment schedule (filled = on, empty = off) · per-unit rows

Solution interpretation

What a system operator reads from the schedule

The generation stack tells the operator which technologies carry which part of the load. Baseload coal fills the floor of the stack because its marginal cost is lowest among thermal units; gas combined-cycle sits above it because it is more efficient than peakers but still more expensive than coal; peaking gas turbines and oil come online only during the midday and evening peaks, when the cost to run them is exceeded by the value of meeting the last megawatt of demand.

The commitment Gantt shows which units are paying the start-up cost. A coal unit running flat for 24 hours pays start-up at most once (often zero, if it was already running from the previous day); a gas peaker that fires for three hours in the evening pays start-up $700–$800 for a brief revenue window — economics that only work because the peak price spike is steep enough to cover it.

The LP relaxation bound is the UC theorist's most important metric. If the LP relaxation objective equals the MILP objective, the LP relaxation is said to be exact: the problem could have been solved as a pure LP. On tight formulations (Morales-España et al., 2013), the gap is typically 0.01–0.5% and branch-and-bound closes it in seconds. On loose formulations the gap can be 5–15% and branch-and-bound may not converge in practical time.

The Lagrangian relaxation takes a different approach: it dualizes the demand-balance constraint (2), decomposing the problem into $|\mathcal{G}|$ independent single-generator subproblems which can be solved in closed form. A subgradient method updates the multipliers $\lambda_t$ (which have a natural interpretation as hourly marginal prices) until the dual objective converges. The primal solution recovered from the dual is usually infeasible; a repair step adjusts it to satisfy demand exactly. Lagrangian was the workhorse of ISO practice from 1980 to roughly 2005 and remains useful today for extremely large instances where commercial MILP struggles.

Extensions & variants

Where UC research lives today

Stochastic Unit Commitment

Wind and solar forecasts are wrong by 10–20% on average, and the commitment decision must be made before the forecast is fully resolved. Stochastic UC replaces the single forecast with a scenario tree and optimizes the expected cost over all realizations. First-stage decisions (commitments) are scenario-independent; second-stage decisions (dispatch) adapt to each scenario.

The size of the extensive-form MILP scales with the scenario count, so practical solutions use scenario reduction (Gröwe-Kuska et al., 2003) or Benders decomposition.

Refs: Takriti, Birge & Long (1996); Papavasiliou & Oren (2013); Zheng, Wang & Liu (2015).

Adjustable Robust UC

Robust UC optimizes against the worst-case realization of uncertainty inside a budgeted uncertainty set — typically a box with a $\Gamma$-budget constraint (Bertsimas & Sim, 2004) bounding the number of simultaneous deviations. The two-stage adjustable variant (Bertsimas et al., 2013) allows dispatch to depend on the realization, yielding less conservative schedules than the fully-static version.

Column-and-constraint generation (Zhao & Zeng, 2012) is the standard solution method. Performance under high renewable penetration is comparable to stochastic UC with less sensitivity to forecast distribution assumptions.

Refs: Bertsimas, Litvinov, Sun, Zhao & Zheng (2013); Jiang, Zhang, Li & Guan (2014).

Security-Constrained UC (SCUC)

SCUC extends UC with network constraints (DC-OPF power flow and line limits) and N−1 contingency constraints (the schedule must remain feasible after any single generator or line outage). SCUC is what every US ISO actually solves as its day-ahead market clearing — a single monolithic MILP with tens of thousands of binaries and hundreds of thousands of continuous variables.

Benders decomposition separates commitment (master) from dispatch-per-contingency (subproblems). Cuts from subproblems refine the master's feasible region.

Refs: Wang, Shahidehpour & Li (2008); Wu, Shahidehpour & Fu (2010).

Chance-constrained UC

Requires that load-plus-reserve adequacy hold with probability at least $1-\alpha$ for a user-specified risk $\alpha$ (typically 5% or 1%). Yields a formulation less conservative than robust UC and with an interpretable reliability guarantee. When renewable forecast errors are Gaussian the chance constraints become second-order cones; for non-parametric distributions scenario-approximation replaces them with a sample of constraints.

Refs: Wang, Guan & Wang (2012); Bienstock, Chertkov & Harnett (2014).

Rolling-horizon UC

In real-time operations the commitment schedule is re-optimized hourly or every fifteen minutes over a shrinking horizon, with the first period's decisions implemented and the remainder rolled forward. Fast re-solves favour tight-and-compact formulations and warm-started LP bases.

Refs: Tuohy et al. (2009); Silbernagl, Huber & Brandenberg (2016).

Distributionally-robust UC

Optimizes against the worst distribution in an ambiguity set defined by Wasserstein distance or moment conditions. Bridges stochastic and robust: reduces conservatism of robust optimization while tolerating distributional misspecification. Active research frontier, few industrial deployments yet.

Refs: Zhao & Guan (2018); Duan, Fang, Liu, Lu, Wang & Wu (2018).

Key references

Cited above · DOIs and permanent URLs

[1]
Garver, L. L. (1962).
“Power generation scheduling by integer programming — development of theory.”
IEEE Transactions on Power Apparatus and Systems, 81(3), 730–735. doi:10.1109/AIEEPAS.1962.4501405
[2]
Padhy, N. P. (2004).
“Unit commitment — a bibliographical survey.”
IEEE Transactions on Power Systems, 19(2), 1196–1205. doi:10.1109/TPWRS.2003.821611
[3]
Carrión, M., & Arroyo, J. M. (2006).
“A computationally efficient mixed-integer linear formulation for the thermal unit commitment problem.”
IEEE Transactions on Power Systems, 21(3), 1371–1378. doi:10.1109/TPWRS.2006.876672
[4]
Morales-España, G., Latorre, J. M., & Ramos, A. (2013).
“Tight and compact MILP formulation for the thermal unit commitment problem.”
IEEE Transactions on Power Systems, 28(4), 4897–4908. doi:10.1109/TPWRS.2013.2251373
[5]
Takriti, S., Birge, J. R., & Long, E. (1996).
“A stochastic model for the unit commitment problem.”
IEEE Transactions on Power Systems, 11(3), 1497–1508. doi:10.1109/59.535691
[6]
Zheng, Q. P., Wang, J., & Liu, A. L. (2015).
“Stochastic optimization for unit commitment — a review.”
IEEE Transactions on Power Systems, 30(4), 1913–1924. doi:10.1109/TPWRS.2014.2355204
[7]
Bertsimas, D., Litvinov, E., Sun, X. A., Zhao, J., & Zheng, T. (2013).
“Adaptive robust optimization for the security-constrained unit commitment problem.”
IEEE Transactions on Power Systems, 28(1), 52–63. doi:10.1109/TPWRS.2012.2205021
[8]
Wang, J., Shahidehpour, M., & Li, Z. (2008).
“Security-constrained unit commitment with volatile wind-power generation.”
IEEE Transactions on Power Systems, 23(3), 1319–1327. doi:10.1109/TPWRS.2008.926719
[9]
Wood, A. J., Wollenberg, B. F., & Sheblé, G. B. (2013).
Power Generation, Operation, and Control (3rd ed.).
Wiley. wiley.com
[10]
Jiang, R., Zhang, M., Li, G., & Guan, Y. (2014).
“Two-stage network constrained robust unit commitment problem.”
European Journal of Operational Research, 234(3), 751–762. doi:10.1016/j.ejor.2013.09.028
[11]
Wang, Q., Guan, Y., & Wang, J. (2012).
“A chance-constrained two-stage stochastic program for unit commitment with uncertain wind power output.”
IEEE Transactions on Power Systems, 27(1), 206–215. doi:10.1109/TPWRS.2011.2159522
[12]
Bard, J. F. (1988).
“Short-term scheduling of thermal-electric generators using Lagrangian relaxation.”
Operations Research, 36(5), 756–766. doi:10.1287/opre.36.5.756
Generator parameters on this page are illustrative of US-northeast thermal fleets and are not a specific utility's data. The in-browser solver is an educational demo; production UC uses commercial MILP solvers (Gurobi, CPLEX) on tight-and-compact formulations.