Skip to content

Notation Conventions

This chapter defines the complete mathematical notation used across the Novomodelo methodology chapters: index sets, parameters, decision variables, and dual variables. It serves as the canonical reference for symbol meanings, ensuring consistency across the methodology chapters.

This document follows the SDDP.jl notation conventions of Dowson & Kapelevich (2021) for consistency with the broader SDDP literature:

ConventionMeaning
t∈{1,…,T}t \in \{1, \ldots, T\}Stage index; TT is the number of study stages
ω∈Ωt\omega \in \Omega_tOpening (a realization of the stage noise) at stage tt
j∈{1,…,Nt}j \in \{1, \ldots, N_t\}Opening index within the opening tree of stage tt
NtN_tBranching factor: the number of openings of stage tt
p(ω)p(\omega)Probability of opening ω\omega, uniform: p(ω)=1/Ntp(\omega) = 1/N_t; on a policy graph, pn′(ω)p_{n'}(\omega), uniform within node n′n'
nnNode of a policy graph
P(n→n′)P(n \to n')Transition probability of the edge from node nn to its child n′n' (the policy-graph diagrams label the edges p₁, p₂, …); the probabilities of a node’s edges sum to 11
xtx_tState vector at the end of stage tt; x0x_0 is the initial state
x^t−1\hat{x}_{t-1}Incoming state of stage tt (the trial point)
utu_tControl vector of stage tt
Xt(xt−1,ωt)\mathcal{X}_t(x_{t-1}, \omega_t)Feasible set of the stage-tt state and control, given the incoming state xt−1x_{t-1} and the opening ωt\omega_t; written Xt(ωt)\mathcal{X}_t(\omega_t) when the incoming state is fixed
ct(xt,ut)c_t(x_t, u_t)Immediate (stage) cost of stage tt, undiscounted
xjx_jVariable of column jj in a generic statement about a stage LP
QtQ_tOptimal value of the stage-tt LP as a function of its incoming state and opening, Qt(x^t−1,ω)Q_t(\hat{x}_{t-1}, \omega)
Vt(x)V_t(x)Value function (cost-to-go) at stage tt
Eωt\mathbb{E}_{\omega_t}Expectation over the opening of stage tt
θt\theta_tEpigraph variable approximating Vt+1(xt)V_{t+1}(x_t)
π\piDual variables (row Lagrange multipliers)
(β0,β)(\beta_0, \beta)Cut intercept and coefficients: the cut θt≥β0+β⊤xt\theta_t \geq \beta_0 + \beta^\top x_t
x^j\hat{x}_j, βj\beta_jComponent jj of the incoming state and of the cut slope; jj indexes the state coordinates
iiCut index (β0,i\beta_{0,i}, βi\beta_i)
V‾τ(x)\underline{V}_\tau(x)Outer (cut) approximation of the value function, max⁡i{β0,i+βi⊤x}\max_i \{\beta_{0,i} + \beta_i^\top x\}, per stage, or per season τ\tau of a cyclic policy graph
kkIteration counter
z‾k\underline{z}^kLower bound at iteration kk: the first stage’s risk-adjusted value over its openings with the current cuts
zˉk\bar{z}^kUpper-bound estimate at iteration kk: the mean discounted cost of the iteration’s MM forward-pass trajectories, a statistical estimate; exact, zˉexact\bar{z}_{\text{exact}}, under an enumerated forward pass
MM, mmNumber of trajectories averaged in the upper-bound estimate, and the trajectory index m∈{1,…,M}m \in \{1, \ldots, M\}
Nforward_passesN_{\text{forward\_passes}}Number of forward-pass trajectories per iteration
nsamplen_{\text{sample}}Number of openings a sampled backward pass would draw per stage in place of all NtN_t
gapk\text{gap}^kOptimality gap at iteration kk: the upper bound minus the lower bound, zˉk−z‾k\bar{z}^k - \underline{z}^k; its percent form normalises it by the lower bound; see Stopping Rules
P(ℓ)P(\ell), C(ℓ)C(\ell)Probability and total discounted cost of leaf path ℓ\ell of an enumerated scenario tree
zˉexact\bar{z}_{\text{exact}}Exact upper bound of an enumerated forward pass: ∑ℓP(ℓ) C(ℓ)\sum_\ell P(\ell)\, C(\ell) under the expectation, the nested root value under a uniform CVaR
wmw_mCensus weight of simulation scenario mm: its leaf-path probability, ∑mwm=1\sum_m w_m = 1
Δ95\Delta_{95}Half-width of the 95 % normal-approximation confidence interval of a sampled cost estimate
V⋆V^\starOptimal value of the multistage objective
V′(v)V'(v)Slope of the one-reservoir value function at a trial storage vv: the slope of the tangent cut in the value-function figures
iterations\text{iterations}Number of training iterations, in growth orders such as O(iterations×Nforward_passes)\mathcal{O}(\text{iterations} \times N_{\text{forward\_passes}})
O(⋅)\mathcal{O}(\cdot)Asymptotic order of a count or cost
ρλ,α\rho^{\lambda, \alpha}Convex-combination risk measure, ρλ,α[Z]=(1−λ) E[Z]+λ CVaRα[Z]\rho^{\lambda, \alpha}[Z] = (1 - \lambda)\, \mathbb{E}[Z] + \lambda\, \text{CVaR}_\alpha[Z]; per stage, ρt\rho_t, the measure of the stage that owns a cut, which aggregates the next stage’s openings into it
λ\lambdaRisk-aversion weight, λ∈[0,1]\lambda \in [0, 1]: 00 is risk-neutral, 11 is pure CVaR
μ∗\mu^*Risk-adjusted probability weights of a cut: μ∗=(1−λ) p+λ q∗\mu^* = (1-\lambda)\, p + \lambda\, q^*, between the floor (1−λ) pω(1-\lambda)\, p_\omega and the cap (1−λ) pω+λ pω/α(1-\lambda)\, p_\omega + \lambda\, p_\omega / \alpha
α\alphaCVaR tail fraction, α∈(0,1]\alpha \in (0, 1]; α=1\alpha = 1 gives the expectation
CVaRα\text{CVaR}_\alphaConditional value-at-risk: the expected cost over the worst α\alpha-fraction of outcomes
VaRα\mathrm{VaR}_\alphaValue-at-risk: the (1−α)(1 - \alpha)-quantile of the cost, the optimal η\eta
η\etaThreshold variable of CVaRα(Z)=min⁡η∈R{η+1αE[(Z−η)+]}\text{CVaR}_\alpha(Z) = \min_{\eta \in \mathbb{R}} \{\eta + \tfrac{1}{\alpha} \mathbb{E}[(Z - \eta)^+]\}
ZZ, f(Z)f(Z)Random cost a risk measure applies to, and its probability density
ρnested\rho_{\text{nested}}Nested (time-consistent) risk functional: the stage measure applied stage by stage, ρ1[ρ2[⋯ρT−1[⋅]]]\rho_1[\rho_2[\cdots \rho_{T-1}[\cdot]]]
ρend-of-horizon\rho_{\text{end-of-horizon}}End-of-horizon risk functional: one measure applied to the whole-path total cost

A glyph takes a second meaning only on pages that never carry its first; each such reuse is declared here:

Math formulas throughout this corpus index stages starting at 11: t∈{1,…,T}t \in \{1, \ldots, T\} (the convention already fixed above). Novomodelo’s configuration files and Parquet outputs instead identify a stage by its declared stage_id — the integer id the stage carries in stages.json. Declared ids need not start at 00 or be contiguous (a pre-study stage may carry a negative id); stages are ordered by id ascending, and tt is a study stage’s position in that order.

ContextConvention
Math (this corpus)t∈{1,…,T}t \in \{1, \ldots, T\} — position in ascending-id order
Config stage_id and fields built on itThe declared stage id from stages.json
Output stage_id column (simulation, training)The same declared stage id, unchanged
Mapping, when ids are declared densely from 00stage_id=t−1\text{stage\_id} = t - 1

Every math-layer chapter uses the 1-based tt. Every JSON config field, Parquet output column, and CLI reference named stage_id, and every stage-window field built on it, carries the declared id, not a position, and a stage window is compared against declared ids. The offset stage_id=t−1\text{stage\_id} = t - 1 holds only for a case whose study stages are declared 0,1,…,T−10, 1, \ldots, T-1. No other chapter restates this mapping; it defers here.

Two term choices are pinned corpus-wide:

  • Opening is the canonical term for a single realization drawn from a stage’s set of pre-generated noise vectors (e.g. “every opening ω∈Ωt\omega \in \Omega_t”). “Branch”/“branching” is reserved for the abstract scenario-tree structure itself — the branching factor NtN_t (how many children a node has) — used only where a chapter discusses the tree’s topology, such as Scenario Generation, never for a specific drawn realization.
  • Cost-to-go is the canonical term for the value function Vt(x)V_t(x) (§1 above) in math-layer prose. “FCF” (Função de Custo Futuro) is reserved for the bilingual Glossary, which maps terms from other planning tools.
SymbolDescription
t∈{1,…,T}t \in \{1, \ldots, T\}Stages
k∈Kk \in \mathcal{K}Blocks within stage
B\mathcal{B}Buses, indexed by bb
H\mathcal{H}Hydro plants, indexed by hh
Hop⊆H\mathcal{H}^{op} \subseteq \mathcal{H}Operating hydros (can generate)
Hfill⊆H\mathcal{H}^{fill} \subseteq \mathcal{H}Filling hydros (no generation)
Hfpha⊆H\mathcal{H}^{fpha} \subseteq \mathcal{H}Hydros using FPHA production model
Hconst⊆H\mathcal{H}^{const} \subseteq \mathcal{H}Hydros using constant productivity (complement of Hfpha\mathcal{H}^{fpha} within Hop\mathcal{H}^{op})
T\mathcal{T}Thermal plants, indexed by jj
R\mathcal{R}Non-controllable generation sources, indexed by rr
L\mathcal{L}Transmission lines, indexed by nn
C\mathcal{C}All contracts (Cimp∪Cexp\mathcal{C}^{imp} \cup \mathcal{C}^{exp}), indexed by cc
Cimp\mathcal{C}^{imp}, Cexp\mathcal{C}^{exp}Import/export contracts
P\mathcal{P}Pumping stations, indexed by yy
G\mathcal{G}Generic constraints, indexed by gg
Sb\mathcal{S}_bDeficit segments for bus bb, indexed by ss
Bh⊆B\mathcal{B}_h \subseteq \mathcal{B}Buses hosting one of hydro hh‘s (hydro, bus) cells
(h,b)(h, b)(hydro, bus) cell: the unit groups of plant hh that share bus b∈Bhb \in \mathcal{B}_h, indexed by uu; turbined flow and generation are tracked per cell
Hb\mathcal{H}_b, Tb\mathcal{T}_b, Rb\mathcal{R}_b, Pb\mathcal{P}_bHydros with a cell at bus bb; thermals, non-controllable sources and pumping stations connected to bus bb
Cbimp\mathcal{C}^{imp}_b, Cbexp\mathcal{C}^{exp}_bImport and export contracts connected to bus bb
Mh\mathcal{M}_hFPHA planes for hydro hh, indexed by mm
Uh\mathcal{U}_hUpstream hydros of hh, indexed by h′h'
Ωt\Omega_tOpenings of stage tt
SymbolUnitsDescription
τk\tau_khoursDuration of block kk
Ht=∑k∈KτkH_t = \sum_{k \in \mathcal{K}} \tau_khoursTotal duration of stage tt
wk=τk/Htw_k = \tau_k / H_t-Block weight (fraction of stage)
ζ\zetahm³/(m³/s)Time conversion: m³/s over stage → hm³
ζk=0.0036×τk\zeta_k = 0.0036 \times \tau_khm³/(m³/s)Block conversion: m³/s over block kk → hm³; ζk=wk ζ\zeta_k = w_k\,\zeta and ∑k∈Kζk=ζ\sum_{k \in \mathcal{K}} \zeta_k = \zeta
dt→t+1d_{t \to t+1}-Discount factor of the transition from stage tt to t+1t+1, applied to θt\theta_t in the stage-tt objective
d1→td_{1 \to t}-Cumulative discount factor of stage tt: the product of the one-step factors of stages 11 to t−1t - 1, with d1→1=1d_{1 \to 1} = 1
dt1→t2d_{t_1 \to t_2}-Discount from stage t2t_2 back to stage t1≤t2t_1 \le t_2, d1→t2/d1→t1d_{1 \to t_2} / d_{1 \to t_1}
dcycled_{\text{cycle}}-Cumulative discount around one cycle of a cyclic policy graph, dcycle=∏t∈cycledt→t+1<1d_{\text{cycle}} = \prod_{t \in \text{cycle}} d_{t \to t+1} < 1

The factor ζ\zeta converts a flow rate in m³/s to a volume in hm³ accumulated over the stage duration.

ζ=0.0036×∑k∈Kτk[hm3/(m3/s)]\zeta = 0.0036 \times \sum_{k \in \mathcal{K}} \tau_k \quad [\mathrm{hm}^3/(\mathrm{m}^3/\mathrm{s})]

Dimensional Analysis:

[ζ]=sh×hm3m3×h=hm3m3/s[\zeta] = \frac{\text{s}}{\text{h}} \times \frac{\mathrm{hm}^3}{\mathrm{m}^3} \times \text{h} = \frac{\mathrm{hm}^3}{\mathrm{m}^3/\mathrm{s}}

Cost coefficients use cc with a superscript naming the cost type.

SymbolUnitsDescription
Db,kD_{b,k}MWLoad at bus bb, block kk
cb,sdefc^{def}_{b,s}$/MWhDeficit cost at bus bb, segment ss
dˉb,s\bar{d}_{b,s}MWDeficit segment depth
cbexcc^{exc}_b$/MWhExcess generation cost
cjthc^{th}_j$/MWhMarginal cost of thermal plant jj
chspillc^{spill}_h$/(m³/s·h)Spillage cost
chdivc^{div}_h$/(m³/s·h)Diversion cost
chtcc^{tc}_h$/(m³/s·h)Turbined-flow regularization cost of hydro hh, charged on the turbined flow of every cell
chsv−c^{sv-}_h$/hm³Storage-below-minimum penalty, pricing the soft dead-volume floor of a filling hydro once it operates
chfillc^{fill}_h$/hm³Filling-target shortfall penalty
chtv−c^{tv-}_h$/(m³/s·h)Turbined-flow-minimum violation penalty, charged on every cell of hydro hh
chov−c^{ov-}_h, chov+c^{ov+}_h$/(m³/s·h)Outflow below-minimum and above-maximum violation penalties
chgv−c^{gv-}_h$/MWhGeneration-minimum violation penalty, charged on every cell of hydro hh
chev+c^{ev+}_h, chev−c^{ev-}_h$/(m³/s·h)Evaporation above-target and below-target violation penalties
chwv+c^{wv+}_h, chwv−c^{wv-}_h$/(m³/s·h)Water-withdrawal over-delivery and under-delivery penalties
chinfc^{inf}_h$/(m³/s·h)Inflow non-negativity penalty (penalty-based inflow methods)
cnexchc^{exch}_n$/MWhExchange (transmission) cost
crcurtc^{curt}_r$/MWhCurtailment regularization cost of non-controllable source rr
ccctrc^{ctr}_c$/MWhContract price (signed: + import cost, − export revenue)
ci(t)c_i(t)$/MWhUnit cost of anticipated thermal ii at stage tt; a commitment for delivery stage mm is priced at ci(m)c_i(m) on its decision column
KK-Cost-scale factor: every objective coefficient except that of θ\theta is divided by KK, so cuts are held in scaled cost units (LP Layout and Scaling §2.1)
SymbolUnitsDescription
v^h\hat{v}_hhm³Incoming storage (state from previous stage)
Vˉh\bar{V}_h, V‾h\underline{V}_hhm³Storage bounds
Qˉh\bar{Q}_h, Q‾h\underline{Q}_hm³/sPlant turbined-flow bounds; the plant maximum caps every cell
Qˉh,b\bar{Q}_{h,b}, Q‾h,b\underline{Q}_{h,b}m³/sCell turbined-flow bounds: the maximum sums the cell’s unit-group maxima (under constant productivity each also limited by its generation maximum) and is capped by the plant maximum; the minimum sums their minima and is a soft floor
Qˉu\bar{Q}_um³/sTurbined-flow maximum of unit group uu
Gˉh\bar{G}_h, G‾h\underline{G}_hMWPlant generation bounds; the plant maximum caps every cell
Gˉh,b\bar{G}_{h,b}, G‾h,b\underline{G}_{h,b}MWCell generation bounds: the maximum sums the cell’s unit-group maxima and is capped by the plant maximum; the minimum sums their minima and is a soft floor
λh,b\lambda_{h,b}-Share of cell (h,b)(h, b) in plant hh‘s declared turbine capacity; it apportions the flow-independent part of each FPHA plane among the cells
Oˉh\bar{O}_h, O‾h\underline{O}_hm³/sOutflow bounds
Uˉh\bar{U}_hm³/sMaximum diversion flow
rhr_hm³/sWater withdrawal target — stage-level, signed fixed RHS parameter (not a per-block LP decision variable); negative = inter-basin return/addition. See LP Formulation.
ρh\rho_hMW/(m³/s)Productivity (constant model)
VhminV^{min}_h, VhmaxV^{max}_hhm³Physical storage range — stage-invariant plant property (dead-volume floor, full-reservoir ceiling); distinct from the operative storage-variable bounds V‾h\underline{V}_h, Vˉh\bar{V}_h. See Hydro Production Function Models.
ρeq,h,t\rho_{eq,h,t}MW/(m³/s)Equivalent productivity at the reference operating point. See Hydro Production Function Models.
ρacum,h,t\rho_{acum,h,t}MW/(m³/s)Accumulated cascade productivity (plant plus downstream), reference-point evaluator. See Hydro Production Function Models.
ρˉeq,h,t\bar\rho_{eq,h,t}MW/(m³/s)Useful-range mean equivalent productivity — forebay level averaged over [Vhmin,Vhmax][V^{min}_h, V^{max}_h]. See Hydro Production Function Models.
ρˉacum,h,t\bar\rho_{acum,h,t}MW/(m³/s)Useful-range mean accumulated cascade productivity. See Hydro Production Function Models.
Eh,tmaxE^{max}_{h,t}MW/(m³/s)·hm³Maximum stored energy ρˉacum,h,t (Vhmax−Vhmin)\bar\rho_{acum,h,t}\,(V^{max}_h - V^{min}_h) (raw unit, not MWh). See Hydro Production Function Models.
γ0m,γvm,γqm,γsm\gamma_0^m, \gamma_v^m, \gamma_q^m, \gamma_s^m-FPHA plane mm coefficients — intercept (γ0m\gamma_0^m), storage/volume (γvm\gamma_v^m), turbined flow (γqm\gamma_q^m), spillage (γsm\gamma_s^m); already kFPHAk_{FPHA}-scaled. Lowercase by convention — never Γ\Gamma.
kFPHAk_{FPHA}-FPHA least-squares fit-correction factor; scales the fitted plane set. See Hydro Production Function Models.
ϕ(v,q,s)\phi(v, q, s)MWExact hydro production function: generation at storage vv, turbined flow qq and spillage ss, proportional to qq and to the net head hneth_{net}. See Hydro Production Function Models.
hnet(v,q,s)=hfore(v)−htail(q+s)−hlossh_{net}(v, q, s) = h_{fore}(v) - h_{tail}(q + s) - h_{loss}mNet head, clamped at zero: the forebay level hforeh_{fore}, a function of storage, minus the tailrace level htailh_{tail}, a function of total outflow, minus the hydraulic head losses hlossh_{loss}
ViV_i, QjQ_jhm³, m³/sStorage point ii and turbined-flow point jj of the FPHA fitting grid, on the storage and turbined-flow coordinates VV and QQ
LL-Last filling stage of a filling hydro, the stage before its entry stage
ratet\text{rate}_tm³/sMinimum accumulation rate of a filling hydro at stage tt
VttargetV^{\text{target}}_thm³Minimum end-of-stage storage of a filling hydro at stage tt (the filling floor), reaching V‾h\underline{V}_h at stage LL
LhL_hstagesBucket depth of receiving plant hh: the deepest maturity lag any travel-time arc into hh reaches on the stage calendar
ϕh,k\phi_{h,k}-Arrival density of plant hh‘s maturing in-transit volume over the blocks kk of a chronological stage, ϕh,k≥0\phi_{h,k} \geq 0, ∑kϕh,k=1\sum_k \phi_{h,k} = 1; on a parallel stage ϕh,k=wk=τk/Ht\phi_{h,k} = w_k = \tau_k / H_t in a hydro-inflow term (LP Formulation §10)
Δh′tt\Delta^{tt}_{h'}hoursTravel time of the main cascade arc of upstream hydro h′h', 00 when none is declared
νh′,t,0\nu_{h',t,0}-Same-stage share of h′h'‘s release on the downstream water balance at stage tt, (Ht−Δh′tt)+/Ht(H_t - \Delta^{tt}_{h'})^+ / H_t
νh′,tk′→k\nu^{k' \to k}_{h',t}-Within-stage routing share on a chronological stage, from h′h'‘s block k′k' to the downstream block k≥k′k \ge k'
γ0,hev\gamma^{ev}_{0,h}, γv,hev\gamma^{ev}_{v,h}m³/s, (m³/s)/hm³Linearized net-evaporation intercept and storage slope of hydro hh at the current stage

3.4 Thermal, Network and Equipment Parameters

Section titled “3.4 Thermal, Network and Equipment Parameters”
SymbolUnitsDescription
Gˉj\bar{G}_j, G‾j\underline{G}_jMWThermal generation bounds: capacity and minimum stable load
KiK_i-Ring depth of anticipated thermal ii; the lead for a stage-count lead
kmax=max⁡iKik_{max} = \max_i K_i-Number of slots in every anticipated thermal’s commitment ring
ti(m)t_i(m)-Decision stage of anticipated thermal ii‘s delivery at stage mm: m−Kim - K_i under a stage-count lead, and under a physical lead the stage containing the instant one lead time before the end of stage mm (an instant on a stage boundary belongs to the earlier stage); a delivery decided before the study has none
ri(m)r_i(m)-Ring position of anticipated thermal ii‘s delivery at stage mm; the delivery holds slot ri(m) mod kmaxr_i(m) \bmod k_{max}
Fˉn+\bar{F}^+_n, Fˉn−\bar{F}^-_nMWLine capacity (direct/reverse)
ηn=1−losses/100\eta_n = 1 - \text{losses}/100-Reported line efficiency: scales the post-solve reported transmission losses, (1−ηn)(f++f−)(1-\eta_n)(f^+ + f^-); it does not enter the dispatch LP, whose line flows carry coefficient ±1. Distinct from the PAR innovation εt\varepsilon_t (§3.5).
lossn,k\text{loss}_{n,k}MWReported transmission loss of line nn in block kk, (1−ηn)(fn,k++fn,k−)(1-\eta_n)(f^+_{n,k} + f^-_{n,k})
Cˉc\bar{C}_c, C‾c\underline{C}_cMWContract capacity bounds
ρypump\rho^{pump}_yMW/(m³/s)Power consumption rate of pumping station yy
Pˉy\bar{P}_y, P‾y\underline{P}_ym³/sPumped-flow bounds of station yy
Gˉr\bar{G}_rMWInstalled capacity of non-controllable source rr
Ar,kA_{r,k}MWAvailable generation of non-controllable source rr in block kk for the current stage and scenario, Gˉr ξr fr,k\bar{G}_r \, \xi_r \, f_{r,k}
ξr\xi_r-Availability ratio of non-controllable source rr for the current stage and scenario, in [0,1][0, 1]
μrnc\mu^{nc}_r, srncs^{nc}_r-Mean and standard deviation of the unclamped availability factor of non-controllable source rr at the current stage
εrnc\varepsilon^{nc}_r-Standard-normal noise of non-controllable source rr: ξr=clamp(μrnc+srnc εrnc,0,1)\xi_r = \mathrm{clamp}(\mu^{nc}_r + s^{nc}_r \, \varepsilon^{nc}_r, 0, 1)
fr,kf_{r,k}-Block factor of non-controllable source rr in block kk
SymbolUnitsDescription
μm\mu_mm³/sSeasonal mean inflow for season mm
sms_mm³/sSeasonal sample standard deviation of season mm (population divisor)
ψm,ℓ\psi_{m,\ell}-AR coefficient for season mm, lag ℓ\ell (original units)
ψm,ℓ∗\psi^*_{m,\ell}-Standardized AR coefficient, ψm,ℓ∗=ψm,ℓ sm−ℓ/sm\psi^*_{m,\ell} = \psi_{m,\ell}\, s_{m-\ell} / s_m
PhP_h-AR order of hydro hh; its lags are ℓ∈{1,…,Ph}\ell \in \{1, \ldots, P_h\}
Pmax⁡P^{\max}-Lag depth of the inflow-lag state, the same for every hydro: the largest AR order, max⁡hPh\max_h P_h, raised to at least twelve when any hydro carries the annual component, and to the deepest lag a terminal boundary references (State Augmentation §4)
rmr_m-Standardized innovation scale, rm=σm/sm∈(0,1]r_m = \sigma_m / s_m \in (0, 1]
σm\sigma_mm³/sInnovation (residual) standard deviation for season mm, σm=sm rm\sigma_m = s_m\, r_m
bh,m(t)b_{h,m(t)}m³/sDeterministic base of the PAR(p) inflow equation at season m=m(t)m = m(t): μm−∑ℓ=1Phψm,ℓ μm−ℓ\mu_m - \sum_{\ell=1}^{P_h} \psi_{m,\ell}\, \mu_{m-\ell}
μmA\mu^A_m, σmA\sigma^A_mm³/sSeasonal mean and standard deviation (population divisor) of season mm‘s annual regressor in PAR(p)-A
ρm(ℓ)\rho_m(\ell)-Periodic autocorrelation at lag ℓ\ell for season mm
NmN_m-Number of historical observations of season mm
z0.975z_{0.975}-Standard-normal 0.975 quantile: the critical value of the PACF significance test at the 95 % level
εt\varepsilon_t-PAR innovation: standardized noise term, εt∼N(0,1)\varepsilon_t \sim \mathcal{N}(0,1) (distinct from the line efficiency ηn\eta_n, §3.4, and the excess-generation variable ϵb,k\epsilon_{b,k}, §4.1). See PAR(p) Inflow Model.
zz-Vector of independent standard normal draws, z∼N(0,I)z \sim \mathcal{N}(0, I), mapped to correlated noise
CC-Spatial correlation matrix of a correlation group
UU, Λ\Lambda-Eigendecomposition C=UΛU⊤C = U \Lambda U^\top: orthogonal eigenvectors UU and the diagonal Λ=diag(λ1,…,λn)\Lambda = \mathrm{diag}(\lambda_1, \ldots, \lambda_n) of the eigenvalues λi\lambda_i
Λ~1/2\tilde{\Lambda}^{1/2}-Square roots of the eigenvalues clipped at zero, diag(max⁡(λ1,0),…,max⁡(λn,0))\mathrm{diag}(\sqrt{\max(\lambda_1, 0)}, \ldots, \sqrt{\max(\lambda_n, 0)})
C1/2C^{1/2}-Spectral correlation factor UΛ1/2U⊤U \Lambda^{1/2} U^\top, negative eigenvalues clipped to zero; the correlated noise is C1/2zC^{1/2} z
aha_hm³/sIncremental inflow of hydro hh at the current stage
a^h,ℓ\hat{a}_{h,\ell}m³/sIncoming AR lag ℓ\ell (state)

Per-block variables are indexed by k∈Kk \in \mathcal{K}:

VariableDomainUnitsDescription
δb,k,s\delta_{b,k,s}[0,dˉb,s][0, \bar{d}_{b,s}]MWDeficit at bus bb, segment ss
ϵb,k\epsilon_{b,k}≥0\geq 0MWExcess generation at bus bb
fn,k+f^+_{n,k}[0,Fˉn+][0, \bar{F}^+_n]MWDirect flow on line nn
fn,k−f^-_{n,k}[0,Fˉn−][0, \bar{F}^-_n]MWReverse flow on line nn
gj,kg_{j,k}[G‾j,Gˉj][\underline{G}_j, \bar{G}_j]MWGeneration of thermal plant jj
qh,b,kq_{h,b,k}[0,Qˉh,b][0, \bar{Q}_{h,b}]m³/sTurbined flow of cell (h,b)(h, b); its minimum Q‾h,b\underline{Q}_{h,b} is a soft floor (slack σh,b,kq−\sigma^{q-}_{h,b,k})
qh,kq_{h,k}-m³/sPlant turbined flow, qh,k=∑b∈Bhqh,b,kq_{h,k} = \sum_{b \in \mathcal{B}_h} q_{h,b,k}
sh,ks_{h,k}≥0\geq 0m³/sSpillage at hydro hh
gh,b,kg_{h,b,k}[0,Gˉh,b][0, \bar{G}_{h,b}]MWHydro generation of cell (h,b)(h, b), injected at bus bb; its minimum G‾h,b\underline{G}_{h,b} is a soft floor (slack σh,b,kg−\sigma^{g-}_{h,b,k})
gh,kg_{h,k}-MWPlant hydro generation, gh,k=∑b∈Bhgh,b,kg_{h,k} = \sum_{b \in \mathcal{B}_h} g_{h,b,k}
vh,kv_{h,k}[V‾h,Vˉh][\underline{V}_h, \bar{V}_h]hm³Storage at the end of block kk on a chronological stage, vh,0=v^hv_{h,0} = \hat{v}_h; only vh,∣K∣v_{h,\lvert\mathcal{K}\rvert} is state; the column lower bound is 00, not V‾h\underline{V}_h, for a filling hydro and for a hydro not in service (see LP Formulation §8)
uh,ku_{h,k}[0,Uˉh][0, \bar{U}_h]m³/sDiversion/bypass flow (to separate channel)
oh,ko_{h,k}-m³/sTotal downstream outflow: oh,k=qh,k+sh,ko_{h,k} = q_{h,k} + s_{h,k}
eh,ke_{h,k}boundedm³/sNet evaporation flow (negative for net rainfall input): one stage-level value ehe_h on a parallel stage, one per block kk on a chronological stage; its magnitude has a per-stage bound
net_flowsh,k\text{net\_flows}_{h,k}-m³/sNet per-block flow terms of hydro hh‘s water balance in block kk: the turbined and spilled release credited from upstream and the flows diverted and pumped in, minus the plant’s own turbined, spilled and diverted flow and its pumped-out flow
py,kp_{y,k}[P‾y,Pˉy][\underline{P}_y, \bar{P}_y]m³/sPumped flow at station yy
χc,k\chi_{c,k}[C‾c,Cˉc][\underline{C}_c, \bar{C}_c]MWContract dispatch (import if c∈Cimpc \in \mathcal{C}^{imp}, export if c∈Cexpc \in \mathcal{C}^{exp}); C‾c>0\underline{C}_c > 0 is a take-or-pay floor
gr,kncg^{nc}_{r,k}[0,Ar,k][0, A_{r,k}]MWGeneration of non-controllable source rr
κr,k\kappa_{r,k}-MWCurtailment of non-controllable source rr, κr,k=Ar,k−gr,knc\kappa_{r,k} = A_{r,k} - g^{nc}_{r,k} (derived)
VariableDomainUnitsDescription
vhv_h[V‾h,Vˉh][\underline{V}_h, \bar{V}_h]hm³End-of-stage storage; the column lower bound is 00, not V‾h\underline{V}_h, for a filling hydro and for a hydro not in service (see LP Formulation §8)
vhinv^{in}_hfixedhm³Incoming-storage variable of the stage LP, fixed at the incoming storage v^h\hat{v}_h
vhavgv^{avg}_h-hm³Average storage during stage: (v^h+vh)/2(\hat{v}_h + v_h)/2
ah,ℓa_{h,\ell}fixedm³/sAR lag ℓ\ell (fixed by state transition)
xs,iax^{\mathrm{a}}_{s,i}free; 00 when no row holds itMWOutgoing slot ss of anticipated thermal ii‘s commitment ring, s∈{0,…,kmax−1}s \in \{0, \ldots, k_{max} - 1\}
xs,ia,inx^{\mathrm{a,in}}_{s,i}fixedMWIncoming slot ss, fixed at its trial value x^s,ia\hat{x}^{\mathrm{a}}_{s,i}
bh,doutb^{\mathrm{out}}_{h,d}≥0\geq 0hm³In-transit water destined for downstream plant hh at maturity lag dd, carried to the next stage; it enters hh‘s water balance dd stages after the current stage
gi,tag^{\mathrm{a}}_{i,t}[G‾i(m),Gˉi(m)][\underline{G}_i(m), \bar{G}_i(m)]MWAnticipated-thermal commitment decided at stage tt for its delivery stage mm, ti(m)=tt_i(m) = t (m=t+Kim = t + K_i under a stage-count lead)
xinx^{in}fixed-Incoming-state variable of the stage LP, fixed at the trial point: xin=x^t−1x^{in} = \hat{x}_{t-1}
θ\theta≥0\geq 0$Future-cost epigraph variable θt\theta_t of the stage-tt LP, approximating Vt+1(xt)V_{t+1}(x_t)

The state dimension is nstate=N(1+Pmax⁡)+B+A kmaxn_{\text{state}} = N(1 + P^{\max}) + B + A \, k_{max}, with N=∣H∣N = \lvert\mathcal{H}\rvert hydros, B=∑hLhB = \sum_h L_h in-transit buckets and AA anticipated thermals.

Slack variables for soft constraints:

VariableDomainUnitsConstraint
σhv−\sigma^{v-}_h≥0\geq 0hm³Storage below the dead volume of a filling hydro, from its entry stage on (every other operating hydro’s dead volume is a hard bound)
σhfill\sigma^{fill}_h≥0\geq 0hm³Per-stage filling-floor shortfall
σh,b,kq−\sigma^{q-}_{h,b,k}≥0\geq 0m³/sTurbined flow below minimum — one per (hydro, bus) cell b∈Bhb \in \mathcal{B}_h of a split plant
σh,ko−\sigma^{o-}_{h,k}≥0\geq 0m³/sOutflow below minimum (per plant — no per-cell outflow column to attribute a floor to)
σh,ko+\sigma^{o+}_{h,k}≥0\geq 0m³/sOutflow above maximum (per plant)
σh,b,kg−\sigma^{g-}_{h,b,k}≥0\geq 0MWGeneration below minimum — one per (hydro, bus) cell b∈Bhb \in \mathcal{B}_h of a split plant
σh,ke+\sigma^{e+}_{h,k}, σh,ke−\sigma^{e-}_{h,k}≥0\geq 0m³/sEvaporation above-target and below-target violation (per plant): one stage-level pair σhe±\sigma^{e\pm}_h on a parallel stage, priced over the stage hours HtH_t; one pair per block on a chronological stage, priced over τk\tau_k
σhw−\sigma^{w-}_h, σhw+\sigma^{w+}_h≥0\geq 0m³/sWater withdrawal under-/over-delivery relative to the target rhr_h (stage-level, not per-block); priced by chwv−c^{wv-}_h / chwv+c^{wv+}_h respectively
σhinf\sigma^{inf}_h≥0\geq 0m³/sInflow non-negativity (if enabled)

A row dual π\pi is the Lagrange multiplier of one LP row: the rate at which the optimal stage cost changes per unit increase of the row’s right-hand side. The cut slope β\beta is a subgradient of the value function VtV_t with respect to the incoming state at the trial point x^t−1\hat{x}_{t-1}; each component equals the dual of the bound that pins its state coordinate at the trial value. Its components include the storage slope βhv\beta^v_h, the AR-lag slope βh,ℓlag\beta^{lag}_{h,\ell} and the slopes on the in-transit buckets and the anticipated ring slots; with the stored intercept β0\beta_0 they form the cut (β0,β)(\beta_0, \beta) of §1. Sign convention: more incoming storage lowers the cost-to-go wherever the extra water displaces thermal generation or deficit, so the storage slope βhv\beta^v_h is non-positive there, and it can turn positive where the extra water can only leave the reservoir at a cost; see Cut Management for the cut coefficients, LP Formulation for the rows and State Augmentation for the state pinning.

SymbolRowMeaning
πb,klb\pi^{lb}_{b,k}Load balance, bus bb, block kkMarginal cost of energy
πhwb\pi^{wb}_hWater balance, hydro hh (block kk on a chronological stage, πh,kwb\pi^{wb}_{h,k})Water value
πmfpha\pi_m^{fpha}FPHA hyperplane mmMarginal value of the generation limit set by plane mm