Subject: | |
From: | |
Reply To: | |
Date: | Fri, 19 Jul 2013 15:45:26 +0200 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
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
|
|
|