Problem Types
This module defines a set of structures used to represent different control problems.
All problems are subtypes of the abstract type ProblemType
, which provides a common interface for control problems.
Supported Problems
EmptyProblem
: Used to construct an abstraction of a dynamical system without solving a control problem.OptimalControlProblem
: A reach-avoid optimal control problem defined over a finite time horizon, supporting state and transition costs.SafetyProblem
: A safety specification problem requiring the system to remain within a safe set for the entire time horizon.
Each of these problem types is detailed below:
Dionysos.Problem.ProblemType
— TypeProblemType
An abstract type that represents a generic control problem. All concrete problem types (e.g., EmptyProblem
, OptimalControlProblem
, SafetyProblem
) should subtype ProblemType
.
Dionysos.Problem.EmptyProblem
— TypeEmptyProblem{S, X} <: ProblemType
A problem type used to construct an abstraction of a dynamical system.
S
: The system to abstract (continuous or discrete-time).X
: The region of interest (e.g., a subset of the state space).
This problem encodes no control objective. It is intended for generating symbolic models that can later be reused by other solvers.
Dionysos.Problem.OptimalControlProblem
— TypeOptimalControlProblem{S, XI, XT, XC, TC, T} <: ProblemType
Encodes a reach-avoid optimal control problem over a finite horizon.
S
: The system to control.XI
: The initial set of states.XT
: The target set to be reached.XC
: A state cost function or structure.TC
: A transition cost function or structure.T
: The time horizon (number of allowed time steps).
This problem aims to find a control strategy that reaches the target set from the initial set, minimizing the accumulated cost over time.
Dionysos.Problem.SafetyProblem
— TypeSafetyProblem{S, XI, XS, T} <: ProblemType
Encodes a safety control problem over a finite horizon.
S
: The system to control.XI
: The initial set of states.XS
: The safe set in which the system must remain.T
: The time horizon (number of allowed time steps).
This problem aims to synthesize a controller that ensures the system remains within the safe set for the entire duration of the time horizon.