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

A class to select a variable for branching using reliability branching. More...

#include <ReliabilityBrancher.h>

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

Public Member Functions

 ReliabilityBrancher (EnvPtr env, HandlerVector &handlers)
 Construct using an environment pointer and handlers. More...
 
 ~ReliabilityBrancher ()
 Destroy.
 
Branches findBranches (RelaxationPtr rel, NodePtr node, ConstSolutionPtr sol, SolutionPoolPtr s_pool, BrancherStatus &br_status, ModVector &mods)
 Find a branching candidate. 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 updateAfterSolve (NodePtr node, ConstSolutionPtr sol)
 Update pseudo-costs after LP is solved. More...
 
void writeStats (std::ostream &out) const
 Write statistics. More...
 
- 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...
 

Additional Inherited Members

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

Detailed Description

A class to select a variable for branching using reliability branching.

Constructor & Destructor Documentation

◆ ReliabilityBrancher()

ReliabilityBrancher::ReliabilityBrancher ( EnvPtr  env,
HandlerVector &  handlers 
)

Construct using an environment pointer and handlers.

Parameters
[in]envEnvironment from which options etc. are obtained.
[in]handlersArray of handlers which are used to obtain branching candidates and modifications. This array can not be changed while branch-and-bound is running.

Member Function Documentation

◆ findBranches()

Branches ReliabilityBrancher::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 ReliabilityBrancher::getName ( ) const
virtual

Return the name of this brancher.

Implements Minotaur::Brancher.

◆ initialize()

void ReliabilityBrancher::initialize ( RelaxationPtr  rel)

Initialize data structures.

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

◆ setEngine()

void ReliabilityBrancher::setEngine ( EnginePtr  engine)

Set engine.

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

◆ setIterLim()

void ReliabilityBrancher::setIterLim ( UInt  k)

Set iteration limit of engine.

Parameters
[in]kThe new iteration limit.

◆ setMaxDepth()

void ReliabilityBrancher::setMaxDepth ( UInt  k)

Set the depth at which we stop strong branching.

Parameters
[in]kThe new depth value.

◆ setMinNodeDist()

void ReliabilityBrancher::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 ReliabilityBrancher::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 ReliabilityBrancher::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 ReliabilityBrancher::writeStats ( std::ostream &  out) const
virtual

Write statistics.

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