Evocosm - A C++ Framework for Evolutionary Computing

Main Index

Created by Scott Robert Ladd at Coyote Gulch Productions.


libevocosm::organism< Genotype > Class Template Reference

An evolving organism. More...

#include <organism.h>

Inheritance diagram for libevocosm::organism< Genotype >:

libevocosm::globals List of all members.

Public Member Functions

Protected Attributes


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_value  )  [inline]
 

Creates a new organism with specific genes.

Parameters:
a_value - 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>
libevocosm::organism< Genotype >::organism const organism< Genotype > &  a_parent1,
const organism< Genotype > &  a_parent2
[inline]
 

Creates a new object identical to an existing one.

Parameters:
a_parent1 - First parent object
a_parent2 - Second parent object

template<typename Genotype>
virtual libevocosm::organism< Genotype >::~organism  )  [inline, virtual]
 

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>
double libevocosm::organism< Genotype >::fitness  )  const [inline]
 

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.

Giving direct access to a member violates encapsulation, but it vastly simplifies the numerous functions that manipulate organisms.

Returns:
Fitness for this organism
See also:
landscape, scaler, selector, reproducer

template<typename Genotype>
double& libevocosm::organism< Genotype >::fitness  )  [inline]
 

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.

Giving direct access to a member violates encapsulation, but it vastly simplifies the numerous functions that manipulate organisms.

Returns:
Fitness for this organism
See also:
landscape, scaler, selector, reproducer

template<typename Genotype>
const Genotype& libevocosm::organism< Genotype >::genes  )  const [inline]
 

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.

Returns:
Genes encapsulated by this organism
See also:
landscape, mutator, reproducer

template<typename Genotype>
Genotype& libevocosm::organism< Genotype >::genes  )  [inline]
 

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.

Returns:
Genes encapsulated by this organism
See also:
landscape, mutator, reproducer

template<typename Genotype>
virtual bool libevocosm::organism< Genotype >::operator< const organism< Genotype > &  a_right  )  const [inline, virtual]
 

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>
virtual void libevocosm::organism< Genotype >::reset_all  )  [inline, virtual]
 

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.


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.