Dip  0.92.4
Public Member Functions | Private Member Functions | Private Attributes | List of all members
AlpsNodePool Class Reference

Node pool is used to store the nodes to be processed. More...

#include <AlpsNodePool.h>

Inheritance diagram for AlpsNodePool:
Inheritance graph
[legend]
Collaboration diagram for AlpsNodePool:
Collaboration graph
[legend]

Public Member Functions

 AlpsNodePool ()
 
virtual ~AlpsNodePool ()
 
int getNumKnowledges () const
 Query the number of nodes in the node pool. More...
 
double getBestKnowledgeValue () const
 Get the "best value" of the nodes in node pool. More...
 
AlpsTreeNodegetBestNode () const
 Get the "best" nodes in node pool. More...
 
bool hasKnowledge () const
 Check whether there are still nodes in the node pool. More...
 
std::pair< AlpsKnowledge
*, double > 
getKnowledge () const
 Get the node with highest priority. More...
 
void popKnowledge ()
 Remove the node with highest priority from the pool. More...
 
void addKnowledge (AlpsKnowledge *node, double priority)
 
Remove the node with highest priority from the pool and the elite 

list More...

 
const AlpsPriorityQueue
< AlpsTreeNode * > & 
getCandidateList () const
 Get a constant reference to the priority queue that stores nodes. More...
 
void setNodeSelection (AlpsSearchStrategy< AlpsTreeNode * > &compare)
 Set strategy and resort heap. More...
 
void deleteGuts ()
 Delete all the nodes in the pool and free memory. More...
 
void clear ()
 Remove all the nodes in the pool (does not free memory). More...
 
- Public Member Functions inherited from AlpsKnowledgePool
 AlpsKnowledgePool ()
 
virtual ~AlpsKnowledgePool ()
 
virtual void setMaxNumKnowledges (int num)
 Set the quantity limit of knowledges that can be stored in the pool. More...
 
virtual int getMaxNumKnowledges () const
 Query the quantity limit of knowledges. More...
 
virtual std::pair
< AlpsKnowledge *, double > 
getBestKnowledge () const
 Query the best knowledge in the pool. More...
 
virtual void getAllKnowledges (std::vector< std::pair< AlpsKnowledge *, double > > &kls) const
 Get a reference to all the knowledges in the pool. More...
 

Private Member Functions

 AlpsNodePool (const AlpsNodePool &)
 
AlpsNodePooloperator= (const AlpsNodePool &)
 

Private Attributes

AlpsPriorityQueue< AlpsTreeNode * > candidateList_
 

Detailed Description

Node pool is used to store the nodes to be processed.

Definition at line 37 of file AlpsNodePool.h.

Constructor & Destructor Documentation

AlpsNodePool::AlpsNodePool ( const AlpsNodePool )
private
AlpsNodePool::AlpsNodePool ( )
inline

Definition at line 46 of file AlpsNodePool.h.

virtual AlpsNodePool::~AlpsNodePool ( )
inlinevirtual

Definition at line 47 of file AlpsNodePool.h.

References candidateList_, deleteGuts(), and AlpsPriorityQueue< T >::empty().

Member Function Documentation

AlpsNodePool& AlpsNodePool::operator= ( const AlpsNodePool )
private
int AlpsNodePool::getNumKnowledges ( ) const
inlinevirtual

Query the number of nodes in the node pool.

Implements AlpsKnowledgePool.

Definition at line 55 of file AlpsNodePool.h.

References candidateList_, and AlpsPriorityQueue< T >::size().

Referenced by AlpsSubTree::getNumNodes(), and AlpsSubTree::reset().

double AlpsNodePool::getBestKnowledgeValue ( ) const
inline

Get the "best value" of the nodes in node pool.

Definition at line 58 of file AlpsNodePool.h.

References ALPS_OBJ_MAX, candidateList_, AlpsPriorityQueue< T >::getContainer(), and AlpsTreeNode::getQuality().

AlpsTreeNode* AlpsNodePool::getBestNode ( ) const
inline

Get the "best" nodes in node pool.

Definition at line 74 of file AlpsNodePool.h.

References ALPS_OBJ_MAX, candidateList_, AlpsPriorityQueue< T >::getContainer(), and AlpsTreeNode::getQuality().

bool AlpsNodePool::hasKnowledge ( ) const
inlinevirtual

Check whether there are still nodes in the node pool.

Reimplemented from AlpsKnowledgePool.

Definition at line 93 of file AlpsNodePool.h.

References candidateList_, and AlpsPriorityQueue< T >::empty().

Referenced by AlpsSubTree::changeNodePool().

std::pair<AlpsKnowledge*, double> AlpsNodePool::getKnowledge ( ) const
inlinevirtual

Get the node with highest priority.

Doesn't remove it from the pool

Implements AlpsKnowledgePool.

Definition at line 96 of file AlpsNodePool.h.

References candidateList_, AlpsTreeNode::getQuality(), and AlpsPriorityQueue< T >::top().

Referenced by AlpsSubTree::reset().

void AlpsNodePool::popKnowledge ( )
inlinevirtual

Remove the node with highest priority from the pool.

Reimplemented from AlpsKnowledgePool.

Definition at line 103 of file AlpsNodePool.h.

References candidateList_, and AlpsPriorityQueue< T >::pop().

Referenced by AlpsSubTree::reset().

void AlpsNodePool::addKnowledge ( AlpsKnowledge node,
double  priority 
)
inlinevirtual

Remove the node with highest priority from the pool and the elite 

list

Add a node to node pool.

Implements AlpsKnowledgePool.

Definition at line 110 of file AlpsNodePool.h.

References candidateList_, and AlpsPriorityQueue< T >::push().

Referenced by AlpsSubTree::reset().

const AlpsPriorityQueue<AlpsTreeNode*>& AlpsNodePool::getCandidateList ( ) const
inline

Get a constant reference to the priority queue that stores nodes.

Definition at line 124 of file AlpsNodePool.h.

References candidateList_.

void AlpsNodePool::setNodeSelection ( AlpsSearchStrategy< AlpsTreeNode * > &  compare)
inline

Set strategy and resort heap.

Definition at line 127 of file AlpsNodePool.h.

References candidateList_, and AlpsPriorityQueue< T >::setComparison().

Referenced by AlpsSubTree::setNodeSelection().

void AlpsNodePool::deleteGuts ( )
inline

Delete all the nodes in the pool and free memory.

Definition at line 132 of file AlpsNodePool.h.

References candidateList_, AlpsPriorityQueue< T >::clear(), AlpsPriorityQueue< T >::getContainer(), and AlpsPriorityQueue< T >::size().

Referenced by ~AlpsNodePool().

void AlpsNodePool::clear ( )
inline

Remove all the nodes in the pool (does not free memory).

Definition at line 142 of file AlpsNodePool.h.

References candidateList_, and AlpsPriorityQueue< T >::clear().

Referenced by AlpsSubTree::changeNodePool(), and AlpsSubTree::clearNodePools().

Member Data Documentation

AlpsPriorityQueue<AlpsTreeNode*> AlpsNodePool::candidateList_
private

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