ROOT   Reference Guide
TMVA::GeneticAlgorithm Class Reference

Base definition for genetic algorithm.

Definition at line 50 of file GeneticAlgorithm.h.

Public Member Functions

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

virtual ~GeneticAlgorithm ()

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 ()

Bool_t GetMakeCopies ()

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...

void Init ()
calls evolution, but if it is not the first time. 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...

void SetMakeCopies (Bool_t s)

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...

Public Attributes

Int_t fConvCounter

Protected Member Functions

MsgLoggerLog () const

Protected Attributes

Double_t fBestFitness

Double_t fConvValue

Bool_t fFirstTime

IFitterTargetfFitterTarget

Double_t fLastResult

MsgLoggerfLogger

Bool_t fMakeCopies

Bool_t fMirror

GeneticPopulation fPopulation

Int_t fPopulationSize

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

std::deque< Int_tfSuccessList

#include <TMVA/GeneticAlgorithm.h>

◆ GeneticAlgorithm()

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

Constructor.

Parameters:

• int populationSize : defines the number of "Individuals" which are created and tested within one Generation (Iteration of the Evolution)
• std::vector<TMVA::Interval*> ranges : Interval holds the information of an interval, where the GetMin gets the low and GetMax gets the high constraint of the variable the size of "ranges" is the number of coefficients which are optimised Purpose:

Creates a random population with individuals of the size ranges.size()

Definition at line 70 of file GeneticAlgorithm.cxx.

◆ ~GeneticAlgorithm()

 TMVA::GeneticAlgorithm::~GeneticAlgorithm ( )
virtual

Definition at line 89 of file GeneticAlgorithm.cxx.

◆ CalculateFitness()

 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 136 of file GeneticAlgorithm.cxx.

◆ Evolution()

 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 191 of file GeneticAlgorithm.cxx.

◆ GetGeneticPopulation()

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

Definition at line 67 of file GeneticAlgorithm.h.

◆ GetMakeCopies()

 Bool_t TMVA::GeneticAlgorithm::GetMakeCopies ( )
inline

Definition at line 73 of file GeneticAlgorithm.h.

inline

Definition at line 69 of file GeneticAlgorithm.h.

◆ HasConverged()

 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 261 of file GeneticAlgorithm.cxx.

◆ Init()

 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 102 of file GeneticAlgorithm.cxx.

◆ Log()

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

Definition at line 102 of file GeneticAlgorithm.h.

◆ NewFitness()

 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 124 of file GeneticAlgorithm.cxx.

◆ SetMakeCopies()

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

Definition at line 72 of file GeneticAlgorithm.h.

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

Definition at line 70 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 218 of file GeneticAlgorithm.cxx.

◆ fBestFitness

 Double_t TMVA::GeneticAlgorithm::fBestFitness
protected

Definition at line 99 of file GeneticAlgorithm.h.

◆ fConvCounter

 Int_t TMVA::GeneticAlgorithm::fConvCounter

Definition at line 75 of file GeneticAlgorithm.h.

◆ fConvValue

 Double_t TMVA::GeneticAlgorithm::fConvValue
protected

Definition at line 81 of file GeneticAlgorithm.h.

◆ fFirstTime

 Bool_t TMVA::GeneticAlgorithm::fFirstTime
protected

Definition at line 91 of file GeneticAlgorithm.h.

◆ fFitterTarget

 IFitterTarget& TMVA::GeneticAlgorithm::fFitterTarget
protected

Definition at line 79 of file GeneticAlgorithm.h.

◆ fLastResult

 Double_t TMVA::GeneticAlgorithm::fLastResult
protected

Definition at line 87 of file GeneticAlgorithm.h.

◆ fLogger

 MsgLogger* TMVA::GeneticAlgorithm::fLogger
mutableprotected

Definition at line 101 of file GeneticAlgorithm.h.

◆ fMakeCopies

 Bool_t TMVA::GeneticAlgorithm::fMakeCopies
protected

Definition at line 92 of file GeneticAlgorithm.h.

◆ fMirror

 Bool_t TMVA::GeneticAlgorithm::fMirror
protected

Definition at line 90 of file GeneticAlgorithm.h.

◆ fPopulation

 GeneticPopulation TMVA::GeneticAlgorithm::fPopulation
protected

Definition at line 98 of file GeneticAlgorithm.h.

◆ fPopulationSize

 Int_t TMVA::GeneticAlgorithm::fPopulationSize
protected

Definition at line 94 of file GeneticAlgorithm.h.

◆ fRanges

 const std::vector& TMVA::GeneticAlgorithm::fRanges
protected

Definition at line 96 of file GeneticAlgorithm.h.

protected

Definition at line 89 of file GeneticAlgorithm.h.

◆ fSuccessList

 std::deque TMVA::GeneticAlgorithm::fSuccessList
protected

Definition at line 86 of file GeneticAlgorithm.h.

Libraries for TMVA::GeneticAlgorithm:
[legend]

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