|
pulsatrix
|
NEAT speciation (Stanley & Miikkulainen 2002): a compatibility-distance metric over two genomes' gene lists, population grouping by that metric, and fitness sharing – the mechanism that protects a structurally novel but not-yet-optimized genome from being immediately out-competed before its innovation has a chance to be refined. More...


Go to the source code of this file.
Classes | |
| struct | pulsatrix::SpeciesAssignment |
| Population grouping into species: each inner vector is a list of indices into the population vector that were passed to SpeciatePopulation. More... | |
Namespaces | |
| namespace | pulsatrix |
Functions | |
| double | pulsatrix::CompatibilityDistance (const NEATGenome &a, const NEATGenome &b, double c1, double c2, double c3) |
| Compatibility distance: delta = c1*E/N + c2*D/N + c3*W_bar, where E is the count of excess genes (innovation numbers beyond the other genome's own highest), D is the count of disjoint genes (innovation numbers within the overlapping range but present in only one genome), N is the larger genome's gene count (or 1 if both genomes have fewer than 20 connection genes – the original paper's own small-genome exception), and W_bar is the average weight difference over genes with matching innovation numbers (present in both genomes, regardless of enabled/disabled status). | |
| SpeciesAssignment | pulsatrix::SpeciatePopulation (const std::vector< NEATGenome > &population, double compatibility_threshold, double c1, double c2, double c3) |
| Groups population into species: each genome joins the first existing species whose representative (that species' own first member) it is compatible with (distance < compatibility_threshold); otherwise it founds a new species with itself as representative. | |
| std::vector< double > | pulsatrix::ComputeAdjustedFitness (const std::vector< double > &raw_fitness, const std::vector< std::vector< size_t > > &species) |
| Fitness sharing: each individual's adjusted fitness is its own raw fitness divided by the size of its species – protects small, structurally novel species from being immediately out-competed by a large, already-optimized one. | |
NEAT speciation (Stanley & Miikkulainen 2002): a compatibility-distance metric over two genomes' gene lists, population grouping by that metric, and fitness sharing – the mechanism that protects a structurally novel but not-yet-optimized genome from being immediately out-competed before its innovation has a chance to be refined.