Evocosm - A C++ Framework for Evolutionary Computing

Main Index

Created by Scott Robert Ladd at Coyote Gulch Productions.


Public Member Functions | Public Attributes | List of all members
libevocosm::organism< Genotype > Class Template Reference

An evolving organism. More...

#include <organism.h>

Inheritance diagram for libevocosm::organism< Genotype >:
libevocosm::globals

Public Member Functions

 organism ()
 Creation constructor. More...
 
 organism (const Genotype &a_genes)
 Value constructor. More...
 
 organism (const organism &a_source)
 Copy constructor. More...
 
virtual ~organism ()
 Virtual destructor. More...
 
organismoperator= (const organism &a_source)
 assignment operator More...
 
organismoperator= (const Genotype &a_genes)
 assignment operator More...
 
virtual bool operator< (const organism &a_right) const
 Comparison operator for algorithms. More...
 
virtual void reset ()
 Resets an object to it's initial state. More...
 

Public Attributes

double fitness
 
Genotype genes
 

Additional Inherited Members

- Static Protected Member Functions inherited from libevocosm::globals
static size_t rand_index (size_t n)
 Static function to allow use of g_random function pointer in random_shuffle.
 
static void set_seed (uint32_t a_seed)
 Set the seed for the random number generator.
 
static uint32_t get_seed ()
 Set the seed for the random number generator.
 
static std::string version ()
 Get version number.
 
- Static Protected Attributes inherited from libevocosm::globals
static prng g_random
 A shared random number generator.
 
static std::string g_version
 Version number.
 

Detailed Description

template<typename Genotype>
class libevocosm::organism< Genotype >

An organism is a solution to a problem posed by a fitness landscape; it has "genes" that define its behavior, and a fitness value assigned during fitness testing.

Evocosm provides the freedom to define organisms as anything: bit strings, floating-point numbers, finite state machines, LISP programs, or external robots controlled via radio waves.

Parameters
Genotype- The type of genes for this organism class

Constructor & Destructor Documentation

template<typename Genotype>
libevocosm::organism< Genotype >::organism ( )
inline

Creates a new organism, with default genes and zero fitness.

template<typename Genotype>
libevocosm::organism< Genotype >::organism ( const Genotype &  a_genes)
inline

Creates a new organism with specific genes.

Parameters
a_genes- Gene value for the new organism
template<typename Genotype>
libevocosm::organism< Genotype >::organism ( const organism< Genotype > &  a_source)
inline

Creates a new object identical to an existing one.

Parameters
a_source- The source object
template<typename Genotype>
virtual libevocosm::organism< Genotype >::~organism ( )
inlinevirtual

A virtual destructor. By default, it does nothing; this is a placeholder that identifies this class as a potential base, ensuring that objects of a derived class will have their destructors called if they are destroyed through a base-class pointer.

Member Function Documentation

template<typename Genotype>
virtual bool libevocosm::organism< Genotype >::operator< ( const organism< Genotype > &  a_right) const
inlinevirtual

Many Standard C++ algorithms require a "less than" comparison operator for container elements.

Parameters
a_right- Right hand argument for less than operator
template<typename Genotype>
organism& libevocosm::organism< Genotype >::operator= ( const organism< Genotype > &  a_source)
inline

Assigns an existing object the state of another.

Parameters
a_source- The source object
Returns
A reference to this
template<typename Genotype>
organism& libevocosm::organism< Genotype >::operator= ( const Genotype &  a_genes)
inline

Assigns an existing object the state of another.

Parameters
a_genes- The source object
Returns
A reference to this
template<typename Genotype>
virtual void libevocosm::organism< Genotype >::reset ( )
inlinevirtual

Resets all data in an organisim to the initial (or startup) state, including setting the fitness to zero. Derived classes should override this method to "clear" any data.

Member Data Documentation

template<typename Genotype>
double libevocosm::organism< Genotype >::fitness

Fitness is assigned by the landscape in which an organism is tested. A scaler object may alter fitness values after testing; a selector uses fitness to determine which organisms survive from one generation to the next, and a reproducer creates new organisms from parents selected by fitness.

Referenced by libevocosm::organism< vector< double > >::operator<(), libevocosm::organism< vector< double > >::operator=(), and libevocosm::function_landscape::test().

template<typename Genotype>
Genotype libevocosm::organism< Genotype >::genes

Genes define an organism's behavior in a fitness landscape. An initial population usually (but not always) contains organisms with random genes; a landscape tests the behavior defined by genes to calculate the fitness of an organism. A reproducer will create children from the genes of their parents, and a mutator may make random changes in those genes.

Referenced by libevocosm::organism< vector< double > >::operator=(), and libevocosm::function_landscape::test().


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

© 1996-2005 Scott Robert Ladd. All rights reserved.
HTML documentation generated by Dimitri van Heesch's excellent Doxygen tool.