MTK++ Latest version: 0.2.0

gaGene.h
Go to the documentation of this file.
00001 
00035 #ifndef GAGENE_H
00036 #define GAGENE_H
00037 
00038 #include <iostream>
00039 #include <stdio.h>
00040 #include <string>
00041 #include <vector>
00042 #include <cmath>
00043 
00044 #include "Utils/constants.h"
00045 
00046 namespace MTKpp
00047 {
00048 
00049 class gaRegion;
00050 class gaChromosome;
00051 
00052 // ============================================================
00053 // Class : gaGene()
00054 // ------------------------------------------------------------
00062 // ============================================================
00063 
00064 class gaGene
00065 {
00066 public:
00067 
00072     gaGene(gaChromosome *parent = 0);
00073 
00077     gaGene(gaGene*);
00078 
00080     virtual ~gaGene();
00081 
00086     void setGene(gaGene* rhs);
00087 
00092     void addBit(double b);
00093 
00099     double getBit(const int& i);
00100 
00104     void initialize();
00105 
00110     double getAbsValue();
00111 
00112 
00118     bool compare(gaGene* rhs);
00119 
00120 
00124     void mutate();
00125 
00126 
00131     void average(gaGene* rhs);
00132 
00136     void printToScreen();
00137 
00138     friend std::ostream& operator<< (std::ostream& os, const gaGene& g) {
00139       for (unsigned int i = 0; i < g.itsBits.size(); i++) {
00140         os << g.itsBits[i] << " ";
00141       }
00142       os << "" << std::endl;
00143       return os;
00144     }
00145 
00146 
00147     //-------------//
00148     // - GET/SET - //
00149     //-------------//
00150 
00155     void setId(int id);
00156 
00161     int getId();
00162 
00167     void setName(std::string name);
00168 
00173     std::string getName();
00174 
00179     gaChromosome* getParent();
00180 
00185     int getNumBits();
00186 
00191     std::vector<double> getGeneticInformation();
00192 
00193 protected:
00194 
00196     gaRegion*                     curRegion;
00197 
00199     gaChromosome*                 pParent;
00200 
00202     std::vector<double>           itsBits;
00203 
00205     int                           itsId;
00206 
00208     std::string                   itsName;
00209 
00210 };
00211 
00212 } // MTKpp namespace
00213 
00214 #endif // GAGENE_H

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