Skip to content
/ soupy Public

Stochastic Optimization under Uncertainty in Python.

License

Notifications You must be signed in to change notification settings

hippylib/soupy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9f96197 · Aug 7, 2024

History

42 Commits
Jul 26, 2024
Sep 22, 2023
Nov 16, 2023
Jul 28, 2024
Aug 19, 2023
Sep 25, 2023
Feb 8, 2023
Aug 10, 2023
Jul 26, 2024
May 28, 2024
Aug 10, 2023
Aug 3, 2023
May 27, 2024
Feb 8, 2023
Aug 7, 2024
Aug 3, 2023

Repository files navigation

Build Status Documentation Status DOI DOI

Stochastic Optimization under high-dimensional Uncertainty in Python

Stochastic Optimization under high-dimensional Uncertainty in Python—SOUPy, implements scalable algorithms for the optimization of large-scale complex systems governed by partial differential equations (PDEs) under high-dimensional uncertainty. The library features various risk measures (such as mean, variance, and superquantile/condition-value-at-risk), probability/chance constraints, and optimization/state constraints. SOUPy enables efficient PDE-constrained optimization under uncertainty through parallel computation of the risk measures and their derivatives (gradients and Hessians). The library also provides built-in parallel implementations of optimization algorithms (e.g. BFGS, Inexact Newton CG), as well as an interface to the scipy.optimize module in SciPy. Besides the benchmark/tutorial examples in the examples folder, SOUPy has been used to solve large-scale and high-dimensional stochastic optimization problems including optimal control of turbulence flow, optimal design of acoustic metamaterials and self-assembly nanomaterials, and optimal management of groundwater extraction, etc.

SOUPy is built on the open-source hIPPYlib library, which provides adjoint-based methods for deterministic and Bayesian inverse problems governed by PDEs, and makes use of FEniCS for the high-level formulation, discretization, and solution of PDEs.

SOUPy is in active development to incorporate advanced approximation algorithms and capabilities, including:

  • Taylor expansion-based approximations for risk measure evaluation
  • High-dimensional quadrature methods such as sparse grids and quasi Monte Carlo
  • Decomposition of high-dimensional uncertain parameter spaces by mixture models
  • Multi-fidelity methods and control variates
  • Interfaces with Bayesian inverse problems

See the SOUPy documentation and our JOSS paper for more information.

Please cite SOUPy as

  @article{Luo2024,
  doi = {10.21105/joss.06101},
  url = {https://doi.org/10.21105/joss.06101},
  year = {2024},
  publisher = {The Open Journal},
  volume = {9},
  number = {99},
  pages = {6101},
  author = {Dingcheng Luo and Peng Chen and Thomas O'Leary-Roseberry and Umberto Villa and Omar Ghattas},
  title = {{SOUPy}: Stochastic PDE-constrained optimization under high-dimensional uncertainty in Python},
  journal = {Journal of Open Source Software}
}

Acknowledgements

This project is partially supported by NSF grants #2012453 and #2245674.