pulsatrix
Loading...
Searching...
No Matches
pulsatrix::InnovationTracker Class Reference

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>

Public Member Functions

 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.
 

Detailed Description

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).

Constructor & Destructor Documentation

◆ InnovationTracker()

pulsatrix::InnovationTracker::InnovationTracker ( int  next_node_id)
inlineexplicit

Member Function Documentation

◆ 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: