A class to select a variable for branching using unambiguous reliability branching.
More...
#include <UnambRelBrancher.h>
A class to select a variable for branching using unambiguous reliability branching.
◆ UnambRelBrancher()
| UnambRelBrancher::UnambRelBrancher |
( |
EnvPtr |
env, |
|
|
HandlerVector & |
handlers |
|
) |
| |
Construct using an environment pointer and handlers.
- Parameters
-
| [in] | env | Environment from which options etc. are obtained. |
| [in] | handlers | Array of handlers which are used to obtain branching candidates and modifications. This array can not be changed while branch-and-bound is running. |
◆ findBranches()
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] | 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. |
Implements Minotaur::Brancher.
◆ getName()
| std::string UnambRelBrancher::getName |
( |
| ) |
const |
|
virtual |
◆ initialize()
Initialize data structures.
- Parameters
-
| [in] | rel | Relaxation for which this brancher is used. |
◆ setEngine()
| void UnambRelBrancher::setEngine |
( |
EnginePtr |
engine | ) |
|
Set engine.
- Parameters
-
| [in] | engine | Pointer to the engine used in strong branching. |
◆ setIterLim()
| void UnambRelBrancher::setIterLim |
( |
UInt |
k | ) |
|
Set iteration limit of engine.
- Parameters
-
| [in] | k | The new iteration limit. |
◆ setMaxDepth()
| void UnambRelBrancher::setMaxDepth |
( |
UInt |
k | ) |
|
Set the depth at which we stop strong branching.
- Parameters
-
| [in] | k | The 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] | k | The 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] | k | The new threshhold value. |
◆ updateAfterSolve()
Update pseudo-costs after LP is solved.
- Parameters
-
| [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 from Minotaur::Brancher.
◆ writeStats()
| void UnambRelBrancher::writeStats |
( |
std::ostream & |
out | ) |
const |
|
virtual |
The documentation for this class was generated from the following files: