State Augmentation
Purpose
Section titled “Purpose”This chapter defines the state the stage LP carries from one stage to the next: the state vector and its four families, the pinning of the incoming state by column bounds, the outgoing state and the cut row written over it, the mechanics of the families beyond storage — the inflow lags, the commitments of anticipated thermals and the water in transit on travel-time arcs — and the projection of each stage’s cuts onto the state components it selects.
Reading order: LP Formulation → this chapter → Block Formulation Variants
1. State Vector
Section titled “1. State Vector”The state of stage is the vector that stage passes to stage and over which the cuts of stage are written. It has four families:
- storage: the end-of-stage storage of each hydro (§2);
- inflow lags: lagged inflows per hydro (§4);
- in-transit buckets: the water still travelling on the travel-time arcs into each receiving plant, one bucket per maturity lag (§6);
- commitment-ring slots: the decided, undelivered commitments of each anticipated thermal, slots per plant (§5).
With hydros, in-transit buckets and anticipated thermals, the state dimension is
The state is ordered canonically: storage, inflow lags, in-transit buckets, commitment-ring slots, and within each family the hydros, receiving plants or anticipated thermals in the canonical entity order of Notation Conventions (lag-major for the lags, slot-major for the ring slots). Each stage pins its incoming copy of the state by column bounds (§2), and each cut of a stage is a row over the stage’s outgoing state (§3).
2. Pinning by Column Bounds
Section titled “2. Pinning by Column Bounds”The water balance (LP Formulation §4), FPHA hyperplanes (LP Formulation §6), the evaporation row (LP Formulation — Evaporation Row) and generic constraints (LP Formulation §10) all involve the incoming storage value . Rather than embedding as a constant in the RHS of each of these constraints (which would require collecting duals from all of them to compute cut coefficients), Novomodelo introduces an explicit incoming storage LP variable that every such constraint references, and pins it to the trial value.
For each hydro , the incoming-storage column (LP Layout and Scaling §1) is pinned by setting equal lower and upper column bounds:
where:
- = LP variable representing the incoming storage for hydro
- = incoming state value (end-of-stage storage from the previous stage)
Cut coefficient: the storage cut coefficient is the reduced cost of the pinned incoming-storage column (unscaled by its prescaler column factor — see LP Layout and Scaling §2 and Cut Management). No fixing-constraint dual is involved.
Why this design: By LP duality, when a column is pinned at its reduced cost equals the sensitivity of the optimal value to the pinned bound — exactly the multiplier the equivalent equality row would have carried (KKT parity). This sensitivity automatically accounts for all downstream effects through water balance, FPHA, evaporation and generic constraints, so a single reduced-cost value suffices — no combination of duals from multiple constraint types is needed. The AR lags (§4), in-transit buckets (§6) and commitment-ring slots (§5) are pinned the same way.
Column count: pinned incoming-storage columns, where is the number of hydros, whatever their lifecycle phase. There are no state-fixing rows: every incoming-state column is pinned by its bounds.
3. Outgoing State and the Cut Row
Section titled “3. Outgoing State and the Cut Row”On a stage that completes a lag period of its own, as every stage of a uniform single-resolution study with a season map does apart from the 52nd and 53rd weeks of a 53-week year under a weekly cycle, the outgoing state of stage is the vector stage pins as its incoming state. A stage that shares a lag period passes its lags on unchanged until the period completes (Multi-Resolution Studies §2), and at a resolution change the lag state is rebuilt from the completed coarse periods (Multi-Resolution Studies §3).
The outgoing state is the outgoing storage ; the outgoing inflow lags , in which the realized inflow becomes lag 1, each incoming lag with becomes lag , and leaves the state; the outgoing buckets ; and the outgoing ring slots . Stage pins each incoming column at the value of the matching outgoing column in the solution of stage , canonicalized onto its bounds (SDDP Algorithm §3.1).
| State family | Outgoing column | Pinned incoming column at the next stage |
|---|---|---|
| Storage | ||
| Inflow lags | (lag 1) and (lag ) | |
| In-transit buckets | ||
| Ring slots |
Each cut of stage is a row over these outgoing columns:
where stands for the bucket and ring-slot terms, each coefficient on its outgoing column by identity. Each coefficient is the reduced cost of the matching pinned incoming column of stage , unscaled (LP Layout and Scaling §2): the lag coefficient prices lag of the next stage’s incoming state, so against the lag columns of stage the lag terms are re-indexed by one stage. A storage or lag component that the cut’s state projection drops has no term (§7).
4. Inflow Lags
Section titled “4. Inflow Lags”The AR dynamics equation (LP Formulation §5) uses lagged inflows as LP variables. To maintain the Markov property in the SDDP decomposition, each lag variable is pinned to its incoming state value via equal lower and upper column bounds on its lag column. This binds the lag variables to the known incoming state, and the reduced cost of each pinned column provides the cut coefficient for the corresponding inflow-lag dimension of the Benders cuts (LP Formulation §11). Whether these lag dimensions enter the cut is set by the cut-state projection, which the successor stage configures: when it projects out the inflow lags, the lag columns are still pinned for the AR dynamics, but their reduced costs carry no cut coefficient, giving a storage-only cut even under a PAR() fit — see §7.
For each hydro and each lag :
where:
- = LP variable representing the inflow at lag for hydro
- = incoming state value: the inflow of the -th most recently completed lag period (Multi-Resolution Studies §2); a lag period completes only under a season map, so without one no period completes and the lags keep their initial values
- = the lag depth of the state, the same for every hydro: the largest AR order, at least twelve when any hydro carries the annual component, and widened as below when a terminal boundary is loaded
Column count: pinned lag columns, where is the number of hydros, whatever their lifecycle phase, and is the lag depth of the state defined above. All hydros store lags regardless of their individual AR order ; a hydro whose inflow model has no annual component reads only its first lags, so its slots carry zero coefficients in the dynamics row, while a hydro with the annual component (PAR(p) Inflow Model §7) reads every slot; every lag column is still present and pinned. This uniform layout keeps the lag columns contiguous, so all lag cut coefficients are read in a single slice of the reduced-cost vector (LP Layout and Scaling §1).
The lag slots a hydro does not read are structurally zero and are left out of the cut row, like a ring slot no stage holds; with a terminal boundary loaded, the cut row keeps every hydro’s slots up to the boundary depth, the deepest lag any boundary cut references, to which the lag state is widened (Post-Study Boundary & Chained Studies — Compatibility Conditions).
Cut coefficient: (marginal value of inflow history at lag for hydro ) is the reduced cost of the pinned lag column, unscaled by its prescaler column factor (LP Layout and Scaling §2) — see Cut Management.
5. Anticipated Thermal Commitments
Section titled “5. Anticipated Thermal Commitments”An anticipated thermal plant decides the commitment of each delivery before its delivery stage and holds every decided, undelivered commitment as state in a per-plant commitment ring (see System Element Modeling Overview §4). Its lead is a stage count or a physical lead time. The decision stage of the delivery at stage is for a stage-count lead; for a physical lead it is the stage containing the instant one lead time before the end of stage , where an instant on a stage boundary belongs to the earlier stage. A delivery whose decision falls before the study ( under a stage-count lead, an instant at or before the study start under a physical lead) is decided before the study and has no decision stage. A delivery with is not anticipated: at that stage the plant dispatches as an ordinary thermal. Every commitment is bounded, costed, and commissioning-gated at its delivery stage, not at its decision stage.
Hold Ring
Section titled “Hold Ring”The ring depth of plant is the lead for a stage-count lead; for a physical lead it is the largest number of commitments the plant’s ring holds at the start of any stage, the first stage after the study included, counting the deliveries at or after that stage whose commitment was decided at an earlier stage, with the deliveries decided before the study held from the first stage. Every ring has slots, labelled by the residues .
The ring position of the delivery at stage is on the study stages. Past the horizon, the plant’s deliveries decided before the study come first and hold no ring position (they are fixed commitments, see Post-Study Boundary & Chained Studies), and continues from over the later deliveries. The delivery at stage holds slot , so the slot maturing at study stage is .
Each slot is two LP columns: the outgoing slot , the state carried to the next stage, and the incoming slot , pinned by equal column bounds to its trial value like all incoming state (§2):
The trial value is the previous stage’s outgoing slot. At the first stage it is the committed rate of the delivery, decided before the study, that the slot holds (see System Element Modeling Overview §4), and in a slot that holds none.
Ring Rows
Section titled “Ring Rows”At stage , three families of equality rows couple plant ‘s ring to its decision and to its generation. The deposit row writes the commitment decided at stage into the slot of its delivery:
for the delivery with , when lies inside the study or the declared post-study calendar and the plant is commissioned at stage . The carry row holds a decided commitment in its slot:
for every delivery in the ring, decided at an earlier stage or before the study, that lies inside that calendar. The fish (delivery) row binds the stage’s generation to the commitment maturing there:
at every study stage whose delivery was decided at an earlier stage or before the study, whether or not the plant is commissioned there; is the duration of block and .
A commitment keeps one slot from its deposit row to its delivery. An outgoing slot that no deposit or carry row holds at the stage is frozen at by its bounds, and every held slot is free in sign. The decision column of the delivery with lies in , the plant’s generation bounds at the delivery stage inside the study or its declared post-study capability past it ( where none is declared), and is fixed at when the deposit row is absent; a delivery to a stage where the plant is not commissioned therefore matures as , and inside the study its fish row pins that stage’s generation to . A delivery past the horizon that the study decides is carried, never fished, into the terminal stage’s outgoing state, where the terminal boundary prices it (see Post-Study Boundary & Chained Studies). A plant has at most one deposit row per stage, and the decision column enters the ring only through it.
Objective contributions
Section titled “Objective contributions”The decision column of an anticipated plant enters the objective of stage with the term
for the commitment the plant decides at stage for its delivery stage , . Here is the plant’s unit cost at the delivery stage (the delivery stage’s cost inside the study, the declared post-study cost past it), is the delivery stage’s hours (a post-study stage’s declared duration past the horizon), and is the discount from the delivery stage back to the decision stage (Discount Rate Formulation §5). Like every objective coefficient other than that of , the term is scaled as LP Layout and Scaling §2.1 states. The one-step factor on at every stage carries a cost entered at stage to stage 1 multiplied by , so the commitment cost reaches stage 1 as , discounted exactly once (Discount Rate Formulation).
The plant’s per-block generation carries no cost at a stage where its delivery is fished, so the energy of a commitment is priced once, on its decision column; at a stage where the plant dispatches as an ordinary thermal, its generation is priced per block like that of any thermal. The ring columns carry no cost.
Ring-Slot Cut Coefficient
Section titled “Ring-Slot Cut Coefficient”The coefficient of slot in a cut of stage is the reduced cost of the pinned incoming slot of stage , unscaled like every state coefficient (LP Layout and Scaling §2.3). The cut row multiplies it by the outgoing slot of stage , the same residue and plant: the column the deposit row ties to the decision , or the carry row to the incoming slot . A commitment keeps one slot from its deposit row to its delivery, so the cut prices that slot by identity at every stage of the hold, and the marginal value of a commitment the study decides reaches its decision column through the deposit row of its decision stage. The ring slots are always part of the cut’s state projection; which of them carry structurally zero coefficients is stated in §7.
6. Water Travel Time
Section titled “6. Water Travel Time”When an upstream release takes appreciable time to travel down the cascade, only the share of a release (LP Formulation §4) reaches the downstream neighbour in the release stage, and the rest arrives in later stages. Novomodelo models this as an augmented in-transit state: the volume still in transit on a cascade arc is carried through the Bellman recursion as extra state coordinates, exactly like storage (§2) and AR lags (§4).
Scope. A hydro declares a travel-time arc when it has a downstream plant and the arc to it has a strictly positive travel time; the diversion and pumping arcs carry no travel time (main cascade arc only). An absent or zero travel time is an instantaneous transfer — the upstream release enters the downstream water balance in the same stage (LP Formulation §4) and no state is added.
In-transit bucket state
Section titled “In-transit bucket state”For each receiving (downstream) plant that has at least one incoming travel-time arc, the in-transit water destined for is discretized into maturity lags . Each lag carries the aggregate volume, summed over every upstream arc feeding , in two buckets (hm³): the incoming bucket holds the volume that matures into plant ‘s reservoir stages after the current one, so lag matures at the current stage, and the outgoing bucket holds the volume that matures stages after it. The per-plant depth is the deepest maturity lag any arc into can reach on the stage calendar. The confluence of several arcs into one plant collapses into this single aggregated bucket block.
The buckets extend the state vector (§1), with the total bucket count. The bucket block sits after the AR inflow lags and before the commitment-ring slots in the canonical state order (LP Layout and Scaling §1). Buckets are ordered canonically by — the receiving plant in the canonical entity order every state block uses, then ascending maturity lag. When no arc is declared, and the state has no bucket block.
State pinning (column bounds)
Section titled “State pinning (column bounds)”Like every other incoming state coordinate, each incoming bucket is carried on its own LP column (LP Layout and Scaling §1) and pinned to its trial value by equal lower and upper column bounds:
where is the incoming in-transit volume, the previous stage’s outgoing bucket (or, at the first stage, the seed derived from the in-transit releases declared before the study — see System Element Modeling Overview — Cascade Travel Time and Hydro Production Function Models — Implementation in Novomodelo). The reduced cost of the pinned bucket column is the cut coefficient for that in-transit dimension (see below) — the same regime used for storage (§2) and AR lags (§4).
Delayed-arrival water-balance entry
Section titled “Delayed-arrival water-balance entry”The bucket maturing at the current stage, , delivers its volume into receiving plant ‘s water balance (LP Formulation §4). Because the bucket is already an accumulated volume (hm³), it enters the balance directly — outside the flow-to-volume conversion — with a coefficient in the all-variables-on-the-LHS form:
Equivalently, is a stage-level inflow added to the reservoir. Because the confluence of several upstream arcs is already summed inside the single state coordinate, exactly one delayed-arrival entry appears per receiving plant.
Under the parallel-blocks formulation the maturing bucket is a single stage-level entry. Under the chronological-blocks formulation, the same volume is delivered across the arrival stage’s own blocks, weighted by a fixed arrival density with , resolved against the arrival stage’s block partition. The arrival density is a single fixed split per maturing bucket — it does not depend on which source block released the water, an accepted modeling bound when the release and arrival stages partition their hours differently. A chronological stage that no in-study release reaches — the first stage among them — spreads the maturing volume by the block weights, .
On a declared travel-time arc the share of each release ( on a chronological stage) reaches the downstream row in the release stage (LP Formulation §4); the remaining share is deposited into the buckets at release and reaches the downstream plant as this delayed-arrival term at maturity.
The entry belongs to the receiving plant’s water balance at every stage where that balance is formed. At a stage where the plant is PreFilling, its row is the frozen identity (PreFilling Pass-Through), and the maturing bucket enters the row of the first non-PreFilling plant downstream: with coefficient on a parallel stage, and on each block row of a chronological stage, being the PreFilling plant’s own arrival density. It leaves the modeled system only when no such plant exists.
Bucket definition rows
Section titled “Bucket definition rows”Within a stage, each active outgoing lag of a receiving plant has one definition row:
with : the deepest lag holds only deposits. The water advances one lag per stage: the row moves the incoming bucket of lag into the outgoing bucket of lag , and the cross-stage identity carries the outgoing bucket into the next stage’s incoming bucket of the same lag. An outgoing lag deeper than the deepest one reached at the stage, by the stage’s own releases or by the water released before the study, has no row, and its outgoing bucket is fixed at . The outgoing buckets are LP columns, part of .
Each upstream release is written into the outgoing lags it reaches, scaled by the fraction of it maturing at each lag: on a parallel stage these fractions sum to (LP Formulation §4); on a chronological stage the sum holds after the per-block shares are weighted by block duration; a lag that would mature past the horizon has no row when no boundary is loaded, and its share is discarded (Horizon limitation, below).
Cut coefficient
Section titled “Cut coefficient”Because the incoming bucket column is pinned at equal bounds, its reduced cost is the sensitivity of the optimal stage cost to the in-transit volume, unscaled by the column prescaler (LP Layout and Scaling §2):
Transit buckets are always in the cut projection, whatever the stage’s selection for the storage and inflow-lag dimensions (§7). Each cut therefore carries one coefficient per bucket dimension, contiguous with the storage, lag, and anticipated coefficients and read from the same reduced-cost mechanism (LP Formulation §11).
Horizon limitation
Section titled “Horizon limitation”In-transit volume that would mature after the study’s last stage is dropped and not credited to terminal storage — but only when no terminal boundary future-cost function is loaded. Absent a boundary, a release late in the horizon whose travel time carries it past the final stage leaves the modeled system without arriving: the deepest maturity lag active at stage is capped at , so no bucket ever points beyond the horizon and the share is discarded rather than misdirected onto an earlier lag. When a terminal boundary is loaded instead, this cap is lifted: the terminal deep-lag in-transit slots are held live rather than capped away, carried in the terminal stage’s outgoing state, and reach the boundary-priced cut-state projection. The still-in-transit water is valued at the boundary rather than discarded, priced through the same reduced-cost cut mechanism the buckets already use (see Cut coefficient, above).
7. Cut-State Projection
Section titled “7. Cut-State Projection”A stage need not project the cuts it generates onto the full state of §1. Each stage selects whether the cuts it generates carry the storage components and whether they carry the inflow-lag components; the selection sets the dimension of those cuts, not the state the stage pins and passes on (§2, §3). A component left out is projected out of the subgradient: its reduced cost is not read into the cut, and the cut carries no coefficient for it. The intercept is the optimal value at the trial point less the products of the kept coefficients with their trial values, so the linear term of a projected-out component at its trial value is absorbed into : the cut is a lower-dimensional supporting hyperplane of the cost-to-go’s slice through the trial point, not a full cut with the omitted coordinates zero-padded.
- With the inflow lags projected out, the lag coefficients are omitted, not zeroed, even under a PAR(p) inflow model; the lag columns stay pinned for the AR dynamics (§4). With the inflow lags kept, their reduced costs enter the cut as §4 states.
- With the storage projected out, the storage coefficients are omitted in the same way, and the cut spans the components it keeps: the inflow lags when they are kept, and the buckets and ring slots when the study has them.
- The in-transit buckets (§6) and the commitment-ring slots (§5) are always projected, whatever the selection, which toggles only the storage and inflow-lag components. Every slot of every anticipated plant’s ring carries a coefficient; a slot that no stage holds has a structurally zero coefficient, so the cut row holds entries only for the slots some stage holds.
The dimension of a stage’s cut pool is set by the selection of its successor stage, since the pool holds the cuts the successor generates; the terminal pool, which has no successor, carries the full state whatever the selection.
Because a boundary loads into the terminal pool, a study’s selection does not change what its boundary must carry: a counterpart for every storage and inflow-lag component of the study’s terminal state (Post-Study Boundary & Chained Studies §5.2, condition (c)), where the study’s lag state extends to the deepest lag that any pool of the boundary policy references (condition (d)). A pool whose cuts project out the inflow lags, as under a storage-only projection, prices no inflow-lag component, so it is admitted as a boundary source only by a study whose terminal state holds no inflow lag. The terminal pool of a policy produced by training carries every inflow lag of the policy’s state, which extends the loading study’s lag state by condition (d); the pools of such a policy that project out the inflow lags are therefore refused as boundary sources whenever its state holds inflow lags.
A cut that projects out a component the cost-to-go depends on is guaranteed to lie below the cost-to-go only on the slice through its trial point; the consequence for the lower bound is Cut Management — condition 4, and the case of the inflow lags under a PAR(p) model is in the storage-only cut projection note. Each stage’s selection is set in the cut-management Configure tab.
Cross-References
Section titled “Cross-References”- LP Formulation — the stage LP that pins the incoming state and whose cut row reads the outgoing state
- Block Formulation Variants — chronological stages and the spread of a maturing bucket over their blocks
- PAR(p) Inflow Model — the inflow model whose lags the state carries
- Multi-Resolution Studies — lag periods and the lag state at a resolution change
- System Element Modeling Overview — anticipated thermal plants and travel-time arcs as physical elements
- Post-Study Boundary & Chained Studies — the terminal boundary that prices the outgoing state of the last stage
- Discount Rate Formulation — the delivery discount of the commitment cost
- LP Layout and Scaling — the column layout of the state and the unscaling of its reduced costs
- Cut Management — cut coefficients, aggregation and selection
- Notation Conventions — symbols and the canonical entity order