Generated on Tue Dec 16 13:34:46 2008 for ell-3.0.0 by doxygen 1.5.1

ell::Basin_F Class Reference

#include <Basin.hh>

Inheritance diagram for ell::Basin_F:

Inheritance graph
[legend]

Detailed Description

Implements the standard hash-based basin flooding algorithm.

Within a flooding approach the States of the basin are enumerated bottom to top according to an order usually defined by the energy of States. Here we use the order given by the State::less operator that includes this. The enumeration is based on a priority queue initialised with the minimum M of the basin. While the queue is not empty the first element is removed and checked if it is part of the basin. If that is the case it is reported and all neighbors are enumerated and added to the queue. Depending on the algorithm details the procedure might differ in some details.

NOTE : all basin States and surface State pairs are reported in ascending order to the collectors!

For a detailed description of this implementation see static member function flood(..).

Definition at line 213 of file Basin.hh.

Public Member Functions

 Basin_F (const double maxE, const double deltaE, const size_t maxToStore)
virtual double enumerate (const State *const localMin, StateCollector *scBasin, StatePairCollector *scSurface=NULL)
virtual ~Basin_F ()

Static Public Member Functions

static double flood (const State *const localMin, StateCollector *scBasin, const double maxE, const double deltaE, const size_t maxToStore, StatePairCollector *scSurface=NULL)

Protected Attributes

const double deltaE
const double maxE
const size_t maxToStore

Data Structures

class  QueueVal
 the updatable value stored for a key More...


Constructor & Destructor Documentation

ell::Basin_F::Basin_F ( const double  maxE,
const double  deltaE,
const size_t  maxToStore 
)

Construction of the algorithm wrapper.

Parameters:
maxE the maximal energy all states should be below
deltaE the delta E to lower maxE in case too many states are in the queue
maxToStore the maximal number of elements the underlying queue is allowed to contain

Definition at line 211 of file Basin.cc.

ell::Basin_F::~Basin_F (  )  [virtual]

destruction

Definition at line 219 of file Basin.cc.


Member Function Documentation

double ell::Basin_F::enumerate ( const State *const  localMin,
StateCollector scBasin,
StatePairCollector scSurface = NULL 
) [virtual]

Calls the static member function Basin::basin(..) with the parameters from construction to flood the gradient basin of localMin, storing all States of the basin in sc.

Parameters:
localMin the local minimum the basin belongs to
scBasin the StateCollector all states that belong to the gradient basin are written to
scSurface the StatePairCollector all states that form the contact surface of the basin are written to. The first reported State is part of the basin, the second not.
Returns:
the maximal energy until the basin was flooded (all accepted states have energy below)

Implements ell::Basin.

Definition at line 223 of file Basin.cc.

double ell::Basin_F::flood ( const State *const  localMin,
StateCollector scBasin,
const double  maxE,
const double  deltaE,
const size_t  maxToStore,
StatePairCollector scSurface = NULL 
) [static]

Fills succesivelly the basin of the given local minimum in the landscape and stores the seen States in energy increasing order to the given StateCollector. The basin is flooded up to maxE. Therefore, all neighbored States with energy below maxE have to be stored in a queue. A maximal number of states to store for investigation in parallel can be given by maxToStore. If the underlying queue size exeeds this maxE is decreased for deltaE and all States above the new maxE are removed from the queue. This is repeated until the queue size falls back below maxToStore.

Parameters:
localMin the local minimum the basin belongs to
scBasin the StateCollector all states that belong to the gradient basin are written to
maxE the maximal energy all states should be below
deltaE the delta E to lower maxE in case too many states are in the queue
maxToStore the maximal number of elements the underlying queue is allowed to contain
scSurface the StatePairCollector all states that form the contact surface of the basin are written to. The first reported State is part of the basin, the second not.
Returns:
the maximal energy until the basin was flooded (all accepted states have energy below)

Definition at line 232 of file Basin.cc.


Field Documentation

const double ell::Basin_F::deltaE [protected]

the delta E to lower maxE in case too many states are in the queue

Definition at line 218 of file Basin.hh.

const double ell::Basin_F::maxE [protected]

the maximal energy all states should be below

Definition at line 216 of file Basin.hh.

const size_t ell::Basin_F::maxToStore [protected]

the maximal number of elements the underlying queue is allowed to contain

Definition at line 221 of file Basin.hh.


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