|
||||
File indexing completed on 2025-01-18 10:11:10
0001 // @(#)root/tmva $Id$ 0002 // Author: Andreas Hoecker, Krzysztof Danielowski, Kamil Kraszewski, Maciej Kruk 0003 0004 /********************************************************************************** 0005 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis * 0006 * Package: TMVA * 0007 * Class : SimulatedAnnealingFitter * 0008 * * 0009 * * 0010 * Description: * 0011 * Fitter using Simulated Annealing algorithm * 0012 * * 0013 * Authors (alphabetical): * 0014 * Krzysztof Danielowski <danielow@cern.ch> - IFJ & AGH, Poland * 0015 * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland * 0016 * Kamil Kraszewski <kalq@cern.ch> - IFJ & UJ, Poland * 0017 * Maciej Kruk <mkruk@cern.ch> - IFJ & AGH, Poland * 0018 * * 0019 * Copyright (c) 2008: * 0020 * IFJ-Krakow, Poland * 0021 * CERN, Switzerland * 0022 * MPI-K Heidelberg, Germany * 0023 * * 0024 * Redistribution and use in source and binary forms, with or without * 0025 * modification, are permitted according to the terms listed in LICENSE * 0026 * (see tmva/doc/LICENSE) * 0027 **********************************************************************************/ 0028 0029 #ifndef ROOT_TMVA_SimulatedAnnealingFitter 0030 #define ROOT_TMVA_SimulatedAnnealingFitter 0031 0032 ////////////////////////////////////////////////////////////////////////// 0033 // // 0034 // SimulatedAnnealingFitter // 0035 // // 0036 // Fitter using a Simulated Annealing Algorithm // 0037 // // 0038 ////////////////////////////////////////////////////////////////////////// 0039 0040 #include "TMVA/FitterBase.h" 0041 0042 #include <vector> 0043 0044 namespace TMVA { 0045 0046 class IFitterTarget; 0047 class Interval; 0048 0049 class SimulatedAnnealingFitter : public FitterBase { 0050 0051 public: 0052 0053 SimulatedAnnealingFitter( IFitterTarget& target, const TString& name, 0054 const std::vector<TMVA::Interval*>& ranges, const TString& theOption ); 0055 0056 virtual ~SimulatedAnnealingFitter() {} 0057 0058 void SetParameters( Int_t fMaxCalls, 0059 Double_t fInitialTemperature, 0060 Double_t fMinTemperature, 0061 Double_t fEps, 0062 TString fKernelTemperatureS, 0063 Double_t fTemperatureScale, 0064 Double_t fTemperatureAdaptiveStep, 0065 Bool_t fUseDefaultScale, 0066 Bool_t fUseDefaultTemperature ); 0067 0068 Double_t Run( std::vector<Double_t>& pars ); 0069 0070 private: 0071 0072 void DeclareOptions(); 0073 0074 Int_t fMaxCalls; ///< max number of FCN calls 0075 Double_t fInitialTemperature; ///< initial temperature (depends on FCN) 0076 Double_t fMinTemperature; ///< minimum temperature before SA quit 0077 Double_t fEps; ///< relative required FCN accuracy at minimum 0078 TString fKernelTemperatureS; ///< string just to set fKernelTemperature 0079 Double_t fTemperatureScale; ///< how fast temperature change 0080 Double_t fAdaptiveSpeed; ///< how fast temperature change in adaptive (in adaptive two variables describe 0081 /// the change of temperature, but fAdaptiveSpeed should be 1.0 and its not 0082 /// recommended to change it) 0083 Double_t fTemperatureAdaptiveStep; ///< used to calculate InitialTemperature if fUseDefaultTemperature 0084 Bool_t fUseDefaultScale; ///< if TRUE, SA calculates its own TemperatureScale 0085 Bool_t fUseDefaultTemperature; ///< if TRUE, SA calculates its own InitialTemperature (MinTemperautre) 0086 0087 ClassDef(SimulatedAnnealingFitter,0); // Fitter using a Simulated Annealing Algorithm 0088 }; 0089 0090 } // namespace TMVA 0091 0092 #endif 0093 0094
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |