|
| Node () |
| Default constructor.
|
|
| Node (NodePtr parentNode, BranchPtr branch) |
|
virtual | ~Node () |
| Default destructor.
|
|
void | addChild (NodePtr childNode) |
| Add a child node.
|
|
void | addCutToPool (CutPtr cut, RelaxationPtr rel) |
| Add cut to the cut-pool of this node.
|
|
void | addPMod (ModificationPtr m) |
|
void | addRMod (ModificationPtr m) |
|
void | applyCutsByIndex (RelaxationPtr rel) |
|
void | applyPMods (ProblemPtr p) |
|
void | applyRMods (RelaxationPtr rel) |
|
void | applyRModsTrans (RelaxationPtr rel) |
|
void | applyMods (RelaxationPtr rel, ProblemPtr p) |
|
NodePtrIterator | childrenBegin () |
| Access the children by iterating over the vector.
|
|
NodePtrIterator | childrenEnd () |
| Last child.
|
|
BranchPtr | getBranch () const |
|
CutList | getCutPool () |
| Return the cut-pool of this node.
|
|
UInt | getDepth () const |
| Return the depth of the node in the tree.
|
|
UInt | getId () const |
| Return the ID of this node.
|
|
UIntVector | getLastStrongBranched () |
| Return the vector of last strong branching information of candidates.
|
|
double | getLb () const |
| Return the lower bound of the relaxation obtained at this node.
|
|
size_t | getNumChildren () |
| Number of children of this node.
|
|
NodePtr | getParent () const |
| Return a pointer to the parent node.
|
|
DoubleVector | getPCDown () |
|
UIntVector | getBrCands () const |
|
DoubleVector | getPCUp () const |
|
NodeStatus | getStatus () const |
| Get the status of this node.
|
|
double | getTbScore () const |
| Get the tie-breaking score.
|
|
double | setVioVal (double v) |
|
double | getVioVal () |
|
UIntVector | getTimesDown () const |
|
UIntVector | getTimesUp () const |
|
WarmStartPtr | getWarmStart () |
| Get the warm start information.
|
|
void | makeChildOf (const Node *parent) |
|
ModificationConstIterator | modsBegin () const |
|
ModificationConstIterator | modsrBegin () const |
|
ModificationConstIterator | modsEnd () const |
| End of modifications applied at this node.
|
|
ModificationConstIterator | modsrEnd () const |
|
ModificationRConstIterator | modsRBegin () const |
| Reverse iterators.
|
|
ModificationRConstIterator | modsREnd () const |
| Reverse iterators.
|
|
void | removeChild (NodePtrIterator childNodeIter) |
|
void | removeChildren () |
| Disassociate all children from this node.
|
|
void | removeParent () |
| Remove the pointer to the parent node. Used when deleting a node.
|
|
void | removeWarmStart () |
| Remove warm start information associated with this node.
|
|
void | setBrCands (UIntVector brCands) |
| Set the branching candidate information for this node.
|
|
void | setDepth (UInt depth) |
| Set the depth of the node in the tree.
|
|
void | setId (UInt id) |
|
void | setLastStrongBranched (UIntVector lstStrnBrnchd) |
| Set the vector of last strong branched information of candidates.
|
|
void | setLb (double value) |
| Set a lower bound for the relaxation at this node.
|
|
void | setPCDown (DoubleVector pcDown) |
| Set the down pseudocosts for this node.
|
|
void | setPCUp (DoubleVector pcUp) |
| Set the up pseudocosts for this node.
|
|
void | setStatus (NodeStatus status) |
| Set the status of this node.
|
|
void | setTbScore (double d) |
| Get the tie-breaking score.
|
|
void | setTimesDown (UIntVector timesDown) |
| Set the times down for this node.
|
|
void | setTimesUp (UIntVector timesUp) |
| Set the times up for this node.
|
|
void | setWarmStart (WarmStartPtr ws) |
| Set warm start information.
|
|
void | undoPMods (ProblemPtr p) |
|
void | undoRMods (RelaxationPtr r) |
|
void | undoRModsTrans (RelaxationPtr r) |
|
void | undoMods (RelaxationPtr rel, ProblemPtr p) |
|
void | updateBrCands (UInt index) |
|
void | updateLastStrBranched (UInt index, double value) |
|
void | updatePCDown (UInt index, double value) |
|
void | updatePCUp (UInt index, double value) |
|
void | updateTimesDown (UInt index, double value) |
|
void | updateTimesUp (UInt index, double value) |
|
void | write (std::ostream &o) const |
| Write the node.
|
|
A Node is a node in the search tree or the branch-and-bound tree. Associated with a node is a parent node from which the node is derived by adding branching constraints. Similarly a node may have one or more children each obtained by adding some branching constraints. Associated with each node is an array (or vector) of modifications that were applied to the parent in order to get the node. For instance, a modification could be change of one or more bounds on the variables.
At each node, one can find a solution that is feasible to the original instance or show that the relaxation at the node is infeasible or obtain some other information. One can, at each node, solve a relaxation, tighten it, preprocess it, run heuristics.
A node that has been evaluated and does not need any further processing and does not need to be branched upon is called a pruned node. A node that has not been processed yet is called an active node. A node that has been processed (is ready for branching or has been pruned) is called a fathomed node. A node whose all successors have been fathomed or deleted can be deleted. Since we store at each node, the modification that generated it from its parent, we can not delete nodes that have active successors.
A Child of the current node can be obtained by applying a branch to the node. All immediate child nodes are saved in a vector.