ZonoOpt 2.2.0
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{
25 class EmptySet final : public ConZono
26 {
27 public:
32 EmptySet() = default;
33
39 explicit EmptySet(int n);
40
41 HybZono* clone() const override;
42
43 std::string print() const override;
44
45 void constraint_reduction() override
46 {
47 /* do nothing */
48 }
49
50 std::unique_ptr<Zono> to_zono_approx() const override { throw std::runtime_error("to_zono_approx: EmptySet"); }
51
52 protected:
53 Eigen::Vector<zono_float, -1> do_optimize_over(
54 const Eigen::SparseMatrix<zono_float>&, const Eigen::Vector<zono_float, -1>&, zono_float,
55 const OptSettings&, std::shared_ptr<OptSolution>* solution,
56 const WarmStartParams&) const override;
57
58 Eigen::Vector<zono_float, -1> do_project_point(const Eigen::Vector<zono_float, -1>&, const OptSettings&,
59 std::shared_ptr<OptSolution>* solution,
60 const WarmStartParams&) const override;
61
62 zono_float do_support(const Eigen::Vector<zono_float, -1>&, const OptSettings&,
63 std::shared_ptr<OptSolution>* solution,
64 const WarmStartParams&) override;
65
66 bool do_contains_point(const Eigen::Vector<zono_float, -1>&, const OptSettings&, std::shared_ptr<OptSolution>*,
67 const WarmStartParams&) const override;
68
69 Box do_bounding_box(const OptSettings&, std::shared_ptr<OptSolution>*,
70 const WarmStartParams&) override;
71
72 bool do_is_empty(const OptSettings&, std::shared_ptr<OptSolution>*,
73 const WarmStartParams&) const override;
74
75 std::unique_ptr<HybZono> do_complement(zono_float delta_m, bool, const OptSettings&,
76 std::shared_ptr<OptSolution>*,
77 int, int) override;
78 };
79}
80
81#endif
Constrained zonotope class for ZonoOpt library.
Zonotope class for ZonoOpt library.
Box (i.e., interval vector) class.
Definition Box.hpp:25
Constrained zonotope class.
Definition ConZono.hpp:32
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 &, std::shared_ptr< OptSolution > *, const WarmStartParams &) const override
Definition EmptySet.cpp:91
Box do_bounding_box(const OptSettings &, std::shared_ptr< OptSolution > *, const WarmStartParams &) override
Definition EmptySet.cpp:82
void constraint_reduction() override
Execute constraint reduction algorithm from Scott et. al. 2016.
Definition EmptySet.hpp:45
zono_float do_support(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, std::shared_ptr< OptSolution > *solution, const WarmStartParams &) override
Definition EmptySet.cpp:64
HybZono * clone() const override
Clone method for polymorphic behavior.
Definition EmptySet.cpp:28
std::unique_ptr< Zono > to_zono_approx() const override
Compute outer approximation of constrained zonotope as zonotope using SVD.
Definition EmptySet.hpp:50
Eigen::Vector< zono_float, -1 > do_optimize_over(const Eigen::SparseMatrix< zono_float > &, const Eigen::Vector< zono_float, -1 > &, zono_float, const OptSettings &, std::shared_ptr< OptSolution > *solution, const WarmStartParams &) const override
Definition EmptySet.cpp:41
std::unique_ptr< HybZono > do_complement(zono_float delta_m, bool, const OptSettings &, std::shared_ptr< OptSolution > *, int, int) override
Definition EmptySet.cpp:96
std::string print() const override
Returns set information as a string.
Definition EmptySet.cpp:33
Eigen::Vector< zono_float, -1 > do_project_point(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, std::shared_ptr< OptSolution > *solution, const WarmStartParams &) const override
Definition EmptySet.cpp:53
EmptySet()=default
Default constructor for EmptySet class.
bool do_contains_point(const Eigen::Vector< zono_float, -1 > &, const OptSettings &, std::shared_ptr< OptSolution > *, const WarmStartParams &) const override
Definition EmptySet.cpp:75
Hybrid zonotope class.
Definition HybZono.hpp:43
int n
set dimension
Definition HybZono.hpp:695
#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:25
Warm start parameters for optimization routines in ZonoOpt library.
Definition ADMM.hpp:49