|
Minotaur 0.4.1
Docs for developers
|
Implement a generic branch-and-bound algorithm on a single cpu. More...
#include <BranchAndBound.h>
Public Member Functions | |
| BranchAndBound () | |
| Default constructor. | |
| BranchAndBound (EnvPtr env, ProblemPtr problem) | |
| Constructor for a given Problem and Environment. | |
| virtual | ~BranchAndBound () |
| Destroy. | |
| void | addPreRootHeur (HeurPtr h) |
| Add a heuristic that will be called before root node. | |
| double | getPerGap () |
| Return the percentage gap between the lower and upper bounds. | |
| double | getLb () |
| Return the lower bound from the search tree. | |
| NodeProcessorPtr | getNodeProcessor () |
| Return a pointer to NodeProcessor used in branch-and-bound. | |
| NodeRelaxerPtr | getNodeRelaxer () |
| Return a pointer to NodeRelaxer used in branch-and-bound. | |
| SolutionPtr | getSolution () |
| SolveStatus | getStatus () |
| Return the final status. | |
| TreeManagerPtr | getTreeManager () |
| Return a pointer to the tree manager. The client can then directly query the TreeManager for its size and other attributes. | |
| double | getUb () |
| Return the upper bound for the solution value from the search tree. | |
| UInt | numProcNodes () |
| Return number of nodes processed while solving. | |
| void | setLogLevel (LogLevel level) |
| Set log level. | |
| void | setNodeProcessor (NodeProcessorPtr p) |
| Set the NodeProcessor that processes each node. | |
| void | setNodeRelaxer (NodeRelaxerPtr nr) |
| Set the NodeRelaxer for setting-up relaxations at each node. | |
| void | shouldCreateRoot (bool b) |
| Switch to turn on/off root-node creation. | |
| void | solve () |
| Start solving the Problem using branch-and-bound. | |
| double | totalTime () |
| Return total time taken. | |
| void | writeStats (std::ostream &out) |
| Write statistics to the ostream out. | |
| void | writeStats () |
| Write statistics to the logger. | |
Implement a generic branch-and-bound algorithm on a single cpu.
| void BranchAndBound::addPreRootHeur | ( | HeurPtr | h | ) |
Add a heuristic that will be called before root node.
| [in] | h | The heuristic that should be called. This heuristic will be called after all previously added heuristic. |
| double BranchAndBound::getLb | ( | ) |
Return the lower bound from the search tree.
This bound is defined as the minimum of the bounds from all active nodes. It may not be a bound on the optimal solution value.
| double BranchAndBound::getPerGap | ( | ) |
Return the percentage gap between the lower and upper bounds.
Gap percentage is calculated as 



| double BranchAndBound::getUb | ( | ) |
Return the upper bound for the solution value from the search tree.
This bound may or may not correspond to a feasible solution of the problem. It may be obtained from a feasible solution of a relaxation of the problem.
| void BranchAndBound::setLogLevel | ( | LogLevel | level | ) |
Set log level.
| [in] | level | The desired log level for this class. |
| void BranchAndBound::setNodeProcessor | ( | NodeProcessorPtr | p | ) |
Set the NodeProcessor that processes each node.
| [in] | p | The desired node-processor. |
| void BranchAndBound::setNodeRelaxer | ( | NodeRelaxerPtr | nr | ) |
Set the NodeRelaxer for setting-up relaxations at each node.
| [in] | nr | The desired node-relaxer. |
| void BranchAndBound::shouldCreateRoot | ( | bool | b | ) |
Switch to turn on/off root-node creation.
Sometimes a client may set up a root node on its own and may not want the default root node.
| [in] | b | True if root node should be created, false otherwise. |