ECJ-INTEREST-L Archives

July 2013

ECJ-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Date:
Fri, 19 Jul 2013 16:01:11 +0200
Reply-To:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
8bit
In-Reply-To:
Content-Type:
text/plain; charset=utf-8
From:
Bojan Janisch <[log in to unmask]>
Parts/Attachments:
text/plain (75 lines)
Are you sure that they have nothing to do with each other?

I've seen (in the code) that the fitness is stored in an Individual and SizeFairCrossover handles these Individuals. I haven't tested other BreedingPipelines yet, but I also don't want to use a different pipeline, because it's better for my rules if I use SizeFairCrossoverBreeding.

Bojan

----- Ursprüngliche Mail -----
Von: "Sean Luke" <[log in to unmask]>
An: [log in to unmask]
Gesendet: Freitag, 19. Juli 2013 15:51:30
Betreff: Re: Getting generation of best fitness

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 

ATOM RSS1 RSS2