TODO: improve these instructions
genomestart <genome_id>
<traits>
<nodes>
<genes>
genomeend <genome_id>
trait <trait_id> <param_1> <param_1> ... <param_9>
A trait is a group of parameters that can be expressed as a group more than one time. Traits save a genetic algorithm from having to search vast parameter landscapes on every node. Instead, each node can simply point to a trait and those traits can evolve on their own.
Number used to identify the trait. Must be unique.
Parameter values.
node <node_id> <trait_id> <node_type> <node_placement>
Number used to identify the node. Must be unique.
Number used to identify the trait derived by this node. If 0
, the node doesn't use any traits.
- NEURON [0]: has a list of its incoming input signals.
- SENSOR [1]: can be loaded with a value for output.
Used for genetic marking of nodes
- HIDDEN [0]
- INPUT [1]
- OUTPUT [2]
- BIAS [3]
gene <trait_id> <input_node_id> <output_node_id> <weight> <recurring> <innovation_num> <mutation_num> <enable>
Number used to identify the gene. Must be unique.
Number used to identify the gene's input node.
Number used to identify the gene's output node.
The weight of the connection between input and output node that represent this gene.
Signalizes if the connection is recurrent.
Used to identify the origins of the gene. Should increase by 1
for each new gene added.
Used to perform mutations between genes. Always start at 0
.
Signalizes if this gene is enabled or not.
genomestart 1
trait 1 0.1 0 0 0 0 0 0 0
trait 2 0.2 0 0 0 0 0 0 0
trait 3 0.3 0 0 0 0 0 0 0
node 1 0 1 3
node 2 0 1 1
node 3 0 1 1
node 4 0 0 2
gene 1 1 4 0.0 0 1 0 1
gene 2 2 4 0.0 0 2 0 1
gene 3 3 4 0.0 0 3 0 1
genomeend 1