1#ifndef ZONOOPT_EMPTYSET_HPP_
2#define ZONOOPT_EMPTYSET_HPP_
45 this->
c.resize(this->n);
46 this->
c.setConstant(std::numeric_limits<zono_float>::quiet_NaN());
47 this->
G.resize(this->n,0);
53 this->
Gb.resize(this->n, 0);
54 this->
A.resize(0, this->
nG);
56 this->
Ab.resize(0, 0);
66 std::string
print()
const override
69 ss <<
"EmptySet: " << std::endl;
70 ss <<
" n: " << this->
n;
76 std::unique_ptr<Zono>
to_zono_approx()
const override {
throw std::runtime_error(
"to_zono_approx: EmptySet"); }
80 const Eigen::SparseMatrix<zono_float>&,
const Eigen::Vector<zono_float, -1>&,
zono_float,
87 return Eigen::Vector<zono_float, -1>::Constant(this->
n, std::numeric_limits<zono_float>::quiet_NaN());
96 return Eigen::Vector<zono_float, -1>::Constant(this->
n, std::numeric_limits<zono_float>::quiet_NaN());
105 return std::numeric_limits<zono_float>::quiet_NaN();
115 const Eigen::Vector<
zono_float, -1>
x_l = Eigen::Vector<zono_float, -1>::Constant(this->
n, std::numeric_limits<zono_float>::infinity());
116 const Eigen::Vector<
zono_float, -1>
x_u = -Eigen::Vector<zono_float, -1>::Constant(this->
n, std::numeric_limits<zono_float>::infinity());
128 const Eigen::Vector<
zono_float, -1>
x_l = -Eigen::Vector<zono_float, -1>::Constant(this->
n, m);
129 const Eigen::Vector<
zono_float, -1>
x_u = Eigen::Vector<zono_float, -1>::Constant(this->
n, m);
Constrained zonotope class for ZonoOpt library.
Zonotope class for ZonoOpt library.
Box (i.e., interval vector) class.
Definition Intervals.hpp:718
Constrained zonotope class.
Definition ConZono.hpp:33
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.
Definition ConZono.hpp:150
Empty Set class.
Definition EmptySet.hpp:26
bool do_is_empty(const OptSettings &, OptSolution *) const override
Definition EmptySet.hpp:120
std::unique_ptr< HybZono > do_complement(zono_float delta_m, bool, const OptSettings &, OptSolution *, int, int) override
Definition EmptySet.hpp:125
void constraint_reduction() override
Execute constraint reduction algorithm from Scott et. al. 2016.
Definition EmptySet.hpp:74
HybZono * clone() const override
Clone method for polymorphic behavior.
Definition EmptySet.hpp:61
zono_float do_support(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, OptSolution *solution) override
Definition EmptySet.hpp:99
std::unique_ptr< Zono > to_zono_approx() const override
Compute outer approximation of constrained zonotope as zonotope using SVD.
Definition EmptySet.hpp:76
bool do_contains_point(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, OptSolution *) const override
Definition EmptySet.hpp:108
Box do_bounding_box(const OptSettings &, OptSolution *) override
Definition EmptySet.hpp:113
Eigen::Vector< zono_float, -1 > do_optimize_over(const Eigen::SparseMatrix< zono_float > &, const Eigen::Vector< zono_float, -1 > &, zono_float, const OptSettings &, OptSolution *solution) const override
Definition EmptySet.hpp:79
EmptySet(const int n)
EmptySet constructor.
Definition EmptySet.hpp:40
Eigen::Vector< zono_float, -1 > do_project_point(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, OptSolution *solution) const override
Definition EmptySet.hpp:90
std::string print() const override
Returns set information as a string.
Definition EmptySet.hpp:66
EmptySet()=default
Default constructor for EmptySet class.
Hybrid zonotope class.
Definition HybZono.hpp:44
int nC
number of constraints
Definition HybZono.hpp:482
int n
set dimension
Definition HybZono.hpp:470
bool zero_one_form
flag to indicate whether the set is in 0-1 or -1-1 form
Definition HybZono.hpp:485
Eigen::SparseMatrix< zono_float > Gc
continuous generator matrix
Definition HybZono.hpp:449
Eigen::SparseMatrix< zono_float > Gb
binary generator matrix
Definition HybZono.hpp:452
int nG
total number of factors. nG = nGc + nGb
Definition HybZono.hpp:473
Eigen::Vector< zono_float, -1 > c
center vector
Definition HybZono.hpp:464
int nGb
number of binary factors
Definition HybZono.hpp:479
Eigen::SparseMatrix< zono_float > A
constraint matrix A = [Ac, Ab]
Definition HybZono.hpp:455
Eigen::Vector< zono_float, -1 > b
constraint vector
Definition HybZono.hpp:467
Eigen::SparseMatrix< zono_float > Ab
binary constraint matrix
Definition HybZono.hpp:461
Eigen::SparseMatrix< zono_float > Ac
continuous constraint matrix
Definition HybZono.hpp:458
Eigen::SparseMatrix< zono_float > G
generator matrix G = [Gc, Gb]
Definition HybZono.hpp:446
int nGc
number of continuous factors
Definition HybZono.hpp:476
#define zono_float
Defines the floating-point type used in ZonoOpt.
Definition ZonoOpt.hpp:43
std::unique_ptr< Zono > interval_2_zono(const Box &box)
Builds a zonotope from a Box object.
Definition PolymorphicFunctions.hpp:1575
Settings for optimization routines in ZonoOpt library.
Definition SolverDataStructures.hpp:26
Solution data structure for optimization routines in ZonoOpt library.
Definition SolverDataStructures.hpp:153
bool infeasible
true if optimization problem is provably infeasible
Definition SolverDataStructures.hpp:175