ZonoOpt v2.1.0
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
ZonoOpt Namespace Reference

Classes

class  Box
 Box (i.e., interval vector) class. More...
 
class  ConZono
 Constrained zonotope class. More...
 
class  EmptySet
 Empty Set class. More...
 
class  HybZono
 Hybrid zonotope class. More...
 
struct  IneqTerm
 Structure containing term in 0-1 inequality. More...
 
class  Inequality
 Inequality class. More...
 
class  Interval
 Interval class. More...
 
class  IntervalMatrix
 Class for interval matrices (i.e., every element of the matrix is an interval) More...
 
class  MI_Box
 Mixed-integer box. More...
 
struct  OptSettings
 Settings for optimization routines in ZonoOpt library. More...
 
struct  OptSolution
 Solution data structure for optimization routines in ZonoOpt library. More...
 
class  Point
 Point class. More...
 
struct  WarmStartParams
 Warm start parameters for optimization routines in ZonoOpt library. More...
 
class  Zono
 Zonotope class. More...
 

Typedefs

typedef std::unique_ptr< HybZonoZonoPtr
 Type alias for a unique pointer to a (polymorphic) HybZono object. <>
 

Enumerations

enum  IneqType {
  LESS_OR_EQUAL = -1 , GREATER_OR_EQUAL = 1 , EQUAL = 0 , LESS = -2 ,
  GREATER = 2
}
 Enumeration to select inequality direction / use equality. More...
 

Functions

std::unique_ptr< ConZonovrep_2_conzono (const Eigen::Matrix< zono_float, -1, -1 > &Vpoly)
 Builds a constrained zonotope from a vertex representation polytope.
 
std::unique_ptr< HybZonoaffine_map (const HybZono &Z, const Eigen::SparseMatrix< zono_float > &R, const Eigen::Vector< zono_float, -1 > &s=Eigen::Vector< zono_float, -1 >())
 Returns affine map R*Z + s of set Z.
 
std::unique_ptr< HybZonoaffine_inclusion (const HybZono &Z, const IntervalMatrix &R, const Eigen::Vector< zono_float, -1 > &s=Eigen::Vector< zono_float, -1 >())
 Returns inclusion of zonotopic set for uncertain affine map R*Z + s.
 
std::unique_ptr< HybZonoproject_onto_dims (const HybZono &Z, const std::vector< int > &dims)
 Projects set Z onto the dimensions specified in dims.
 
std::unique_ptr< HybZonominkowski_sum (const HybZono &Z1, HybZono &Z2)
 Computes Minkowski sum of two sets Z1 and Z2.
 
std::unique_ptr< HybZonopontry_diff (HybZono &Z1, HybZono &Z2, bool exact=false)
 Computes the Pontryagin difference Z1 - Z2.
 
std::unique_ptr< HybZonointersection (const HybZono &Z1, HybZono &Z2, const Eigen::SparseMatrix< zono_float > &R=Eigen::SparseMatrix< zono_float >())
 Computes the generalized intersection of sets Z1 and Z2 over the matrix R.
 
std::unique_ptr< HybZonointersection_over_dims (const HybZono &Z1, HybZono &Z2, const std::vector< int > &dims)
 Computes the generalized intersection of sets Z1 and Z2 over the specified dimensions.
 
std::unique_ptr< HybZonohalfspace_intersection (HybZono &Z, const Eigen::SparseMatrix< zono_float > &H, const Eigen::Vector< zono_float, -1 > &f, const Eigen::SparseMatrix< zono_float > &R=Eigen::SparseMatrix< zono_float >())
 Computes the intersection generalized intersection of set Z with halfspace H*x <= f over matrix R.
 
std::unique_ptr< HybZonounion_of_many (const std::vector< std::shared_ptr< HybZono > > &Zs, bool preserve_sharpness=false, bool expose_indicators=false)
 Computes union of several sets.
 
std::unique_ptr< ConZonoconvex_hull (const std::vector< std::shared_ptr< HybZono > > &Zs)
 Computes convex hull of several sets.
 
std::unique_ptr< HybZonocartesian_product (const HybZono &Z1, HybZono &Z2)
 Computes the Cartesian product of two sets Z1 and Z2.
 
std::unique_ptr< HybZonoconstrain (HybZono &Z, const std::vector< Inequality > &ineqs, const Eigen::SparseMatrix< zono_float > &R=Eigen::SparseMatrix< zono_float >())
 Applies inequalities to set.
 
std::unique_ptr< HybZonoset_diff (const HybZono &Z1, HybZono &Z2, zono_float delta_m=100, bool remove_redundancy=true, const OptSettings &settings=OptSettings(), std::shared_ptr< OptSolution > *solution=nullptr, int n_leaves=std::numeric_limits< int >::max(), int contractor_iter=10)
 Set difference Z1 \ Z2.
 
std::unique_ptr< HybZonovrep_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< HybZonozono_union_2_hybzono (std::vector< std::shared_ptr< Zono > > &Zs, bool expose_indicators=false)
 Computes a hybrid zonotope from a union of zonotopes.
 
std::unique_ptr< Zonointerval_2_zono (const Box &box)
 Builds a zonotope from a Box object.
 
std::unique_ptr< Zonomake_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.
 
int perturb_binaries (const MI_Box &x_box, const Eigen::Ref< const Eigen::Vector< zono_float, -1 > > xk, Eigen::Ref< Eigen::Vector< zono_float, -1 > > zk, const bool restart, std::mt19937 &rand_gen)
 
std::ostream & operator<< (std::ostream &os, const HybZono &Z)
 
std::ostream & operator<< (std::ostream &os, const Box &box)
 
std::ostream & operator<< (std::ostream &os, const IntervalMatrix &interval_matrix)
 

Enumeration Type Documentation

◆ IneqType

Enumeration to select inequality direction / use equality.

Enumerator
LESS_OR_EQUAL 
GREATER_OR_EQUAL 
EQUAL 
LESS 
GREATER 

Function Documentation

◆ operator<<() [1/3]

std::ostream & ZonoOpt::operator<< ( std::ostream &  os,
const Box box 
)
Parameters
osostream
boxreference to box
Returns
ostream

◆ operator<<() [2/3]

std::ostream & ZonoOpt::operator<< ( std::ostream &  os,
const HybZono Z 
)
Parameters
os
Z

◆ operator<<() [3/3]

std::ostream & ZonoOpt::operator<< ( std::ostream &  os,
const IntervalMatrix interval_matrix 
)
Parameters
osostream
interval_matrixreference to interval matrix
Returns
ostream

◆ perturb_binaries()

int ZonoOpt::perturb_binaries ( const MI_Box x_box,
const Eigen::Ref< const Eigen::Vector< zono_float, -1 > >  xk,
Eigen::Ref< Eigen::Vector< zono_float, -1 > >  zk,
const bool  restart,
std::mt19937 &  rand_gen 
)