This exectutable gives an example of a very simple use of the genetic algorithm of TMVA.
Processing /builddir/build/BUILD/root-6.10.08/tutorials/tmva/TMVAGAexample.C...
Start Test TMVAGAexample
========================
EXAMPLE
range: 0 15
range: 0 13
range: 0 5
: fitness: -142.774 f_0: 13.4483 f_1: 11.7319 f_2: 5
---
: fitness: -157.748 f_0: 13.9655 f_1: 12.1906 f_2: 2.5
---
: fitness: -158.289 f_0: 13.9655 f_1: 12.0503 f_2: 0
---
: fitness: -158.289 f_0: 13.9655 f_1: 12.0503 f_2: 0
---
: fitness: -172.896 f_0: 15 f_1: 12.1931 f_2: 0
---
: fitness: -172.896 f_0: 15 f_1: 12.1931 f_2: 0
---
: fitness: -174.658 f_0: 14.4828 f_1: 12.9228 f_2: 2.5
---
: fitness: -182.863 f_0: 15 f_1: 12.8575 f_2: 0
---
: fitness: -182.863 f_0: 15 f_1: 12.8575 f_2: 0
---
: fitness: -182.863 f_0: 15 f_1: 12.8575 f_2: 0
---
: fitness: -182.863 f_0: 15 f_1: 12.8575 f_2: 0
---
: fitness: -183.842 f_0: 15 f_1: 12.9228 f_2: 0
---
: fitness: -184.037 f_0: 15 f_1: 12.9358 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.877 f_0: 15 f_1: 12.9918 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.92 f_0: 15 f_1: 12.9947 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.982 f_0: 15 f_1: 12.9988 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.996 f_0: 15 f_1: 12.9997 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
: fitness: -184.999 f_0: 15 f_1: 13 f_2: 0
---
FACTOR 0 : 15
FACTOR 1 : 13
FACTOR 2 : 0
#include <iostream>
#include <vector>
public:
}
Double_t EstimatorFunction( std::vector<Double_t> & factors ){
return (10.- factors.at(0) *factors.at(1) + factors.at(2));
}
};
public:
size, ranges ){
}
};
void TMVAGAexample() {
std::cout << "Start Test TMVAGAexample" << std::endl
<< "========================" << std::endl
<< "\nEXAMPLE" << std::endl;
vector<Interval*> ranges;
ranges.push_back(
new Interval(0,15,30) );
ranges.push_back(
new Interval(0,5,3) );
for( std::vector<Interval*>::iterator it = ranges.begin(); it != ranges.end(); it++ ){
std::cout << " range: " << (*it)->GetMin() << " " << (*it)->GetMax() << std::endl;
}
MyGA2nd mg( *myFitness, 100, ranges );
#define CONVSTEPS 20
#define CONVCRIT 0.0001
#define SCSTEPS 10
#define SCRATE 5
#define SCFACTOR 0.95
do {
mg.Init();
mg.CalculateFitness();
mg.GetGeneticPopulation().
Print(0);
std::cout << "---" << std::endl;
mg.GetGeneticPopulation().TrimPopulation();
mg.SpreadControl( SCSTEPS, SCRATE, SCFACTOR );
} while (!mg.HasConverged( CONVSTEPS, CONVCRIT ));
GeneticGenes* genes = mg.GetGeneticPopulation().GetGenes( 0 );
std::vector<Double_t> gvec;
int n = 0;
for( std::vector<Double_t>::iterator it = gvec.begin(); it<gvec.end(); it++ ){
std::cout << "FACTOR " << n << " : " << (*it) << std::endl;
n++;
}
}
int main(
int argc,
char** argv )
{
TMVAGAexample();
}