[galib] GA program

Somnath Bhattacharjee sn.bhattacharjee at yahoo.co.in
Fri Nov 16 13:47:32 EST 2007

```I want to solve the Quadratic equation y= x*x+5*x+6. According to manual calculation the result will be two roots ( -3 and -2 , for these values of x the function value will be ZERO ). Now by GA the results (means the roots) should be nearly -3 and -2 (not exactly -3,-2).
I'm not sure that  it is right or not. I'm beginner in GA so your suggestion will be benchmark for me.

I want a result like -2.9986 and -1.9878 (which is nearly the roots bot not exactly -3,-2).

I'm sending the total program.

Regards
Somnath

#include <stdio.h>
#include <ga/ga.h>
#include <ga/std_stream.h>
#define cout STD_COUT
float objective(GAGenome &);
int
main(int argc, char **argv)
{
cout << "This program finds the roots value in the function\n";
cout << "  y=x*x + 5*x + 6 ";
cout << "with the constraints\n";
cout << "     -3 <= x <= -2\n";
cout << "\n\n"; cout.flush();
unsigned int seed = 0;
for(int i=1; i<argc; i++) {
if(strcmp(argv[i++],"seed") == 0) {
seed = atoi(argv[i]);
}
}
int popsize  = 30;
int ngen     = 100;
float pmut   = 0.01;
float pcross = 0.6;
GABin2DecPhenotype map;

GABin2DecGenome genome(map, objective);
GASimpleGA ga(genome);
GASigmaTruncationScaling scaling;
ga.minimize();
ga.populationSize(popsize);
ga.nGenerations(ngen);
ga.pMutation(pmut);
ga.pCrossover(pcross);
ga.scaling(scaling);
ga.scoreFilename("bog.dat");
ga.scoreFrequency(10);
ga.flushFrequency(50);
ga.evolve(seed);
genome = ga.statistics().bestIndividual();
cout << "the ga found an optimum at the point (";
cout << genome.phenotype(0) << ", " << genome.phenotype(1) << ")\n\n";
cout << "best of generation data are in '" << ga.scoreFilename() << "'\n";
return 0;
}

float
objective(GAGenome & c)
{
GABin2DecGenome & genome = (GABin2DecGenome &)c;
float y=6.0;
y  += genome.phenotype(0) * genome.phenotype(0);
y += 5 * genome.phenotype(0);
return y;
}

Get the freedom to save as many mails as you wish. To know how, go to http://help.yahoo.com/l/in/yahoo/mail/yahoomail/tools/tools-08.html
-------------- next part --------------
An HTML attachment was scrubbed...