|
ZonoOpt v2.0.1
|
Setup functions for ZonoOpt library. More...
Functions | |
| std::unique_ptr< ConZono > | ZonoOpt::vrep_2_conzono (const Eigen::Matrix< zono_float, -1, -1 > &Vpoly) |
| Builds a constrained zonotope from a vertex representation polytope. | |
| std::unique_ptr< HybZono > | ZonoOpt::vrep_2_hybzono (const std::vector< Eigen::Matrix< zono_float, -1, -1 > > &Vpolys, bool expose_indicators=false) |
| Computes a hybrid zonotope from a union of vertex representation polytopes. | |
| std::unique_ptr< HybZono > | ZonoOpt::zono_union_2_hybzono (std::vector< Zono > &Zs, bool expose_indicators=false) |
| Computes a hybrid zonotope from a union of zonotopes. | |
| std::unique_ptr< Zono > | ZonoOpt::interval_2_zono (const Box &box) |
| Builds a zonotope from a Box object. | |
| std::unique_ptr< Zono > | ZonoOpt::make_regular_zono_2D (zono_float radius, int n_sides, bool outer_approx=false, const Eigen::Vector< zono_float, 2 > &c=Eigen::Vector< zono_float, 2 >::Zero()) |
| Builds a 2D regular zonotope with a given radius and number of sides. | |
Setup functions for ZonoOpt library.
| std::unique_ptr< Zono > ZonoOpt::make_regular_zono_2D | ( | zono_float | radius, |
| int | n_sides, | ||
| bool | outer_approx = false, |
||
| const Eigen::Vector< zono_float, 2 > & | c = Eigen::Vector<zono_float, 2>::Zero() |
||
| ) |
Builds a 2D regular zonotope with a given radius and number of sides.
| radius | radius of the zonotope |
| n_sides | number of sides (must be an even number >= 4) |
| outer_approx | flag to do an outer approximation instead of an inner approximation |
| c | center vector |
| std::unique_ptr< ConZono > ZonoOpt::vrep_2_conzono | ( | const Eigen::Matrix< zono_float, -1, -1 > & | Vpoly | ) |
Builds a constrained zonotope from a vertex representation polytope.
| Vpoly | vertices of V-rep polytope |
Vpoly is a matrix where each row is a vertex of the polytope.
| std::unique_ptr< HybZono > ZonoOpt::vrep_2_hybzono | ( | const std::vector< Eigen::Matrix< zono_float, -1, -1 > > & | Vpolys, |
| bool | expose_indicators = false |
||
| ) |
Computes a hybrid zonotope from a union of vertex representation polytopes.
| Vpolys | V-rep polytopes to be unioned. |
| expose_indicators | Flag to append indicator set to the union. |
Vpolys is a vector of matrices, where each matrix represents a polytope in vertex representation. Each row in each polytope matrix is a vertex of the polytope, and each column corresponds to a dimension. The function constructs a hybrid zonotope in [0,1] form that represents the union of these polytopes. This function computes union of sets {V0, V1, ..., Vn}. If expose_indicators is true, returns union({V0, ..., Vn}) x I where I is the indicator set for the union. Specifically, each dimension of I corresponds to one of the Vi in the union. So for vrep_2_hybzono({V0, V1, V2}, true) with V0, V1, V2 not intersecting, if a vector [z, i] is in union({V0, V1, V2}) x I, then i = [1, 0, 0] if z is in V0, etc.
| std::unique_ptr< HybZono > ZonoOpt::zono_union_2_hybzono | ( | std::vector< Zono > & | Zs, |
| bool | expose_indicators = false |
||
| ) |
Computes a hybrid zonotope from a union of zonotopes.
| Zs | A vector of zonotopes to be unioned. |
| expose_indicators | Flag to append indicator set to the union. |
This function computes union of sets {Z0, Z1, ..., Zn}. This can be more efficient than union_of_many if all sets are zonotopes because generators can be reused. If expose_indicators is true, returns union({Z0, ..., Zn}) x I where I is the indicator set for the union. Specifically, each dimension of I corresponds to one of the Zi in the union. So for zono_union_2_hybzono({Z0, Z1, Z2}, true) with Z0, Z1, VZ2 not intersecting, if a vector [z, i] is in union({Z0, Z1, Z2}) x I, then i = [1, 0, 0] if z is in Z0, etc.