uqfoundation/mystic
constrained nonlinear optimization for scientific machine learning, UQ, and AI
What it solves
Mystic addresses the difficulty of solving complex, non-convex, and highly constrained nonlinear optimization problems. It provides a robust framework for scientific machine learning, uncertainty quantification (UQ), and AI, reducing the barrier to entry for users who need to monitor, steer, and control the optimization process with precision.
How it works
The framework implements a variety of optimization algorithms through a common API, allowing users to swap solvers without rewriting code. It supports both "hard constraints" (restricting the search to valid regions) and "soft constraints" (penalizing invalid regions). To facilitate machine learning and UQ, Mystic integrates sampling, interpolation, and statistics, including tools to convert constraints into kernel transforms for ML and adaptive samplers that drive data collection toward critical points of a response surface.
Who it’s for
It is designed for researchers and engineers in scientific machine learning, AI, and uncertainty quantification who require fine-grained control over optimization workflows, parallel computing capabilities, and the ability to handle complex parameter constraints.
Highlights
- Fine-grained Control: Ability to pause, continue, and steer optimizations iteration-by-iteration using
StepandSolvecommands. - Flexible Constraints: Supports a wide selection of probabilistic and dimensionally reducing constraints, as well as symbolic conversion of equalities and inequalities.
- Robust Workflow: Features built-in checkpointing, dynamic reconfiguration, and customizable termination conditions.
- Parallel Execution: Leverages parallel and distributed computing via the
pathospackage for both individual iterations and ensembles of solvers. - ML Integration: Provides tools for producing emulators on irregular grids and generating highly-informative training datasets through optimizer-guided sampling.
Related
- Project
- Project
- Project
- Project
- Project