#include "TMVA/SimulatedAnnealingFitter.h"
#include "TMVA/SimulatedAnnealing.h"
#include "TMVA/Timer.h"
#include "TMVA/Interval.h"
ClassImp(TMVA::SimulatedAnnealingFitter)
TMVA::SimulatedAnnealingFitter::SimulatedAnnealingFitter( IFitterTarget& target,
const TString& name,
const std::vector<Interval*>& ranges,
const TString& theOption )
: TMVA::FitterBase( target, name, ranges, theOption )
{
DeclareOptions();
ParseOptions();
}
void TMVA::SimulatedAnnealingFitter::DeclareOptions()
{
fMaxCalls = 50000;
fTemperatureGradient = 0.7;
fUseAdaptiveTemperature = kTRUE;
fInitialTemperature = 100000;
fMinTemperature = 500;
fEps = 1e-04;
fNFunLoops = 5;
fNEps = 4;
DeclareOptionRef(fMaxCalls, "MaxCalls", "Maximum number of minimisation calls");
DeclareOptionRef(fTemperatureGradient, "TemperatureGradient", "Temperature gradient");
DeclareOptionRef(fUseAdaptiveTemperature, "UseAdaptiveTemperature", "Use adaptive termperature");
DeclareOptionRef(fInitialTemperature, "InitialTemperature", "Initial temperature");
DeclareOptionRef(fMinTemperature, "MinTemperature", "Mimimum temperature");
DeclareOptionRef(fEps, "Eps", "Epsilon");
DeclareOptionRef(fNFunLoops, "NFunLoops", "Number of function loops");
DeclareOptionRef(fNEps, "NEps", "Number of epsilons");
}
void TMVA::SimulatedAnnealingFitter::SetParameters( Int_t naxCalls,
Int_t nFunLoops,
Int_t nEps,
Bool_t useAdaptiveTemperature,
Double_t temperatureGradient,
Double_t initialTemperature,
Double_t minTemperature,
Double_t eps )
{
fMaxCalls = naxCalls;
fNFunLoops = nFunLoops;
fNEps = nEps;
fUseAdaptiveTemperature = useAdaptiveTemperature;
fTemperatureGradient = temperatureGradient;
fInitialTemperature = initialTemperature;
fMinTemperature = minTemperature;
fEps = eps;
}
Double_t TMVA::SimulatedAnnealingFitter::Run( std::vector<Double_t>& pars )
{
fLogger << kINFO << "<SimulatedAnnealingFitter> Optimisation, please be patient ... " << Endl;
SimulatedAnnealing sa( GetFitterTarget(), fRanges );
sa.SetMaxCalls ( fMaxCalls );
sa.SetTempGrad ( fTemperatureGradient );
sa.SetUseAdaptTemp( fUseAdaptiveTemperature );
sa.SetInitTemp ( fInitialTemperature );
sa.SetMinTemp ( fMinTemperature );
sa.SetNumFunLoops ( fNFunLoops );
sa.SetAccuracy ( fEps );
sa.SetNEps ( fNEps );
Double_t fcn = sa.Minimize( pars );
return fcn;
}
Last update: Thu Jan 17 08:59:31 2008
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.