00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef DOUBLEGENOTYPE_H
00021 #define DOUBLEGENOTYPE_H
00022
00023 #include "gaconfig.h"
00024 #include "core/genotype.h"
00025
00026 namespace farsa {
00027
00038 class FARSA_GA_API DoubleGenotype : public Genotype {
00039 public:
00050 DoubleGenotype( unsigned int numGenes, double min, double max, unsigned int bitPrec );
00052 virtual ~DoubleGenotype();
00054 DoubleGenotype( const DoubleGenotype& genotype );
00056 unsigned int numGenes();
00058 double maxValue();
00060 double minValue();
00062 unsigned int bitPrecision();
00064 virtual double at( unsigned int i ) = 0;
00066 virtual void set( unsigned int i, double value ) = 0;
00067
00072 virtual unsigned int geneToBitIndex( unsigned int gene ) const;
00077 virtual unsigned int bitToGeneIndex( unsigned int bit ) const;
00078 protected:
00080 unsigned int numgenes;
00082 double maxv;
00084 double minv;
00086 unsigned int bitprec;
00087 };
00088
00089 }
00090
00091 #endif