Skip to content

How to Read This Site

This chapter is a navigation guide. It describes the site’s sidebar groups, explains what each group covers, and suggests reading paths for different readers. A reader deciding whether this site matches their needs should read this chapter first.

The site is organised into the groups shown in the sidebar. Each group is an on-ramp for new readers, a layer of the methodology, a worked illustration of it, a guide to using the software, or a set of lookup pages.

Get Started answers what Novomodelo computes (What Novomodelo Solves), then walks through installing Novomodelo and running a first study from the CLI (Installation, Quickstart) or from Python (Python Quickstart). Readers deciding whether Novomodelo fits their problem should start here.

Introduction (this group) establishes the conceptual and notational foundation for the rest of the site: a one-page framing of the SDDP algorithm for readers new to stochastic dynamic programming (The SDDP Framework in One Page), the complete notation used throughout (Notation Conventions), and this navigation guide. Its chapters can be read in order or consulted individually.

System Modelling defines the power system entities and the stage LP that Novomodelo solves at each iteration. This group is the mathematical foundation for everything that follows: hydro plants, thermal units, transmission lines, penalty structures, the stage LP and the state it carries between stages. Readers who want to understand how the physical system is represented in the optimisation should begin here.

Stochastic Modelling covers the inflow uncertainty model. Novomodelo uses periodic autoregressive models (PAR) to generate scenario trees; this group explains the policy graph that links the stages, the PAR model structure and its fitting procedure, the treatment of negative inflow realizations, the scenario generation pipeline, and studies that mix stage resolutions. Readers interested in how uncertainty is handled, without being concerned with the optimisation algorithm, can read this group independently of The SDDP Algorithm.

The SDDP Algorithm is the core of the methodology. It covers the forward and backward passes, cut generation and management, the LP layout and its scaling, warm-start strategies, risk measures, stopping rules, upper-bound evaluation, and determinism guarantees. Readers coming from the SDDP literature will find the connections to standard treatments here; readers new to SDDP should read Introduction and System Modelling first.

Coupling & Boundary Conditions covers how a study’s horizon is closed: the horizon mode, the post-study boundary that values the state left at the end of the horizon (chained studies included), and how discounting interacts with the cut approximation. See Horizon Modes for the entry point.

Running Novomodelo covers the software in use: configuring and running studies, reusing a trained policy, running at scale, converting an existing case, and interpreting the results. Readers who run studies return to it after the Quickstart.

Worked Examples provides two pedagogical walkthroughs of the SDDP loop: a single-reservoir toy case and a four-reservoir toy case, both small enough to verify by hand. These chapters trace the forward pass, the backward pass, cut construction and the lower-bound update with concrete numbers. The novomodelo repository ships the runnable cases examples/1dtoy and examples/4ree; each walkthrough states how its numbers relate to its case. Readers learning SDDP by doing should start with the worked examples after reading Introduction.

Reference holds the lookup pages: the input and output formats, the command-line and Python interfaces, the error codes, the glossary and the bibliography. Use this group as a lookup resource during reading, not as a starting point.

Novomodelo runs from the novomodelo command-line program and from the novomodelo-python package. What Novomodelo Solves §4 describes both interfaces and the files a run writes. The methodology chapters use “case directory” and “configuration” as concrete terms for the artefacts a user manages; these map directly to both interfaces.

Readers interested in the design commitments that underpin these interfaces — reproducibility, determinism, declaration order invariance and agent-readability — should read What Novomodelo Solves §5.

Different readers enter this site from different directions. Find the row that matches you:

ReaderReading path
Run studiesInstallation, then the Quickstart, then the Running Novomodelo group, starting with Running Studies and Convergence & Diagnostics.
Coming from other software?What Novomodelo Solves §6, then Converting an existing case; for equivalent terms in other planning tools, see the Glossary.
Work in PythonThe Python Quickstart, then the Python API reference.
New to SDDPRead What Novomodelo Solves and all of Introduction, then read System Modelling to understand the LP, then read The SDDP Algorithm for the algorithm itself. The worked examples in Worked Examples reinforce the concepts.
Familiar with SDDP, new to NovomodeloSkim What Novomodelo Solves and Introduction, read Notation Conventions carefully, then read The SDDP Algorithm. Cross-reference System Modelling for the stage LP and its state when The SDDP Algorithm refers to stage variables.
Looking for a specific topicUse the sidebar to navigate to the relevant group. The SDDP Algorithm covers the algorithm; System Modelling covers the LP and system model; Stochastic Modelling covers the inflow uncertainty model; Coupling & Boundary Conditions covers boundary conditions. Notation Conventions resolves notation questions, and Running Novomodelo covers the software in use.
  • What Novomodelo Solves — the problem statement, algorithm name, methodology guarantees, user-facing capability summary, and an orientation for readers coming from other software
  • The SDDP Framework in One Page — one-page algorithmic framing for readers new to stochastic dynamic programming
  • Notation Conventions — complete symbol table for index sets, parameters, decision variables, and dual variables
  • System Element Modeling Overview — the elements of the system and their variables: System Modelling entry point
  • PAR(p) Inflow Model — periodic autoregressive inflow model: Stochastic Modelling entry point
  • SDDP Algorithm — forward pass, backward pass, cut generation, convergence: The SDDP Algorithm entry point
  • Horizon Modes — boundary conditions and horizon-mode design: Coupling & Boundary Conditions entry point