#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... | |
1.4.2