Logo ROOT   6.13/01
Reference Guide
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  */
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
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 */
61 
62 public:
63 
64  //GeneticMinimizer (int = 0);
65  GeneticMinimizer (int i = 0);
66  virtual ~GeneticMinimizer ();
67 
68  virtual void Clear();
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 
111 
112 };
113 
114 
115  } // end namespace Math
116 } // end namespace ROOT
117 
118 #endif /* ROOT_Math_GeneticMinimizer */
GeneticMinimizerParameters fParameters
Namespace for new ROOT classes and functions.
Definition: TFoamSampler.h:19
Abstract Minimizer class, defining the interface for the various minimizer (like Minuit2, Minuit, GSL, etc..) Plug-in&#39;s exist in ROOT to be able to instantiate the derived classes like ROOT::Math::GSLMinimizer or ROOT::Math::Minuit2Minimizer via the plug-in manager.
Definition: Minimizer.h:78
std::vector< double > fResult
Documentation for the abstract class IBaseFunctionMultiDim.
Definition: IFunction.h:62
virtual void SetFunction(const ROOT::Math::IMultiGenFunction &func)=0
set the function to minimize
TMVA::IFitterTarget * fFitness
std::vector< TMVA::Interval * > fRanges
const GeneticMinimizerParameters & MinimizerParameters() const
Namespace for new Math classes and functions.