ZonoOpt 2.4.1
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
ZonoOpt::Point Class Referencefinal

Point class. More...

#include <Point.hpp>

Inheritance diagram for ZonoOpt::Point:
Inheritance graph
[legend]
Collaboration diagram for ZonoOpt::Point:
Collaboration graph
[legend]

Public Member Functions

HybZonoclone () const override
 Clone method for polymorphic behavior.
 
std::unique_ptr< ConZonoconstraint_reduction () const override
 Execute constraint reduction algorithm from Scott et. al. 2016.
 
void convert_form () override
 Converts the set representation between -1-1 and 0-1 forms.
 
void operator*= (const Box &box)
 in-place cartesian product with box
 
void operator*= (const Box &box)=delete
 Deleted: use operator* instead — result type would be Zono.
 
void operator*= (HybZono &other)
 in-place cartesian product
 
void operator*= (HybZono &other)=delete
 Deleted: use operator* instead — result type would be Zono or wider.
 
void operator*= (Point &other)
 In-place Cartesian product with another Point. Use operator* for Zono/ConZono/HybZono/Box arguments, which return a wider type.
 
void operator*= (zono_float f)
 scalar multiplication in place
 
void operator+= (const Box &box)
 in-place minkowski sum with box
 
void operator+= (const Box &box)=delete
 Deleted: use operator+ instead — result type would be Zono.
 
void operator+= (const Eigen::Vector< zono_float, -1 > &v)
 in-place minkowski sum with point
 
void operator+= (HybZono &other)
 in-place minkowski sum
 
void operator+= (HybZono &other)=delete
 Deleted: use operator+ instead — result type would be Zono or wider.
 
void operator+= (Point &other)
 In-place Minkowski sum with another Point (translation). Use operator+ for Zono/ConZono/HybZono/Box arguments, which return a wider type.
 
void operator-= (const Box &box)
 in-place pontryagin difference with box
 
void operator-= (const Box &box)=delete
 Deleted: use operator- instead — PointBox does not yield a Point.
 
void operator-= (const Eigen::Vector< zono_float, -1 > &v)
 in-place pontryagin difference with point
 
void operator-= (Zono &other)
 in-place pontryagin difference
 
void operator-= (Zono &other)=delete
 Deleted: use operator- instead — PointZono does not yield a Point.
 
 Point ()
 Default constructor for Point class.
 
 Point (const Eigen::Vector< zono_float, -1 > &c)
 Point constructor.
 
std::string print () const override
 Returns set information as a string.
 
std::unique_ptr< HybZonoremove_redundancy (int) const override
 Removes redundant constraints and any unused generators.
 
void set (const Eigen::Vector< zono_float, -1 > &c)
 Reset point object with the given parameters.
 
- Public Member Functions inherited from ZonoOpt::Zono
HybZonoclone () const override
 Clone method for polymorphic behavior.
 
std::unique_ptr< ConZonoconstraint_reduction () const override
 Execute constraint reduction algorithm from Scott et. al. 2016.
 
void convert_form () override
 Converts the set representation between -1-1 and 0-1 forms.
 
Eigen::Vector< zono_float, -1 > get_center ()
 get center of zonotope
 
zono_float get_volume ()
 Get volume of zonotope.
 
void operator*= (const Box &box)
 in-place cartesian product with box
 
void operator*= (HybZono &other)
 in-place cartesian product
 
void operator*= (HybZono &other)=delete
 Deleted: use operator* instead — result type would be ConZono or HybZono.
 
void operator*= (Zono &other)
 In-place Cartesian product (type-preserving: Zono or Point argument). Use operator* for ConZono/HybZono arguments, which return a wider type.
 
void operator*= (zono_float f)
 scalar multiplication in place
 
void operator+= (const Box &box)
 in-place minkowski sum with box
 
void operator+= (const Eigen::Vector< zono_float, -1 > &v)
 in-place minkowski sum with point
 
void operator+= (HybZono &other)
 in-place minkowski sum
 
void operator+= (HybZono &other)=delete
 Deleted: use operator+ instead — result type would be ConZono or HybZono.
 
void operator+= (Zono &other)
 In-place Minkowski sum (type-preserving: Zono or Point argument). Use operator+ for ConZono/HybZono arguments, which return a wider type.
 
std::string print () const override
 Returns set information as a string.
 
std::unique_ptr< Zonoreduce_order (int n_o)
 Perform zonotope order reduction.
 
void set (const Eigen::SparseMatrix< zono_float > &G, const Eigen::Vector< zono_float, -1 > &c, bool zero_one_form=false)
 Reset zonotope object with the given parameters.
 
 Zono ()
 Default constructor for Zono class.
 
 Zono (const Eigen::SparseMatrix< zono_float > &G, const Eigen::Vector< zono_float, -1 > &c, const bool zero_one_form=false)
 Zono constructor.
 
 ~Zono () override=default
 
- Public Member Functions inherited from ZonoOpt::ConZono
 ConZono ()
 Default constructor for ConZono class.
 
 ConZono (const Eigen::SparseMatrix< zono_float > &G, const Eigen::Vector< zono_float, -1 > &c, const Eigen::SparseMatrix< zono_float > &A, const Eigen::Vector< zono_float, -1 > &b, const bool zero_one_form=false)
 ConZono constructor.
 
void operator*= (const Box &box)
 in-place cartesian product with box
 
void operator*= (ConZono &other)
 In-place Cartesian product (type-preserving: ConZono, Zono, or Point argument). Use operator* for operations with HybZono, which return HybZono.
 
void operator*= (HybZono &other)
 in-place cartesian product
 
void operator*= (HybZono &other)=delete
 Deleted: use operator* instead — result type would be HybZono.
 
void operator*= (zono_float f)
 scalar multiplication in place
 
void operator+= (const Box &box)
 in-place minkowski sum with box
 
void operator+= (const Eigen::Vector< zono_float, -1 > &v)
 in-place minkowski sum with point
 
void operator+= (ConZono &other)
 In-place Minkowski sum (type-preserving: ConZono, Zono, or Point argument). Use operator+ for operations with HybZono, which return HybZono.
 
void operator+= (HybZono &other)
 in-place minkowski sum
 
void operator+= (HybZono &other)=delete
 Deleted: use operator+ instead — result type would be HybZono.
 
void set (const Eigen::SparseMatrix< zono_float > &G, const Eigen::Vector< zono_float, -1 > &c, const Eigen::SparseMatrix< zono_float > &A, const Eigen::Vector< zono_float, -1 > &b, bool zero_one_form=false)
 Reset constrained zonotope object with the given parameters.
 
virtual std::unique_ptr< Zonoto_zono_approx () const
 Compute outer approximation of constrained zonotope as zonotope using SVD.
 
 ~ConZono () override=default
 
- Public Member Functions inherited from ZonoOpt::HybZono
Box bounding_box (const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams())
 Computes a bounding box of the set object as a Box object.
 
virtual std::unique_ptr< HybZonocomplement (const zono_float delta_m=100, const bool remove_redundancy=true, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const int n_leaves=std::numeric_limits< int >::max(), const int contractor_iter=10)
 Computes the complement of the set Z.
 
bool contains_point (const Eigen::Vector< zono_float, -1 > &x, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams()) const
 Checks whether the point x is contained in the set object.
 
virtual std::unique_ptr< ConZonoconvex_relaxation () const
 Returns convex relaxation of the hybrid zonotope.
 
virtual Eigen::SparseMatrix< zono_floatget_A () const
 Returns constraint matrix.
 
virtual Eigen::SparseMatrix< zono_floatget_Ab () const
 Returns binary constraint matrix.
 
virtual Eigen::SparseMatrix< zono_floatget_Ac () const
 Returns continuous constraint matrix.
 
virtual Eigen::Vector< zono_float, -1 > get_b () const
 Returns constraint vector.
 
virtual Eigen::Vector< zono_float, -1 > get_c () const
 Returns center vector.
 
virtual Eigen::SparseMatrix< zono_floatget_G () const
 Returns generator matrix.
 
virtual Eigen::SparseMatrix< zono_floatget_Gb () const
 Returns binary generator matrix.
 
virtual Eigen::SparseMatrix< zono_floatget_Gc () const
 Returns continuous generator matrix.
 
std::vector< std::unique_ptr< ConZono > > get_leaves (bool remove_redundancy=false, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, int n_leaves=std::numeric_limits< int >::max(), int contractor_iter=10) const
 Computes individual constrained zonotopes whose union is the hybrid zonotope object.
 
virtual int get_n () const
 Returns dimension of set.
 
virtual int get_nC () const
 Returns number of constraints in set definition.
 
virtual int get_nG () const
 Returns number of generators in set definition.
 
virtual int get_nGb () const
 Returns number of binary generators in set definition.
 
virtual int get_nGc () const
 Returns number of continuous generators in set definition.
 
 HybZono ()=default
 Default constructor for HybZono class.
 
 HybZono (const Eigen::SparseMatrix< zono_float > &Gc, const Eigen::SparseMatrix< zono_float > &Gb, const Eigen::Vector< zono_float, -1 > &c, const Eigen::SparseMatrix< zono_float > &Ac, const Eigen::SparseMatrix< zono_float > &Ab, const Eigen::Vector< zono_float, -1 > &b, const bool zero_one_form=false, const bool sharp=false)
 HybZono constructor.
 
virtual bool is_0_1_form () const
 Returns true if factors are in range [0,1], false if they are in range [-1,1].
 
bool is_conzono () const
 Polymorphic type checking: true if set is a constrained zonotope.
 
bool is_empty (const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams()) const
 Returns true if the set is provably empty, false otherwise.
 
bool is_empty_set () const
 Polymorphic type checking: true if set is empty set object.
 
bool is_hybzono () const
 Polymorphic type checking: true if set is a hybrid zonotope.
 
bool is_point () const
 Polymorphic type checking: true if set is a point.
 
bool is_sharp () const
 Returns true if set is known to be sharp.
 
bool is_zono () const
 Polymorphic type checking: true if set is a zonotope.
 
std::unique_ptr< HybZonooperator& (HybZono &other) const
 intersection
 
std::unique_ptr< HybZonooperator* (const Box &box) const
 cartesian product with box
 
std::unique_ptr< HybZonooperator* (HybZono &other) const
 cartesian product
 
std::unique_ptr< HybZonooperator* (zono_float f) const
 scalar multiplication: returns f*Z
 
void operator*= (const Box &box)
 in-place cartesian product with box
 
void operator*= (HybZono &other)
 in-place cartesian product
 
void operator*= (zono_float f)
 scalar multiplication in place
 
std::unique_ptr< HybZonooperator+ (const Box &box) const
 minkowski sum with box
 
std::unique_ptr< HybZonooperator+ (const Eigen::Vector< zono_float, -1 > &v) const
 minkowski sum with point
 
std::unique_ptr< HybZonooperator+ (HybZono &other) const
 minkowski sum
 
void operator+= (const Box &box)
 in-place minkowski sum with box
 
void operator+= (const Eigen::Vector< zono_float, -1 > &v)
 in-place minkowski sum with point
 
void operator+= (HybZono &other)
 in-place minkowski sum
 
std::unique_ptr< HybZonooperator- () const
 unary minus: returns -I * this
 
std::unique_ptr< HybZonooperator- (const Box &box)
 pontryagin difference with box
 
std::unique_ptr< HybZonooperator- (const Eigen::Vector< zono_float, -1 > &v)
 pontryagin difference with point
 
std::unique_ptr< HybZonooperator- (Zono &other)
 pontryagin difference
 
void operator-= (const Box &box)
 in-place pontryagin difference with box
 
void operator-= (const Eigen::Vector< zono_float, -1 > &v)
 in-place pontryagin difference with point
 
void operator-= (Zono &other)
 in-place pontryagin difference
 
std::unique_ptr< HybZonooperator| (HybZono &other) const
 union
 
Eigen::Vector< zono_float, -1 > optimize_over (const Eigen::SparseMatrix< zono_float > &P, const Eigen::Vector< zono_float, -1 > &q, zono_float c=0, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams()) const
 Solves optimization problem with quadratic objective over the current set.
 
Eigen::Vector< zono_float, -1 > project_point (const Eigen::Vector< zono_float, -1 > &x, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams()) const
 Returns the projection of the point x onto the set object.
 
void set (const Eigen::SparseMatrix< zono_float > &Gc, const Eigen::SparseMatrix< zono_float > &Gb, const Eigen::Vector< zono_float, -1 > &c, const Eigen::SparseMatrix< zono_float > &Ac, const Eigen::SparseMatrix< zono_float > &Ab, const Eigen::Vector< zono_float, -1 > &b, bool zero_one_form=false, bool sharp=false)
 Reset hybrid zonotope object with the given parameters.
 
zono_float support (const Eigen::Vector< zono_float, -1 > &d, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams())
 Computes support function of the set in the direction d.
 
virtual ~HybZono ()=default
 

Protected Member Functions

Box do_bounding_box (const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) override
 
bool do_contains_point (const Eigen::Vector< zono_float, -1 > &x, const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) const override
 
Eigen::Vector< zono_float, -1 > do_optimize_over (const Eigen::SparseMatrix< zono_float > &, const Eigen::Vector< zono_float, -1 > &, zono_float, const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) const override
 
Eigen::Vector< zono_float, -1 > do_project_point (const Eigen::Vector< zono_float, -1 > &x, const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) const override
 
zono_float do_support (const Eigen::Vector< zono_float, -1 > &d, const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) override
 
- Protected Member Functions inherited from ZonoOpt::Zono
Box do_bounding_box (const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) override
 
bool do_is_empty (const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) const override
 
zono_float do_support (const Eigen::Vector< zono_float, -1 > &d, const SolverSettings &, std::shared_ptr< OptSolution > *sol, const WarmStartParams &) override
 
- Protected Member Functions inherited from ZonoOpt::ConZono
std::unique_ptr< HybZonodo_complement (zono_float delta_m, bool, const SolverSettings &, std::shared_ptr< OptSolution > *, int, int) override
 
OptSolution qp_opt (const Eigen::SparseMatrix< zono_float > &P, const Eigen::Vector< zono_float, -1 > &q, zono_float c, const Eigen::SparseMatrix< zono_float > &A, const Eigen::Vector< zono_float, -1 > &b, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams()) const
 
- Protected Member Functions inherited from ZonoOpt::HybZono
OptSolution mi_opt (const Eigen::SparseMatrix< zono_float > &P, const Eigen::Vector< zono_float, -1 > &q, zono_float c, const Eigen::SparseMatrix< zono_float > &A, const Eigen::Vector< zono_float, -1 > &b, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr, const WarmStartParams &warm_start_params=WarmStartParams()) const
 
std::vector< OptSolutionmi_opt_multisol (const Eigen::SparseMatrix< zono_float > &P, const Eigen::Vector< zono_float, -1 > &q, zono_float c, const Eigen::SparseMatrix< zono_float > &A, const Eigen::Vector< zono_float, -1 > &b, int n_sols, const SolverSettings &settings=get_default_solver_settings(), std::shared_ptr< OptSolution > *solution=nullptr) const
 

Additional Inherited Members

- Static Protected Member Functions inherited from ZonoOpt::HybZono
static std::set< intfind_unused_generators (const Eigen::SparseMatrix< zono_float > &G, const Eigen::SparseMatrix< zono_float > &A)
 
static void remove_cols (Eigen::SparseMatrix< zono_float > &M, const std::set< int > &idx_to_remove)
 
- Protected Attributes inherited from ZonoOpt::HybZono
Eigen::SparseMatrix< zono_floatA = Eigen::SparseMatrix<zono_float>(0, 0)
 constraint matrix A = [Ac, Ab]
 
Eigen::SparseMatrix< zono_floatAb = Eigen::SparseMatrix<zono_float>(0, 0)
 binary constraint matrix
 
Eigen::SparseMatrix< zono_floatAc = Eigen::SparseMatrix<zono_float>(0, 0)
 continuous constraint matrix
 
Eigen::Vector< zono_float, -1 > b = Eigen::Vector<zono_float, -1>(0)
 constraint vector
 
Eigen::Vector< zono_float, -1 > c = Eigen::Vector<zono_float, -1>(0)
 center vector
 
Eigen::SparseMatrix< zono_floatG = Eigen::SparseMatrix<zono_float>(0, 0)
 generator matrix G = [Gc, Gb]
 
Eigen::SparseMatrix< zono_floatGb = Eigen::SparseMatrix<zono_float>(0, 0)
 binary generator matrix
 
Eigen::SparseMatrix< zono_floatGc = Eigen::SparseMatrix<zono_float>(0, 0)
 continuous generator matrix
 
int n = 0
 set dimension
 
int nC = 0
 number of constraints
 
int nG = 0
 total number of factors. nG = nGc + nGb
 
int nGb = 0
 number of binary factors
 
int nGc = 0
 number of continuous factors
 
bool sharp = false
 flag to indicate whether the set is known to be sharp (i.e., convex relaxation = convex hull)
 
bool zero_one_form = false
 flag to indicate whether the set is in 0-1 or -1-1 form
 

Detailed Description

Point class.

A point is defined entirely by the center vector c.

Constructor & Destructor Documentation

◆ Point() [1/2]

ZonoOpt::Point::Point ( )
inline

Default constructor for Point class.

◆ Point() [2/2]

ZonoOpt::Point::Point ( const Eigen::Vector< zono_float, -1 > &  c)
explicit

Point constructor.

Parameters
ccenter

Member Function Documentation

◆ clone()

HybZono * ZonoOpt::Point::clone ( ) const
overridevirtual

Clone method for polymorphic behavior.

Reimplemented from ZonoOpt::ConZono.

◆ constraint_reduction()

std::unique_ptr< ConZono > ZonoOpt::Point::constraint_reduction ( ) const
inlineoverridevirtual

Execute constraint reduction algorithm from Scott et. al. 2016.

Returns
Over-approximated constrained zonotope

Removes one constraint and one generator from the constrained zonotope. The resulting set is an over-approximation of the original set.

Exceptions
std::runtime_errorif no valid constraint can be found to remove.

Reimplemented from ZonoOpt::ConZono.

◆ convert_form()

void ZonoOpt::Point::convert_form ( )
inlineoverridevirtual

Converts the set representation between -1-1 and 0-1 forms.

This method converts the set representation between -1-1 and 0-1 forms. If the set is in -1-1 form, then xi_c in [-1,1] and xi_b in {-1,1}. If the set is in 0-1 form, then xi_c in [0,1] and xi_b in {0,1}.

Reimplemented from ZonoOpt::ConZono.

◆ do_bounding_box()

Box ZonoOpt::Point::do_bounding_box ( const SolverSettings ,
std::shared_ptr< OptSolution > *  sol,
const WarmStartParams  
)
overrideprotectedvirtual

Reimplemented from ZonoOpt::ConZono.

◆ do_contains_point()

bool ZonoOpt::Point::do_contains_point ( const Eigen::Vector< zono_float, -1 > &  x,
const SolverSettings ,
std::shared_ptr< OptSolution > *  sol,
const WarmStartParams  
) const
overrideprotectedvirtual

Reimplemented from ZonoOpt::ConZono.

◆ do_optimize_over()

Eigen::Vector< zono_float, -1 > ZonoOpt::Point::do_optimize_over ( const Eigen::SparseMatrix< zono_float > &  ,
const Eigen::Vector< zono_float, -1 > &  ,
zono_float  ,
const SolverSettings ,
std::shared_ptr< OptSolution > *  sol,
const WarmStartParams  
) const
overrideprotectedvirtual

Reimplemented from ZonoOpt::ConZono.

◆ do_project_point()

Eigen::Vector< zono_float, -1 > ZonoOpt::Point::do_project_point ( const Eigen::Vector< zono_float, -1 > &  x,
const SolverSettings ,
std::shared_ptr< OptSolution > *  sol,
const WarmStartParams  
) const
overrideprotectedvirtual

Reimplemented from ZonoOpt::ConZono.

◆ do_support()

zono_float ZonoOpt::Point::do_support ( const Eigen::Vector< zono_float, -1 > &  d,
const SolverSettings ,
std::shared_ptr< OptSolution > *  sol,
const WarmStartParams  
)
overrideprotectedvirtual

Reimplemented from ZonoOpt::ConZono.

◆ operator*=() [1/6]

in-place cartesian product with box

Parameters
box

◆ operator*=() [2/6]

void ZonoOpt::Point::operator*= ( const Box box)
delete

Deleted: use operator* instead — result type would be Zono.

◆ operator*=() [3/6]

in-place cartesian product

Parameters
other

◆ operator*=() [4/6]

void ZonoOpt::Point::operator*= ( HybZono other)
delete

Deleted: use operator* instead — result type would be Zono or wider.

◆ operator*=() [5/6]

In-place Cartesian product with another Point. Use operator* for Zono/ConZono/HybZono/Box arguments, which return a wider type.

◆ operator*=() [6/6]

scalar multiplication in place

Parameters
f

◆ operator+=() [1/6]

in-place minkowski sum with box

Parameters
box
Exceptions
std::invalid_argumentif box does not have the same dimension as this set.

◆ operator+=() [2/6]

void ZonoOpt::Point::operator+= ( const Box box)
delete

Deleted: use operator+ instead — result type would be Zono.

◆ operator+=() [3/6]

void ZonoOpt::HybZono::operator+= ( const Eigen::Vector< zono_float, -1 > &  v)

in-place minkowski sum with point

Parameters
v
Exceptions
std::invalid_argumentif v does not have the same dimension as this set.

◆ operator+=() [4/6]

in-place minkowski sum

Parameters
other
Exceptions
std::invalid_argumentif this and other have different dimensions.

◆ operator+=() [5/6]

void ZonoOpt::Point::operator+= ( HybZono other)
delete

Deleted: use operator+ instead — result type would be Zono or wider.

◆ operator+=() [6/6]

In-place Minkowski sum with another Point (translation). Use operator+ for Zono/ConZono/HybZono/Box arguments, which return a wider type.

◆ operator-=() [1/5]

in-place pontryagin difference with box

Parameters
box
Exceptions
std::invalid_argumentif box does not have the same dimension as this set.

◆ operator-=() [2/5]

void ZonoOpt::Point::operator-= ( const Box box)
delete

Deleted: use operator- instead — PointBox does not yield a Point.

◆ operator-=() [3/5]

void ZonoOpt::HybZono::operator-= ( const Eigen::Vector< zono_float, -1 > &  v)

in-place pontryagin difference with point

Parameters
v
Exceptions
std::invalid_argumentif v does not have the same dimension as this set.

◆ operator-=() [4/5]

in-place pontryagin difference

Parameters
other
Exceptions
std::invalid_argumentif this and other have different dimensions.

◆ operator-=() [5/5]

void ZonoOpt::Point::operator-= ( Zono other)
delete

Deleted: use operator- instead — PointZono does not yield a Point.

◆ print()

std::string ZonoOpt::Point::print ( ) const
overridevirtual

Returns set information as a string.

Reimplemented from ZonoOpt::ConZono.

◆ remove_redundancy()

std::unique_ptr< HybZono > ZonoOpt::Point::remove_redundancy ( int  contractor_iter) const
inlineoverridevirtual

Removes redundant constraints and any unused generators.

Parameters
contractor_iternumber of interval contractor iterations to run
Returns
set with redundancies removed

This method uses an interval contractor to detect generators that can be removed. Constrained zonotopes with separable constraints and generators in the form [g0 0 0 ...]^T * xi + c, a^T * xi = b are simplified. Additionally, any linearly dependent rows of the constraint matrix A are removed. If the linearly dependent constraints are not consistent (e.g., if A = [1, 0.1; 1, 0.1] and b = [1; 0.8]), the returned set is not equivalent to the original set. Unused factors are also removed.

Exceptions
std::runtime_errorif redundancy removal fails internally (should not occur in normal use).

Reimplemented from ZonoOpt::HybZono.

◆ set()

void ZonoOpt::Point::set ( const Eigen::Vector< zono_float, -1 > &  c)

Reset point object with the given parameters.

Parameters
ccenter

The documentation for this class was generated from the following files: