|
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. | |
| virtual std::string | getName () const =0 |
| Return the name of this brancher. | |
| virtual void | updateAfterSolve (NodePtr node, ConstSolutionPtr sol) |
| Update pseudo-costs after LP is solved. | |
| virtual void | writeStats (std::ostream &) const |
| Write statistics to the given out stream. | |
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.