GeneticMinimizer.h

Go to the documentation of this file.
00001 // @(#)root/mathcore:$Id
00002 
00003 /**********************************************************************
00004  *                                                                    *
00005  * Copyright (c) 2006  LCG ROOT Math Team, CERN/PH-SFT                *
00006  *                                                                    *
00007  *                                                                    *
00008  **********************************************************************/
00009 
00010 // Header file for class GeneticMinimizer
00011 
00012 #ifndef ROOT_Math_GeneticMinimizer
00013 #define ROOT_Math_GeneticMinimizer
00014 
00015 #include <vector>
00016 
00017 #include "Math/Minimizer.h"
00018 
00019 #include "TMVA/IFitterTarget.h"
00020 #include "TMVA/Interval.h"
00021 
00022 namespace ROOT { 
00023    namespace Math { 
00024 
00025 
00026 //_______________________________________________________________________________
00027 /*
00028   structure containing the parameters of the genetic minimizer 
00029  */ 
00030 struct GeneticMinimizerParameters { 
00031 
00032    Int_t fPopSize;
00033    Int_t fNsteps;
00034    Int_t fCycles; 
00035    Int_t fSC_steps;
00036    Int_t fSC_rate;
00037    Double_t fSC_factor;
00038    Double_t fConvCrit;
00039 
00040    // constructor with default value
00041    GeneticMinimizerParameters(); 
00042 };
00043 
00044 
00045 
00046 //_______________________________________________________________________________
00047 /** 
00048    GeneticMinimizer
00049 
00050    @ingroup MultiMin
00051 */
00052 class GeneticMinimizer: public ROOT::Math::Minimizer {
00053 
00054 public: 
00055 
00056    GeneticMinimizer (int = 0);
00057    virtual ~GeneticMinimizer ();
00058 
00059    virtual void Clear();
00060    using ROOT::Math::Minimizer::SetFunction;
00061    virtual void SetFunction(const ROOT::Math::IMultiGenFunction & func); 
00062 
00063    virtual bool SetLimitedVariable(unsigned int , const std::string& , double , double , double, double);
00064    virtual bool SetVariable(unsigned int ivar, const std::string & name, double val, double step); 
00065 
00066    virtual  bool Minimize(); 
00067    virtual double MinValue() const; 
00068    virtual double Edm() const; 
00069    virtual const double *  X() const; 
00070    virtual const double *  MinGradient() const;  
00071    virtual unsigned int NCalls() const;    
00072 
00073    virtual unsigned int NDim() const;  
00074    virtual unsigned int NFree() const;  
00075 
00076    virtual bool ProvidesError() const; 
00077    virtual const double * Errors() const;
00078 
00079    virtual double CovMatrix(unsigned int i, unsigned int j) const;  
00080 
00081    void SetParameters(const GeneticMinimizerParameters & params );
00082 
00083    virtual ROOT::Math::MinimizerOptions Options() const; 
00084 
00085    virtual void SetOptions(const ROOT::Math::MinimizerOptions & opt);
00086 
00087 protected:
00088 
00089    void GetGeneticOptions(ROOT::Math::MinimizerOptions & opt) const; 
00090 
00091    std::vector<TMVA::Interval*> fRanges;
00092    TMVA::IFitterTarget* fFitness;
00093 
00094    std::vector<double> fResult;
00095 
00096    GeneticMinimizerParameters fParameters; 
00097 
00098 }; 
00099 
00100 
00101    } // end namespace Math
00102 } // end namespace ROOT
00103 
00104 #endif /* ROOT_Math_GeneticMinimizer */

Generated on Tue Jul 5 14:25:14 2011 for ROOT_528-00b_version by  doxygen 1.5.1