[galib] galib Digest, Vol 63, Issue 5

yi.zong@risoe.dk yi.zong at risoe.dk
Thu Oct 9 08:25:27 EDT 2008

Dear all,

   Thanks a lot. 

Specially, many thanks to Patrick.

I have solved the problem.

1. We need to use:  

    ga.initialize() in

 int main(int argc, char** argv)



2. Addition: put Myinitializer 

              Before Objective

Like this:


void Myinitializer(GAGenome &);

float Objective(GAGenome &);



main(int argc, char** argv)


   for(int jj=1; jj<argc; jj++) {

    if(strcmp(argv[jj++],"seed") == 0) {

      GARandomSeed((unsigned int)atoi(argv[jj]));




  ofstream outfile;


  GARealGenome genome(length, alleles, Objective);

//  GASharing scale;//using GAScalingScheme::GASharing-default

  GANoScaling scale;//GAScalingScheme::GANoScaling--the fitness scores = the objectivescores



  genome.initializer(Myinitializer); // Initial with Myinitializer  


  GASimpleGA ga(genome);

  ga.minimize();                     // by default we want to minimize the objective

  ga.scaling(scale);                // set the scaling method to our sharing

  ga.populationSize(73);         // how many individuals in the population

  ga.nGenerations(100);         // number of generations to evolve

  ga.nBestGenomes(1);           // Specify how many 'best' genomes to record, the default is 1

  ga.pMutation(0.05);              // likelihood of mutating new offspring

  ga.pCrossover(0.6);             // likelihood of crossing over parents

  ga.scoreFilename("yinw25.dat"); // name of file for scores

  ga.scoreFrequency(1);                    // keep the scores of every generation

  ga.flushFrequency(1);          // specify how often to write the score to disk, if generation<10, then it only records once


  ga.parameters(argc, argv, gaTrue); // parse commands, complain if bogus args

  //unsigned int seed=0;







void Myinitializer( GAGenome &g )


      GARealGenome &genome = (GARealGenome &)g;

      float IC[]={-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2,-19.2};


      for( int i = 0; i < 36; ++i )


             genome.gene(i, IC[i]);



Yi Zong
Post doc
Phone direct +45 4677 5045
yi.zong at risoe.dk

Wind Energy Department
Risø National Laboratory for Sustainable Energy
Technical University of Denmark - DTU
Building 118, P.O. Box 49
DK-4000 Roskilde, Denmark
Tel +45 4677 4677
Fax +45 4677 5083


From: Patrick Coquillard [mailto:patrick.coquillard at unice.fr] 
Sent: Wednesday, October 08, 2008 6:51 PM
To: yi.zong at risoe.dk
Subject: Re: [galib] galib Digest, Vol 63, Issue 5


Hi Yi,

I embedded your code in a simple source...that did nothing. Compilation and execution. Really, I do not understand why your initializer is never called. May be you found a bug of galib. I suggest you could try to use an other kind of  genome ? I don't know.
I attach the stupid example I build from your code.
regards, P.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/galib/attachments/20081009/bdb8df33/attachment.htm

More information about the galib mailing list