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

A class to select a variable for branching using maximum-inference branching. More...

#include <MaxInfBrancher.h>

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

Public Member Functions

 MaxInfBrancher (EnvPtr env, HandlerVector &handlers)
 Construct using an environment pointer and initialize.
 
 ~MaxInfBrancher ()
 Destroy.
 
Branches findBranches (RelaxationPtr rel, NodePtr node, ConstSolutionPtr sol, SolutionPoolPtr s_pool, BrancherStatus &br_status, ModVector &mods)
 Find a branching candidate. More...
 
void updateAfterSolve (NodePtr node, ConstSolutionPtr sol)
 Update pseudo-costs after LP is solved. More...
 
void writeStats (std::ostream &out) const
 Write statistics to the given out stream. More...
 
bool getTrustCutoff ()
 Return value of trustCutoff parameter.
 
UInt getIterLim ()
 Get iteration limit of engine.
 
std::string getName () const
 Return the name of this brancher. More...
 
UInt getThresh () const
 Return the threshhold value.
 
void initialize (RelaxationPtr rel)
 Initialize data structures. More...
 
void setTrustCutoff (bool val)
 Set value of trustCutoff parameter.
 
void setEngine (EnginePtr engine)
 Set engine. More...
 
void setIterLim (UInt k)
 Set iteration limit of engine. More...
 
void setMaxDepth (UInt k)
 Set the depth at which we stop strong branching. More...
 
void setMinNodeDist (UInt k)
 Don't do strong branching on a cand if we did it 'k' nodes or less ago. More...
 
void setThresh (UInt k)
 Set reliability threshhold. More...
 
void printMaxInferenceScores () const
 
void infScore ()
 
void statsTable () const
 
double gFunction (double x) const
 
- Public Member Functions inherited from Minotaur::Brancher
 Brancher ()
 Default constructor.
 
virtual ~Brancher ()
 Destroy.
 
virtual Branches findBranches (RelaxationPtr rel, NodePtr node, ConstSolutionPtr sol, SolutionPoolPtr s_pool, BrancherStatus &br_status, ModVector &mods)=0
 Find a branching candidate. More...
 
virtual std::string getName () const =0
 Return the name of this brancher. More...
 
virtual void updateAfterSolve (NodePtr node, ConstSolutionPtr sol)
 Update pseudo-costs after LP is solved. More...
 
virtual void writeStats (std::ostream &) const
 Write statistics to the given out stream. More...
 

Public Attributes

std::vector< double > upScores_
 
std::vector< double > downScores_
 

Additional Inherited Members

- Protected Attributes inherited from Minotaur::Brancher
LoggerPtr logger_
 Log manager.
 

Detailed Description

A class to select a variable for branching using maximum-inference branching.

Member Function Documentation

◆ findBranches()

Branches MaxInfBrancher::findBranches ( RelaxationPtr  rel,
NodePtr  node,
ConstSolutionPtr  sol,
SolutionPoolPtr  s_pool,
BrancherStatus br_status,
ModVector &  mods 
)
virtual

Find a branching candidate.

Returns
NULL if x does not have any fractional values for integer constrained variables or if no branching candidates are found (e.g. when we realize that problem is infeasible).
Parameters
[in]relRelaxation at the current node.
[in]nodeThe current node.
[in]solThe solution at the current node.
[in]s_poolSolution pool containing known feasible solutions.
[out]br_statusStatus returned by this brancher.
[out]modsModification returned by this brancher. NULL if none found.

Implements Minotaur::Brancher.

◆ getName()

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

Return the name of this brancher.

Implements Minotaur::Brancher.

◆ initialize()

void MaxInfBrancher::initialize ( RelaxationPtr  rel)

Initialize data structures.

Parameters
[in]relRelaxation for which this brancher is used.

◆ setEngine()

void MaxInfBrancher::setEngine ( EnginePtr  engine)

Set engine.

Parameters
[in]enginePointer to the engine used in strong branching.

◆ setIterLim()

void MaxInfBrancher::setIterLim ( UInt  k)

Set iteration limit of engine.

Parameters
[in]kThe new iteration limit.

◆ setMaxDepth()

void MaxInfBrancher::setMaxDepth ( UInt  k)

Set the depth at which we stop strong branching.

Parameters
[in]kThe new depth value.

◆ setMinNodeDist()

void MaxInfBrancher::setMinNodeDist ( UInt  k)

Don't do strong branching on a cand if we did it 'k' nodes or less ago.

Parameters
[in]kThe new minimum value.

◆ setThresh()

void MaxInfBrancher::setThresh ( UInt  k)

Set reliability threshhold.

The pseudo cost is considered reliable if it has been updated k times.

Parameters
[in]kThe new threshhold value.

◆ updateAfterSolve()

void MaxInfBrancher::updateAfterSolve ( NodePtr  node,
ConstSolutionPtr  sol 
)
virtual

Update pseudo-costs after LP is solved.

Parameters
[in]nodeThe node for which relaxation is solved. The pseudo cost of branching candidate used in node->parent is updated.
[in]solThe solution of the relaxation at this node (not the parent).

Reimplemented from Minotaur::Brancher.

◆ writeStats()

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

Write statistics to the given out stream.

Reimplemented from Minotaur::Brancher.


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