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