25 #ifndef ROOT_TMVA_GeneticAlgorithm
26 #define ROOT_TMVA_GeneticAlgorithm
50 class GeneticAlgorithm {
54 GeneticAlgorithm( IFitterTarget& target, Int_t populationSize,
55 const std::vector<TMVA::Interval*>& ranges, UInt_t seed = 0 );
56 virtual ~GeneticAlgorithm();
60 virtual Bool_t HasConverged(Int_t steps = 10, Double_t ratio = 0.1);
61 virtual Double_t SpreadControl(Int_t steps, Int_t ofSteps,
63 virtual Double_t NewFitness(Double_t oldValue, Double_t newValue);
64 virtual Double_t CalculateFitness();
65 virtual void Evolution();
67 GeneticPopulation& GetGeneticPopulation() {
return fPopulation; }
69 Double_t GetSpread()
const {
return fSpread; }
70 void SetSpread(Double_t s) { fSpread = s; }
72 void SetMakeCopies(Bool_t s) { fMakeCopies = s; }
73 Bool_t GetMakeCopies() {
return fMakeCopies; }
79 IFitterTarget& fFitterTarget;
86 std::deque<Int_t> fSuccessList;
94 Int_t fPopulationSize;
96 const std::vector<TMVA::Interval*>& fRanges;
98 GeneticPopulation fPopulation;
99 Double_t fBestFitness;
101 mutable MsgLogger* fLogger;
102 MsgLogger& Log()
const {
return *fLogger; }
104 ClassDef(GeneticAlgorithm, 0);