ECJ-INTEREST-L Archives

December 2008

ECJ-INTEREST-L@LISTSERV.GMU.EDU

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

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

Print Reply
Subject:
From:
Michael Hart <[log in to unmask]>
Reply To:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Date:
Wed, 3 Dec 2008 14:40:30 +1100
Content-Type:
multipart/mixed
Parts/Attachments:
text/plain (816 bytes) , ESSelection.patch (1343 bytes) , MuCommaLambdaBreeder.patch (1140 bytes)
Hi,

I just started running into issues with two breed threads and  
ESSelection when mu+lambda are equal and not even (ie, mu = lambda =  
13). Basically the parent index was one higher than it should be and  
an ArrayIndexOutOfBoundsException was being thrown.

I started digging around the code and I think ESSelection.java may  
require a little TLC. Firstly, the produce(int, EvolutionState, int)  
method seems to use a different way of calculating the parent than  
either the breeder or the other produce method does. Secondly, I think  
there's an off-by-one error in the way the current position is  
determined when multiple threads are involved and lambda is not even.

I've attached a couple of patches that I think do the right thing (the  
breeder patch is just a clean-up to clarify the code a little).

Cheers,

Michael


ATOM RSS1 RSS2