#include <SimpleGrowableGenome.h>
Inheritance diagram for Teem::SimpleGrowableGenome:
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 () |
Destructor. | |
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 Genome * | clone (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< Link > | links |
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 | |
Friends | |
class | NeatNeuralNetwork |
Classes | |
struct | Link |
A link. More... |