/usr/include/root/TMVA/GeneticFitter.h is in libroot-tmva-dev 5.34.19+dfsg-1.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | // @(#)root/tmva $Id$
// Author: Peter Speckmayer
/**********************************************************************************
* Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
* Package: TMVA *
* Class : GeneticFitter *
* Web : http://tmva.sourceforge.net *
* *
* Description: *
* Fitter using a Genetic Algorithm *
* *
* Authors (alphabetical): *
* Peter Speckmayer <speckmay@mail.cern.ch> - CERN, Switzerland *
* *
* Copyright (c) 2005: *
* CERN, Switzerland *
* MPI-K Heidelberg, Germany *
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted according to the terms listed in LICENSE *
* (http://tmva.sourceforge.net/LICENSE) *
**********************************************************************************/
#ifndef ROOT_TMVA_GeneticFitter
#define ROOT_TMVA_GeneticFitter
//////////////////////////////////////////////////////////////////////////
// //
// GeneticFitter //
// //
// Fitter using a Genetic Algorithm //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TMVA_FitterBase
#include "TMVA/FitterBase.h"
#endif
namespace TMVA {
class IFitterTarget;
class Interval;
class GeneticFitter : public FitterBase {
public:
GeneticFitter( IFitterTarget& target, const TString& name,
const std::vector<TMVA::Interval*>& ranges, const TString& theOption );
virtual ~GeneticFitter() {}
void SetParameters( Int_t cycles,
Int_t nsteps,
Int_t popSize,
Int_t SC_steps,
Int_t SC_rate,
Double_t SC_factor,
Double_t convCrit );
Double_t Run( std::vector<Double_t>& pars );
Double_t NewFitness( Double_t oldF, Double_t newF ) { return oldF + newF; }
private:
void DeclareOptions();
Int_t fCycles; // number of (nearly) independent calculation cycles
Int_t fNsteps; // convergence criteria: if no improvements > fConvCrit was achieved within the last fNsteps: cycle has "converged"
Int_t fPopSize; // number of individuals to start with
Int_t fSC_steps; // regulates how strong the mutations for the coordinates are: if within fSC_steps there were more than...
Int_t fSC_rate; // ... fSC_rate improvements, than multiply the sigma of the gaussion which defines how the random numbers are generated ...
Double_t fSC_factor; // ... with fSC_factor; if there were less improvements: divide by that factor; if there were exactly fSC_rate improvements, dont change anything
Double_t fConvCrit; // improvements bigger than fConvCrit are counted as "improvement"
Int_t fSaveBestFromGeneration; // store the best individuals from one generation (these are included as "hints" in the last cycle of GA calculation)
Int_t fSaveBestFromCycle; // store the best individuals from one cycle (these are included as "hints" in the last cycle of GA calculation)
Bool_t fTrim; // take care, that the number of individuals is less fPopSize (trimming is done after the fitness of the individuals is assessed)
UInt_t fSeed; // Seed for the random generator (0 takes random seeds)
ClassDef(GeneticFitter,0) // Fitter using a Genetic Algorithm
};
} // namespace TMVA
#endif
|