• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/ECF/AlgClonalg.h

00001 #ifndef Clonalg_h
00002 #define Clonalg_h
00003 
00004 #include "Algorithm.h"
00005 #include "floatingpoint/FloatingPoint.h"
00006 
00024 class Clonalg : public Algorithm
00025 {
00026 protected:
00027 
00028     double ubound;
00029     double lbound;
00030     uint dimension;
00031     bool areGenotypesAdded_;
00032 
00033     uint n;                 
00034     double beta;            
00035     double c;               
00036     double d;               
00037     std::string cloningVersion; 
00038     std::string selectionScheme;    
00039 
00041     static bool sortPopulationByFitness (IndividualP ab1,IndividualP ab2) { return ( ab1->fitness->isBetterThan(ab2->fitness)); }
00042 
00044     static bool sortPopulationByParentAndFitness (IndividualP ab1,IndividualP ab2) 
00045     { 
00046         FloatingPointP flp = boost::dynamic_pointer_cast<FloatingPoint::FloatingPoint> (ab1->getGenotype(1));
00047         double &parentAb1 = flp->realValue[0];
00048         flp = boost::dynamic_pointer_cast<FloatingPoint::FloatingPoint> (ab2->getGenotype(1));
00049         double &parentAb2 = flp->realValue[0];
00050 
00051         if (parentAb1 <parentAb2) return true;
00052         if (parentAb1 == parentAb2) return (ab1->fitness->isBetterThan(ab2->fitness));
00053 
00054         return false;
00055     }
00056 
00057 public:
00058 
00059     Clonalg();
00060     void registerParameters(StateP state);
00061     bool initialize(StateP state);
00062     bool advanceGeneration(StateP state, DemeP deme);
00063     
00064     bool markAntibodies(DemeP deme);
00065     bool cloningPhase(StateP state, DemeP deme, std::vector<IndividualP> &clones);
00066     bool hypermutationPhase(StateP state, DemeP deme, std::vector<IndividualP> &clones);
00067     bool selectionPhase(StateP state, DemeP deme, std::vector<IndividualP> &clones);
00068     bool birthPhase(StateP state, DemeP deme, std::vector<IndividualP> &clones);
00069     bool replacePopulation(StateP state, DemeP deme, std::vector<IndividualP> &clones);
00070 
00071 };
00072 typedef boost::shared_ptr<Clonalg> ClonalgP;
00073 
00074 
00075 #endif // Clonalg_h
00076 

Generated on Tue Nov 4 2014 13:04:30 for ECF by  doxygen 1.7.1