ROOT logo
ROOT » TMVA » TMVA::SimulatedAnnealing

class TMVA::SimulatedAnnealing


 Implementation of Simulated Annealing fitter

Function Members (Methods)

public:
virtual~SimulatedAnnealing()
static TClass*Class()
virtual TClass*IsA() const
Double_tMinimize(vector<Double_t>& parameters)
voidSetAccuracy(Double_t eps)
voidSetAdaptiveSpeed(Double_t speed)
voidSetInitTemp(Double_t it)
voidSetMaxCalls(Int_t mc)
voidSetMinTemp(Double_t min)
voidSetOptions(Int_t maxCalls, Double_t initialTemperature, Double_t minTemperature, Double_t eps, TString kernelTemperatureS, Double_t temperatureScale, Double_t adaptiveSpeed, Double_t temperatureAdaptiveStep, Bool_t useDefaultScale, Bool_t useDefaultTemperature)
voidSetTemperatureScale(Double_t scale)
virtual voidShowMembers(TMemberInspector& insp)
TMVA::SimulatedAnnealingSimulatedAnnealing(const TMVA::SimulatedAnnealing&)
TMVA::SimulatedAnnealingSimulatedAnnealing(TMVA::IFitterTarget& target, const vector<TMVA::Interval*>& ranges)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
private:
voidFillWithRandomValues(vector<Double_t>& parameters)
Double_tGenerateMaxTemperature(vector<Double_t>& parameters)
vector<Double_t>GenerateNeighbour(vector<Double_t>& parameters, Double_t currentTemperature)
voidGenerateNeighbour(vector<Double_t>& parameters, vector<Double_t>& oldParameters, Double_t currentTemperature)
voidGenerateNewTemperature(Double_t& currentTemperature, Int_t Iter)
TMVA::MsgLogger&Log() const
voidReWriteParameters(vector<Double_t>& from, vector<Double_t>& to)
voidSetDefaultScale()
Bool_tShouldGoIn(Double_t currentFit, Double_t localFit, Double_t currentTemperature)

Data Members

public:
enum EKernelTemperature { kSqrt
kIncreasingAdaptive
kDecreasingAdaptive
kLog
kHomo
kSin
kGeo
};
private:
Double_tfAdaptiveSpeedhow fast temperature change in adaptive (in adaptive two variables describe
Double_tfEpsepsilon
TMVA::IFitterTarget&fFitterTargetthe fitter target
Double_tfInitialTemperatureinitial temperature
TMVA::SimulatedAnnealing::EKernelTemperaturefKernelTemperature
TMVA::MsgLogger*fLoggermessage logger
Int_tfMaxCallsmaximum number of minimisation calls
Double_tfMinTemperaturemimimum temperature
Double_tfProgress
TRandom*fRandomrandom generator
const vector<TMVA::Interval*>&fRangesparameter ranges
Double_tfTemperatureAdaptiveStepused to calculate InitialTemperature if fUseDefaultTemperature
Double_tfTemperatureScalehow fast temperature change
Bool_tfUseDefaultScaleif TRUE, SA calculates its own TemperatureScale
Bool_tfUseDefaultTemperatureif TRUE, SA calculates its own InitialTemperature (MinTemperautre)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

SimulatedAnnealing(TMVA::IFitterTarget& target, const vector<TMVA::Interval*>& ranges)
 constructor
void SetOptions(Int_t maxCalls, Double_t initialTemperature, Double_t minTemperature, Double_t eps, TString kernelTemperatureS, Double_t temperatureScale, Double_t adaptiveSpeed, Double_t temperatureAdaptiveStep, Bool_t useDefaultScale, Bool_t useDefaultTemperature)
 option setter
~SimulatedAnnealing()
 destructor
void FillWithRandomValues(vector<Double_t>& parameters)
 random starting parameters
void ReWriteParameters(vector<Double_t>& from, vector<Double_t>& to)
 copy parameters
void GenerateNeighbour(vector<Double_t>& parameters, vector<Double_t>& oldParameters, Double_t currentTemperature)
 generate adjacent parameters
std::vector<Double_t> GenerateNeighbour(vector<Double_t>& parameters, Double_t currentTemperature)
 generate adjacent parameters
void GenerateNewTemperature(Double_t& currentTemperature, Int_t Iter)
 generate new temperature
Bool_t ShouldGoIn(Double_t currentFit, Double_t localFit, Double_t currentTemperature)
 result checker
void SetDefaultScale()
 setting of default scale
Double_t GenerateMaxTemperature(vector<Double_t>& parameters)
 maximum temperature
Double_t Minimize(vector<Double_t>& parameters)
 minimisation algorithm
SimulatedAnnealing(TMVA::IFitterTarget& target, const vector<TMVA::Interval*>& ranges)
void SetMaxCalls(Int_t mc)
 accessors
{ fMaxCalls = mc; }
void SetInitTemp(Double_t it)
void SetMinTemp(Double_t min)
{ fMinTemperature = min; }
void SetAccuracy(Double_t eps)
{ fEps = eps; }
void SetTemperatureScale(Double_t scale)
{ fTemperatureScale = scale; }
void SetAdaptiveSpeed(Double_t speed)
{ fAdaptiveSpeed = speed; }