69 lines
1.6 KiB
Perl
69 lines
1.6 KiB
Perl
$data = {
|
|
# settings controlling the operation of the experiment
|
|
'settings' => {
|
|
'experiment' => 'xor',
|
|
'population' => 100, # desired number of networks
|
|
'limit' => 10, # max offspring per topology
|
|
'penalty' => 10, # max investment/stagnant topology
|
|
'retest-elites' => 0,
|
|
'save-epochs' => 0,
|
|
'activation' => 'perl',
|
|
'max-weight' => 10,
|
|
'gain' => 5,
|
|
'debug' => 0,
|
|
'topology-limit' => 50,
|
|
# 'allow-recurrent' => 1,
|
|
},
|
|
# the state of the experiment
|
|
'save' => {
|
|
'unique-id' => 0, # innovation id
|
|
'generation' => 0, # which generation this is
|
|
'max-fitness' => 0,
|
|
'max-weight' => 0,
|
|
'min-weight' => 0,
|
|
},
|
|
# nodes listed by the unique node-id
|
|
'nodes' => {
|
|
'one' => {
|
|
'id' => 'one', # redundant, but useful
|
|
'type' => 'input',
|
|
},
|
|
'two' => {
|
|
'id' => 'two', # redundant, but useful
|
|
'type' => 'input',
|
|
},
|
|
'bias' => {
|
|
'id' => 'bias', # redundant, but useful
|
|
'type' => 'input',
|
|
},
|
|
'output' => {
|
|
'id' => 'output', # redundant, but useful
|
|
'type' => 'output',
|
|
'function' => 'sigmoid',
|
|
'gain' => '5',
|
|
},
|
|
},
|
|
# one entry per network in the population
|
|
'population' => {
|
|
'initial' => {
|
|
'id' => 'initial',
|
|
'fitness' => 0,
|
|
'elite' => 0,
|
|
'nodes' => {
|
|
'one' => {},
|
|
'two' => {},
|
|
'bias' => {},
|
|
'output' => {},
|
|
},
|
|
},
|
|
},
|
|
# a record of all the topologies in the population
|
|
# this tracks statistics about each one
|
|
'topologies' => {},
|
|
# for all nodes formed by splitting connections, the
|
|
# mapping between the nodes connected and the node created
|
|
# exists primarily for search-speed
|
|
# can be removed before saving,
|
|
'node-lookup' => {},
|
|
};
|