12 #ifndef ROOT_Math_GeneticMinimizer
13 #define ROOT_Math_GeneticMinimizer
34 struct GeneticMinimizerParameters {
47 GeneticMinimizerParameters();
60 class GeneticMinimizer:
public ROOT::Math::Minimizer {
65 GeneticMinimizer (
int i = 0);
66 virtual ~GeneticMinimizer ();
69 using ROOT::Math::Minimizer::SetFunction;
70 virtual void SetFunction(
const ROOT::Math::IMultiGenFunction & func);
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);
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;
83 virtual unsigned int NDim()
const;
84 virtual unsigned int NFree()
const;
86 virtual bool ProvidesError()
const;
87 virtual const double * Errors()
const;
89 virtual double CovMatrix(
unsigned int i,
unsigned int j)
const;
91 void SetParameters(
const GeneticMinimizerParameters & params );
93 void SetRandomSeed(
int seed) { fParameters.fSeed = seed; }
95 const GeneticMinimizerParameters & MinimizerParameters()
const {
return fParameters; }
97 virtual ROOT::Math::MinimizerOptions Options()
const;
99 virtual void SetOptions(
const ROOT::Math::MinimizerOptions & opt);
103 void GetGeneticOptions(ROOT::Math::MinimizerOptions & opt)
const;
105 std::vector<TMVA::Interval*> fRanges;
106 TMVA::IFitterTarget* fFitness;
108 std::vector<double> fResult;
110 GeneticMinimizerParameters fParameters;