ECF 1.7
Cartesian_c.h
1#ifndef Cartesian_h
2#define Cartesian_h
3#include "../ECF_base.h"
4#include "../Genotype.h"
5#include "Node.h"
6#include "Function.h"
7
8
9namespace Cartesian {
10
15
16class FunctionSet;
17typedef std::shared_ptr<FunctionSet> FunctionSetP;
18
19
27class Cartesian : public Genotype
28{
29public:
30 Cartesian(void);
31 ~Cartesian(void);
32
33 Cartesian(const Cartesian& other) = default;
34
38 bool initialize(StateP state);
39
43 Cartesian* copy();
44
48 std::vector<CrossoverOpP> getCrossoverOp();
49
53 std::vector<MutationOpP> getMutationOp();
54
58 void registerParameters(StateP state);
59
63 void read(XMLNode &xCart);
64
68 void write(XMLNode &xCart);
69
73 uint getGenomeSize();
74
78 void buildRandomGenome();
79
83 void evaluate(std::vector<double>& inputData, std::vector<double>& results);
84
88 uint randomNodeInputConnection(uint column);
89
94
98 void getActiveFunctionNodes(std::vector<uint>&);
99
100protected:
101 void addRecursivelyActiveFunctionNodes(std::vector<bool>& activeFlags, uint node);
102
103public:
104 StateP state_;
105 FunctionSetP functionSet_;
106 std::vector<Node> nodes_;
107 std::vector<uint> outputs_;
108 std::vector<double> constants_;
109
110 // user defined parameters
114 uint nRows_;
115 uint nCols_;
118
119 // derived parameters
120 uint nInputs_;
122};
123
124}
125typedef std::shared_ptr<Cartesian::Cartesian> CartesianP;
126
127#endif // Cartesian_h
uint nVariables_
number of input variables
void read(XMLNode &xCart)
StateP state_
local copy of state
uint nRows_
number of rows
uint nFunctions_
number of used functions
Cartesian * copy()
Definition Cartesian.cpp:31
uint nInputs_
total number of inputs (variables and constants)
uint nCols_
number of columns
void evaluate(std::vector< double > &inputData, std::vector< double > &results)
uint randomNodeInputConnection(uint column)
std::vector< MutationOpP > getMutationOp()
Definition Cartesian.cpp:48
FunctionSetP functionSet_
pointer to function set
std::vector< double > constants_
input nodes with constant values
void getActiveFunctionNodes(std::vector< uint > &)
uint maxArity_
max number of inputs for all function nodes
uint nLevelsBack_
levels back parameter
void registerParameters(StateP state)
Definition Cartesian.cpp:58
bool initialize(StateP state)
Definition Cartesian.cpp:70
uint nConstants_
number of input constants
std::vector< CrossoverOpP > getCrossoverOp()
Definition Cartesian.cpp:38
std::vector< uint > outputs_
output nodes
void write(XMLNode &xCart)
uint nOutputs_
number of final outputs
std::vector< Node > nodes_
genotype nodes (input nodes and function nodes)