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

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

#include <UnambRelBrancher.h>

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

Public Member Functions

 UnambRelBrancher (EnvPtr env, HandlerVector &handlers)
 Construct using an environment pointer and handlers. More...
 
 ~UnambRelBrancher ()
 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 unambiguous reliability branching.

Constructor & Destructor Documentation

◆ UnambRelBrancher()

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

Return the name of this brancher.

Implements Minotaur::Brancher.

◆ initialize()

void UnambRelBrancher::initialize ( RelaxationPtr  rel)

Initialize data structures.

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

◆ setEngine()

void UnambRelBrancher::setEngine ( EnginePtr  engine)

Set engine.

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

◆ setIterLim()

void UnambRelBrancher::setIterLim ( UInt  k)

Set iteration limit of engine.

Parameters
[in]kThe new iteration limit.

◆ setMaxDepth()

void UnambRelBrancher::setMaxDepth ( UInt  k)

Set the depth at which we stop strong branching.

Parameters
[in]kThe new depth value.

◆ setMinNodeDist()

void UnambRelBrancher::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 UnambRelBrancher::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 UnambRelBrancher::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 UnambRelBrancher::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