• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

RealGene.h

Go to the documentation of this file.
00001 
00009 #include <Configuration.h>
00010 #include <Gene.h>
00011 
00012 #ifndef __REAL_GENE__
00013 #define __REAL_GENE__
00014 
00019 class RealGene : public Gene {
00020 public:
00021   double allele_     ; 
00022   double lowerBound_ ; 
00023   double upperBound_ ; 
00024 
00025   // Constructors
00026   RealGene(Random * random) ;
00027   RealGene(double lowerBound, double upperBound, Random * random) ;
00028   RealGene(RealGene & realgene) ;
00029   RealGene(RealGene * realGene) ;
00030 
00031   // Destructor
00032   ~RealGene() ;
00033   
00034   // Methods
00035   int randomMutation(double mutationProbability) ; 
00036   int polynomialMutation(double mutationProbability, 
00037                          double distributionIndex) ; 
00038   int uniformMutation(double mutationProbability, 
00039                       double perturbation) ; 
00040   int nonUniformMutation(double mutationProbability, 
00041                          double perturbation,
00042                          int    iteration,
00043                          int    maximumNumberOfIterations) ; 
00044 
00045   double delta(double t, 
00046                double y, 
00047                double bMutationParameter,
00048                int    maximumNumberOfIterations); // For non-uniform mutation
00049   double map(double) ;
00050   double unmap(double) ;               
00051  
00052   double logicalMFunction  (double geneParent1,double geneParent2,double lambda);
00053   double hamacherMFunction (double geneParent1,double geneParent2,double lambda);
00054   double algebraicMFunction(double geneParent1,double geneParent2,double lambda);
00055   double einsteinMFunction (double geneParent1,double geneParent2,double lambda);
00056   double logicalFFunction  (double geneParent1,double geneParent2) ;
00057   double logicalSFunction  (double geneParent1,double geneParent2) ;
00058   double hamacherFFunction (double geneParent1,double geneParent2) ;
00059   double hamacherSFunction (double geneParent1,double geneParent2) ;
00060   double algebraicFFunction(double geneParent1,double geneParent2) ;
00061   double algebraicSFunction(double geneParent1,double geneParent2) ;
00062   double einsteinFFunction (double geneParent1,double geneParent2) ;
00063   double einsteinSFunction (double geneParent1,double geneParent2) ;
00064   
00065   double getRealAllele() ;
00066   void   setRealAllele(double value) ;
00067   void   writeGenotype(ofstream &outputFile) ;
00068   void   printGenotype() ;
00069 
00070   // Operators
00071   RealGene &      operator=(const RealGene& realGene) ;
00072   bool            operator==(const RealGene& realGene) ;
00073   bool            operator!=(const RealGene& realGene) ;
00074   friend ostream& operator<< (ostream& outputStream, RealGene& gene) ;
00075 
00076 #ifdef __MPI__
00077 
00078   int getSize()        ;
00079   void calculateSize() ;
00080   
00081   void packData(char * buffer, int * bufferOffset, int bufferSize) ;
00082   void unpackData(char * buffer, int * bufferOffset, int bufferSize) ;
00083 
00084 #endif    
00085 
00086 } ; // RealGene
00087 
00088 #endif

Our Software

orangebox Mallba

orangebox ssGA

orangebox JGDS

orangebox xxGA

orangebox JCell

orangebox MHTB

orangebox DEME

orangebox JMetal

orangebox More...

orangebox Go Back