Re: [jgap-users] Custom genes?
Brought to you by:
klausikm
From: Ary J. <ary...@gm...> - 2008-06-05 13:19:36
|
Well, if the private method org.jgap.impl.CrossOverOperator.doCrossover(...) were public, it would be easier... I just need to extends the CrossOver operator and override this method to personalize only the crossover logic... right? On Thu, Jun 5, 2008 at 10:08 AM, Ary Junior <ary...@gm...> wrote: > Hi, thanks for your reply... I'm thinking about create my own > CrossoverOperator based on source code: > > > http://jgap.cvs.sourceforge.net/jgap/jgap/src/org/jgap/impl/CrossoverOperator.java?view=log > > My genotype is ever an DoubleGene[] array with n*6 elements. What do you > think? > > > On Wed, Jun 4, 2008 at 9:18 PM, socratesone <soc...@gm...> wrote: > >> >> Having a custom crossover function seems to me the better approach, >> however >> that doesn't necessarily mean that creating custom genes is a bad idea. >> You >> might want to go with both. >> >> For instance: >> Gene[] genotype1 = new Gene[6]; >> Gene[] genotype2 = new Gene[6]; >> >> genotype1[0] = new DoubleGene(conf, 0.5, 1.5); // same goes for 1 and 2 in >> the array >> genotype1[3] = new CustomGene(conf, 0.00, 360.00); // same goes for 4 and >> 6 >> in the array >> >> genotype2[0] = new DoubleGene(conf, 0.5, 1.5); >> genotype2[3] = new CustomGene(conf, 0.00, 360.00); >> >> Gene[] newGenotype = CustomCrossover(genotype1, genotype2); >> >> Creating a custom crossover would allow you to alter whatever genes you >> wanted, either by array index or, if you decide to go with custom genes, >> by >> the gene subclass. >> >> Creating a custom gene would allow greater flexibility when making >> changes, >> clearly identify it in the code as a different kind of Gene (which it is) >> and would give more information to the custom crossover function. >> Determining the gene based on subclass rather than array index may also >> allow you to incorporate additional genes into individuals through >> mutation, >> letting a "smart" custom crossover function adapt to more (or less) than 6 >> genes, if you ever decided to change the genotype class or create a >> sub-class that can handle a dynamic array length. >> >> >> Ary Junior-3 wrote: >> > >> > Hi, in my application, each individual have 6 genes, see below: >> > >> > ... >> > Gene[] genotype = new Gene[6]; >> > genotype[0] = new DoubleGene(conf, 0.5, 1.5); >> > genotype[1] = new DoubleGene(conf, 0.5, 1.5); >> > genotype[2] = new DoubleGene(conf, 0.5, 1.5); >> > genotype[3] = new DoubleGene(conf, 0.00, 360.00); >> > genotype[4] = new DoubleGene(conf, -90.00, 90.00); >> > genotype[5] = new DoubleGene(conf, -90.00, 90.00); >> > ... >> > >> > Now, I want to restrict the crossover operation. When two solutions are >> > mating, the genes 0, 1 and 2 must be swaped together. The same for genes >> > 3, >> > 4 and 5. To solve my problem I need define my own custom genes? >> > >> > Thanks very much!!! >> > >> > Ary Junior >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/Custom-genes--tp17410129p17659515.html >> Sent from the jgap-users mailing list archive at Nabble.com. >> >> >> ------------------------------------------------------------------------- >> Check out the new SourceForge.net Marketplace. >> It's the best place to buy or sell services for >> just about anything Open Source. >> http://sourceforge.net/services/buy/index.php >> _______________________________________________ >> jgap-users mailing list >> jga...@li... >> https://lists.sourceforge.net/lists/listinfo/jgap-users >> > > |