This class holds one node of the search tree. More...
#include <AlpsTreeNode.h>
Public Member Functions | |
AlpsTreeNode () | |
virtual | ~AlpsTreeNode () |
bool | operator< (const AlpsTreeNode &compNode) |
AlpsNodeDesc * | modifyDesc () |
Access the desc so that can modify it. | |
AlpsNodeDesc * | getDesc () const |
void | setDesc (AlpsNodeDesc *desc) |
AlpsKnowledgeBroker * | getKnowledgeBroker () const |
Functions to access/set the knwoledge broker. | |
void | setKnowledgeBroker (AlpsKnowledgeBroker *kb) |
virtual AlpsTreeNode * | createNewTreeNode (AlpsNodeDesc *&desc) const =0 |
The purpose of this function is be able to create the children of a node after branching. | |
void | removeChild (AlpsTreeNode *&child) |
Remove the pointer to given child from the list of children. | |
void | addChild (AlpsTreeNode *&child) |
Add a child to the list of children for this node. | |
void | removeDescendants () |
Removes all the descendants of the node. | |
AlpsNodeStatus | getStatus () const |
Query/set the current status. | |
void | setStatus (const AlpsNodeStatus stat) |
Query/set the current status. | |
bool | isCandidate () const |
Query functions about specific stati. | |
bool | isEvaluated () const |
Query/set the current status. | |
bool | isPregnant () const |
Query/set the current status. | |
bool | isBranched () const |
Query/set the current status. | |
bool | isFathomed () const |
Query/set the current status. | |
bool | isActive () const |
Query/set node in-process indicator. | |
void | setActive (const bool yesno) |
Query/set the current status. | |
AlpsNodeIndex_t | getIndex () const |
Query/set node identifier (unique within subtree). | |
void | setIndex (const AlpsNodeIndex_t index) |
Query/set the current status. | |
int | getDepth () const |
Query/set what depth the search tree node is at. | |
void | setDepth (const int depth) |
Query/set the current status. | |
double | getSolEstimate () const |
Query/set the solution estimate of the node. | |
void | setSolEstimate (double est) |
Query/set the current status. | |
double | getQuality () const |
Query/set the quality of the node. | |
void | setQuality (double quality) |
Query/set the current status. | |
int | getNumChildren () const |
Query/set what the number of children. | |
void | setNumChildren (const int numChildren) |
Query/set the current status. | |
void | modifyNumChildren (const int s) |
Query/set the current status. | |
AlpsTreeNode * | getChild (const int i) const |
Query/set pointer to the ith child. | |
void | setChild (const int i, AlpsTreeNode *node) |
Returns a const pointer to the ith child. | |
AlpsTreeNode * | getParent () const |
Get/set subtree. | |
void | setParent (AlpsTreeNode *parent) |
Query/set the current status. | |
AlpsNodeIndex_t | getParentIndex () const |
Get/set the index of the parent of the node. | |
void | setParentIndex (AlpsNodeIndex_t index) |
Query/set the current status. | |
int | getExplicit () const |
Get/set the indication of whether the node has full or differencing description. | |
void | setExplicit (int fp) |
Query/set the current status. | |
virtual void | convertToExplicit () |
Convert explicit description to difference, and vise-vesa. | |
virtual void | convertToRelative () |
Query/set the current status. | |
int | getDiving () const |
If the this node is in a diving process. | |
void | setDiving (const bool d) |
Query/set the current status. | |
int | getSentMark () const |
Various marks used in parallel code. | |
void | setSentMark (const int tf) |
Query/set the current status. | |
Protected Attributes | |
bool | active_ |
The subtree own this node. | |
AlpsNodeIndex_t | index_ |
The unique index of the tree node (across the whole search tree). | |
int | depth_ |
The depth of the node (in the whole tree -- the root is at depth 0). | |
double | solEstimate_ |
The solution estimate. | |
double | quality_ |
The quality of this node. | |
AlpsTreeNode * | parent_ |
The parent of the tree node. | |
AlpsNodeIndex_t | parentIndex_ |
The index of parent of the tree node. | |
int | numChildren_ |
The number of children. | |
AlpsTreeNode ** | children_ |
int | explicit_ |
Indicate whether the node description is explicit(1) or relative(0). | |
AlpsNodeDesc * | desc_ |
The actual description of the tree node. | |
AlpsNodeStatus | status_ |
The current status of the node. | |
AlpsKnowledgeBroker * | knowledgeBroker_ |
A pointer to the knowledge broker of the process where this node is processed. | |
int | sentMark_ |
Various mark used in splitting and passing subtrees. | |
bool | diving_ |
When processing it, if it is in the diving processing. | |
Private Member Functions | |
AlpsTreeNode (const AlpsTreeNode &) | |
AlpsTreeNode & | operator= (const AlpsTreeNode &) |
This class holds one node of the search tree.
Note that the generic search procedure doesn't know anything about the nodes in the tree other than their index, lower bound, etc. Other application-specific data is contained in derived classes, but is not needed for the basic operation of the search tree.
Definition at line 50 of file AlpsTreeNode.h.
AlpsTreeNode::AlpsTreeNode | ( | const AlpsTreeNode & | ) | [private] |
AlpsTreeNode::AlpsTreeNode | ( | ) | [inline] |
Definition at line 113 of file AlpsTreeNode.h.
virtual AlpsTreeNode::~AlpsTreeNode | ( | ) | [inline, virtual] |
Definition at line 136 of file AlpsTreeNode.h.
AlpsTreeNode& AlpsTreeNode::operator= | ( | const AlpsTreeNode & | ) | [private] |
Reimplemented from AlpsKnowledge.
Reimplemented in AbcTreeNode, KnapTreeNode, BlisTreeNode, and BlisTreeNode.
bool AlpsTreeNode::operator< | ( | const AlpsTreeNode & | compNode | ) | [inline] |
Definition at line 151 of file AlpsTreeNode.h.
AlpsNodeDesc* AlpsTreeNode::modifyDesc | ( | ) | [inline] |
Access the desc so that can modify it.
Definition at line 155 of file AlpsTreeNode.h.
AlpsNodeDesc* AlpsTreeNode::getDesc | ( | ) | const [inline] |
Definition at line 156 of file AlpsTreeNode.h.
void AlpsTreeNode::setDesc | ( | AlpsNodeDesc * | desc | ) | [inline] |
Definition at line 157 of file AlpsTreeNode.h.
AlpsKnowledgeBroker* AlpsTreeNode::getKnowledgeBroker | ( | ) | const [inline] |
Functions to access/set the knwoledge broker.
Definition at line 160 of file AlpsTreeNode.h.
void AlpsTreeNode::setKnowledgeBroker | ( | AlpsKnowledgeBroker * | kb | ) | [inline] |
Definition at line 162 of file AlpsTreeNode.h.
virtual AlpsTreeNode* AlpsTreeNode::createNewTreeNode | ( | AlpsNodeDesc *& | desc | ) | const [pure virtual] |
The purpose of this function is be able to create the children of a node after branching.
Implemented in AbcTreeNode, KnapTreeNode, BlisTreeNode, and BlisTreeNode.
AlpsNodeStatus AlpsTreeNode::getStatus | ( | ) | const [inline] |
Query/set the current status.
Definition at line 176 of file AlpsTreeNode.h.
void AlpsTreeNode::setStatus | ( | const AlpsNodeStatus | stat | ) | [inline] |
Query/set the current status.
Definition at line 177 of file AlpsTreeNode.h.
bool AlpsTreeNode::isCandidate | ( | ) | const [inline] |
Query functions about specific stati.
Definition at line 182 of file AlpsTreeNode.h.
bool AlpsTreeNode::isEvaluated | ( | ) | const [inline] |
Query/set the current status.
Definition at line 184 of file AlpsTreeNode.h.
bool AlpsTreeNode::isPregnant | ( | ) | const [inline] |
Query/set the current status.
Definition at line 186 of file AlpsTreeNode.h.
bool AlpsTreeNode::isBranched | ( | ) | const [inline] |
Query/set the current status.
Definition at line 188 of file AlpsTreeNode.h.
bool AlpsTreeNode::isFathomed | ( | ) | const [inline] |
Query/set the current status.
Definition at line 190 of file AlpsTreeNode.h.
bool AlpsTreeNode::isActive | ( | ) | const [inline] |
Query/set node in-process indicator.
Definition at line 196 of file AlpsTreeNode.h.
void AlpsTreeNode::setActive | ( | const bool | yesno | ) | [inline] |
Query/set the current status.
Definition at line 197 of file AlpsTreeNode.h.
AlpsNodeIndex_t AlpsTreeNode::getIndex | ( | ) | const [inline] |
Query/set node identifier (unique within subtree).
Definition at line 202 of file AlpsTreeNode.h.
void AlpsTreeNode::setIndex | ( | const AlpsNodeIndex_t | index | ) | [inline] |
Query/set the current status.
Definition at line 203 of file AlpsTreeNode.h.
int AlpsTreeNode::getDepth | ( | ) | const [inline] |
Query/set what depth the search tree node is at.
Definition at line 208 of file AlpsTreeNode.h.
void AlpsTreeNode::setDepth | ( | const int | depth | ) | [inline] |
Query/set the current status.
Definition at line 209 of file AlpsTreeNode.h.
double AlpsTreeNode::getSolEstimate | ( | ) | const [inline] |
Query/set the solution estimate of the node.
Definition at line 214 of file AlpsTreeNode.h.
void AlpsTreeNode::setSolEstimate | ( | double | est | ) | [inline] |
Query/set the current status.
Definition at line 215 of file AlpsTreeNode.h.
double AlpsTreeNode::getQuality | ( | ) | const [inline] |
Query/set the quality of the node.
Definition at line 220 of file AlpsTreeNode.h.
void AlpsTreeNode::setQuality | ( | double | quality | ) | [inline] |
Query/set the current status.
Definition at line 221 of file AlpsTreeNode.h.
int AlpsTreeNode::getNumChildren | ( | ) | const [inline] |
Query/set what the number of children.
Definition at line 226 of file AlpsTreeNode.h.
void AlpsTreeNode::setNumChildren | ( | const int | numChildren | ) | [inline] |
Query/set the current status.
Definition at line 227 of file AlpsTreeNode.h.
void AlpsTreeNode::modifyNumChildren | ( | const int | s | ) | [inline] |
Query/set the current status.
Definition at line 238 of file AlpsTreeNode.h.
AlpsTreeNode* AlpsTreeNode::getChild | ( | const int | i | ) | const [inline] |
Query/set pointer to the ith child.
Definition at line 249 of file AlpsTreeNode.h.
void AlpsTreeNode::setChild | ( | const int | i, | |
AlpsTreeNode * | node | |||
) | [inline] |
Returns a const pointer to the ith child.
Definition at line 256 of file AlpsTreeNode.h.
void AlpsTreeNode::removeChild | ( | AlpsTreeNode *& | child | ) |
Remove the pointer to given child from the list of children.
This method deletes the child as well. An error is thrown if the argument is not a pointer to a child.
void AlpsTreeNode::addChild | ( | AlpsTreeNode *& | child | ) |
Add a child to the list of children for this node.
void AlpsTreeNode::removeDescendants | ( | ) |
Removes all the descendants of the node.
We might want to do this in some cases where we are cutting out a subtree and replacing it with another one.
AlpsTreeNode* AlpsTreeNode::getParent | ( | ) | const [inline] |
void AlpsTreeNode::setParent | ( | AlpsTreeNode * | parent | ) | [inline] |
Query/set the current status.
Definition at line 280 of file AlpsTreeNode.h.
AlpsNodeIndex_t AlpsTreeNode::getParentIndex | ( | ) | const [inline] |
Get/set the index of the parent of the node.
Used in decode subtree.
Definition at line 285 of file AlpsTreeNode.h.
void AlpsTreeNode::setParentIndex | ( | AlpsNodeIndex_t | index | ) | [inline] |
Query/set the current status.
Definition at line 286 of file AlpsTreeNode.h.
int AlpsTreeNode::getExplicit | ( | ) | const [inline] |
Get/set the indication of whether the node has full or differencing description.
Definition at line 293 of file AlpsTreeNode.h.
void AlpsTreeNode::setExplicit | ( | int | fp | ) | [inline] |
Query/set the current status.
Definition at line 294 of file AlpsTreeNode.h.
virtual void AlpsTreeNode::convertToExplicit | ( | ) | [inline, virtual] |
Convert explicit description to difference, and vise-vesa.
Reimplemented in BlisTreeNode, and BlisTreeNode.
Definition at line 299 of file AlpsTreeNode.h.
virtual void AlpsTreeNode::convertToRelative | ( | ) | [inline, virtual] |
Query/set the current status.
Reimplemented in BlisTreeNode, and BlisTreeNode.
Definition at line 300 of file AlpsTreeNode.h.
int AlpsTreeNode::getDiving | ( | ) | const [inline] |
If the this node is in a diving process.
Definition at line 305 of file AlpsTreeNode.h.
void AlpsTreeNode::setDiving | ( | const bool | d | ) | [inline] |
Query/set the current status.
Definition at line 306 of file AlpsTreeNode.h.
int AlpsTreeNode::getSentMark | ( | ) | const [inline] |
Various marks used in parallel code.
Definition at line 311 of file AlpsTreeNode.h.
void AlpsTreeNode::setSentMark | ( | const int | tf | ) | [inline] |
Query/set the current status.
Definition at line 312 of file AlpsTreeNode.h.
bool AlpsTreeNode::active_ [protected] |
The subtree own this node.
Whether the node is being worked on at the moment
Definition at line 60 of file AlpsTreeNode.h.
AlpsNodeIndex_t AlpsTreeNode::index_ [protected] |
The unique index of the tree node (across the whole search tree).
Definition at line 63 of file AlpsTreeNode.h.
int AlpsTreeNode::depth_ [protected] |
The depth of the node (in the whole tree -- the root is at depth 0).
Definition at line 66 of file AlpsTreeNode.h.
double AlpsTreeNode::solEstimate_ [protected] |
double AlpsTreeNode::quality_ [protected] |
AlpsTreeNode* AlpsTreeNode::parent_ [protected] |
The parent of the tree node.
Definition at line 75 of file AlpsTreeNode.h.
AlpsNodeIndex_t AlpsTreeNode::parentIndex_ [protected] |
The index of parent of the tree node.
Used in decoding sub tree.
Definition at line 78 of file AlpsTreeNode.h.
int AlpsTreeNode::numChildren_ [protected] |
The number of children.
Definition at line 81 of file AlpsTreeNode.h.
AlpsTreeNode** AlpsTreeNode::children_ [protected] |
Definition at line 87 of file AlpsTreeNode.h.
int AlpsTreeNode::explicit_ [protected] |
Indicate whether the node description is explicit(1) or relative(0).
Default is relative.
Definition at line 92 of file AlpsTreeNode.h.
AlpsNodeDesc* AlpsTreeNode::desc_ [protected] |
The actual description of the tree node.
Definition at line 95 of file AlpsTreeNode.h.
AlpsNodeStatus AlpsTreeNode::status_ [protected] |
The current status of the node.
Definition at line 98 of file AlpsTreeNode.h.
AlpsKnowledgeBroker* AlpsTreeNode::knowledgeBroker_ [protected] |
A pointer to the knowledge broker of the process where this node is processed.
Definition at line 103 of file AlpsTreeNode.h.
int AlpsTreeNode::sentMark_ [protected] |
Various mark used in splitting and passing subtrees.
Definition at line 107 of file AlpsTreeNode.h.
bool AlpsTreeNode::diving_ [protected] |
When processing it, if it is in the diving processing.
Definition at line 110 of file AlpsTreeNode.h.