Re: [jgap-users] local parallelization
Brought to you by:
klausikm
From: Klaus M. <jg...@kl...> - 2011-11-22 11:24:08
|
Hello Andreas, thanx a lot for pointing out your issue in detail. Regarding fitness function: I cannot say without knowing more details. Is a source code (maybe incomplete or in progress) for your implementation available? The understanding in JGAP is as follows: + The generation number is not copied as a new population is seen to have generation 0 + The population size for a newly created population (resulting from a split of a huger population) is kept the same as for the original, as each part (split) is seen to be processed independently and in the same way as the original population. However, these are arbitrary considerations, it could maybe be better to do differently. If you could create an example that shows which way is producing better results (your intention or the current JGAP implementation), it would help in deciding if changing JGAPs behaviour does make sense. I have not played through the process in the past few weeks, so it may be that I have overseen something. If so, please drop me a note. Best Klaus www.klaus-meffert.com <http://www.klaus-meffert.com/> _____ From: Andreas Gantner [mailto:ga...@fl...] Sent: Monday, November 21, 2011 10:42 AM To: jga...@li... Subject: [jgap-users] local parallelization Hello jgap-team, I´m currently trying to do a CFD-based genetic optimization process with jgap which should be locally parallelized (on one PC). So I took as example the SimpleJobConsumer. As fitnessfunction I defined an extended BulkFitnessFunction because the evaluation method needs further information which is stored in my Population class (the working directory where the data for the cfd simulation can be found and should be accomplished) In the main iteration I´m splitting the population and evolve those splitted populations in single threads (see SimpleJobConsumer). Afterwards the results are merged into the Population of the genotype instance. I found out the Configuration clone Method used in Genotype.getEvolves(IPopulationSplitter a_splitter) doesn´t copy the current generation number. Additionally the Configuration clone also uses the complete population size, and not the splitted one (popSizeSplit= popSizeComplete/numSplitter). So I don´t know if there might be a problem in the GABreeder? Does this behavior affect my optimization process at all. Might that be a bug? Or is my approach principally wrong? Should I use a classic FitnessFunction instead of a BulkFitnessfunction? Thank you for your response! Andreas Gantner PS: I also don´t understand the original merge-method in the class Genotype. The merger passed isn´t used at all and only the best three individuals are chosen. Is there also a bug or why didn´t you use it? For the present I created my own method. |