Main Page | Modules | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Teem::SimpleGrowableGenome Class Reference
[Genetic Algorithms]

#include <SimpleGrowableGenome.h>

Inheritance diagram for Teem::SimpleGrowableGenome:

Teem::Genome List of all members.

Detailed Description

A genome that represent a graph with nodes and weightened links that can grow and shrink.

Public Member Functions

 SimpleGrowableGenome (Ishtar::InputStream *stream)
 Constructor, reading genome from stream.
 SimpleGrowableGenome (unsigned minToPreserve)
 Constructor, minToPreserve is the first n node that cannot be defragmented because they are used for I/O.
virtual ~SimpleGrowableGenome ()
virtual void randomize (void)
 Randomize genome content.
virtual void mutate (void)
 Mutate genome content.
virtual void cross (const Genome *other)
 Cross genome content over other.
virtual Genomeclone (void)
 Clone this genome, returns the new genome.
virtual void save (Ishtar::OutputStream *stream)
 Save the genome to a stream.

Protected Member Functions

unsigned countNodes (void)
 Return the number of nodes (i.e. the index of the node with biggest index).
void defragNodes (void)
 Defrag the node index space by reusing unused index. Do not compress nodes below minimumToPreserve.
void mutateAddLink (unsigned nodeCount)
 Add new links at random between two nodes with index up to nodeCount.
void mutateDelLink (void)
 Remove links at random.
void mutateChangeLink (void)
 Change the value of links by adding to it a random value following a Gaussian distribution of mean 0 and standard deviation 0.3.
void mutateAddNode (unsigned nodeCount)
 Add new nodes by cutting links in two starting from index at nodeCount.
void mutateDelNode (unsigned nodeCount)
 Delete nodes at random with index up to nodeCount.
void mutateDuplicateGenome (void)
 Duplicate the whole genome.

Protected Attributes

std::list< Linklinks
 all links in the genome
unsigned minimumToPreserve
 minimum number of node id to preserve on shrink because they are I/O nodes
Ishtar::Variable< double > mutationAddLinkConstProbability
 probability of adding a new link at random
Ishtar::Variable< double > mutationAddLinkPropProbability
 probability of adding a new link by cutting an existing link in two
Ishtar::Variable< double > mutationDelLinkProbability
 probability of deleting a link
Ishtar::Variable< double > mutationChangeLinkProbability
 probability of changing the value of a link
Ishtar::Variable< double > mutationAddNodeProbability
 probability of adding a new node
Ishtar::Variable< double > mutationDelNodeProbability
 probability of deleting an existing node
Ishtar::Variable< double > mutationDuplicateGenomeProbability
 probability of duplicating the whole genome


class NeatNeuralNetwork


struct  Link
 A link. More...

The documentation for this class was generated from the following files:
Generated on Mon Oct 24 17:38:27 2005 for Teem by  doxygen 1.4.2