The global historical-marking registry: the same structural mutation (an identical new connection, or an identical connection-split creating a new node) occurring in different genomes receives the same innovation number / new node ID if it has already been recorded, and a fresh one otherwise. This is the concrete mechanism that lets two differently-shaped genomes' genes be meaningfully aligned by innovation number – NEAT's own defining idea (not built here: crossover itself is a future mission; this class only maintains the registry crossover would eventually consume).
More...
#include <neat_genome.hpp>
|
| | InnovationTracker (int next_node_id) |
| |
| int | GetConnectionInnovation (int in_node, int out_node) |
| | The innovation number for a new (in_node, out_node) connection – reused if this exact connection has already been recorded by any prior call, on this or any other genome sharing this tracker.
|
| |
| int | GetNodeIdForSplit (int split_connection_innovation) |
| | The new node ID created by splitting the connection identified by split_connection_innovation – reused if this exact connection has already been split by any prior call.
|
| |
The global historical-marking registry: the same structural mutation (an identical new connection, or an identical connection-split creating a new node) occurring in different genomes receives the same innovation number / new node ID if it has already been recorded, and a fresh one otherwise. This is the concrete mechanism that lets two differently-shaped genomes' genes be meaningfully aligned by innovation number – NEAT's own defining idea (not built here: crossover itself is a future mission; this class only maintains the registry crossover would eventually consume).
◆ InnovationTracker()
| pulsatrix::InnovationTracker::InnovationTracker |
( |
int |
next_node_id | ) |
|
|
inlineexplicit |
◆ GetConnectionInnovation()
| int pulsatrix::InnovationTracker::GetConnectionInnovation |
( |
int |
in_node, |
|
|
int |
out_node |
|
) |
| |
|
inline |
The innovation number for a new (in_node, out_node) connection – reused if this exact connection has already been recorded by any prior call, on this or any other genome sharing this tracker.
◆ GetNodeIdForSplit()
| int pulsatrix::InnovationTracker::GetNodeIdForSplit |
( |
int |
split_connection_innovation | ) |
|
|
inline |
The new node ID created by splitting the connection identified by split_connection_innovation – reused if this exact connection has already been split by any prior call.
The documentation for this class was generated from the following file: