#ifndef ROOT_TMVA_SimulatedAnnealing
#define ROOT_TMVA_SimulatedAnnealing
#include <vector>
#ifndef ROOT_TMVA_Types
#include "TMVA/Types.h"
#endif
#ifndef ROOT_TMVA_MsgLogger
#include "TMVA/MsgLogger.h"
#endif
class TRandom;
namespace TMVA {
class IFitterTarget;
class Interval;
class SimulatedAnnealing {
public:
SimulatedAnnealing( IFitterTarget& target, const std::vector<Interval*>& ranges );
virtual ~SimulatedAnnealing();
Double_t Minimize( std::vector<Double_t>& parameters );
void SetMaxCalls ( Int_t mc ) { fMaxCalls = mc; }
void SetTempGrad ( Double_t dt ) { fTemperatureGradient = dt; }
void SetUseAdaptTemp( Bool_t yesno ) { fUseAdaptiveTemperature = yesno; }
void SetInitTemp ( Double_t it ) { fInitialTemperature = it; }
void SetMinTemp ( Double_t min ) { fMinTemperature = min; }
void SetNumFunLoops ( Int_t num ) { fNFunLoops = num; }
void SetAccuracy ( Double_t eps ) { fEps = eps; }
void SetNEps ( Int_t neps ) { fNEps = neps; }
private:
Double_t GetPerturbationProbability( Double_t energy, Double_t energyRef,
Double_t temperature );
IFitterTarget& fFitterTarget;
TRandom* fRandom;
const std::vector<Interval*>& fRanges;
Int_t fMaxCalls;
Double_t fTemperatureGradient;
Bool_t fUseAdaptiveTemperature;
Double_t fInitialTemperature;
Double_t fMinTemperature;
Double_t fEps;
Int_t fNFunLoops;
Int_t fNEps;
mutable MsgLogger fLogger;
ClassDef(SimulatedAnnealing,0)
};
}
#endif
Last update: Thu Jan 17 08:59:30 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.