ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
TMVA::GeneticAlgorithm Class Reference

Definition at line 56 of file GeneticAlgorithm.h.

Public Member Functions

 GeneticAlgorithm (IFitterTarget &target, Int_t populationSize, const std::vector< TMVA::Interval * > &ranges, UInt_t seed=0)
 
virtual ~GeneticAlgorithm ()
 
void Init ()
 calls evolution, but if it is not the first time. More...
 
virtual Bool_t HasConverged (Int_t steps=10, Double_t ratio=0.1)
 gives back true if the last "steps" steps have lead to an improvement of the "fitness" of the "individuals" of at least "improvement" More...
 
virtual Double_t SpreadControl (Int_t steps, Int_t ofSteps, Double_t factor)
 this function provides the ability to change the stepSize of a mutation according to the success of the last generations. More...
 
virtual Double_t NewFitness (Double_t oldValue, Double_t newValue)
 if the "fitnessFunction" is called multiple times for one set of factors (because i.e. More...
 
virtual Double_t CalculateFitness ()
 starts the evaluation of the fitness of all different individuals of the population. More...
 
virtual void Evolution ()
 this function is called from "init" and controls the evolution of the individuals. More...
 
GeneticPopulationGetGeneticPopulation ()
 
Double_t GetSpread () const
 
void SetSpread (Double_t s)
 
void SetMakeCopies (Bool_t s)
 
Bool_t GetMakeCopies ()
 

Public Attributes

Int_t fConvCounter
 

Protected Member Functions

MsgLoggerLog () const
 

Protected Attributes

IFitterTargetfFitterTarget
 
Double_t fConvValue
 
std::deque< Int_tfSuccessList
 
Double_t fLastResult
 
Double_t fSpread
 
Bool_t fMirror
 
Bool_t fFirstTime
 
Bool_t fMakeCopies
 
Int_t fPopulationSize
 
const std::vector
< TMVA::Interval * > & 
fRanges
 
GeneticPopulation fPopulation
 
Double_t fBestFitness
 
MsgLoggerfLogger
 

#include <TMVA/GeneticAlgorithm.h>

Inheritance diagram for TMVA::GeneticAlgorithm:
[legend]

Constructor & Destructor Documentation

TMVA::GeneticAlgorithm::GeneticAlgorithm ( IFitterTarget target,
Int_t  populationSize,
const std::vector< TMVA::Interval * > &  ranges,
UInt_t  seed = 0 
)
TMVA::GeneticAlgorithm::~GeneticAlgorithm ( )
virtual

Definition at line 84 of file GeneticAlgorithm.cxx.

Member Function Documentation

Double_t TMVA::GeneticAlgorithm::CalculateFitness ( )
virtual

starts the evaluation of the fitness of all different individuals of the population.

this function calls implicitly (many times) the "fitnessFunction" which has been overridden by the user.

Definition at line 131 of file GeneticAlgorithm.cxx.

Referenced by ROOT::Math::GeneticMinimizer::Minimize(), and TMVA::GeneticFitter::Run().

void TMVA::GeneticAlgorithm::Evolution ( )
virtual

this function is called from "init" and controls the evolution of the individuals.

the function can be overridden to change the parameters for mutation rate sexual reproduction and so on.

Definition at line 185 of file GeneticAlgorithm.cxx.

GeneticPopulation& TMVA::GeneticAlgorithm::GetGeneticPopulation ( )
inline
Bool_t TMVA::GeneticAlgorithm::GetMakeCopies ( )
inline

Definition at line 79 of file GeneticAlgorithm.h.

Double_t TMVA::GeneticAlgorithm::GetSpread ( ) const
inline

Definition at line 75 of file GeneticAlgorithm.h.

Bool_t TMVA::GeneticAlgorithm::HasConverged ( Int_t  steps = 10,
Double_t  improvement = 0.1 
)
virtual

gives back true if the last "steps" steps have lead to an improvement of the "fitness" of the "individuals" of at least "improvement"

this gives a simple measure of if the fitness of the individuals is converging and no major improvement is to be expected soon.

Definition at line 255 of file GeneticAlgorithm.cxx.

Referenced by ROOT::Math::GeneticMinimizer::Minimize(), and TMVA::GeneticFitter::Run().

void TMVA::GeneticAlgorithm::Init ( void  )

calls evolution, but if it is not the first time.

If it's the first time, the random population created by the constructor is still not evaluated, .. therefore we wait for the second time init is called.

Definition at line 97 of file GeneticAlgorithm.cxx.

Referenced by ROOT::Math::GeneticMinimizer::Minimize(), and TMVA::GeneticFitter::Run().

MsgLogger& TMVA::GeneticAlgorithm::Log ( ) const
inlineprotected

Definition at line 108 of file GeneticAlgorithm.h.

Double_t TMVA::GeneticAlgorithm::NewFitness ( Double_t  oldValue,
Double_t  newValue 
)
virtual

if the "fitnessFunction" is called multiple times for one set of factors (because i.e.

each event of a TTree has to be assessed with each set of Factors proposed by the Genetic Algorithm) the value of the current calculation has to be added(? or else) to the value obtained up to now. example: some chi-square is calculated for every event, after every event the new chi-square (newValue) has to be simply added to the oldValue.

this function has to be overridden eventually it might contain only the following return statement. return oldValue + newValue;

Definition at line 119 of file GeneticAlgorithm.cxx.

void TMVA::GeneticAlgorithm::SetMakeCopies ( Bool_t  s)
inline

Definition at line 78 of file GeneticAlgorithm.h.

void TMVA::GeneticAlgorithm::SetSpread ( Double_t  s)
inline

Definition at line 76 of file GeneticAlgorithm.h.

Double_t TMVA::GeneticAlgorithm::SpreadControl ( Int_t  ofSteps,
Int_t  successSteps,
Double_t  factor 
)
virtual

this function provides the ability to change the stepSize of a mutation according to the success of the last generations.

Parameters: int ofSteps : = if OF the number of STEPS given in this variable (ofSteps) int successSteps : >sucessSteps Generations could improve the result double factor : than multiply the stepSize ( spread ) by this factor (if ofSteps == successSteps nothing is changed, if ofSteps < successSteps, the spread is divided by the factor)

using this function one can increase the stepSize of the mutation when we have good success (to pass fast through the easy phase-space) and reduce the stepSize if we are in a difficult "territory" of the phase-space.

Definition at line 211 of file GeneticAlgorithm.cxx.

Referenced by ROOT::Math::GeneticMinimizer::Minimize(), and TMVA::GeneticFitter::Run().

Member Data Documentation

Double_t TMVA::GeneticAlgorithm::fBestFitness
protected

Definition at line 105 of file GeneticAlgorithm.h.

Int_t TMVA::GeneticAlgorithm::fConvCounter

Definition at line 81 of file GeneticAlgorithm.h.

Referenced by TMVA::GeneticFitter::Run().

Double_t TMVA::GeneticAlgorithm::fConvValue
protected

Definition at line 87 of file GeneticAlgorithm.h.

Bool_t TMVA::GeneticAlgorithm::fFirstTime
protected

Definition at line 97 of file GeneticAlgorithm.h.

IFitterTarget& TMVA::GeneticAlgorithm::fFitterTarget
protected

Definition at line 85 of file GeneticAlgorithm.h.

Double_t TMVA::GeneticAlgorithm::fLastResult
protected

Definition at line 93 of file GeneticAlgorithm.h.

MsgLogger* TMVA::GeneticAlgorithm::fLogger
mutableprotected

Definition at line 107 of file GeneticAlgorithm.h.

Referenced by Log(), and ~GeneticAlgorithm().

Bool_t TMVA::GeneticAlgorithm::fMakeCopies
protected

Definition at line 98 of file GeneticAlgorithm.h.

Referenced by GetMakeCopies(), and SetMakeCopies().

Bool_t TMVA::GeneticAlgorithm::fMirror
protected

Definition at line 96 of file GeneticAlgorithm.h.

GeneticPopulation TMVA::GeneticAlgorithm::fPopulation
protected

Definition at line 104 of file GeneticAlgorithm.h.

Referenced by GetGeneticPopulation().

Int_t TMVA::GeneticAlgorithm::fPopulationSize
protected

Definition at line 100 of file GeneticAlgorithm.h.

const std::vector<TMVA::Interval*>& TMVA::GeneticAlgorithm::fRanges
protected

Definition at line 102 of file GeneticAlgorithm.h.

Double_t TMVA::GeneticAlgorithm::fSpread
protected

Definition at line 95 of file GeneticAlgorithm.h.

Referenced by GetSpread(), and SetSpread().

std::deque<Int_t> TMVA::GeneticAlgorithm::fSuccessList
protected

Definition at line 92 of file GeneticAlgorithm.h.

Collaboration diagram for TMVA::GeneticAlgorithm:
[legend]

The documentation for this class was generated from the following files: