Convex hull
Binary convex hull (ConvexHull)
LazySets.ConvexHull
— TypeConvexHull{N, S1<:LazySet{N}, S2<:LazySet{N}} <: ConvexSet{N}
Type that represents the convex hull of the union of two sets, i.e., the set
\[Z = \{z ∈ ℝ^n : z = λx + (1-λ)y,\qquad x ∈ X, y ∈ Y,λ ∈ [0, 1] \}.\]
Fields
X
– setY
– set
Notes
The EmptySet
is the neutral element for ConvexHull
.
This type is always convex.
Examples
The convex hull of two 100-dimensional Euclidean balls:
julia> b1, b2 = Ball2(zeros(100), 0.1), Ball2(4*ones(100), 0.2);
julia> c = ConvexHull(b1, b2);
julia> typeof(c)
ConvexHull{Float64, Ball2{Float64, Vector{Float64}}, Ball2{Float64, Vector{Float64}}}
LazySets.CH
— TypeCH
Alias for ConvexHull
.
LazySets.swap
— Methodswap(ch::ConvexHull)
Return a new ConvexHull
object with the arguments swapped.
Input
ch
– convex hull of two sets
Output
A new ConvexHull
object with the arguments swapped.
LazySets.API.dim
— Methoddim(ch::ConvexHull)
Return the dimension of a convex hull of two sets.
Input
ch
– convex hull of two sets
Output
The ambient dimension of the convex hull of two sets.
LazySets.API.ρ
— Methodρ(d::AbstractVector, ch::ConvexHull)
Evaluate the support function of the convex hull of two sets in a given direction.
Input
d
– directionch
– convex hull of two sets
Output
The evaluation of the support function of the convex hull in the given direction.
LazySets.API.σ
— Methodσ(d::AbstractVector, ch::ConvexHull)
Return a support vector of the convex hull of two sets in a given direction.
Input
d
– directionch
– convex hull of two sets
Output
A support vector of the convex hull in the given direction.
LazySets.API.isbounded
— Methodisbounded(ch::ConvexHull)
Check whether the convex hull of two sets is bounded.
Input
ch
– convex hull of two sets
Output
true
iff both wrapped sets are bounded.
Base.isempty
— Methodisempty(ch::ConvexHull)
Check whether the convex hull of two sets is empty.
Input
ch
– convex hull
Output
true
iff both wrapped sets are empty.
LazySets.API.vertices_list
— Methodvertices_list(ch::ConvexHull; [apply_convex_hull]::Bool=true,
[backend]=nothing)
Return a list of vertices of the convex hull of two sets.
Input
ch
– convex hull of two setsapply_convex_hull
– (optional, default:true
) iftrue
, post-process the vertices using a convex-hull algorithmbackend
– (optional, default:nothing
) backend for computing the convex hull (see argumentapply_convex_hull
)
Output
A list of vertices.
Inherited from LazySet
:
norm
radius
diameter
- [
an_element
](@ref an_element(::LazySet) singleton_list
reflect
$n$-ary convex hull (ConvexHullArray)
LazySets.ConvexHullArray
— TypeConvexHullArray{N, S<:LazySet{N}} <: ConvexSet{N}
Type that represents the symbolic convex hull of a finite number of sets.
Fields
array
– array of sets
Notes
The EmptySet
is the neutral element for ConvexHullArray
.
A ConvexHullArray
is always convex.
Examples
Convex hull of 100 two-dimensional balls whose centers follow a sinusoidal:
julia> b = [Ball2([2*pi*i/100, sin(2*pi*i/100)], 0.05) for i in 1:100];
julia> c = ConvexHullArray(b);
LazySets.CHArray
— TypeCHArray
Alias for ConvexHullArray
.
LazySets.API.dim
— Methoddim(cha::ConvexHullArray)
Return the dimension of the convex hull of a finite number of sets.
Input
cha
– convex hull of a finite number of sets
Output
The ambient dimension of the convex hull of a finite number of sets, or 0
if there is no set in the array.
LazySets.API.ρ
— Methodρ(d::AbstractVector, cha::ConvexHullArray)
Evaluate the support function of a convex hull of a finite number of sets in a given direction.
Input
d
– directioncha
– convex hull of a finite number of sets
Output
The evaluation of the support function of the convex hull of a finite number of sets in the given direction.
Algorithm
This algorithm calculates the maximum over all $ρ(d, X_i)$, where the $X_1, …, X_k$ are the sets in the array of cha
.
LazySets.API.σ
— Methodσ(d::AbstractVector, cha::ConvexHullArray)
Return a support vector of a convex hull of a finite number of sets in a given direction.
Input
d
– directioncha
– convex hull of a finite number of sets
Output
A support vector in the given direction.
LazySets.API.isbounded
— Methodisbounded(cha::ConvexHullArray)
Check whether a convex hull of a finite number of sets is bounded.
Input
cha
– convex hull of a finite number of sets
Output
true
iff all wrapped sets are bounded.
LazySets.array
— Methodarray(cha::ConvexHullArray)
Return the array of a convex hull of a finite number of sets.
Input
cha
– convex hull of a finite number of sets
Output
The array of a convex hull of a finite number of sets.
Base.isempty
— Methodisempty(cha::ConvexHullArray)
Check whether a convex hull of a finite number of sets is empty.
Input
cha
– convex hull of a finite number of sets
Output
true
iff all wrapped sets are empty.
LazySets.API.vertices_list
— Methodvertices_list(cha::ConvexHullArray; [apply_convex_hull]::Bool=true,
[backend]=nothing, [prune]::Bool=apply_convex_hull)
Return a list of vertices of the convex hull of a finite number of sets.
Input
cha
– convex hull of a finite number of setsapply_convex_hull
– (optional, default:true
) iftrue
, post-process the vertices using a convex-hull algorithmbackend
– (optional, default:nothing
) backend for computing the convex hull (see argumentapply_convex_hull
)prune
– (optional, default:apply_convex_hull
) alias forapply_convex_hull
Output
A list of vertices.
Inherited from LazySet
:
norm
radius
diameter
- [
an_element
](@ref an_element(::LazySet) singleton_list
reflect