double_description_method.h
Go to the documentation of this file.
61 constexpr static std::size_t kMaxInitialHrepSize = 2*POLYSCIP_MAX_NO_OBJS; ///< Maximal initial size of h-representation
195 * @details Details of the underlying algorithm can be found in "Double Description Method Revisited" by K. Fukuda and A. Prodon
199 using AdjPair = std::pair<std::reference_wrapper<const V_RepT>, std::reference_wrapper<const V_RepT>>; ///< Pair of adjacent v-representation elements
318 * Detailed description of algorithm can be found on page 13 in "Double Description Method Revisited"
354 * Indicates whether weight of first element is a multiple (with value v_multiple) of weight of second element
359 * @return true if weight of first element is a v_multiple of weight of second element; false otherwise
WeightType && moveWeight()
Definition: double_description_method.h:144
Some preprocessor directives.
bool hasZeroIndsSuperSet(const std::bitset< kMaxInitialHrepSize > &common_zero_inds) const
Definition: double_description_method.cpp:234
Class for element of v-representation.
Definition: double_description_method.h:57
Definition: struct_scip.h:58
std::vector< AdjPair > AdjPairContainer
Container for adjacent pairs.
Definition: double_description_method.h:200
V_RepT(SCIP *scip, WeightType &&weight, ValueType &&wov, const H_RepC &h_rep)
Definition: double_description_method.cpp:57
V_RepC && moveVRep()
Definition: double_description_method.h:260
void print(std::ostream &os, bool withIncidentFacets, const H_RepC &h_rep) const
Definition: double_description_method.cpp:212
static constexpr std::size_t kMaxInitialHrepSize
Maximal initial size of h-representation.
Definition: double_description_method.h:61
bool hasNonUnitAndNonZeroWeight() const
Definition: double_description_method.cpp:151
std::size_t getMinInfeasIndex() const
Definition: double_description_method.cpp:133
std::vector< std::shared_ptr< V_RepT > > V_RepC
Container for v-representations.
Definition: double_description_method.h:190
bool operator==(const V_RepT &rhs) const
Definition: double_description_method.cpp:106
std::vector< H_RepT > H_RepC
Container for h-representations.
Definition: double_description_method.h:51
H_RepC && moveHRep()
Definition: double_description_method.h:254
General types used for PolySCIP.
bool isZeroSlackIndex(std::size_t index) const
Definition: double_description_method.cpp:143
C++ wrapper classes for SCIP.
ValueType getWov() const
Definition: double_description_method.h:150
bool operator!=(const V_RepT &rhs) const
Definition: double_description_method.cpp:115
#define POLYSCIP_MAX_NO_OBJS
Maximal number of objectives considered by PolySCIP.
Definition: PolySCIPConfig.h:12
std::unordered_map< std::size_t, ValueType > SlackMap
Maps indices to slacks.
Definition: double_description_method.h:60
std::pair< std::reference_wrapper< const V_RepT >, std::reference_wrapper< const V_RepT > > AdjPair
Pair of adjacent v-representation elements.
Definition: double_description_method.h:199
Global helper functions.
std::size_t size() const
Definition: double_description_method.h:236
Definition: cmd_line_args.cpp:37
std::pair< OutcomeType, ValueType > H_RepT
Type for element of h-representation.
Definition: double_description_method.h:50
Class representing a facet of the weight space polyhedron.
friend class DoubleDescriptionMethod
Definition: double_description_method.h:62
V_RepC getVRep()
Definition: double_description_method.h:248
Definition: objbenders.h:33
Algorithm for transforming h-representation to v-representation.
Definition: double_description_method.h:197
H_RepC getHRep()
Definition: double_description_method.h:242