51: fKernelTemperature     (kIncreasingAdaptive),
 
   56   fInitialTemperature    ( 1000 ),
 
   57   fMinTemperature        ( 0 ),
 
   59   fTemperatureScale      ( 0.06 ),
 
   60   fAdaptiveSpeed         ( 1.0 ),
 
   61   fTemperatureAdaptiveStep( 0.0 ),
 
   62   fUseDefaultScale       ( 
kFALSE ),
 
   63   fUseDefaultTemperature ( 
kFALSE ),
 
 
   90      fKernelTemperature = kIncreasingAdaptive;
 
   91      Log() << kINFO << 
"Using increasing adaptive algorithm" << 
Endl;
 
   94      fKernelTemperature = kDecreasingAdaptive;
 
   95      Log() << kINFO << 
"Using decreasing adaptive algorithm" << 
Endl;
 
   98      fKernelTemperature = kSqrt;
 
   99      Log() << kINFO << 
"Using \"Sqrt\" algorithm" << 
Endl;
 
  102      fKernelTemperature = kHomo;
 
  103      Log() << kINFO << 
"Using \"Homo\" algorithm" << 
Endl;
 
  106      fKernelTemperature = kLog;
 
  107      Log() << kINFO << 
"Using \"Log\" algorithm" << 
Endl;
 
  110      fKernelTemperature = kSin;
 
  111      Log() << kINFO << 
"Using \"Sin\" algorithm" << 
Endl;
 
 
  135      parameters[
rIter] = fRandom->Uniform(0.0,1.0)*(fRanges[
rIter]->GetMax() - fRanges[
rIter]->GetMin()) + fRanges[
rIter]->GetMin();
 
 
  158         uni = fRandom->Uniform(0.0,1.0);
 
  159         sign = (
uni - 0.5 >= 0.0) ? (1.0) : (-1.0);
 
  163      while (parameters[
rIter] < fRanges[
rIter]->GetMin() || parameters[
rIter] > fRanges[
rIter]->GetMax() );
 
 
  176         uni = fRandom->Uniform(0.0,1.0);
 
  177         sign = (
uni - 0.5 >= 0.0) ? (1.0) : (-1.0);
 
 
  192   if      (fKernelTemperature == kSqrt) {
 
  195   else if (fKernelTemperature == kLog) {
 
  198   else if (fKernelTemperature == kHomo) {
 
  201   else if (fKernelTemperature == kSin) {
 
  204   else if (fKernelTemperature == kGeo) {
 
  207   else if (fKernelTemperature == kIncreasingAdaptive) {
 
  210   else if (fKernelTemperature == kDecreasingAdaptive) {
 
  213   else Log() << kFATAL << 
"No such kernel!" << 
Endl;
 
 
  232   if      (fKernelTemperature == kSqrt) fTemperatureScale = 1.0;
 
  233   else if (fKernelTemperature == kLog)  fTemperatureScale = 1.0;
 
  234   else if (fKernelTemperature == kHomo) fTemperatureScale = 1.0;
 
  235   else if (fKernelTemperature == kSin)  fTemperatureScale = 20.0;
 
  236   else if (fKernelTemperature == kGeo)  fTemperatureScale = 0.99997;
 
  237   else if (fKernelTemperature == kDecreasingAdaptive) {
 
  238      fTemperatureScale = 1.0;
 
  241         fTemperatureScale -= 0.000001;
 
  244   else if (fKernelTemperature == kIncreasingAdaptive) fTemperatureScale = 0.15*( 1.0 / (
Double_t)(fRanges.size() ) );
 
  245   else Log() << kFATAL << 
"No such kernel!" << 
Endl;
 
 
  256   std::vector<Double_t> 
x( fRanges.size() ), 
xNew( fRanges.size() ), 
xBest( fRanges.size() ), 
xOld( fRanges.size() );
 
  259   dT = fTemperatureAdaptiveStep;
 
  263   for (
Int_t i=0; i<fMaxCalls/50; i++) {
 
  264      if ((i>0) && (
deltaY>0.0)) {
 
  269      x = 
xOld = GenerateNeighbour(
x,t);
 
  270      y = 
yOld = fFitterTarget.EstimatorFunction( 
xOld );
 
  273         xNew = GenerateNeighbour(
x,t);
 
  275         yNew = fFitterTarget.EstimatorFunction( 
xNew );
 
  285            if      (
y    != 0.0) delta /= 
y;
 
  286            else if (
yNew != 0.0) delta /= 
y;
 
  296      yNew = fFitterTarget.EstimatorFunction( 
xNew );
 
 
  322   if (fUseDefaultTemperature) {
 
  323      if (fKernelTemperature == kIncreasingAdaptive) {
 
  325         FillWithRandomValues( parameters );
 
  330      if (fKernelTemperature == kIncreasingAdaptive)
 
  334      FillWithRandomValues( parameters );
 
  337   if (fUseDefaultScale) SetDefaultScale();
 
  340         << 
"Temperatur scale = "      << fTemperatureScale
 
  350   Timer timer( fMaxCalls, fLogger->GetSource().c_str() );
 
  353     if (fIPyCurrentIter) *fIPyCurrentIter = 
sample;
 
  354     if (fExitFromTraining && *fExitFromTraining) 
break;
 
  392   Log() << kINFO << 
"Elapsed time: " << 
timer.GetElapsedTime()
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t target
 
Interface for a fitter 'target'.
 
ostringstream derivative to redirect and format output
 
Base implementation of simulated annealing fitting procedure.
 
void GenerateNeighbour(std::vector< Double_t > ¶meters, std::vector< Double_t > &oldParameters, Double_t currentTemperature)
generate adjacent parameters
 
Double_t Minimize(std::vector< Double_t > ¶meters)
minimisation algorithm
 
virtual ~SimulatedAnnealing()
destructor
 
Double_t GenerateMaxTemperature(std::vector< Double_t > ¶meters)
maximum temperature
 
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
 
void SetDefaultScale()
setting of default scale
 
void GenerateNewTemperature(Double_t ¤tTemperature, Int_t Iter)
generate new temperature
 
void FillWithRandomValues(std::vector< Double_t > ¶meters)
random starting parameters
 
void ReWriteParameters(std::vector< Double_t > &from, std::vector< Double_t > &to)
copy parameters
 
enum TMVA::SimulatedAnnealing::EKernelTemperature fKernelTemperature
 
SimulatedAnnealing(IFitterTarget &target, const std::vector< TMVA::Interval * > &ranges)
constructor
 
Bool_t ShouldGoIn(Double_t currentFit, Double_t localFit, Double_t currentTemperature)
result checker
 
Timing information for training and evaluation of MVA methods.
 
Random number generator class based on M.
 
MsgLogger & Endl(MsgLogger &ml)
 
Double_t Exp(Double_t x)
Returns the base-e exponential function of x, which is e raised to the power x.
 
Double_t Log(Double_t x)
Returns the natural logarithm of x.
 
Double_t Sqrt(Double_t x)
Returns the square root of x.
 
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.
 
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.