Minotaur 0.4.1
Docs for developers
Loading...
Searching...
No Matches
Public Member Functions | List of all members
Minotaur::KnapCovHandler Class Reference

#include <KnapCovHandler.h>

Inheritance diagram for Minotaur::KnapCovHandler:
Inheritance graph
[legend]
Collaboration diagram for Minotaur::KnapCovHandler:
Collaboration graph
[legend]

Public Member Functions

 KnapCovHandler ()
 Default constructor.
 
 KnapCovHandler (EnvPtr env, ProblemPtr problem)
 Constructor.
 
 ~KnapCovHandler ()
 Destroy.
 
void relaxInitFull (RelaxationPtr, SolutionPool *, bool *)
 Does nothing.
 
void relaxInitInc (RelaxationPtr, SolutionPool *, bool *)
 Does nothing.
 
void relaxNodeFull (NodePtr, RelaxationPtr, bool *)
 Does nothing.
 
void relaxNodeInc (NodePtr, RelaxationPtr, bool *)
 Does nothing.
 
bool isFeasible (ConstSolutionPtr sol, RelaxationPtr relaxation, bool &should_prune, double &inf_meas)
 
void separate (ConstSolutionPtr, NodePtr, RelaxationPtr, CutManager *cutman, SolutionPoolPtr, ModVector &p_mods, ModVector &r_mods, bool *, SeparationStatus *status)
 
virtual void getBranchingCandidates (RelaxationPtr, const DoubleVector &, ModVector &, BrVarCandSet &, BrCandVector &, bool &)
 Does nothing.
 
virtual ModificationPtr getBrMod (BrCandPtr, DoubleVector &, RelaxationPtr, BranchDirection)
 Does nothing.
 
virtual Branches getBranches (BrCandPtr, DoubleVector &, RelaxationPtr, SolutionPoolPtr)
 Does nothing.
 
SolveStatus presolve (PreModQ *, bool *, Solution **)
 Does nothing.
 
virtual bool presolveNode (RelaxationPtr, NodePtr, SolutionPoolPtr, ModVector &, ModVector &)
 Does nothing.
 
std::string getName () const
 Return the name of the handler.
 
void writeStats (std::ostream &) const
 Show statistics.
 
UInt KC_knaps ()
 
UInt KC_cuts ()
 
UInt KC_extended ()
 
UInt KC_simple ()
 
UInt KC_gns ()
 
UInt KC_singlectwo ()
 
double KC_time ()
 
- Public Member Functions inherited from Minotaur::Handler
 Handler ()
 Default constructor.
 
virtual ~Handler ()
 Destroy.
 
virtual void addConstraint (ConstraintPtr newcon)
 Add constraint to be handled by this handler.
 
virtual ConstraintVector::const_iterator consBegin () const
 
virtual ConstraintVector::const_iterator consEnd () const
 
virtual int fixNodeErr (RelaxationPtr, ConstSolutionPtr, SolutionPoolPtr, bool &)
 
bool getStrongerMods (RelaxationPtr rel, NodePtr node, SolutionPoolPtr s_pool, ModVector &p_mods, ModVector &r_mods)
 do node presolve to get mods for stronger branching All params are presolveNode params.
 
virtual bool isNeeded ()
 Return true if this handler is needed for the problem.
 
virtual bool postSolveRootNode (RelaxationPtr, SolutionPoolPtr, ConstSolutionPtr, ModVector &, ModVector &)
 At the root node post solve the problem and its relaxation. LP based bound tightening (OBBT) is employed here after filtering variables for which no OBBT is required.
 
virtual void removeCuts (RelaxationPtr, ConstSolutionPtr)
 
virtual void setModFlags (bool mod_prob, bool mod_rel)
 Tell the handler whether the problem will be modified or the relaxation will be modified or both. These modifications will be saved in the tree as well.
 
virtual void simplePresolve (ProblemPtr, SolutionPoolPtr, ModVector &, SolveStatus &status)
 
void undoStrongerMods (ProblemPtr p, RelaxationPtr rel, ModVector &p_mods, ModVector &r_mods)
 Undo Modifications made during stronger branching.
 

Additional Inherited Members

- Protected Attributes inherited from Minotaur::Handler
ConstraintVector cons_
 
bool modProb_
 If true, modify the original (or transformed) problem.
 
bool modRel_
 If true, modify the relaxation of original (or transformed) problem.
 

Detailed Description

KnapCovHandler class considers knapsack cover cuts in the problem. It generates the cuts and manages them.

Member Function Documentation

◆ getBranches()

virtual Branches Minotaur::KnapCovHandler::getBranches ( BrCandPtr  ,
DoubleVector &  ,
RelaxationPtr  ,
SolutionPoolPtr   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ getBranchingCandidates()

virtual void Minotaur::KnapCovHandler::getBranchingCandidates ( RelaxationPtr  ,
const DoubleVector &  ,
ModVector &  ,
BrVarCandSet &  ,
BrCandVector &  ,
bool &   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ getBrMod()

virtual ModificationPtr Minotaur::KnapCovHandler::getBrMod ( BrCandPtr  ,
DoubleVector &  ,
RelaxationPtr  ,
BranchDirection   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ getName()

std::string KnapCovHandler::getName ( ) const
virtual

Return the name of the handler.

Implements Minotaur::Handler.

◆ isFeasible()

bool KnapCovHandler::isFeasible ( ConstSolutionPtr  sol,
RelaxationPtr  relaxation,
bool &  should_prune,
double &  inf_meas 
)
virtual

Check if solution is feasible. Checks all the constraints if they are satisfied by the given solution.

Implements Minotaur::Handler.

◆ KC_knaps()

UInt Minotaur::KnapCovHandler::KC_knaps ( )
inline

Updates the handler statistics by using returned information form cover cut generator.

◆ presolve()

SolveStatus Minotaur::KnapCovHandler::presolve ( PreModQ *  ,
bool *  ,
Solution **   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ presolveNode()

virtual bool Minotaur::KnapCovHandler::presolveNode ( RelaxationPtr  ,
NodePtr  ,
SolutionPoolPtr  ,
ModVector &  ,
ModVector &   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ relaxInitFull()

void Minotaur::KnapCovHandler::relaxInitFull ( RelaxationPtr  ,
SolutionPool ,
bool *   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ relaxInitInc()

void Minotaur::KnapCovHandler::relaxInitInc ( RelaxationPtr  ,
SolutionPool ,
bool *   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ relaxNodeFull()

void Minotaur::KnapCovHandler::relaxNodeFull ( NodePtr  ,
RelaxationPtr  ,
bool *   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ relaxNodeInc()

void Minotaur::KnapCovHandler::relaxNodeInc ( NodePtr  ,
RelaxationPtr  ,
bool *   
)
inlinevirtual

Does nothing.

Implements Minotaur::Handler.

◆ separate()

void KnapCovHandler::separate ( ConstSolutionPtr  sol,
NodePtr  ,
RelaxationPtr  rel,
CutManager cutman,
SolutionPoolPtr  ,
ModVector &  p_mods,
ModVector &  r_mods,
bool *  ,
SeparationStatus status 
)
virtual

We need separation for this handler to generate the knapsack cover cuts. A set of knapsack cover cuts will be generated.

Implements Minotaur::Handler.

◆ writeStats()

void KnapCovHandler::writeStats ( std::ostream &  ) const
virtual

Show statistics.

Reimplemented from Minotaur::Handler.


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

Minotaur source code documented by Doxygen 1.9.8 on Sat Nov 8 2025