Skip to content

milzj/stochastic-control-saa-clt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOI

Supplementary code for the manuscript: Central Limit Theorems for Sample Average Approximations in Stochastic Optimal Control

This repository contains supplementary code for the manuscript

Johannes Milz and Alexander Shapiro, "Central Limit Theorems for Sample Average Approximations in Stochastic Optimal Control", 2025.

Abstract

We establish central limit theorems for the Sample Average Approximation (SAA) method in discrete-time, finite-horizon Stochastic Optimal Control. Using the dynamic programming principle and backward induction, we characterize the limiting distributions of the SAA value functions. The asymptotic variance at each stage decomposes into two components: a current-stage variance arising from immediate randomness, and a propagated future variance accumulated from subsequent stages. This decomposition clarifies how statistical uncertainty propagates backward through time. Our derivation relies on a stochastic equicontinuity condition, for which we provide sufficient conditions. We illustrate the variance decomposition using the classical Linear Quadratic Regulator (LQR) problem. Although its unbounded state and control spaces violate the compactness assumptions of our framework, the LQR setting enables explicit computation and visualization of both variance components.

Installation

Dependencies

  • See requirements in requirements.txt for specific package versions.
  • Python 3.8 or higher is recommended. We have tested the code with Python 3.11.

Setup

  1. Clone the repository:

    git clone https://github.com/milzj/stochastic-control-saa-clt.git
    cd stochastic-control-saa-clt
  2. Create a virtual environment (recommended):

    python3 -m venv venv
    source venv/bin/activate 
  3. Install dependencies:

    python3 -m pip install -r requirements.txt

    Or

    pip install -r requirements.txt

Replicating results

Navigate to the scripts directory

cd scripts

and run the scripts:

python3 plot_true_variance.py && python3 plot_histograms_qqplots.py

License

This project is licensed under the MIT License.

Acknowledgments

GitHub Copilot (with Claude Sonnet 4 and Gemini 2.5 Pro) and Gemini's 2.5 Pro model have been used to assist in code generation and documentation.

Contact

For questions or issues, please open an issue on GitHub.

About

Supplementary code for the manuscript: Central Limit Theorems for Sample Average Approximations in Stochastic Optimal Control

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages