weight_space_polyhedron.cpp
Go to the documentation of this file.
81 initial_facets.emplace_back(make_shared<WeightSpaceFacet>(std::move(h.first), std::move(h.second)));
159 ValueType WeightSpacePolyhedron::getUntestedVertexWOV(const WeightType& untested_weight) const {
182 else if (v_status == WeightSpaceVertex::VertexStatus::marked) { // v must be weakly-non-dominated point
210 bool WeightSpacePolyhedron::areAdjacent(const WeightSpaceVertex* v, const WeightSpaceVertex* w) {
262 auto obs_nonobs_pairs = vector<pair<WeightSpaceVertex*, WeightSpaceVertex*>> {}; // pair: obsolete vertex , adjacent non-obsolete vertex
263 assert (SCIPisNegative(scip, curr_investigated_vertex_->computeSlack(outcome, outcome_is_ray)));
300 auto new_edges = vector< pair<WeightSpaceVertex*, WeightSpaceVertex*> > {}; // pair: new vertex, adjacent vertex
301 for (const auto& v_pair : obs_nonobs_pairs) { // create new vertices between obsolete and non-obsolete vertices
bool areAdjacent(const WeightSpaceVertex *v, const WeightSpaceVertex *w)
Definition: weight_space_polyhedron.cpp:210
Class for element of v-representation.
Definition: double_description_method.h:57
Definition: struct_scip.h:58
ValueType getUntestedVertexWOV(const WeightType &untested_weight) const
Definition: weight_space_polyhedron.cpp:159
ValueType getCurrentWOV() const
Definition: weight_space_vertex.cpp:68
General types used for PolySCIP.
std::vector< ValueType > OutcomeType
Type for points, rays in objective space.
Definition: polyscip_types.h:35
void print(std::ostream &os, bool printFacets=false) const
Definition: weight_space_vertex.cpp:211
~WeightSpacePolyhedron()
Definition: weight_space_polyhedron.cpp:122
bool isZeroSlackIndex(std::size_t index) const
Definition: double_description_method.cpp:143
C++ wrapper classes for SCIP.
Class representing the 1-skeleton of the weight space polyhedron.
Class representing a vertex of the (partial) weight space polyhedron.
VertexStatus getStatus() const
Definition: weight_space_vertex.h:129
void incorporateKnownOutcome(const WeightType &used_weight)
Definition: weight_space_polyhedron.cpp:342
bool hasUntestedWeight() const
Definition: weight_space_polyhedron.cpp:136
double computeSlack(const OutcomeType &outcome, bool outcome_is_ray) const
Definition: weight_space_vertex.cpp:146
Global helper functions.
Definition: cmd_line_args.cpp:37
std::vector< std::shared_ptr< const WeightSpaceFacet > > FacetContainer
Container for facets.
Definition: weight_space_polyhedron.h:62
Double description method for transforming a polyhedron given via its h-representation into its v-rep...
void setStatus(VertexStatus status)
Definition: weight_space_vertex.h:135
bool hasSameWeight(const WeightType &weight) const
Definition: weight_space_vertex.cpp:176
Class representing a facet of the weight space polyhedron.
WeightType getUntestedWeight()
Definition: weight_space_polyhedron.cpp:145
WeightType getWeight() const
Definition: weight_space_vertex.cpp:122
void printObsoleteVertices(std::ostream &os=std::cout, bool printFacets=false) const
Definition: weight_space_polyhedron.cpp:373
Class representing a vertex of the (partial) weight space polyhedron.
Definition: weight_space_vertex.h:47
Definition: objbenders.h:33
void incorporateNewOutcome(SCIP *scip, const WeightType &used_weight, const OutcomeType &outcome, bool outcome_is_ray=false)
Definition: weight_space_polyhedron.cpp:328
WeightSpacePolyhedron(std::size_t wsp_dimension, V_RepC v_rep, H_RepC h_rep)
Definition: weight_space_polyhedron.cpp:62
void printUnmarkedVertices(std::ostream &os=std::cout, bool printFacets=false) const
Definition: weight_space_polyhedron.cpp:355
void printMarkedVertices(std::ostream &os=std::cout, bool printFacets=false) const
Definition: weight_space_polyhedron.cpp:364