Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
GeneticMinimizer.h
Go to the documentation of this file.
1 // @(#)root/mathcore:$Id
2 
3 /**********************************************************************
4  * *
5  * Copyright (c) 2006 LCG ROOT Math Team, CERN/PH-SFT *
6  * *
7  * *
8  **********************************************************************/
9 
10 // Header file for class GeneticMinimizer
11 
12 #ifndef ROOT_Math_GeneticMinimizer
13 #define ROOT_Math_GeneticMinimizer
14 
15 #include "Math/Minimizer.h"
16 
17 #include "RtypesCore.h"
18 
19 #include <vector>
20 
21 namespace TMVA {
22  class IFitterTarget;
23  class Interval;
24 }
25 
26 namespace ROOT {
27  namespace Math {
28 
29 
30 //_______________________________________________________________________________
31 /*
32  structure containing the parameters of the genetic minimizer
33  */
34 struct GeneticMinimizerParameters {
35 
36  Int_t fPopSize;
37  Int_t fNsteps;
38  Int_t fCycles;
39  Int_t fSC_steps;
40  Int_t fSC_rate;
41  Double_t fSC_factor;
42  Double_t fConvCrit;
43  Int_t fSeed;
44 
45 
46  // constructor with default value
47  GeneticMinimizerParameters();
48 };
49 
50 
51 
52 //_______________________________________________________________________________
53 /**
54  GeneticMinimizer
55 
56  Minimizer class based on the Gentic algorithm implemented in TMVA
57 
58  @ingroup MultiMin
59 */
60 class GeneticMinimizer: public ROOT::Math::Minimizer {
61 
62 public:
63 
64  //GeneticMinimizer (int = 0);
65  GeneticMinimizer (int i = 0);
66  virtual ~GeneticMinimizer ();
67 
68  virtual void Clear();
69  using ROOT::Math::Minimizer::SetFunction;
70  virtual void SetFunction(const ROOT::Math::IMultiGenFunction & func);
71 
72  virtual bool SetLimitedVariable(unsigned int , const std::string& , double , double , double, double);
73  virtual bool SetVariable(unsigned int ivar, const std::string & name, double val, double step);
74  virtual bool SetFixedVariable(unsigned int ivar , const std::string & name , double val);
75 
76  virtual bool Minimize();
77  virtual double MinValue() const;
78  virtual double Edm() const;
79  virtual const double * X() const;
80  virtual const double * MinGradient() const;
81  virtual unsigned int NCalls() const;
82 
83  virtual unsigned int NDim() const;
84  virtual unsigned int NFree() const;
85 
86  virtual bool ProvidesError() const;
87  virtual const double * Errors() const;
88 
89  virtual double CovMatrix(unsigned int i, unsigned int j) const;
90 
91  void SetParameters(const GeneticMinimizerParameters & params );
92 
93  void SetRandomSeed(int seed) { fParameters.fSeed = seed; }
94 
95  const GeneticMinimizerParameters & MinimizerParameters() const { return fParameters; }
96 
97  virtual ROOT::Math::MinimizerOptions Options() const;
98 
99  virtual void SetOptions(const ROOT::Math::MinimizerOptions & opt);
100 
101 protected:
102 
103  void GetGeneticOptions(ROOT::Math::MinimizerOptions & opt) const;
104 
105  std::vector<TMVA::Interval*> fRanges;
106  TMVA::IFitterTarget* fFitness;
107  double fMinValue;
108  std::vector<double> fResult;
109 
110  GeneticMinimizerParameters fParameters;
111 
112 };
113 
114 
115  } // end namespace Math
116 } // end namespace ROOT
117 
118 #endif /* ROOT_Math_GeneticMinimizer */