00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef FIXEDSIZE_H
00021 #define FIXEDSIZE_H
00022
00023 #include "gaconfig.h"
00024 #include "core/reproduction.h"
00025
00026 namespace farsa {
00027
00028 class Selection;
00029 class Mutation;
00030 class Crossover;
00031
00041 class FARSA_GA_API FixedSize : public Reproduction {
00042 public:
00044 FixedSize();
00046 virtual ~FixedSize();
00048 virtual Genome* reproduction( const Genome* );
00050 void setMutation( Mutation* muta );
00052 Mutation* mutation();
00054 void setSelection( Selection* sel );
00056 Selection* selection();
00058 void setCrossover( Crossover* muta );
00060 Crossover* crossover();
00064 void setCrossoverRate( double prob );
00066 double crossoverRate();
00068 void enableElitism( bool enable=true );
00070 bool isElitismEnabled();
00072 void setNumberElited( unsigned int nelited );
00074 int numberElited();
00075
00077 virtual void configure( ConfigurationParameters& params, QString prefix );
00084 virtual void save( ConfigurationParameters& params, QString prefix );
00086 static void describe( QString type );
00087
00088 protected:
00090 Selection* sel;
00092 Mutation* muta;
00094 Crossover* cross;
00096 double probCrossover;
00098 bool isElitism;
00100 int nElited;
00101 };
00102
00103 }
00104
00105 #endif