- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Attributes | Private Member Functions | List of all members
AlpsTreeNode Class Referenceabstract

This class holds one node of the search tree. More...

`#include <AlpsTreeNode.h>`

Inheritance diagram for AlpsTreeNode:
[legend]
Collaboration diagram for AlpsTreeNode:
[legend]

## 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)
AlpsKnowledgeBroker * | getKnowledgeBroker () const
| Functions to access/set the knwoledge broker. More...
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. 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...
AlpsNodeStatus | getStatus () const
| Query/set the current status. More...
void | setStatus (const AlpsNodeStatus stat)
| Query/set the current status. More...
bool | isCandidate () const
| Query functions about specific stati. More...
bool | isEvaluated () const
| Query functions about specific stati. More...
bool | isPregnant () const
| Query functions about specific stati. More...
bool | isBranched () const
| Query functions about specific stati. More...
bool | isFathomed () const
| Query functions about specific stati. More...
bool | isDiscarded () const
| Query functions about specific stati. More...
bool | isActive () const
| Query/set node in-process indicator. More...
void | setActive (const bool yesno)
| Query/set node in-process indicator. More...
AlpsNodeIndex_t | getIndex () const
| Query/set node identifier (unique within subtree). More...
void | setIndex (const AlpsNodeIndex_t index)
| Query/set node identifier (unique within subtree). More...
int | getDepth () const
| Query/set what depth the search tree node is at. More...
void | setDepth (const int depth)
| Query/set what depth the search tree node is at. More...
double | getSolEstimate () const
| Query/set the solution estimate of the node. More...
void | setSolEstimate (double est)
| Query/set the solution estimate of the node. More...
double | getQuality () const
| Query/set the quality of the node. More...
void | setQuality (double quality)
| Query/set the quality of the node. More...
int | getNumChildren () const
| Query/set what the number of children. More...
void | setNumChildren (const int numChildren)
| Query/set what the number of children. More...
void | modifyNumChildren (const int s)
| Query/set what the number of children. More...
AlpsTreeNode * | getChild (const int i) const
| Query/set pointer to the ith child. More...
void | setChild (const int i, AlpsTreeNode *node)
| Returns a const pointer to the ith child. More...
AlpsTreeNode * | getParent () const
| Get/set subtree. More...
void | setParent (AlpsTreeNode *parent)
| Get/set subtree. More...
AlpsNodeIndex_t | getParentIndex () const
| Get/set the index of the parent of the node. More...
void | setParentIndex (AlpsNodeIndex_t index)
| Get/set the index of the parent of the node. More...
int | getExplicit () const
| Get/set the indication of whether the node has full or differencing description. More...
void | setExplicit (int fp)
| Get/set the indication of whether the node has full or differencing description. More...
virtual void | convertToExplicit ()
| Convert explicit description to difference, and vise-vesa. More...
virtual void | convertToRelative ()
| Convert explicit description to difference, and vise-vesa. More...
int | getDiving () const
| If the this node is in a diving process. More...
void | setDiving (const bool d)
| If the this node is in a diving process. More...
int | getSentMark () const
| Various marks used in parallel code. More...
void | setSentMark (const int tf)
| Various marks used in parallel code. More...
Public Member Functions inherited from AlpsKnowledge
| AlpsKnowledge ()
virtual | ~AlpsKnowledge ()
KnowledgeType | getType ()
void | setType (KnowledgeType t)
virtual AlpsEncoded * | encode () const
| This method should encode the content of the object and return a pointer to the encoded form. More...
virtual AlpsReturnStatus | encode (AlpsEncoded *encoded)
| Pack into a encode object. More...
virtual AlpsKnowledge * | decode (AlpsEncoded &encoded) const
| This method should decode and return a pointer to a brand new object, i.e., the method must create a new object on the heap from the decoded data instead of filling up the object for which the method was invoked. More...
AlpsEncoded * | getEncoded () const
| Get/set encoded. More...
void | setEncoded (AlpsEncoded *e)

## 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...
AlpsKnowledgeBroker * | knowledgeBroker_
| A pointer to the knowledge broker of the process where this node is processed. More...
int | sentMark_
| Various mark used in splitting and passing subtrees. More...
bool | diving_
| When processing it, if it is in the diving processing. More...
Protected Attributes inherited from AlpsKnowledge
KnowledgeType | type_

## Private Member Functions
| AlpsTreeNode (const AlpsTreeNode &)
AlpsTreeNode & | operator= (const AlpsTreeNode &)

## Detailed Description

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.

## Constructor & Destructor Documentation

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.

## Member Function Documentation

AlpsTreeNode& AlpsTreeNode::operator= | ( | const AlpsTreeNode & |  | ) |
| private

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 KnapTreeNode, BlisTreeNode, AbcTreeNode, 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 functions about specific stati.

Definition at line 184 of file AlpsTreeNode.h.

bool AlpsTreeNode::isPregnant | ( |  | ) | const
| inline

Query functions about specific stati.

Definition at line 186 of file AlpsTreeNode.h.

bool AlpsTreeNode::isBranched | ( |  | ) | const
| inline

Query functions about specific stati.

Definition at line 188 of file AlpsTreeNode.h.

bool AlpsTreeNode::isFathomed | ( |  | ) | const
| inline

Query functions about specific stati.

Definition at line 190 of file AlpsTreeNode.h.

bool AlpsTreeNode::isDiscarded | ( |  | ) | const
| inline

Query functions about specific stati.

Definition at line 192 of file AlpsTreeNode.h.

bool AlpsTreeNode::isActive | ( |  | ) | const
| inline

Query/set node in-process indicator.

Definition at line 198 of file AlpsTreeNode.h.

void AlpsTreeNode::setActive | ( | const bool | yesno | ) |
| inline

Query/set node in-process indicator.

Definition at line 199 of file AlpsTreeNode.h.

AlpsNodeIndex_t AlpsTreeNode::getIndex | ( |  | ) | const
| inline

Query/set node identifier (unique within subtree).

Definition at line 204 of file AlpsTreeNode.h.

void AlpsTreeNode::setIndex | ( | const AlpsNodeIndex_t | index | ) |
| inline

Query/set node identifier (unique within subtree).

Definition at line 205 of file AlpsTreeNode.h.

int AlpsTreeNode::getDepth | ( |  | ) | const
| inline

Query/set what depth the search tree node is at.

Definition at line 210 of file AlpsTreeNode.h.

void AlpsTreeNode::setDepth | ( | const int | depth | ) |
| inline

Query/set what depth the search tree node is at.

Definition at line 211 of file AlpsTreeNode.h.

double AlpsTreeNode::getSolEstimate | ( |  | ) | const
| inline

Query/set the solution estimate of the node.

Definition at line 216 of file AlpsTreeNode.h.

void AlpsTreeNode::setSolEstimate | ( | double | est | ) |
| inline

Query/set the solution estimate of the node.

Definition at line 217 of file AlpsTreeNode.h.

double AlpsTreeNode::getQuality | ( |  | ) | const
| inline

Query/set the quality of the node.

Definition at line 222 of file AlpsTreeNode.h.

void AlpsTreeNode::setQuality | ( | double | quality | ) |
| inline

Query/set the quality of the node.

Definition at line 223 of file AlpsTreeNode.h.

int AlpsTreeNode::getNumChildren | ( |  | ) | const
| inline

Query/set what the number of children.

Definition at line 228 of file AlpsTreeNode.h.

void AlpsTreeNode::setNumChildren | ( | const int | numChildren | ) |
| inline

Query/set what the number of children.

Definition at line 229 of file AlpsTreeNode.h.

void AlpsTreeNode::modifyNumChildren | ( | const int | s | ) |
| inline

Query/set what the number of children.

Definition at line 240 of file AlpsTreeNode.h.

AlpsTreeNode* AlpsTreeNode::getChild | ( | const int | i | ) | const
| inline

Query/set pointer to the ith child.

Definition at line 251 of file AlpsTreeNode.h.

void AlpsTreeNode::setChild | ( | const int | i,
|  | AlpsTreeNode * | node
| ) |  |
| inline

Returns a const pointer to the ith child.

Definition at line 258 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

Get/set subtree.

Get/set the parent of the node

Definition at line 281 of file AlpsTreeNode.h.

void AlpsTreeNode::setParent | ( | AlpsTreeNode * | parent | ) |
| inline

Get/set subtree.

Get/set the parent of the node

Definition at line 282 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 287 of file AlpsTreeNode.h.

void AlpsTreeNode::setParentIndex | ( | AlpsNodeIndex_t | index | ) |
| inline

Get/set the index of the parent of the node.

Used in decode subtree.

Definition at line 288 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 295 of file AlpsTreeNode.h.

void AlpsTreeNode::setExplicit | ( | int | fp | ) |
| inline

Get/set the indication of whether the node has full or differencing description.

Definition at line 296 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 301 of file AlpsTreeNode.h.

virtual void AlpsTreeNode::convertToRelative | ( |  | ) |
| inline virtual

Convert explicit description to difference, and vise-vesa.

Reimplemented in BlisTreeNode, and BlisTreeNode.

Definition at line 302 of file AlpsTreeNode.h.

int AlpsTreeNode::getDiving | ( |  | ) | const
| inline

If the this node is in a diving process.

Definition at line 307 of file AlpsTreeNode.h.

void AlpsTreeNode::setDiving | ( | const bool | d | ) |
| inline

If the this node is in a diving process.

Definition at line 308 of file AlpsTreeNode.h.

int AlpsTreeNode::getSentMark | ( |  | ) | const
| inline

Various marks used in parallel code.

Definition at line 313 of file AlpsTreeNode.h.

void AlpsTreeNode::setSentMark | ( | const int | tf | ) |
| inline

Various marks used in parallel code.

Definition at line 314 of file AlpsTreeNode.h.

## Member Data Documentation

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

The solution estimate.

The smaller the better.

Definition at line 69 of file AlpsTreeNode.h.

double AlpsTreeNode::quality_
| protected

The quality of this node.

The smaller the better.

Definition at line 72 of file AlpsTreeNode.h.

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.

The documentation for this class was generated from the following file:

- /tmp/CHiPPS-Blis-0.94.3/Alps/src/AlpsTreeNode.h