Polynomial zonotope (PolynomialZonotope)
LazySets.PolynomialZonotope
— Type.PolynomialZonotope{N}
Type that represents a polynomial zonotope.
Fields
c
– starting pointE
– matrix of multi-indexed generators such that all indices have the same valueF
– matrix of multi-indexed generators such that not all indices have the same valueG
– matrix of single-indexed generators
Notes
Polynomial zonotopes were introduced by M. Althoff in [1] and have been applied as a non-convex set representation in the reachability problem of nonlinear ODEs.
Mathematically, a polynomial zonotope is defined as the tuple $(c, E, F, G)$, where:
$c ∈ \mathbb{R}^n$ is the starting point (in some particular cases it corresponds to the center of a usual zonotope),
$E = [E^{[1]} ⋯ E^{[η]}]$ is an $n × p × η(η+1)/2$ matrix with column-blocks
called the matrix of multi-indexed generators with equal indices, where each $f^{([i], k_1, k_2, …, k_i)}$ is an $n$-vector,
- $F = [F^{[2]} ⋯ F^{[η]}]$ is a matrix with column-blocks
called the matrix of multi-indexed generators with unequal indices (or, more accurately, not-all-equal indices), where each $f^{([i], k_1, k_2, …, k_i)}$ is an $n$-vector,
- $G = [G^{[1]} ⋯ G^{[q]}]$ is an $n × q$ matrix with columns
called the matrix of single-indexed generators, where each $g^{(i)}$ is an $n$-vector.
The polynomial zonotope $(c, E, F, G)$ defines the set:
where the number of factors in the final product, $β_j β_k ⋯ β_m$, corresponds to the polynomial order $η$.
[1] M. Althoff in Reachability analysis of nonlinear systems using conservative polynomialization and non-convex sets, Hybrid Systems: Computation and Control, 2013, pp. 173–182.
LazySets.dim
— Method.dim(pz::PolynomialZonotope)
Return the ambient dimension of a polynomial zonotope.
Input
pz
– polynomial zonotope
Output
An integer representing the ambient dimension of the polynomial zonotope.
LazySets.σ
— Method.σ(d::AbstractVector{N}, pz::PolynomialZonotope{N}) where {N}
Return the support vector of a polynomial zonotope along direction d
.
Input
d
– directionpz
– polynomial zonotope
Output
Vector representing the support vector.
LazySets.ρ
— Method.ρ(d::AbstractVector{N}, pz::PolynomialZonotope{N}) where {N}
Return the support function of a polynomial zonotope along direction d
.
Input
d
– directionpz
– polynomial zonotope
Output
Value of the support function.
LazySets.polynomial_order
— Method.polynomial_order(pz::PolynomialZonotope)
Polynomial order of a polynomial zonotope.
Input
pz
– polynomial zonotope
Output
The polynomial order, defined as the maximal power of the scale factors $β_i$. Usually denoted $η$.
LazySets.order
— Method.order(pz::PolynomialZonotope)
Order of a polynomial zonotope.
Input
pz
– polynomial zonotope
Output
The order, a rational number defined as the total number of generators divided by the ambient dimension.
LazySets.linear_map
— Method.linear_map(M::Matrix, pz::PolynomialZonotope)
Return the linear map of a polynomial zonotope.
Input
M
– matrixpz
– polynomial zonotope
Output
Polynomial zonotope such that its starting point and generators are those of pz
multiplied by the matrix M
.
LazySets.scale
— Method.scale(α::Number, pz::PolynomialZonotope)
Return a polynomial zonotope modified by a scale factor.
Input
α
– polynomial zonotopepz
– polynomial zonotope
Output
Polynomial zonotope such that its center and generators are multiples of those of pz
by a factor $α$.