Abstractions

To build an abstraction, in addition to the definition of the system dynamics and the specification, we also need to define select inputs and partition the state space/region of interest. Since there are multiple options for both, we wrap them as input and state abstractions, such that the abstraction method to build the finite-state abstractions can ignore the details of the choice of input and state partitioning.

Input abstractions

To define a new input abstraction, introduce a new struct type that inherits from InputAbstraction and implements inputs and numinputs methods. The inputs method should return the set of inputs (set-based, singletons, or discrete) and the numinputs should return the number of inputs in the set.

State abstractions

IntervalMDPAbstractions.statespaceFunction
statespace(state::StateUniformGridSplit)

Return the state space of the state abstraction. This should must be a hyperrectangle and should be equal to the union of the regions.

source

Right now, we only support state abstractions that are based on a uniform grid split of the state space. However, one can easily imagine a non-uniform grid or a refinement-based partitioning for heterogenous abstractions. To implement such a state abstraction, define a new struct type that inherits from StateAbstraction and implements regions, numregions, and statespace methods.

Target models

IntervalMDPAbstractions.IMDPTargetType
IMDPTarget

The traditional target for IMDP abstractions. This is a standard IMDP where each region in the abstraction corresponds to a state in the IMDP with one additional state for transitions to outside the partitioned region.

source
IntervalMDPAbstractions.OrthogonalIMDPTargetType
OrthogonalIMDPTarget

A target for IMDP abstractions where, for each source state, the transition probabilities are orthogonally decomposed [1]. One state is appended along each axis to capture the transitions to outside the partitioned region.

Benefits compared to IMDPTarget include less memory usage, faster computation of the transition probabilities and value iteration, and tighter uncertainty set (see [1] for a proof).

[1] Mathiesen, Frederik Baymler, Sofie Haesaert, and Luca Laurenti. "Scalable control synthesis for stochastic systems via structural IMDP abstractions." arXiv preprint arXiv:2411.11803 (2024).

source
IntervalMDPAbstractions.MixtureIMDPTargetType
MixtureIMDPTarget

A target for IMDP abstractions where, for each source state, the transition probabilities are decomposed as a mixture [1]. One state is appended along each axis to capture the transitions to outside the partitioned region.

Benefits compared to IMDPTarget include less memory usage and faster computation of the transition probabilities and value iteration.

[1] Mathiesen, Frederik Baymler, Sofie Haesaert, and Luca Laurenti. "Scalable control synthesis for stochastic systems via structural IMDP abstractions." arXiv preprint arXiv:2411.11803 (2024).

source

Constructing finite-state abstractions

IntervalMDPAbstractions.abstractionFunction
abstraction(prob, state_abstraction::StateUniformGridSplit, input_abstraction, target_model::AbstractIMDPTarget)

Construct an abstraction of a system and a specification under a uniform grid partitioning of the state space with an arbitrary input abstraction and an IMDP as the target model.

The argument prob contains both the system and the specification. The type of the system determines how the transition probability bounds are computed. The resulting IMDP has numregions(state_abstraction) + 1 states, where the last state is an absorbing state, representing transitioning to outside the partitioned region. This absorbing state is implicitly encoded in the ambiguity sets, i.e. not stored and automatically handled by IntervalMDP.jl.

The specification is converted based on the state_abstraction and target_model arguments in addition to whether the specification is pessimistic or optimistic. To encode the specification, at least one avoid state is required, i.e. the last, absorbing state. As a consequence, (concrete) reachability specifications are converted to (abstract) reach-avoid specifications with the last state as the avoid state.

Returns mdp and spec as the abstracted IMDP and the converted specification, respectively.

source
abstraction(prob, state_abstraction::StateUniformGridSplit, input_abstraction, target_model::AbstractOrthogonalIMDPTarget)

Construct an abstraction of a system and a specification under a uniform grid partitioning of the state space with an arbitrary input abstraction and an orthogonal IMDP as the target model.

The argument prob contains both the system and the specification. The type of the system determines how the marginal transition probability bounds are computed. The resulting orthogonal IMDP has IntervalMDPAbstractions.splits(state_abstraction) .+ 1 states along each axis, where the last state along each axis is an absorbing state, representing transitioning to outside the partitioned region. This absorbing state for each axis is implicitly encoded in the ambiguity sets, i.e. not stored and automatically handled by IntervalMDP.jl.

The specification is converted based on the state_abstraction and target_model arguments in addition to whether the specification is pessimistic or optimistic. To encode the specification, at least one avoid state is required, i.e. the last, absorbing state. As a consequence, (concrete) reachability specifications are converted to (abstract) reach-avoid specifications with the last state as the avoid state.

Returns mdp and spec as the abstracted IMDP and the converted specification, respectively.

source
abstraction(prob, state_abstraction::StateUniformGridSplit, input_abstraction, target_model::AbstractMixtureIMDPTarget)

Construct an abstraction of a system and a specification under a uniform grid partitioning of the state space with an arbitrary input abstraction and a mixture of orthogonal IMDPs as the target model.

The argument prob contains both the system and the specification. The type of the system determines how the marginal mixture transition probability bounds are computed. The resulting mixture IMDP has IntervalMDPAbstractions.splits(state_abstraction) .+ 1 states along each axis, where the last state along each axis is an absorbing state, representing transitioning to outside the partitioned region. This absorbing state for each axis is implicitly encoded in the ambiguity sets, i.e. not stored and automatically handled by IntervalMDP.jl.

The specification is converted based on the state_abstraction and target_model arguments in addition to whether the specification is pessimistic or optimistic. To encode the specification, at least one avoid state is required, i.e. the last, absorbing state. As a consequence, (concrete) reachability specifications are converted to (abstract) reach-avoid specifications with the last state as the avoid state.

Returns mdp and spec as the abstracted IMDP and the converted specification, respectively.

source