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.