5#include "../Tree/Tree.h"
6#include "GEPChromosomeCrsOnePoint.h"
7#include "GEPChromosomeCrsTwoPoint.h"
8#include "GEPChromosomeCrsGene.h"
9#include "GEPChromosomeMutOp.h"
10#include "GEPChromosomeMutGauss.h"
12#define GEP_GENE_PREFIX "GENE_"
13namespace GEPChromosome{
36 std::vector<Tree::PrimitiveP> userFunctions_;
37 std::vector<Tree::PrimitiveP> userTerminals_;
46 Tree::PrimitiveSetP primitiveSet_;
47 Tree::PrimitiveSetP linkFunctionSet_;
48 Tree::PrimitiveSetP ercSet_;
52 std::vector<Tree::Tree*> subtrees;
56 std::vector<CrossoverOpP> getCrossoverOp();
57 std::vector<MutationOpP> getMutationOp();
58 void registerParameters(StateP state);
59 bool initialize(StateP state);
61 void write(XMLNode &xGEPChromosome);
62 void read(XMLNode& xGEPChromosomeInd);
67 void generateChromosome();
68 void setTerminalValue(std::string name,
void* value);
71typedef boost::shared_ptr<GEPChromosome::GEPChromosome> GEPChromosomeP;
GEPChromosome class - implements genotype as a Gene Expression Programming chromosome.
uint linkHeadLength
length of the linking function gene's head
uint genes
number of genes
uint tailLength
length of the tail. Automatically calculated.
bool usesERC
whether or not the chromosome uses random constants
uint linkTailLength
length of the linking function gene's tail
bool staticLink
whether we are using a static linking function or if it should be allowed to evolve
uint dcLength
length of the constant values domain
uint headLength
length of the head. User-specified
uint geneLength
total length of each gene
Tree class - implements genotype as a tree.