UnionSet

Union

Note that the union of convex sets is generally not convex. Hence these set types are not part of the convex-set family LazySet.

Binary set union (UnionSet)

UnionSet{N<:Real, S1<:LazySet{N}, S2<:LazySet{N}}

Type that represents the set union of two convex sets.

Fields

  • X – convex set
  • Y – convex set
source
Base.:∪Method.

Alias for UnionSet.

source
LazySets.swapMethod.
swap(cup::UnionSet)

Return a new UnionSet object with the arguments swapped.

Input

  • cup – union of two convex sets

Output

A new UnionSet object with the arguments swapped.

source
LazySets.dimMethod.
dim(cup::UnionSet)

Return the dimension of the set union of two convex sets.

Input

  • cup – union of two convex sets

Output

The ambient dimension of the union of two convex sets.

source
LazySets.σMethod.
σ(d::AbstractVector{N}, cup::UnionSet{N}; [algorithm]="support_vector") where {N<:Real}

Return the support vector of the union of two convex sets in a given direction.

Input

  • d – direction
  • cup – union of two convex sets
  • algorithm – (optional, default: "supportvector"): the algorithm to compute the support vector; if "supportvector", use the support vector of each argument; if "support_function" use the support function of each argument and evaluate the support vector of only one of them

Output

The support vector in the given direction.

Algorithm

The support vector of the union of two convex sets $X$ and $Y$ can be obtained as the vector that maximizes the support function of either $X$ or $Y$, i.e. it is sufficient to find the $\argmax(ρ(d, X), ρ(d, Y)])$ and evaluate its support vector.

The default implementation, with option algorithm="support_vector", computes the support vector of $X$ and $Y$ and then compares the support function using a dot product. If it happens that the support function can be more efficiently computed (without passing through the support vector), consider using the alternative algorithm="support_function" implementation, which evaluates the support function of each set directly and then calls only the support vector of either $X$ or $Y$.

source
LazySets.ρMethod.
ρ(d::AbstractVector{N}, cup::UnionSet{N}) where {N<:Real}

Return the support function of the union of two convex sets in a given direction.

Input

  • d – direction
  • cup – union of two convex sets

Output

The support function in the given direction.

Algorithm

The support function of the union of two convex sets $X$ and $Y$ is the maximum of the support functions of $X$ and $Y$.

source
an_element(cup::UnionSet{N}) where {N<:Real}

Return some element of a union of two convex sets.

Input

  • cup – union of two convex sets

Output

An element in the union of two convex sets.

Algorithm

We use an_element on the first wrapped set.

source
Base.:∈Method.
∈(x::AbstractVector{N}, cup::UnionSet{N}) where {N<:Real}

Check whether a given point is contained in a union of two convex sets.

Input

  • x – point/vector
  • cup – union of two convex sets

Output

true iff $x ∈ cup$.

source
Base.isemptyMethod.
isempty(cup::UnionSet)

Check whether a union of two convex sets is empty.

Input

  • cup – union of two convex sets

Output

true iff the union is empty.

source
LazySets.isboundedMethod.
isbounded(cup::UnionSet)

Determine whether a union of two convex sets is bounded.

Input

  • cup – union of two convex sets

Output

true iff the union is bounded.

source

$n$-ary set union (UnionSetArray)

UnionSetArray{N<:Real, S<:LazySet{N}}

Type that represents the set union of a finite number of convex sets.

Fields

  • array – array of convex sets
source
LazySets.dimMethod.

dim(cup::UnionSetArray)

Return the dimension of the set union of a finite number of convex sets.

Input

  • cup – union of a finite number of convex sets

Output

The ambient dimension of the union of a finite number of convex sets.

source
LazySets.arrayMethod.

array(cup::UnionSetArray{N, S}) where {N<:Real, S<:LazySet{N}}

Return the array of a union of a finite number of convex sets.

Input

  • cup – union of a finite number of convex sets

Output

The array that holds the union of a finite number of convex sets.

source
LazySets.σMethod.

σ(d::AbstractVector{N}, cup::UnionSetArray{N}; [algorithm]="support_vector") where {N<:Real}

Return the support vector of the union of a finite number of convex sets in a given direction.

Input

  • d – direction
  • cup – union of a finite number of convex sets
  • algorithm – (optional, default: "supportvector"): the algorithm to compute the support vector; if "supportvector", use the support vector of each argument; if "support_function" use the support function of each argument and evaluate the support vector of only one of them

Output

The support vector in the given direction.

Algorithm

The support vector of the union of a finite number of convex sets $X₁, X₂, ...$ can be obtained as the vector that maximizes the support function, i.e. it is sufficient to find the $\argmax(ρ(d, X₂), ρ(d, X₂), ...])$ and evaluate its support vector.

The default implementation, with option algorithm="support_vector", computes the support vector of all $X₁, X₂, ...$ and then compares the support function using a dot product. If it happens that the support function can be more efficiently computed (without passing through the support vector), consider using the alternative algorithm="support_function" implementation, which evaluates the support function of each set directly and then calls only the support vector of one of the $Xᵢ$.

source
LazySets.ρMethod.

ρ(d::AbstractVector{N}, cup::UnionSetArray{N}) where {N<:Real}

Return the support function of the union of a finite number of convex sets in a given direction.

Input

  • d – direction
  • cup – union of a finite number of convex sets

Output

The support function in the given direction.

Algorithm

The support function of the union of a finite number of convex sets $X₁, X₂, ...$ can be obtained as the maximum of $ρ(d, X₂), ρ(d, X₂), ...$.

source

an_element(cup::UnionSetArray{N}) where {N<:Real}

Return some element of a union of a finite number of convex sets.

Input

  • cup – union of a finite number of convex sets

Output

An element in the union of a finite number of convex sets.

Algorithm

We use an_element on the first wrapped set.

source
Base.:∈Method.

∈(x::AbstractVector{N}, cup::UnionSetArray{N}) where {N<:Real}

Check whether a given point is contained in a union of a finite number of convex sets.

Input

  • x – point/vector
  • cup – union of a finite number of convex sets

Output

true iff $x ∈ cup$.

source
Base.isemptyMethod.

isempty(cup::UnionSetArray)

Check whether a union of a finite number of convex sets is empty.

Input

  • cup – union of a finite number of convex sets

Output

true iff the union is empty.

source
LazySets.isboundedMethod.

isbounded(cup::UnionSetArray)

Determine whether a union of a finite number of convex sets is bounded.

Input

  • cup – union of a finite number of convex sets

Output

true iff the union is bounded.

source