Minotaur 0.4.1
Docs for developers
Public Member Functions | List of all members
Minotaur::PerspList Class Reference

#include <PerspList.h>

Public Member Functions

 PerspList ()
 Default constructor.
 
 PerspList (RelaxationPtr rel, EnvPtr env)
 Constructs from a given relaxation.
 
 ~PerspList ()
 Destructor.
 
bool evalConstraint (ConstConstraintPtr cons, VarUbLbPtr boundcons, VariablePtr &binvar)
 Checks if a constraint is a Perspective constraint.
 
bool separable (ConstConstraintPtr cons, ConstVariablePtr binvar)
 
bool checkVarTypes (const FunctionPtr f, ConstVariablePtr &binvar)
 
bool checkVarsBounds (const FunctionPtr f, ConstVariablePtr binvar, VarUbLbPtr boundcons)
 Checks if the variables are bounded by only one binary variable.
 
bool checkVarBounds (ConstVariablePtr var, ConstVariablePtr binvar, VarUbLbPtr varbounds)
 Checks if a given variable is bounded by binary variable.
 
void addConstraint (ConstConstraintPtr cons, VarUbLbPtr boundcons, VariablePtr binvar)
 Add a constraint to the lists.
 
void generateList ()
 Generate list of perspective constraints.
 
bool initialBinary (ConstVariablePtr var, VarSetPtr binaries)
 
UInt getNumPersp () const
 Get total number of perspective constraints.
 
UInt getNumConsChecked () const
 Get total number of constraints checked.
 
ConstPerspListStatsPtr getStats () const
 Get the statistics aboud perspective identification.
 
ConstPerspConsPtr getPerspCons () const
 Get a pointer to the vector that constains perspective constraints.
 
void printPersp (ConstConstraintPtr cons, VarUbLbPtr boundcons, ConstVariablePtr binvar)
 Print out the perspective structure.
 

Detailed Description

This class identifies the constraints that can be used for perspective cut generation.

Member Function Documentation

◆ checkVarTypes()

bool PerspList::checkVarTypes ( const FunctionPtr  f,
ConstVariablePtr binvar 
)

Checks if all the variables are continuous or at most one binary. Otherwise, we cannot generate perspective cuts.

◆ initialBinary()

bool PerspList::initialBinary ( ConstVariablePtr  var,
VarSetPtr  binaries 
)

Generate map of variables that are in the initial variable's constraint set.

◆ separable()

bool PerspList::separable ( ConstConstraintPtr  cons,
ConstVariablePtr  binvar 
)

Checks if the constraint does not have any multi-variable terms that includes u and x together, i.e. constraint is separable such that f(x) + cu <= 0.


The documentation for this class was generated from the following files:

Minotaur source code documented by Doxygen 1.9.4 on Thu Apr 24 2025