blob: 21a6bc393ee650c63a9c1decc154d90b4a72b354 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#ifndef __HYPERNEAT_POPULATIONPRMS_HPP__
#define __HYPERNEAT_POPULATIONPRMS_HPP__
// #include <cereal/cereal.hpp>
#include <HyperNeat/Utils/Size.hpp>
namespace hyperneat
{
class PopulationPrms
{
public:
size_t _popSize = 200;
size_t _cppnInputs = 6;
size_t _cppnOutputs = 2;
size_t _seed = 0;
double _weightRange = 1.0;
double _c1Disjoint = 1.0;
double _c3WeightDifference = 0.4;
double _initialDistanceThreshold = 4.0;
double _distanceThresholdShift = 0.3;
double _sexualReproductionRate = 0.5;
double _weightMutationRate = 0.94;
double _weightDeviation = 0.25;
double _interspeciesMatingRate = 0.001;
double _geneDisablingRatio = 0.75;
double _linkMutationRate = 0.03;
double _nodeMutationRate = 0.01;
size_t _targetSpeciesCount = 8;
double _eligibilityRatio = 0.5;
size_t _minimumLifetime = 120;
size_t _replBeforeReorganization = 5;
// private:
// friend class cereal::access;
// template <class Archive>
// void serialize(Archive &ar)
// {
// ar(CEREAL_NVP(_popSize));
// ar(CEREAL_NVP(_cppnInputs));
// ar(CEREAL_NVP(_cppnOutputs));
// ar(CEREAL_NVP(_seed));
// ar(CEREAL_NVP(_weightRange));
// ar(CEREAL_NVP(_c1Disjoint));
// ar(CEREAL_NVP(_c3WeightDifference));
// ar(CEREAL_NVP(_initialDistanceThreshold));
// ar(CEREAL_NVP(_distanceThresholdShift));
// ar(CEREAL_NVP(_sexualReproductionRate));
// ar(CEREAL_NVP(_weightMutationRate));
// ar(CEREAL_NVP(_weightDeviation));
// ar(CEREAL_NVP(_interspeciesMatingRate));
// ar(CEREAL_NVP(_geneDisablingRatio));
// ar(CEREAL_NVP(_linkMutationRate));
// ar(CEREAL_NVP(_nodeMutationRate));
// ar(CEREAL_NVP(_targetSpeciesCount));
// ar(CEREAL_NVP(_eligibilityRatio));
// ar(CEREAL_NVP(_minimumLifetime));
// ar(CEREAL_NVP(_replBeforeReorganization));
// }
};
}
#endif
|