fitness doesn't have anything to do with SizeFairCrossover, and certainly has nothing to do with the dump below. Did you try replacing SizeFairCrossover with some other crossover? I'm afraid I cannot answer your question. Sean On Jul 19, 2013, at 9:45 AM, Bojan Janisch wrote: > Hey Sean, > > I've implemented a new Fitness which has almost the same methods like Koza-Fitness. But now ECJ is Breeding forever after the first evaluation. I'm using SizeFairCrossover BreedingPipeline and my Threaddump looks so: > > "Thread-11" prio=10 tid=0x00002aef202c7000 nid=0x3a5c runnable [0x00002aef26076000] > java.lang.Thread.State: RUNNABLE > at java.lang.Integer.hashCode(Integer.java:733) > at java.util.HashMap.put(HashMap.java:372) > at ec.gp.breed.SizeFairCrossoverPipeline.traverseTreeForDepth(SizeFairCrossoverPipeline.java:645) > at ec.gp.breed.SizeFairCrossoverPipeline.produce(SizeFairCrossoverPipeline.java:330) > at ec.breed.MultiBreedingPipeline.produce(MultiBreedingPipeline.java:135) > at ec.simple.SimpleBreeder.breedPopChunk(SimpleBreeder.java:377) > at ec.simple.SimpleBreederThread.run(SimpleBreeder.java:483) > at java.lang.Thread.run(Thread.java:662) > > Locked ownable synchronizers: > - None > > > Does my fitness miss something crucial? > > Here's an abstract of my methods: > > setFitness(EvolutionState, float) //stores the fitness value and the generation in class variables > fitness() > isIdealFitness() > equivalentTo(Fitness) > betterThan(Fitness) > fitnessToString() > fitnessToStringForHumans() > createdAt() //returns the generation when the fitness was created > readFitness(EvolutionState, LineNumberReader) > writeFitness(EvolutionState, DataOutput) > readFitness(EvolutionState, DataInput) > setToMeanOf(EvolutionState, Fitness[]) > > > If I change my Fitness to Koza again, I don't have any problems. > > Greetings > > Bojan > > ----- Ursprüngliche Mail ----- > Von: "Sean Luke" <[log in to unmask]> > An: [log in to unmask] > Gesendet: Freitag, 19. Juli 2013 15:19:43 > Betreff: Re: Getting generation of best fitness > > On Jul 18, 2013, at 10:10 AM, Bojan Janisch wrote: > >> is there a way to get the generation of the individual which holds the best fitness? > > ECJ does not do this: you'll have to store the evaluation date of individuals yourself. > > Sean