Symbolic

This folder contains the data structures needed to encode the different abstractions.

Dionysos.Symbolic.SymbolicModelType
Abstract Type: SymbolicModel{N, M}

Defines a generic symbolic model interface, where:

  • N is the state space dimension.
  • M is the input space dimension.
source
Dionysos.Symbolic.GridBasedSymbolicModelType
GridBasedSymbolicModel{N, M} <: SymbolicModel{N, M}

An intermediate abstract type for symbolic models that rely on a grid-based discretization.

  • N: Dimension of the state space.
  • M: Dimension of the input space.
source
Dionysos.Symbolic.LazySymbolicModelListType
LazySymbolicModel{N, M, S1, S2, A} <: GridBasedSymbolicModel{N, M}

A symbolic model using lazy abstraction where the automaton is computed only for a subset of the state space.

source
Dionysos.Symbolic.compute_symmodel_from_hybridcontrolsystem!Function
compute_symmodel_from_hybridcontrolsystem!(symmodel::SymbolicModel{N}, transitionCost::AbstractDict, transitionCont::AbstractDict,
hybridsys::AbstractHybridSystem, W, L, U, opt_sdp, opt_qp)

Builds an abstraction symmodel where the transitions have costs given in transitionCost and are parameterized by affine-feedback controllers in transitionCont. The concrete system is hybridsys and W, L and U are defined as in _has_transition. An SDP optimizer opt_sdp and a QP optimizer opt_qp must be provided as JuMP optimizers.

source
Dionysos.Symbolic.is_deterministicFunction
is_deterministic(symmodel::SymbolicModelList) -> Bool

Returns true if the symbolic model is deterministic.

A symbolic model is deterministic if, for every (state, input) pair, there is at most one successor.

source
Dionysos.Symbolic.determinize_symbolic_modelFunction
determinize_symbolic_model(symmodel::SymbolicModelList) -> SymbolicModelList

Returns a determinized version of the given symbolic model by encoding each transition input as a pair (input_symbol, target_state).

This transformation removes nondeterminism by lifting the input space: each original input is paired with its intended target, making transitions unique.

Arguments

Returns

  • A new SymbolicModelList that is deterministic, with:
    • New unique inputs: (symbol, target) pairs.
    • Transitions remapped to be deterministic.
    • metadata[:original_symmodel] containing a reference to the original model.

Notes

  • The determinized model will have more inputs than the original.

Example

det_symmodel = determinize_symbolic_model(symmodel)
is_deterministic(det_symmodel) == true
source