ell::Basin_FME Class Reference
#include <Basin.hh>
Inheritance diagram for ell::Basin_FME:
Detailed Description
Implements the memory efficient 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 are reported in ascending order to the collector.
For a detailed description of this implementation see static member function flood(..).
NOTE: This class is NOT enumerating the surface of the basin! Therefore NO State pair will be added to a given scSurface collector! This is a restriction of this algorithm due to the memory efficiency.
Definition at line 86 of file Basin.hh.
Public Member Functions | |
Basin_FME (const double maxE, const double deltaE, const size_t maxToStore) | |
virtual double | enumerate (const State *const localMin, StateCollector *scBasin, StatePairCollector *scSurface=NULL) |
virtual | ~Basin_FME () |
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_FME::Basin_FME | ( | 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
Member Function Documentation
double ell::Basin_FME::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 state have energy below)
Implements ell::Basin.
double ell::Basin_FME::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)
Field Documentation
const double ell::Basin_FME::deltaE [protected] |
const double ell::Basin_FME::maxE [protected] |
const size_t ell::Basin_FME::maxToStore [protected] |
The documentation for this class was generated from the following files: