Minotaur 0.4.1
Docs for developers
|
A brancher is used to find suitable branches for a given node. e.g. LexicoBrancher. This class is abstract. More...
#include <Brancher.h>
Public Member Functions | |
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... | |
Protected Attributes | |
LoggerPtr | logger_ |
Log manager. | |
A brancher is used to find suitable branches for a given node. e.g. LexicoBrancher. This class is abstract.
|
pure virtual |
Find a branching candidate.
[in] | rel | Relaxation at the current node. |
[in] | node | The current node. |
[in] | sol | The solution at the current node. |
[in] | s_pool | Solution pool containing known feasible solutions. |
[out] | br_status | Status returned by this brancher. |
[out] | mods | Modification returned by this brancher. NULL if none found. |
Implemented in Minotaur::HybridBrancher, Minotaur::LexicoBrancher, Minotaur::MaxFreqBrancher, Minotaur::MaxInfBrancher, Minotaur::MaxVioBrancher, Minotaur::RandomBrancher, Minotaur::ReliabilityBrancher, Minotaur::UnambRelBrancher, Minotaur::WeakBrancher, and Minotaur::ParReliabilityBrancher.
|
pure virtual |
Return the name of this brancher.
Implemented in Minotaur::HybridBrancher, Minotaur::LexicoBrancher, Minotaur::MaxFreqBrancher, Minotaur::MaxInfBrancher, Minotaur::MaxVioBrancher, Minotaur::ParReliabilityBrancher, Minotaur::RandomBrancher, Minotaur::ReliabilityBrancher, Minotaur::UnambRelBrancher, and Minotaur::WeakBrancher.
|
virtual |
Update pseudo-costs after LP is solved.
[in] | node | The node for which relaxation is solved. The pseudo cost of branching candidate used in node->parent is updated. |
[in] | sol | The solution of the relaxation at this node (not the parent). |
Reimplemented in Minotaur::HybridBrancher, Minotaur::MaxInfBrancher, Minotaur::ParReliabilityBrancher, Minotaur::ReliabilityBrancher, Minotaur::UnambRelBrancher, Minotaur::WeakBrancher, Minotaur::MaxFreqBrancher, and Minotaur::MaxVioBrancher.
|
inlinevirtual |
Write statistics to the given out stream.
Reimplemented in Minotaur::HybridBrancher, Minotaur::LexicoBrancher, Minotaur::MaxFreqBrancher, Minotaur::MaxInfBrancher, Minotaur::MaxVioBrancher, Minotaur::ParReliabilityBrancher, Minotaur::RandomBrancher, Minotaur::ReliabilityBrancher, Minotaur::UnambRelBrancher, and Minotaur::WeakBrancher.