MTK++ Latest version: 0.2.0

gaChromosome.h
Go to the documentation of this file.
00001 
00035 #ifndef GACHROMOSOME_H
00036 #define GACHROMOSOME_H
00037 
00038 #include <iostream>
00039 #include <string>
00040 #include <vector>
00041 
00042 #include "Utils/constants.h"
00043 
00044 namespace MTKpp
00045 {
00046 
00047 class gaIndividual;
00048 class gaGene;
00049 
00050 // ============================================================
00051 // Class : gaChromosome()
00052 // ------------------------------------------------------------
00060 // ============================================================
00061 
00062 class gaChromosome
00063 {
00064 public:
00065 
00070     gaChromosome(gaIndividual *parent = 0);
00071 
00076     gaChromosome(gaChromosome* rhs);
00077 
00079     virtual ~gaChromosome();
00080 
00085     gaGene* addGene();
00086 
00092     gaGene* addGene(gaGene* rhs);
00093 
00098     void delGene(gaGene* gen);
00099 
00107     void setGene(int n, bool id, bool index, gaChromosome* rhs);
00108 
00116     gaGene* getGene(int n, bool id, bool index);
00117 
00124     void mutateGene(int n, bool id, bool index);
00125 
00133     void averageGene(int n, bool id, bool index, gaChromosome* rhs);
00134 
00138     void initialize();
00139 
00144     double getAbsValue();
00145 
00151     bool compare(gaChromosome* rhs);
00152 
00153     //-------------//
00154     // - get/set - //
00155     //-------------//
00156 
00161     void setId(int id);
00162 
00167     int getId();
00168 
00173     void setName(std::string name);
00174 
00179     std::string getName();
00180 
00185     gaIndividual* getParent();
00186 
00191     int getNumGenes();
00192 
00197     std::vector<double> getGeneticInformation();
00198 
00199 protected:
00200 
00202     typedef std::vector<gaGene*>::iterator geneIterator;
00203 
00205     std::vector<gaGene*>          itsGeneList;
00206 
00208     gaIndividual*                 pParent;
00209 
00211     gaGene*                       pGaGene;
00212 
00214     int                           itsId;
00215 
00217     std::string                   itsName;
00218 
00219 };
00220 
00221 } // MTKpp namespace
00222 
00223 #endif // GACHROMOSOME_H

Generated on Fri Dec 23 2011 09:28:50 for MTK++ by Doxygen 1.7.5.1