ZonoOpt v2.0.1
Loading...
Searching...
No Matches
EmptySet.hpp
Go to the documentation of this file.
1#ifndef ZONOOPT_EMPTYSET_HPP_
2#define ZONOOPT_EMPTYSET_HPP_
3
15#include "ConZono.hpp"
16#include "Zono.hpp"
17
18namespace ZonoOpt {
19
25class EmptySet final : public ConZono
26{
27public:
28
33 EmptySet() = default;
34
40 explicit EmptySet(int n);
41
42 HybZono* clone() const override;
43
44 std::string print() const override;
45
46 void constraint_reduction() override { /* do nothing */ }
47
48 std::unique_ptr<Zono> to_zono_approx() const override { throw std::runtime_error("to_zono_approx: EmptySet"); }
49
50protected:
51 Eigen::Vector<zono_float, -1> do_optimize_over(
52 const Eigen::SparseMatrix<zono_float>&, const Eigen::Vector<zono_float, -1>&, zono_float,
53 const OptSettings&, OptSolution* solution) const override;
54
55 Eigen::Vector<zono_float, -1> do_project_point(const Eigen::Vector<zono_float, -1>&, const OptSettings&, OptSolution* solution) const override;
56
57 zono_float do_support(const Eigen::Vector<zono_float, -1>&, const OptSettings&, OptSolution* solution) override;
58
59 bool do_contains_point(const Eigen::Vector<zono_float, -1>&, const OptSettings&, OptSolution*) const override;
60
61 Box do_bounding_box(const OptSettings&, OptSolution*) override;
62
63 bool do_is_empty(const OptSettings&, OptSolution*) const override;
64
65 std::unique_ptr<HybZono> do_complement(zono_float delta_m, bool, const OptSettings&, OptSolution*, int, int) override;
66};
67
68}
69
70#endif
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.cpp:20
Empty Set class.
Definition EmptySet.hpp:26
bool do_is_empty(const OptSettings &, OptSolution *) const override
Definition EmptySet.cpp:82
std::unique_ptr< HybZono > do_complement(zono_float delta_m, bool, const OptSettings &, OptSolution *, int, int) override
Definition EmptySet.cpp:87
void constraint_reduction() override
Execute constraint reduction algorithm from Scott et. al. 2016.
Definition EmptySet.hpp:46
HybZono * clone() const override
Clone method for polymorphic behavior.
Definition EmptySet.cpp:28
zono_float do_support(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, OptSolution *solution) override
Definition EmptySet.cpp:61
std::unique_ptr< Zono > to_zono_approx() const override
Compute outer approximation of constrained zonotope as zonotope using SVD.
Definition EmptySet.hpp:48
bool do_contains_point(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, OptSolution *) const override
Definition EmptySet.cpp:70
Box do_bounding_box(const OptSettings &, OptSolution *) override
Definition EmptySet.cpp:75
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.cpp:41
Eigen::Vector< zono_float, -1 > do_project_point(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, OptSolution *solution) const override
Definition EmptySet.cpp:52
std::string print() const override
Returns set information as a string.
Definition EmptySet.cpp:33
EmptySet()=default
Default constructor for EmptySet class.
Hybrid zonotope class.
Definition HybZono.hpp:44
int n
set dimension
Definition HybZono.hpp:464
#define zono_float
Defines the floating-point type used in ZonoOpt.
Definition ZonoOpt.hpp:45
Definition ZonoOpt.hpp:58
Settings for optimization routines in ZonoOpt library.
Definition SolverDataStructures.hpp:26
Solution data structure for optimization routines in ZonoOpt library.
Definition SolverDataStructures.hpp:153