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 — TypeProblemTypeAn 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} <: ProblemTypeA 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} <: ProblemTypeEncodes 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} <: ProblemTypeEncodes 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.