Scippy

SCIP

Solving Constraint Integer Programs

polyscip::doubledescription::V_RepT Class Reference

Detailed Description

Class for element of v-representation.

Definition at line 57 of file double_description_method.h.

Class for element of v-representation. More...

#include <double_description_method.h>

Public Types

using SlackMap = std::unordered_map< std::size_t, ValueType >
 Maps indices to slacks. More...
 

Public Member Functions

 V_RepT (SCIP *scip, WeightType &&weight, ValueType &&wov, const H_RepC &h_rep)
 
 V_RepT (SCIP *scip, const V_RepT &plus, const V_RepT &minus, std::size_t index_of_ineq, const H_RepC &h_rep)
 
bool operator== (const V_RepT &rhs) const
 
bool operator!= (const V_RepT &rhs) const
 
void print (std::ostream &os, bool withIncidentFacets, const H_RepC &h_rep) const
 
bool hasNonUnitAndNonZeroWeight () const
 
bool hasZeroIndsSuperSet (const std::bitset< kMaxInitialHrepSize > &common_zero_inds) const
 
std::size_t getMinInfeasIndex () const
 
bool isZeroSlackIndex (std::size_t index) const
 
WeightType && moveWeight ()
 
ValueType getWov () const
 

Static Public Attributes

static constexpr std::size_t kMaxInitialHrepSize = 2*POLYSCIP_MAX_NO_OBJS
 Maximal initial size of h-representation. More...
 

Friends

class DoubleDescriptionMethod
 

Member Typedef Documentation

◆ SlackMap

using polyscip::doubledescription::V_RepT::SlackMap = std::unordered_map<std::size_t, ValueType>

Maps indices to slacks.

Definition at line 60 of file double_description_method.h.

Constructor & Destructor Documentation

◆ V_RepT() [1/2]

polyscip::doubledescription::V_RepT::V_RepT ( SCIP scip,
WeightType &&  weight,
ValueType &&  wov,
const H_RepC h_rep 
)
explicit

Constructor

Parameters
scipSCIP pointer
weightCorresponding weight for the constructed vertex
wovCorresponding weighted objective value for the constructed vertex
h_repCurrent h-representation

Definition at line 57 of file double_description_method.cpp.

◆ V_RepT() [2/2]

polyscip::doubledescription::V_RepT::V_RepT ( SCIP scip,
const V_RepT plus,
const V_RepT minus,
std::size_t  index_of_ineq,
const H_RepC h_rep 
)
explicit

Constructor

Parameters
scipSCIP pointer
plus
minus
index_of_ineq
h_rep

Definition at line 76 of file double_description_method.cpp.

References SCIPisNegative(), and SCIPisPositive().

Member Function Documentation

◆ operator==()

bool polyscip::doubledescription::V_RepT::operator== ( const V_RepT rhs) const
inline

Equal operator

Parameters
rhsv-representation object to compare with
Returns
true if objects are considered equal; otherwise false

Definition at line 106 of file double_description_method.cpp.

Referenced by operator!=().

◆ operator!=()

bool polyscip::doubledescription::V_RepT::operator!= ( const V_RepT rhs) const
inline

Not equal operator

Parameters
rhsv-representation object to compare with
Returns
true if objects are considered not equal; otherwise false

Definition at line 115 of file double_description_method.cpp.

References operator==().

◆ print()

void polyscip::doubledescription::V_RepT::print ( std::ostream &  os,
bool  withIncidentFacets,
const H_RepC h_rep 
) const

Print function

Parameters
osOutput stream to print to
withIncidentFacetsBoolean indicating whether incident facets should also be printed
h_rep

Definition at line 212 of file double_description_method.cpp.

References kMaxInitialHrepSize, and polyscip::global::print().

◆ hasNonUnitAndNonZeroWeight()

bool polyscip::doubledescription::V_RepT::hasNonUnitAndNonZeroWeight ( ) const

Indicates whether corresponding weight is neither unit vector nor zero vector

Returns
true if weight is neither unit vector nor zero vector; false otherwise

Definition at line 151 of file double_description_method.cpp.

References fabs(), SCIPisNegative(), SCIPisZero(), and w.

◆ hasZeroIndsSuperSet()

bool polyscip::doubledescription::V_RepT::hasZeroIndsSuperSet ( const std::bitset< kMaxInitialHrepSize > &  common_zero_inds) const

Indicates whether zero indices are subset of given zero indices

Parameters
common_zero_indsZero indices
Returns
true if zero indices are subset of given common_zero_inds

Definition at line 234 of file double_description_method.cpp.

◆ getMinInfeasIndex()

size_t polyscip::doubledescription::V_RepT::getMinInfeasIndex ( ) const

Get minimal infeasibility index

Returns
minimal infeasibility index

Definition at line 133 of file double_description_method.cpp.

Referenced by polyscip::doubledescription::DoubleDescriptionMethod::DoubleDescriptionMethod().

◆ isZeroSlackIndex()

bool polyscip::doubledescription::V_RepT::isZeroSlackIndex ( std::size_t  index) const

Indicates whether given index is zero index

Parameters
indexIndex to check
Returns
true if index is zero index; false otherwise

Definition at line 143 of file double_description_method.cpp.

Referenced by polyscip::doubledescription::DoubleDescriptionMethod::computeVRep_Var1(), polyscip::doubledescription::DoubleDescriptionMethod::DoubleDescriptionMethod(), and polyscip::WeightSpacePolyhedron::WeightSpacePolyhedron().

◆ moveWeight()

WeightType&& polyscip::doubledescription::V_RepT::moveWeight ( )
inline

Move weight

Returns
Rvalue reference to corresponding weight

Definition at line 144 of file double_description_method.h.

◆ getWov()

ValueType polyscip::doubledescription::V_RepT::getWov ( ) const
inline

Get weighted objective value

Returns
weighted objective value

Definition at line 150 of file double_description_method.h.

Friends And Related Function Documentation

◆ DoubleDescriptionMethod

friend class DoubleDescriptionMethod
friend

Definition at line 62 of file double_description_method.h.

Field Documentation

◆ kMaxInitialHrepSize

constexpr std::size_t polyscip::doubledescription::V_RepT::kMaxInitialHrepSize = 2*POLYSCIP_MAX_NO_OBJS
static

Maximal initial size of h-representation.

Definition at line 61 of file double_description_method.h.

Referenced by print().