Optim

This folder contains all the different (abstraction-based or not) solvers that can be used. Note that all the solvers are defined using the MathOptInterface framework: for each solver, we define a subtype of AbstractOptimizer and implement the Optimize! function.

Abstraction-based solvers

Dionysos.Optim.Abstraction.UniformGridAbstraction.OptimizerType
Optimizer{T} <: MOI.AbstractOptimizer

A solver implementing the classical abstraction method (e.g., used in SCOTS), where the entire domain is partitioned into hyper-rectangular cells, independent of the specific control task. 

The optimizer is structured into modular sub-solvers, each dedicated to a specific problem type. It ensures that abstraction is computed before solving the control problem, maintaining modularity and extendability.
source

Other solvers

Dionysos.Optim.BemporadMorari.OptimizerType
Optimizer{T} <: MOI.AbstractOptimizer

Bemporad Morari solver: Optimal control of hybrid systems via a predictive control scheme using mixed integer quadratic programming (MIQP) online optimization procedures.

source
Dionysos.Optim.BranchAndBound.OptimizerType
Optimizer{T} <: MOI.AbstractOptimizer

Branch and bound solver: Optimal control of hybrid systems via a predictive control scheme combining a branch and bound algorithm that can refine Q-functions using Lagrangian duality.

source

Solvers details

Uniform Grid Abstraction