Sender: |
|
Date: |
Wed, 3 Dec 2008 11:53:27 -0500 |
MIME-version: |
1.0 |
Reply-To: |
|
Content-type: |
text/plain; charset=ISO-8859-1; format=flowed |
Subject: |
|
From: |
|
In-Reply-To: |
|
Content-transfer-encoding: |
7bit |
Comments: |
|
Parts/Attachments: |
|
|
Michael, I'd recently (in the last few months) made significant
modifications to the ES package, simplifying it and making it more
flexible. I may have screwed something up, let me look.
BTW: thanks for the bug reports, they're enormously helpful.
Sean
Michael Hart wrote:
> 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
|
|
|