Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | Related Pages | Search for

# eoPop< EOT > Class Template Reference

A std::vector of EO object, to be used in all algorithms (selectors, operators, replacements, ...). More...

`#include <eoPop.h>`

Inheritance diagram for eoPop< EOT >:

List of all members.

## Public Types
typedef EOT::Fitness | Fitness
typedef EOT::fitness_traits | fitness_traits
## Public Member Functions
| eoPop ()
| Default ctor.
| eoPop (unsigned _popSize, eoInit< EOT > &_chromInit)
| Ctor for the initialization of chromosomes.
void | append (unsigned _newPopSize, eoInit< EOT > &_chromInit)
| appstd::ends random guys at end of pop.
| eoPop (std::istream &_is)
| Ctor from an std::istream; reads the population from a stream, each element should be in different lines.
virtual | ~eoPop ()
| Empty Dtor.
void | sort (void)
| sort the population.
void | sort (std::vector< const EOT * > &result) const
| creates a std::vector<EOT*> pointing to the individuals in descending order
void | shuffle (void)
| shuffle the population.
void | shuffle (std::vector< const EOT * > &result) const
| creates a std::vector<EOT*> pointing to the individuals in random order
eoPop< EOT >::iterator | it_best_element ()
| returns an iterator to the best individual DOES NOT MOVE ANYBODY
const EOT & | best_element () const
| returns an iterator to the best individual DOES NOT MOVE ANYBODY
const EOT & | worse_element () const
| returns a const reference to the worse individual DOES NOT MOVE ANYBODY
eoPop< EOT >::iterator | it_worse_element ()
| returns an iterator to the worse individual DOES NOT MOVE ANYBODY
eoPop< EOT >::iterator | nth_element (int nth)
| slightly faster algorithm than sort to find all individuals that are better than the nth individual.
Fitness | nth_element_fitness (int which) const
| returns the fitness of the nth element
void | nth_element (int which, std::vector< const EOT * > &result) const
| const nth_element function, returns pointers to sorted individuals up the the nth
void | swap (eoPop< EOT > &other)
| does STL swap with other pop
virtual void | sortedPrintOn (std::ostream &_os) const
| Prints sorted pop but does NOT modify it!
virtual void | printOn (std::ostream &_os) const
| Write object.
virtual void | invalidate ()
void | sort ()
void | scale ()
void | setPerf2Worth (eoPerf2Worth< EOT > &_p2w)
void | setPerf2Worth (eoPerf2Worth< EOT > *_p2w)
eoPerf2Worth< EOT > * | getPerf2Worth ()
void | swap (eoPop< EOT > &other)
Methods from eoObject
virtual void | readFrom (std::istream &_is)
| Read object.
virtual std::string | className () const
| Inherited from eoObject.
## Private Attributes
eoPerf2Worth< EOT > * | p2w

## Detailed Description

### template<class EOT>
class eoPop< EOT >

A std::vector of EO object, to be used in all algorithms (selectors, operators, replacements, ...).

We have no idea if a population can be some other thing that a std::vector, but if somebody thinks of it, this concrete implementation can be moved to "generic" and an abstract Population interface be provided.

The template can be instantiated with anything that accepts a "size" and eoInit derived object. in the ctor. EOT must also have a copy ctor, since temporaries are created and then passed to the eoInit object

Definition at line 54 of file eoPop.h.

## Constructor & Destructor Documentation

template<class EOT>
eoPop< EOT >::eoPop | ( |  | ) | `[inline]`

| Default ctor. Creates empty pop Definition at line 68 of file eoPop.h.

template<class EOT>
eoPop< EOT >::eoPop | ( | unsigned | _popSize,
|  | eoInit< EOT > & | _chromInit
| ) | `[inline]`

  | Ctor for the initialization of chromosomes. Parameters:
  | _popSize | total population size
  | _chromInit | Initialization routine, produces EO's, needs to be an eoInit
Definition at line 75 of file eoPop.h.

template<class EOT>
eoPop< EOT >::eoPop | ( | std::istream & | _is | ) | `[inline]`

  | Ctor from an std::istream; reads the population from a stream, each element should be in different lines. Parameters:
  | _is | the stream
Definition at line 113 of file eoPop.h.

## Member Function Documentation

template<class EOT>
void eoPop< EOT >::append | ( | unsigned | _newPopSize,
|  | eoInit< EOT > & | _chromInit
| ) | `[inline]`

  | appstd::ends random guys at end of pop. Can be used to initialize it pop is empty Parameters:
  | _popSize | total population size
  | _chromInit | Initialization routine, produces EO's, needs to be an eoInit
Definition at line 91 of file eoPop.h. Referenced by eoEasyEA< EOT >::operator()().

template<class EOT>
void eoPop< EOT >::sort | ( | void |  | ) | `[inline]`

| sort the population. Use this member to sort in order of descending Fitness, so the first individual is the best! Definition at line 133 of file eoPop.h. Referenced by eoTruncatedSelectMany< EOT >::operator()(), eoReduceMergeReduce< EOT >::operator()(), eoRanking< EOT >::operator()(), eoPBILAdditive< EOT >::operator()(), eoCheckPoint< EOT >::operator()(), eoSequentialSelect< EOT >::setup(), and eoPop< Dummy >::sortedPrintOn().

template<class EOT>
void eoPop< EOT >::shuffle | ( | void |  | ) | `[inline]`

| shuffle the population. Use this member to put the population in random order Definition at line 152 of file eoPop.h. Referenced by eoTruncatedSelectMany< EOT >::operator()(), eoRandomSplit< EOT >::operator()(), eoRandomReduce< EOT >::operator()(), eoEliteSequentialSelect< EOT >::setup(), and eoSequentialSelect< EOT >::setup().

template<class EOT>
eoPop<EOT>::iterator eoPop< EOT >::nth_element | ( | int | nth | ) | `[inline]`

| slightly faster algorithm than sort to find all individuals that are better than the nth individual. INDIVIDUALS ARE MOVED AROUND in the pop. Definition at line 201 of file eoPop.h. Referenced by eoDeterministicSurviveAndDie< EOT >::operator()(), eoTruncateSplit< EOT >::operator()(), eoReduceMergeReduce< EOT >::operator()(), eoTruncate< EOT >::operator()(), eoElitism< EOT >::operator()(), and eoTruncatedSelectOne< EOT >::setup().

template<class EOT>
virtual void eoPop< EOT >::sortedPrintOn | ( | std::ostream & | _os | ) | const`[inline, virtual]`

  | Prints sorted pop but does NOT modify it! Parameters:
  | _os | A std::ostream.
Definition at line 247 of file eoPop.h.

template<class EOT>
virtual void eoPop< EOT >::printOn | ( | std::ostream & | _os | ) | const`[inline, virtual]`

  | Write object. It's called printOn since it prints the object _on_ a stream. Parameters:
  | _os | A std::ostream.
Implements eoPrintable. Definition at line 262 of file eoPop.h.

template<class EOT>
virtual void eoPop< EOT >::readFrom | ( | std::istream & | _is | ) | `[inline, virtual]`

  | Read object. The EOT class must have a ctor from a stream; Parameters:
  | _is | A std::istream.
Implements eoPersistent. Definition at line 274 of file eoPop.h. Referenced by eoPop< Dummy >::eoPop().

template<class EOT>
virtual std::string eoPop< EOT >::className | ( | void |  | ) | const`[inline, virtual]`

| Inherited from eoObject. Returns the class name. See also: eoObject Implements eoObject. Definition at line 289 of file eoPop.h. Referenced by eoCheckPoint< EOT >::allClassNames().

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

- eoPop.h
- fitness_traits.cpp