Alps
2.0.2
|
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. More... | |
AlpsNodeDesc * | getDesc () const |
void | setDesc (AlpsNodeDesc *desc) |
virtual AlpsTreeNode * | createNewTreeNode (AlpsNodeDesc *&desc) const =0 |
The purpose of this function is be able to create the children of a node after branching. More... | |
void | removeChild (AlpsTreeNode *&child) |
Remove the pointer to given child from the list of children. More... | |
void | addChild (AlpsTreeNode *&child) |
Add a child to the list of children for this node. More... | |
void | removeDescendants () |
Removes all the descendants of the node. More... | |
Query/set the current status. | |
set status. | |
AlpsNodeStatus | getStatus () const |
void | setStatus (const AlpsNodeStatus stat) |
get status. More... | |
bool | isCandidate () const |
Query functions about specific stati. More... | |
bool | isEvaluated () const |
bool | isPregnant () const |
bool | isBranched () const |
bool | isFathomed () const |
bool | isDiscarded () const |
bool | isActive () const |
Query/set node in-process indicator. More... | |
void | setActive (const bool yesno) |
AlpsNodeIndex_t | getIndex () const |
Query/set node identifier (unique within subtree). More... | |
void | setIndex (const AlpsNodeIndex_t index) |
int | getDepth () const |
Query/set what depth the search tree node is at. More... | |
void | setDepth (const int depth) |
double | getSolEstimate () const |
Query/set the solution estimate of the node. More... | |
void | setSolEstimate (double est) |
double | getQuality () const |
Query/set the quality of the node. More... | |
void | setQuality (double quality) |
int | getNumChildren () const |
Query/set what the number of children. More... | |
void | setNumChildren (const int numChildren) |
void | modifyNumChildren (const int s) |
AlpsTreeNode * | getChild (const int i) const |
Query/set pointer to the ith child. More... | |
void | setChild (const int i, AlpsTreeNode *node) |
AlpsTreeNode * | getParent () const |
Get/set subtree. More... | |
void | setParent (AlpsTreeNode *parent) |
AlpsNodeIndex_t | getParentIndex () const |
Get/set the index of the parent of the node. More... | |
void | setParentIndex (AlpsNodeIndex_t index) |
int | getExplicit () const |
Get/set the indication of whether the node has full or differencing description. More... | |
void | setExplicit (int fp) |
virtual void | convertToExplicit () |
Convert explicit description to difference, and vise-vesa. More... | |
virtual void | convertToRelative () |
int | getSentMark () const |
Various marks used in parallel code. More... | |
void | setSentMark (const int tf) |
Public Member Functions inherited from AlpsKnowledge | |
AlpsKnowledge () | |
Default constructor. More... | |
AlpsKnowledge (AlpsKnowledgeType type) | |
AlpsKnowledge (AlpsKnowledgeType type, AlpsKnowledgeBroker *broker) | |
virtual | ~AlpsKnowledge () |
Destructor. More... | |
AlpsKnowledgeType | getType () const |
Get knowledge type. More... | |
void | setType (AlpsKnowledgeType t) |
Set knowledge type. More... | |
AlpsKnowledgeBroker * | broker () |
Get pointer to the knowledge broker. More... | |
const AlpsKnowledgeBroker * | broker () const |
Get pointer to the knowledge broker. More... | |
void | setBroker (AlpsKnowledgeBroker *broker) |
Set knowledge broker. More... | |
AlpsEncoded * | encode () const |
Encode the content of this into an AlpsEncoded object and return a pointer to it. More... | |
virtual AlpsReturnStatus | encode (AlpsEncoded *encoded) const |
Encode the content of this into the given AlpsEncoded object. More... | |
virtual AlpsKnowledge * | decode (AlpsEncoded &encoded) const =0 |
Decode the given AlpsEncoded object into a new AlpsKnowledge object and return a pointer to it. More... | |
virtual AlpsReturnStatus | decodeToSelf (AlpsEncoded &encoded) |
Decode the given AlpsEncoded object into this. More... | |
Protected Attributes | |
bool | active_ |
The subtree own this node. More... | |
AlpsNodeIndex_t | index_ |
The unique index of the tree node (across the whole search tree). More... | |
int | depth_ |
The depth of the node (in the whole tree – the root is at depth 0). More... | |
double | solEstimate_ |
The solution estimate. More... | |
double | quality_ |
The quality of this node. More... | |
AlpsTreeNode * | parent_ |
The parent of the tree node. More... | |
AlpsNodeIndex_t | parentIndex_ |
The index of parent of the tree node. More... | |
int | numChildren_ |
The number of children. More... | |
AlpsTreeNode ** | children_ |
int | explicit_ |
Indicate whether the node description is explicit(1) or relative(0). More... | |
AlpsNodeDesc * | desc_ |
The actual description of the tree node. More... | |
AlpsNodeStatus | status_ |
The current status of the node. More... | |
int | sentMark_ |
Various mark used in splitting and passing subtrees. More... | |
Additional Inherited Members | |
Public Attributes inherited from AlpsKnowledge | |
AlpsKnowledgeBroker * | broker_ |
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 52 of file AlpsTreeNode.h.
|
inline |
Definition at line 103 of file AlpsTreeNode.h.
|
inlinevirtual |
Definition at line 125 of file AlpsTreeNode.h.
|
inline |
Definition at line 140 of file AlpsTreeNode.h.
|
inline |
Access the desc so that can modify it.
Definition at line 144 of file AlpsTreeNode.h.
|
inline |
Definition at line 145 of file AlpsTreeNode.h.
|
inline |
Definition at line 146 of file AlpsTreeNode.h.
|
pure virtual |
The purpose of this function is be able to create the children of a node after branching.
Implemented in AbcTreeNode, AbcTreeNode, AbcTreeNode, and KnapTreeNode.
|
inline |
Definition at line 160 of file AlpsTreeNode.h.
|
inline |
get status.
Definition at line 162 of file AlpsTreeNode.h.
|
inline |
Query functions about specific stati.
Definition at line 167 of file AlpsTreeNode.h.
|
inline |
Definition at line 169 of file AlpsTreeNode.h.
|
inline |
Definition at line 171 of file AlpsTreeNode.h.
|
inline |
Definition at line 173 of file AlpsTreeNode.h.
|
inline |
Definition at line 175 of file AlpsTreeNode.h.
|
inline |
Definition at line 177 of file AlpsTreeNode.h.
|
inline |
Query/set node in-process indicator.
Definition at line 183 of file AlpsTreeNode.h.
|
inline |
Definition at line 184 of file AlpsTreeNode.h.
|
inline |
Query/set node identifier (unique within subtree).
Definition at line 189 of file AlpsTreeNode.h.
|
inline |
Definition at line 190 of file AlpsTreeNode.h.
|
inline |
Query/set what depth the search tree node is at.
Definition at line 195 of file AlpsTreeNode.h.
|
inline |
Definition at line 196 of file AlpsTreeNode.h.
|
inline |
Query/set the solution estimate of the node.
Definition at line 201 of file AlpsTreeNode.h.
|
inline |
Definition at line 202 of file AlpsTreeNode.h.
|
inline |
Query/set the quality of the node.
Definition at line 207 of file AlpsTreeNode.h.
|
inline |
Definition at line 208 of file AlpsTreeNode.h.
|
inline |
Query/set what the number of children.
Definition at line 213 of file AlpsTreeNode.h.
|
inline |
Definition at line 214 of file AlpsTreeNode.h.
|
inline |
Definition at line 225 of file AlpsTreeNode.h.
|
inline |
Query/set pointer to the ith child.
Definition at line 236 of file AlpsTreeNode.h.
|
inline |
Definition at line 243 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.
|
inline |
|
inline |
Definition at line 267 of file AlpsTreeNode.h.
|
inline |
Get/set the index of the parent of the node.
Used in decode subtree.
Definition at line 272 of file AlpsTreeNode.h.
|
inline |
Definition at line 273 of file AlpsTreeNode.h.
|
inline |
Get/set the indication of whether the node has full or differencing description.
Definition at line 280 of file AlpsTreeNode.h.
|
inline |
Definition at line 281 of file AlpsTreeNode.h.
|
inlinevirtual |
Convert explicit description to difference, and vise-vesa.
Definition at line 286 of file AlpsTreeNode.h.
|
inlinevirtual |
Definition at line 287 of file AlpsTreeNode.h.
|
inline |
Various marks used in parallel code.
Definition at line 292 of file AlpsTreeNode.h.
|
inline |
Definition at line 293 of file AlpsTreeNode.h.
|
protected |
The subtree own this node.
Whether the node is being worked on at the moment
Definition at line 58 of file AlpsTreeNode.h.
|
protected |
The unique index of the tree node (across the whole search tree).
Definition at line 61 of file AlpsTreeNode.h.
|
protected |
The depth of the node (in the whole tree – the root is at depth 0).
Definition at line 64 of file AlpsTreeNode.h.
|
protected |
|
protected |
|
protected |
The parent of the tree node.
Definition at line 73 of file AlpsTreeNode.h.
|
protected |
The index of parent of the tree node.
Used in decoding sub tree.
Definition at line 76 of file AlpsTreeNode.h.
|
protected |
The number of children.
Definition at line 79 of file AlpsTreeNode.h.
|
protected |
Definition at line 85 of file AlpsTreeNode.h.
|
protected |
Indicate whether the node description is explicit(1) or relative(0).
Default is relative.
Definition at line 90 of file AlpsTreeNode.h.
|
protected |
The actual description of the tree node.
Definition at line 93 of file AlpsTreeNode.h.
|
protected |
The current status of the node.
Definition at line 96 of file AlpsTreeNode.h.
|
protected |
Various mark used in splitting and passing subtrees.
Definition at line 100 of file AlpsTreeNode.h.