jgap-users Mailing List for JGAP
Brought to you by:
klausikm
You can subscribe to this list here.
2003 |
Jan
(3) |
Feb
(4) |
Mar
(23) |
Apr
(5) |
May
(6) |
Jun
(23) |
Jul
(5) |
Aug
(9) |
Sep
(5) |
Oct
(1) |
Nov
(2) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(3) |
Feb
(3) |
Mar
(1) |
Apr
|
May
(1) |
Jun
(1) |
Jul
(2) |
Aug
(2) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
|
2005 |
Jan
(1) |
Feb
(1) |
Mar
(2) |
Apr
(1) |
May
(2) |
Jun
(5) |
Jul
(6) |
Aug
(4) |
Sep
(6) |
Oct
(4) |
Nov
(4) |
Dec
(8) |
2006 |
Jan
(8) |
Feb
(6) |
Mar
(3) |
Apr
(10) |
May
(8) |
Jun
(8) |
Jul
(5) |
Aug
(2) |
Sep
(15) |
Oct
(2) |
Nov
(3) |
Dec
(2) |
2007 |
Jan
(14) |
Feb
(16) |
Mar
(23) |
Apr
(8) |
May
(8) |
Jun
(14) |
Jul
(4) |
Aug
(20) |
Sep
(4) |
Oct
(22) |
Nov
(15) |
Dec
(12) |
2008 |
Jan
(18) |
Feb
(4) |
Mar
(9) |
Apr
(43) |
May
(36) |
Jun
(28) |
Jul
(17) |
Aug
(10) |
Sep
(25) |
Oct
(4) |
Nov
(9) |
Dec
(10) |
2009 |
Jan
(16) |
Feb
(19) |
Mar
(21) |
Apr
(8) |
May
(12) |
Jun
(2) |
Jul
(5) |
Aug
(16) |
Sep
(11) |
Oct
(9) |
Nov
(12) |
Dec
(21) |
2010 |
Jan
(44) |
Feb
(23) |
Mar
(9) |
Apr
(1) |
May
(9) |
Jun
(8) |
Jul
(3) |
Aug
(10) |
Sep
(12) |
Oct
(5) |
Nov
(3) |
Dec
(8) |
2011 |
Jan
(2) |
Feb
(2) |
Mar
(6) |
Apr
(9) |
May
(5) |
Jun
(1) |
Jul
(1) |
Aug
(3) |
Sep
(2) |
Oct
(1) |
Nov
(5) |
Dec
(9) |
2012 |
Jan
(5) |
Feb
(3) |
Mar
|
Apr
(12) |
May
(23) |
Jun
(5) |
Jul
(12) |
Aug
(1) |
Sep
(7) |
Oct
(4) |
Nov
(2) |
Dec
(2) |
2013 |
Jan
(8) |
Feb
(13) |
Mar
(1) |
Apr
(5) |
May
(4) |
Jun
(7) |
Jul
(2) |
Aug
(4) |
Sep
(2) |
Oct
(12) |
Nov
|
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
(1) |
Jun
|
Jul
(6) |
Aug
|
Sep
|
Oct
(5) |
Nov
(2) |
Dec
|
2015 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Abdallah R. <ra...@al...> - 2018-02-11 17:26:42
|
does jgap support long integer gene? if not, what should i do to have a long integer gene? regards Abdallah Rayhan |
From: bijoy p. <bij...@gm...> - 2015-12-09 04:34:38
|
I am new to jgap so i thought of compiling SimpleExample.java in eclipse. But I get an error as mentioned below- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger at org.jgap.gp.GPFitnessFunction.<clinit>(GPFitnessFunction.java:29) at example_gp.SimpleExample.start(SimpleExample.java:83) at example_gp.SimpleExample.main(SimpleExample.java:136) Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 3 more Any Help would be appreciated. |
From: Klaus M. <jg...@kl...> - 2015-09-11 08:28:14
|
Hello Rachid, you can use any custom method you like. It is the following steps: 1) Read your custom file in a proper data structure 2) Create instances of Genes (and Chromosomes out of this genes) For the chromosomes you could use the following constructor: public Chromosome(final Configuration a_configuration, Gene[] a_initialGenes) throws InvalidConfigurationException { 3) Put all chromosome objects into a Population object 4) create a Genotype object from this Population object Sorry, that my answer is a little blurry, but it is an open field and you are free to do whatever you like here. JGAP allows to instantiate populations (and chromosomes) on your own. Best Klaus <http://www.klaus-meffert.de> www.klaus-meffert.de _____ From: rachid el amrani [mailto:rac...@ya...] Sent: Thursday, September 3, 2015 10:30 PM To: jga...@li... Subject: Re: [jgap-users] Reading configuration from file !! Hello Klaus, Please are there any methods to import my initial population from a file (big numbers of lines for each gene ), or it's the same solution above? Thanks _____ View this message in context: Re: <http://jgap.996312.n3.nabble.com/Reading-configuration-from-file-tp665p1096 .html> Reading configuration from file !! Sent from the jgap-users mailing <http://jgap.996312.n3.nabble.com/jgap-users-f3.html> list archive at Nabble.com. |
From: rachid el a. <rac...@ya...> - 2015-09-03 20:30:23
|
Hello Klaus,Please are there any methods to import my initial population from a file (big numbers of lines for each gene ), or it's the same solution above? Thanks -- View this message in context: http://jgap.996312.n3.nabble.com/Reading-configuration-from-file-tp665p1096.html Sent from the jgap-users mailing list archive at Nabble.com. |
From: Klaus M. <jg...@kl...> - 2015-07-25 09:31:52
|
Hi Tery, you can find the file in the following directory: examples\src\examples\gp\anttrail There also is another trail file available in the same sirectory. Maybe you need to copy it somewhere else or reference the directory explicitely via the command line Best Klaus JGAP Admin > -----Original Message----- > From: Terry Healy [mailto:th...@bn...] > Sent: Friday, July 24, 2015 4:52 PM > To: jga...@li... > Subject: [jgap-users] santafe.trail file for 'Ants' example? > > I'm trying to run the AntTrailProblem example using the > current (3.6.3) JGap download, but it is looking for a file > called .santefe.trail that I cannot locate. > > Can someone tell me where I can find this file? > > Thanks > > -------------------------------------------------------------- > ---------------- > _______________________________________________ > jgap-users mailing list > jga...@li... > https://lists.sourceforge.net/lists/listinfo/jgap-users |
From: Terry H. <th...@bn...> - 2015-07-24 14:53:15
|
I'm trying to run the AntTrailProblem example using the current (3.6.3) JGap download, but it is looking for a file called .santefe.trail that I cannot locate. Can someone tell me where I can find this file? Thanks |
From: Alessandro Re <al...@al...> - 2015-03-10 19:23:59
|
Hello, I'm using JGAP for a GP project, and - first of all - thanks to developers and contributors. I am in the need of having a simple hierarchy of types, and I think that sub-types will do. But from what I saw, in the doc and the sources, it looks like that sub-type support is partial; for example, you cannot specify sub types in operators like Add, or Sub, or in terminals like Variable, but you can use them, for example, in Terminal. Why is it so? Is it a design choice or something that will be done in the future? Thanks! ~Ale |
From: Reginald J. <reg...@gm...> - 2015-01-03 06:34:00
|
I'm trying to solve TSP's with a set end point. I know I can use setStartOffset to force a starting location. Is there a way to force a finish point in the TSP? |
From: Manuel C. <man...@gm...> - 2014-11-18 13:42:15
|
Somebody can help me with examples using paralleling JGAP. Thanks for your help Diduch |
From: neelofar j. <nee...@gm...> - 2014-11-03 06:49:31
|
Hi, I have data from bug repository having four attributes ep, ef, np, nf (execute passed, execute failed, not executed passed, not executed failed). Data contains millions for rows, each having values for these four parameters. One row out of these millions rows represent buggy line of code. My goal is to develop a formula which using all these four parameters distinguish buggy line from non buggy lines of code. A known solution to this problem is c1*ef + c2*np where is c1 is very large number and c2 is very small as compared to c1. c1 can be 1 if c2 is <<<1. I want to find weights of ef and np (or c1 and c2 values in such away that c1+c2 = 100 in any case) that will best distinguish buggy line from non buggy line of code. Final result (Best formula for bug localization) should be displayed in this way 45ef + 55np 55ef + 45np 90ef + 10np I tried using 1..100 as terminal, ef and np as variables and multiply and add as operator but I am getting solutions like this (((4.0 + (32.0 * ef)) + ef) + ef) * ((ef * ef) + ((ef * ef) + np)) I googles a lot but could not find how can I 1. Use my terminals as inputs to operators (passing any value between 1 and 100 to add) 2. How can I control which variable/terminal should be passes as first parameter to ADD and which one as second. Please suggest how can I solve this problem. Best Regards, Neelofar |
From: Stupar A. <st...@le...> - 2014-10-30 17:52:54
|
Hi, A follow up to my previous question. As I understand, the purpose of BulkFitnessFunction is to calculate a fitness relative to other individuals. So far so good. But, as far as I can see, it is never the case (except in the very 1st iteration) that the ENTIRE population is passed to the BulkFitnessFunction's evaluate(...) method. Instead, the NEW individuals are passed (resulting from mutation and crossover). When I call a_chromosomes.getChromosomes(), I always get some value which is a proportion of the total population set...now, this would make sense for a regular fitness function, because you want to avoid evaluating the individuals which did not change. However, with a bulk fitness function, if there are new individuals, this might have an impact on the fitness of the previously existing, non-changed individuals. It seems that BulkFitnessFunction, after the 1st iteration, only evaluates the NEW individuals relative to each other, not ALL of the individuals (including new and preserved old) relative to each other. This sort of defeats the purpose of the BulkFitnessFunction for some (many?) applications. Is my conclusion correct or am I wrong somewhere? Is there some method then to gain access to the ENTIRE population in the BulkFitnessFunction's evaluate(...) method? Does the call to getPopulation() in Genotype get the entire population? Is the solution then to pass a reference to the Genotype object I am calling evolve() on to my BulkFitnessFunction implemetantion, so that the evaluate(...) method can then have access to the entire population, and not just the newly created individuals? Thanks a lot for any response. Best, Andrija Stupar PhD student, ETH Zurich |
From: Stupar A. <st...@le...> - 2014-10-30 13:27:38
|
Hi all, I have a question I guess about the basic functioning of JGAP. I am using the DefaultConfiguration (35% crossover rate, 8.3% (1/12) mutation rate with BestChromosomeSelector with a rate of 90%) with a BulkFitnessFunction. What am I trying to figure out for my particular optimization problem is the number of individual evaluations required in a GA to match closely the results of a brute force optimization (one which evaluates every possibility), in order to properly set the population size and number of evolutions. Now, I would expect that the total number of different individuals for a particular pop. size. and number of evolutions would be approximately Pop. Size + (Pop. Size)*(mutation rate + crossover rate)*(# Evolutions - 1) Since in the first evolution all individuals must be evaluated, and then afterwards the % of new ones which results from crossover and mutation. And this actually seems to be the case IF the BulkFitnessFunction is called every evolution...but for some reason, this is not the case. If I run 40 evolutions for example, only in e.g. 29 cases will the BulkFitnessFunction's evaluate() method be called. Some evolutions are skipped. Why? I cannot seem to find anything in the documentation about this. How can I force it to evaluate the fitness at each evolution, and even if I can do this, should I? Thanks a lot, Andrija Stupar |
From: Jakub S. <jak...@gm...> - 2014-10-30 10:33:48
|
In your *Breeder* override *applyGeneticOperators* and add code that can pick concrete *Gene* parts of the *CompositeGene* and apply *Mutation* accordingly. Or or in your *CompositeGene* override *applyMuatation* so that it can pick concrete *Gene* parts of the *CompositeGene* and apply *Mutation* accordingly Somewhere you have to have logic that can *Call this (applyMutation) method for each gene contained in the CompositeGene.* On Mon, Oct 27, 2014 at 7:38 PM, Emmanouil Kardaris <emm...@gm...> wrote: > Hello everyone, > > I would be really pleased if anyone knows how is possible to avoid > this exception: > > Exception in thread "main" java.lang.RuntimeException: applyMutation > may not be called for a CompositeGene. Call this method for each gene > contained in the CompositeGene. > at org.jgap.impl.CompositeGene.applyMutation(CompositeGene.java:628) > at org.jgap.impl.MutationOperator.mutateGene(MutationOperator.java:266) > at org.jgap.impl.MutationOperator.operate(MutationOperator.java:230) > at org.jgap.BreederBase.applyGeneticOperators(BreederBase.java:141) > at org.jgap.impl.GABreeder.evolve(GABreeder.java:135) > at org.jgap.Genotype.evolve(Genotype.java:233) > at org.jgap.Genotype.evolve(Genotype.java:250) > > I actually have a composite gene chromosome and when I try to evolve I > get the exception. > > Thank you, > Emmanouil. > > > ------------------------------------------------------------------------------ > _______________________________________________ > jgap-users mailing list > jga...@li... > https://lists.sourceforge.net/lists/listinfo/jgap-users > -- Jakub |
From: Emmanouil K. <emm...@gm...> - 2014-10-27 18:38:41
|
Hello everyone, I would be really pleased if anyone knows how is possible to avoid this exception: Exception in thread "main" java.lang.RuntimeException: applyMutation may not be called for a CompositeGene. Call this method for each gene contained in the CompositeGene. at org.jgap.impl.CompositeGene.applyMutation(CompositeGene.java:628) at org.jgap.impl.MutationOperator.mutateGene(MutationOperator.java:266) at org.jgap.impl.MutationOperator.operate(MutationOperator.java:230) at org.jgap.BreederBase.applyGeneticOperators(BreederBase.java:141) at org.jgap.impl.GABreeder.evolve(GABreeder.java:135) at org.jgap.Genotype.evolve(Genotype.java:233) at org.jgap.Genotype.evolve(Genotype.java:250) I actually have a composite gene chromosome and when I try to evolve I get the exception. Thank you, Emmanouil. |
From: Stupar A. <st...@le...> - 2014-10-22 16:48:29
|
Hi, I'm a user of JGAP and I would like to ask whether some things are possible with the package (i.e. if they are already implemented - then where, if not, whether I can implement them by extending some of the classes, and if yes, which ones?). I am optimizing a physical system (an electrical power converter) for losses and volume. It is therefore a multi-objective optimization. Now, I want to compute at the end, not a single design, but the set of pareto-optimal designs - in other words, non-dominated designs - a series of compromises between losses and volume which are "best" for the given parameters - i.e., for each combination of (loss,volume) to be pareto-optimal i.e. non-dominated there must be no other design which has the same losses and lower volume, or the same volume and lower losses, or both lower losses and lower volume. My population after the final evolution should hopefully contain all such solutions (or some very close approximation of that set). >From a theoretical point of view, this can be obtained using the maximin function ( link.springer.com/content/pdf/10.1007/3-540-36970-8_1.pdf ), which compares all individuals to one another, and then gives a fitness of < 0 for non-dominated (pareto-optimal) designs, and a fitness of > 0 for dominated designs. Therefore I need the following: 1) I only want to discriminate between fitness > 0 and fitness < 0. The results (loss and volume) are not scaled (because scaling the volume would skew my results), hence a fitness of -145 vs. a fitness -5 is not really meaningful in a comparison sense - I only know that -2 is better than 2, not necessarily that -50 is better than -5 (both may be on the pareto front). 2) I wish to therefore keep for the next generation all individuals with fitness < 0. The fitness > 0 ones, some can stay, some can go, the standard GA way, doesn't matter. But the fitness < 0 individuals should always be preserved because they are potential members of the pareto set, and this set is what I am after. The question is, how can I do this in JGAP? I know I can implement maximin by creating my own BulkFitnessFunction. However questions remain: 1) Can I use negative fitness values? The documentation seems to suggest I can't (must be a positive double). But is this true even if I implement my own selector? 2) How do I insure that all individuals with a given fitness are promoted to the next generation? Is it enough to implement my own subclass of BestChromosomeSelector? 3) Keeping in mind what said above about the fitness value (that only whether it is less or greater than zero is truly meaningful), does the fitness value have any other influence on how JGAP operates (e.g. who it selects for crossover or mutation, or something else) other than inside the selector classes? The documentation seems to suggest that the fitness value must be meaningful in terms of comparison (i.e. the difference between fitness 1 and fitness 10 must be the same proportionally as between fitness 10 and fitness 100), but does this requirement hold if I implement my own selector, which only essentially discriminated between fitness > 0 and fitness < 0? Has anybody done something similar with JGAP? Maximin seems to be a common approach with GA. I appreciate any answers or hints :) Thanks a lot! Best, Andrija Stupar PhD Student, ETH Zurich |
From: Swen G. <swe...@gm...> - 2014-07-29 14:47:27
|
Hi Kurt, Laszlo's suggestion is working fine for me though it took some time to find the right balance between mutation rate and xover rate. I am using JGAP to generate GP program trees and I found a couple of issues with the xover in general which I fixed for my own solution. You can also experiment with different selectors which allows a better fitness of your overall gene pool depending on your problem. I normally go for a high mutation rate in the beginning and change it when the average over the whole pool of solutions has reached a certain fitness threshold. Then I increase xover ration instead of allowing the chromosomes to go unchanged into the new pool. Best, Swen On 22 July 2014 14:34, Laszlo Illyes <ill...@sa...> wrote: > Hi Kurt, > > This is a problem of the structure of your problem I think. > To not lock in a solution You have to increase the mutation probability. > But if do so, it came a time when You are in the random search situation. > The genetic algorithm has to converge to a solution for all members, not > if You are in genetic drift situation when two good solutions alternate and > have similar structure and similar value of the fitness. > > Solutions are many. > 0. Store the best solutions in a solution pool. (for all runs) > > 1. Start with a high mutation probability for 20-30 generations (depends > on problem), let it be (20-40%) and decrease this probability after. > 2. Start with a high mutation probability and change it over generations. > > I don't know if it is possible in jgap, I use it 5 years ago. > > Mutation explores the solution space. > Crossover is the operator that makes the convergence of population. > > Regards > > Laszlo > > > ----- Original Message ----- > From: Kurt Whittemore <kur...@gm...> > To: jga...@li... > Sent: Mon, 21 Jul 2014 02:23:31 +0300 (EEST) > Subject: [jgap-users] keep population evolving > > I'm using jgap to evolve some solutions. If a solution has already been > found, then I assign a really low fitness value because I want to find the > maximum number of different "good" solutions. After several generations, > all of the individuals in my population have the same configuration and > they don't change, but they all have a low fitness score. I thought that > the population would just keep randomly moving around if all of the > individuals had a low fitness score, but they just seem to stay the same > How should I prevent the population from becoming "locked" like this. > > For now, I think I will just kind of have my program manually change a > chromosome to a random configuration if the lowest fitness value is > assigned. I'm just curious if there are other solutions though. > > Thanks for any help and information you have to offer! > > Best, > Kurt > > > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > jgap-users mailing list > jga...@li... > https://lists.sourceforge.net/lists/listinfo/jgap-users > > |
From: He-chien T. <dep...@gm...> - 2014-07-23 16:14:38
|
These are what I did for that: 1. Add more functions and terminals 2. Tune mutation rate every several generations by how similar the fitness between individuals in the population. 3. Assign lower tuned fitness if there's already many individuals with similar raw fitness. I think measuring structure similarity of individuals is also possible but which costs more efforts. |
From: Kurt W. <kur...@gm...> - 2014-07-23 16:03:48
|
Thanks for the information everyone. I may explore these ideas sometime in the future. For now though, what I tried suits my needs. For any individual that had been around for too many generations, I just basically killed it and randomly assigned the values of all of the genes. I'm getting the behavior I want now, and I found multiple solutions which match what I was looking for. Best, Kurt On Wed, Jul 23, 2014 at 8:55 AM, GPMatias <ign...@gm...> wrote: > Hi Kurt, It does not matter if you give them a low fitness value > really, If you want to explore the as much as you can the different > solutions you should use weightroulette as natural selector to get > diversity. And to avoid the population to be stuck in a local minimum > or maximum you may want to add a mutation operator, that would do the > trick ;). > > How is your configuration now?. > > Best regards, Matias. > > On Sun, Jul 20, 2014 at 8:23 PM, Kurt Whittemore > <kur...@gm...> wrote: > > I'm using jgap to evolve some solutions. If a solution has already been > > found, then I assign a really low fitness value because I want to find > the > > maximum number of different "good" solutions. After several generations, > > all of the individuals in my population have the same configuration and > they > > don't change, but they all have a low fitness score. I thought that the > > population would just keep randomly moving around if all of the > individuals > > had a low fitness score, but they just seem to stay the same How should > I > > prevent the population from becoming "locked" like this. > > > > For now, I think I will just kind of have my program manually change a > > chromosome to a random configuration if the lowest fitness value is > > assigned. I'm just curious if there are other solutions though. > > > > Thanks for any help and information you have to offer! > > > > Best, > > Kurt > > > > > ------------------------------------------------------------------------------ > > Want fast and easy access to all the code in your enterprise? Index and > > search up to 200,000 lines of code with a free copy of Black Duck > > Code Sight - the same software that powers the world's largest code > > search on Ohloh, the Black Duck Open Hub! Try it now. > > http://p.sf.net/sfu/bds > > _______________________________________________ > > jgap-users mailing list > > jga...@li... > > https://lists.sourceforge.net/lists/listinfo/jgap-users > > > |
From: GPMatias <ign...@gm...> - 2014-07-23 15:56:37
|
Hi Kurt, It does not matter if you give them a low fitness value really, If you want to explore the as much as you can the different solutions you should use weightroulette as natural selector to get diversity. And to avoid the population to be stuck in a local minimum or maximum you may want to add a mutation operator, that would do the trick ;). How is your configuration now?. Best regards, Matias. On Sun, Jul 20, 2014 at 8:23 PM, Kurt Whittemore <kur...@gm...> wrote: > I'm using jgap to evolve some solutions. If a solution has already been > found, then I assign a really low fitness value because I want to find the > maximum number of different "good" solutions. After several generations, > all of the individuals in my population have the same configuration and they > don't change, but they all have a low fitness score. I thought that the > population would just keep randomly moving around if all of the individuals > had a low fitness score, but they just seem to stay the same How should I > prevent the population from becoming "locked" like this. > > For now, I think I will just kind of have my program manually change a > chromosome to a random configuration if the lowest fitness value is > assigned. I'm just curious if there are other solutions though. > > Thanks for any help and information you have to offer! > > Best, > Kurt > > ------------------------------------------------------------------------------ > Want fast and easy access to all the code in your enterprise? Index and > search up to 200,000 lines of code with a free copy of Black Duck > Code Sight - the same software that powers the world's largest code > search on Ohloh, the Black Duck Open Hub! Try it now. > http://p.sf.net/sfu/bds > _______________________________________________ > jgap-users mailing list > jga...@li... > https://lists.sourceforge.net/lists/listinfo/jgap-users > |
From: Laszlo I. <ill...@sa...> - 2014-07-22 13:50:51
|
Hi Kurt, This is a problem of the structure of your problem I think. To not lock in a solution You have to increase the mutation probability. But if do so, it came a time when You are in the random search situation. The genetic algorithm has to converge to a solution for all members, not if You are in genetic drift situation when two good solutions alternate and have similar structure and similar value of the fitness. Solutions are many. 0. Store the best solutions in a solution pool. (for all runs) 1. Start with a high mutation probability for 20-30 generations (depends on problem), let it be (20-40%) and decrease this probability after. 2. Start with a high mutation probability and change it over generations. I don't know if it is possible in jgap, I use it 5 years ago. Mutation explores the solution space. Crossover is the operator that makes the convergence of population. Regards Laszlo ----- Original Message ----- From: Kurt Whittemore <kur...@gm...> To: jga...@li... Sent: Mon, 21 Jul 2014 02:23:31 +0300 (EEST) Subject: [jgap-users] keep population evolving I'm using jgap to evolve some solutions. If a solution has already been found, then I assign a really low fitness value because I want to find the maximum number of different "good" solutions. After several generations, all of the individuals in my population have the same configuration and they don't change, but they all have a low fitness score. I thought that the population would just keep randomly moving around if all of the individuals had a low fitness score, but they just seem to stay the same How should I prevent the population from becoming "locked" like this. For now, I think I will just kind of have my program manually change a chromosome to a random configuration if the lowest fitness value is assigned. I'm just curious if there are other solutions though. Thanks for any help and information you have to offer! Best, Kurt |
From: Kurt W. <kur...@gm...> - 2014-07-20 23:23:37
|
I'm using jgap to evolve some solutions. If a solution has already been found, then I assign a really low fitness value because I want to find the maximum number of different "good" solutions. After several generations, all of the individuals in my population have the same configuration and they don't change, but they all have a low fitness score. I thought that the population would just keep randomly moving around if all of the individuals had a low fitness score, but they just seem to stay the same How should I prevent the population from becoming "locked" like this. For now, I think I will just kind of have my program manually change a chromosome to a random configuration if the lowest fitness value is assigned. I'm just curious if there are other solutions though. Thanks for any help and information you have to offer! Best, Kurt |
From: HS C. <hs....@gm...> - 2014-05-27 19:44:47
|
Hi! First of, thanks for the great work on jgap! Once you wrap your head around a concept or two, the ease of use, without sacrificing power is amazing. I just have one small request - is there ANY chance we can get a recent version of jgap (like 3.6.2) in a central maven repo? Right now I'm attempting to install the artifact in my local repo, so that I can pull it in to the project I'm working on via the usual maven mechanism, but having some trouble with test failures and what not. (The project btw is an attempt to evolve an AlphaBeta search eval function). Best regards. -- |@|@|@|@| |@|@|@|@| |@|@|@|@| _____ |@|@|@|@| |@|@|@|@| /\_T_T_/\ |@|@|@|@| |@|@|@|@||/\ T T /\||@|@|@|@| ~/T~~T~||~\/~T~\/~||~T~~T\~ \|__|_| \(-(O)-)/ |_|__|/ _| _| \\8_8// |_ |_ |(@)] /~~[_____]~~\ [(@)| ~ ( | | ) ~ [~` ] [ '~] |~~| |~~| | | | | _<\/>_ _<\/>_ /_====_\ /_====_\ HS Coetzee. Code On. |
From: Massimiliano S. - C. <mas...@cr...> - 2014-04-23 14:28:54
|
For the problem i'm trying to solve with JGAP i've a Chromosome made by IntegerGene(s). In my problem the order of the genes doesn't count (1 2 3 4 is the same solution as 1 3 2 4 or 4 1 2 3 ...) So after the run , if I order the results by fitness, I end up with a lot of chromosomes representing the same solution with the same fitness... I avoid the "ordered" (identical) duplicates using the | BestChromosomesSelector with|| setDoubletteChromosomesAllowed(false);| But Is there a way to avoid the generation of "unordered" duplicates? More details: If it can help, actually the problem I'm trying to solve is the one of finding some lists of N similar couples of objects in a pool of M objects. (cardinality : for example 30 couples on 100 objects, or 10 on 50 or 40 on 1000... ) A list of couples is represented by a chromosome. I've a similarity matrix that I use as fitness function ... I have N integer genes which values represent the "index" of the couples in a list of all the couples. 1:[A,B] 2:[A,C] 3:[A,D] 4:[B,C] 5:[B,D] 6:[C,D] so for example the chromosomes : {2,5} represents the list : {[A,C][B,D]} {1,6} represents the list : {[A,B][C,D]} So I have to avoid those cases: - [A,B][B,A] : in the list the couples are "ordered" so i don't have this case. (OK) - [A,A ] genes or [ A, B] [B,C] couples (avoid it by setting fitness=0 to the chromosomes with duplicate objects or using Supergene) (OK) - Chromosome1: {[A,B][C,D]} , Chromosome2: {[A,B][C,D]} duplicates (i avoid it with BestChromosomeSelector) (OK) -Now I need to avoid the case : Chromosome1 {[A B][C D]} , Chromosome2:{[C D][A B]} how can I do it ? Thank you, -- Max |
From: Massimiliano S. - C. <mas...@cr...> - 2014-04-23 11:27:46
|
Hello, I'm developing an algorithm with JGAP using Supergenes AveragingCrossoverOperator crashes when using that kind of genes telling cannot cast it to IntegerGene. I can be wrong but I think it's because on line 222 of AveragingCrossoverOperator.java there is a if (secondGenes[j] instanceof CompositeGene) { instead of if (secondGenes[j] instanceof ICompositeGene) { I hope it's helpful, if not, excuse me :) BTW, Congratulations for your work! have a good day. -- Max |
From: Swen G. <swe...@gm...> - 2014-01-27 20:55:29
|
Hi, I am running several instances of the same GPProblem and I want to migrate individuals from one pool to another is there a way to insert a GPProgram using the PersistentRepresentation as it encodes all needed information. I cannot find an existent method but I might be looking in the wrong direction. i know that I could create a Chromosome from the representation but for GP that does not seem to be sufficient. Cheers, Swen |