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

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

#include <ParReliabilityBrancher.h>

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

Public Member Functions

 ParReliabilityBrancher (EnvPtr env, HandlerVector &handlers)
 Construct using an environment pointer and handlers. More...
 
 ~ParReliabilityBrancher ()
 Destroy.
 
Branches findBranches (RelaxationPtr, NodePtr, ConstSolutionPtr, SolutionPoolPtr, BrancherStatus &, ModVector &)
 Find a branching candidate. More...
 
Branches findBranches (RelaxationPtr rel, NodePtr node, ConstSolutionPtr sol, SolutionPoolPtr s_pool, BrancherStatus &br_status, ModVector &mods, UIntVector timesUp, UIntVector timesDown, DoubleVector pseudoUp, DoubleVector pseudoDown, UInt nodesProc)
 
bool getTrustCutoff ()
 Return value of trustCutoff parameter.
 
UInt getIterLim ()
 Get iteration limit of engine.
 
UIntVector getLastStrBranched ()
 Return the vector of last strong branching information of candidates.
 
std::string getName () const
 Return the name of this brancher. More...
 
DoubleVector getPCUp () const
 
DoubleVector getPCDown () const
 
UIntVector getTimesDown () const
 
UIntVector getTimesUp () const
 
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 setLastStrBranched (UIntVector lastStrBranched)
 Return the vector of last strong branching information of candidates.
 
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 setPCUp (DoubleVector psuedoUp)
 
void setPCDown (DoubleVector psuedoDown)
 
void setTimesDown (UIntVector timesDown)
 
void setTimesUp (UIntVector timesUp)
 
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

◆ ParReliabilityBrancher()

ParReliabilityBrancher::ParReliabilityBrancher ( 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 Minotaur::ParReliabilityBrancher::findBranches ( RelaxationPtr  rel,
NodePtr  node,
ConstSolutionPtr  sol,
SolutionPoolPtr  s_pool,
BrancherStatus br_status,
ModVector &  mods 
)
inlinevirtual

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

Return the name of this brancher.

Implements Minotaur::Brancher.

◆ getPCDown()

DoubleVector Minotaur::ParReliabilityBrancher::getPCDown ( ) const
inline

Return the vector of pseudocosts of down-branchings upto this node in the parental chain (direct ancestors only).

◆ getPCUp()

DoubleVector Minotaur::ParReliabilityBrancher::getPCUp ( ) const
inline

Return the vector of pseudocosts of up-branchings upto this node in the parental chain (direct ancestors only).

◆ getTimesDown()

UIntVector Minotaur::ParReliabilityBrancher::getTimesDown ( ) const
inline

Return the vector of number of down-branchings of a variable upto this in the parental chain (direct ancestors only).

◆ getTimesUp()

UIntVector Minotaur::ParReliabilityBrancher::getTimesUp ( ) const
inline

Return the vector of number of up-branchings of a variable upto this node in the parental chain (direct ancestors only).

◆ initialize()

void ParReliabilityBrancher::initialize ( RelaxationPtr  rel)

Initialize data structures.

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

◆ setEngine()

void ParReliabilityBrancher::setEngine ( EnginePtr  engine)

Set engine.

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

◆ setIterLim()

void ParReliabilityBrancher::setIterLim ( UInt  k)

Set iteration limit of engine.

Parameters
[in]kThe new iteration limit.

◆ setMaxDepth()

void ParReliabilityBrancher::setMaxDepth ( UInt  k)

Set the depth at which we stop strong branching.

Parameters
[in]kThe new depth value.

◆ setMinNodeDist()

void ParReliabilityBrancher::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.

◆ setPCDown()

void Minotaur::ParReliabilityBrancher::setPCDown ( DoubleVector  psuedoDown)
inline

Return the vector of pseudocosts of down-branchings upto this node in the parental chain (direct ancestors only).

◆ setPCUp()

void Minotaur::ParReliabilityBrancher::setPCUp ( DoubleVector  psuedoUp)
inline

Return the vector of pseudocosts of up-branchings upto this node in the parental chain (direct ancestors only).

◆ setThresh()

void ParReliabilityBrancher::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.

◆ setTimesDown()

void Minotaur::ParReliabilityBrancher::setTimesDown ( UIntVector  timesDown)
inline

Return the vector of number of down-branchings of a variable upto this in the parental chain (direct ancestors only).

◆ setTimesUp()

void Minotaur::ParReliabilityBrancher::setTimesUp ( UIntVector  timesUp)
inline

Return the vector of number of up-branchings of a variable upto this node in the parental chain (direct ancestors only).

◆ updateAfterSolve()

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