Block Formulation Variants
Purpose
Section titled “Purpose”This spec defines the two block formulations supported by Cobre — parallel and chronological — which determine how intra-stage time periods (e.g., peak, off-peak, or hourly resolution) are handled in the LP. The choice of block formulation affects water balance constraints, LP size, and the ability to model intra-stage storage dynamics.
For the variable and set definitions used here, see notation conventions. For how blocks integrate into the full LP, see LP formulation. For the system elements that participate in block constraints, see system elements.
1. Parallel Blocks (Default)
Section titled “1. Parallel Blocks (Default)”In parallel blocks mode, all blocks within a stage are independent — there is no intra-stage storage dynamics.
1.1 Water Balance (Parallel)
Section titled “1.1 Water Balance (Parallel)”A single water balance constraint spans all blocks:
where:
- is the block weight
- = inflows from upstream − outflows − evaporation − withdrawal
This formulation assumes the reservoir can freely redistribute water across blocks within the stage.
1.2 Characteristics
Section titled “1.2 Characteristics”| Aspect | Description |
|---|---|
| LP size | Smaller (one water balance per hydro) |
| Storage dynamics | End-of-stage only |
| Use case | Long-term strategic planning |
| Configuration | block_mode: "parallel" configured per stage via the block_mode parameter |
2. Chronological Blocks
Section titled “2. Chronological Blocks”In chronological blocks mode, blocks are sequential within each stage, enabling modeling of intra-stage storage dynamics (e.g., daily cycling patterns within a monthly stage).
2.1 Additional Variables
Section titled “2.1 Additional Variables”| Variable | Domain | Units | Description |
|---|---|---|---|
| hm³ | Storage at end of block |
The end-of-stage storage (state variable) is:
2.2 Block 1 Water Balance
Section titled “2.2 Block 1 Water Balance”where is the time conversion for block 1.
2.3 Subsequent Blocks Water Balance
Section titled “2.3 Subsequent Blocks Water Balance”For :
2.4 State Variable Definition
Section titled “2.4 State Variable Definition”Only end-of-stage storage is a state variable:
Inter-block storages for are internal LP variables — not state variables. This ensures:
- Cuts are computed with respect to end-of-stage storage only
- State dimension does not increase with number of blocks
2.5 Cut Coefficient Extraction
Section titled “2.5 Cut Coefficient Extraction”In chronological mode, the incoming storage LP variable is pinned to its trial value by equal column bounds (see LP formulation §4a). The reduced cost of that pinned column gives the storage cut coefficient directly:
By the LP envelope theorem, this reduced cost automatically captures all downstream effects through the chain of inter-block water balances (), FPHA constraints, and generic constraints. No special handling or dual combination is required. See Cut management.
2.6 Characteristics
Section titled “2.6 Characteristics”| Aspect | Description |
|---|---|
| LP size | Larger ( additional vars/cons) |
| Storage dynamics | Intra-stage cycling modeled |
| Use case | Short-term planning with storage cycling |
| Configuration | block_mode: "chronological" configured per stage via the block_mode parameter |
3. Comparison Summary
Section titled “3. Comparison Summary”| Aspect | Parallel Blocks | Chronological Blocks |
|---|---|---|
| Water balance | 1 per hydro per stage | per hydro per stage |
| Inter-block storage | Not modeled | Explicit continuity |
| State variables | End-of-stage only | End-of-stage only |
| LP variables | Fewer | More |
| LP constraints | Fewer | More |
| Intra-stage dynamics | None | Full |
4. Policy Compatibility Validation
Section titled “4. Policy Compatibility Validation”When running in simulation-only, warm-start, or checkpoint resume modes, the block configuration in the current input data must be compatible with the policy (cuts) that was previously trained. Specifically:
-
block_modemust match per stage — cuts trained with parallel blocks encode a different LP structure (water balance, inter-block constraints) than cuts trained with chronological blocks. Using a policy with mismatched block mode produces incorrect future cost evaluations. -
Block count and durations must match per stage — the number of blocks, their ordering, and their durations (τ_k) affect the LP structure from which cut coefficients were derived. Any change invalidates the existing cuts.
This is a hard validation error — the solver must reject the run if any mismatch is detected.
5. Note on Fine-Grained Temporal Resolution
Section titled “5. Note on Fine-Grained Temporal Resolution”The current block formulations use a single level of temporal decomposition within each stage: the user defines blocks with durations τ_k, and the LP operates at that resolution in both training and simulation.
A more sophisticated approach — used in commercial tools like PSR’s SDDP (v17.3+) — decomposes each stage into representative typical days, each containing chronological hourly (or sub-hourly) blocks. This enables:
- Accurate modeling of daily cycling patterns (peak/off-peak storage arbitrage)
- Proper representation of intermittent renewable generation profiles
- Separate temporal resolutions for training (aggregated blocks) and simulation (full typical-day profiles)
This extension is out of scope for the current formulation because it requires:
- New input data schemas (day-type definitions, weights, hourly profiles)
- Separation of the objective time-weighting (day weight × block duration) from the water balance conversion (block duration only)
- Research into how day types chain within a stage (sequential vs. independent with weighted-average storage)
- Validation against reference implementations
Cross-References
Section titled “Cross-References”- Notation conventions — variable and set definitions (, , , , )
- System elements — hydro plant element description and decision variables
- LP formulation — how block formulations integrate into the assembled LP
- Cut management — cut coefficient extraction from pinned-column reduced costs
- Hydro production models — production function constraints that operate within each block