MatrixZonotope
LazySets.MatrixZonotopeModule.MatrixZonotope
— TypeMatrixZonotope{N, MN<:AbstractMatrix{N}}(A0::MN, Ai::Vector{MN},
idx::Vector{Int}=collect(1:length(Aᵢ)))
Type that represents a matrix zonotope.
Fields
A0
– center of the matrix zonotopeAi
– vector of matrices; each matrix is a generator of the matrix zonotopeidx
– identifier vector of positive integers for each factor
Notes
Mathematically a matrix zonotope is defined as the set of matrices
\[\mathcal{A} = \left\{A ∈ ℝ^{n×m} : A^{(0)} + ∑_{i=1}^p ξ_i A^{(i)},~~ ξ_i ∈ [-1, 1]~~ ∀ i = 1,…, p \right\},\]
Matrix zonotopes were introduced in Huang et al. [HLBS25].
Examples
julia> A0 = [2.0 1.0; -1.0 0.0];
julia> Ai = [[1.0 -1.0; 0.0 -1.0], [0.0 2.0; -1.0 1.0]];
julia> idx = [1, 3];
julia> MZ = MatrixZonotope(A0, Ai, idx)
MatrixZonotope{Float64, Matrix{Float64}}([2.0 1.0; -1.0 0.0], [[1.0 -1.0; 0.0 -1.0], [0.0 2.0; -1.0 1.0]], [1, 3])
Operations
LazySets.API.center
— Methodcenter(MZ::MatrixZonotope)
Return the center matrix of a matrix zonotope.
Input
MZ
– matrix zonotope
Output
The center matrix of MZ
.
LazySets.generators
— Methodgenerators(MZ::MatrixZonotope)
Return the generators of a matrix zonotope.
Input
MZ
– matrix zonotope
Output
The generators of MZ
.
LazySets.ngens
— Methodngens(MZ::MatrixZonotope)
Return the number of generators of a matrix zonotope.
Input
MZ
– matrix zonotope
Output
An integer representing the number of generators.
Base.rand
— MethodExtended help
rand(::Type{MatrixZonotope}; [N]::Type{<:Real}=Float64, [dim]::Tuple{Int,Int}=(2, 2),
[rng]::AbstractRNG=GLOBAL_RNG, [seed]::Union{Int, Nothing}=nothing,
[num_generators]::Int=-1)
Algorithm
All numbers are normally distributed with mean 0 and standard deviation 1.
The number of generators can be controlled with the argument num_generators
. For a negative value we choose a random number in the range 1:maximum(dim)
.
Undocumented implementations: