Print

Print


Hello Norzila,

Okay, now I think I understand.  I see that in ECJ 25, changing
app/moosuite/moosuite.params to use spea2 causes the various examples
(zdt1, etc) to issue a NullPointerException in SPEA2Breeder.setup().  You
attempted to fix the bug in SPEA2Breeder, and that is when you started
receiving the ArrayIndexOutOfBoundsException.  You also note that the
kur-spea2 objective is broken.

The SPEA2Breeder bug is part of a suite of bugs that ECJ 25 introduced as
we moved from representing populations as arrays to ArrayLists.  We believe
we have fixed most of these bug in the development version of ECJ
<https://github.com/GMUEClab/ecj>, and we don't know of any current bugs
with SPEA2, though we are still verifying the affected algorithms (see this
issue <https://github.com/GMUEClab/ecj/issues/31>).

The kur-spea2 bug is known <https://github.com/GMUEClab/ecj/issues/8> but
not yet fixed—we were holding off because we thought we wanted to
reorganize how all the moosuite examples work.  That might not happen
anymore, though, so I'll try and commit a fix to kur-spea2 later this
morning.

Thanks,
Siggy

On Wed, Nov 29, 2017 at 5:30 AM, Norliza Abdullah <
[log in to unmask]> wrote:

> Hi Eric,
>
> I try to run using sphere,qv,zdt1-zdt6.
>
> And also just to let you know the parameter kur-spea2 cannot be used
> because the problem does not exist in the Moosuite.java.
>
> Thanks a lot.
>
> Liza
>
> On 29 November 2017 at 00:06, Eric 'Siggy' Scott <[log in to unmask]> wrote:
>
>> Hello Norliza,
>>
>> Could you share the parameter file you are using?
>>
>> We've been working on fixing some issues
>> <https://github.com/eclab/ecj/issues/31> that affect SPEA2 in ECJ 25,
>> but I'd like to try and reproduce the exact exception you're getting.
>>
>> Thanks,
>> Siggy
>>
>> On Tue, Nov 28, 2017 at 2:52 PM, Norliza Abdullah <
>> [log in to unmask]> wrote:
>>
>>> Hi,
>>>
>>> I am running the moosuite problem using SPEA2 in ECJ25, and this error
>>> occurred (after I change this line for (int i = 0; i < reduceBy.length; i++)
>>>
>>> FloatVectorSpecies is using polynomial mutation as its global mutation
>>> type, but alternative-polynomial-version is not defined.  Assuming 'true'
>>> Subpop 0 best fitness of generation Fitness: [-20.82654708545083
>>> -8.87740942183433]
>>> Strength: 41.0
>>> Distance: 0.1170973657236295 Fitness: 0.1170973657236295
>>> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -50
>>>         at java.util.ArrayList.elementData(ArrayList.java:418)
>>>         at java.util.ArrayList.set(ArrayList.java:446)
>>>         at ec.multiobjective.spea2.SPEA2Breeder.buildArchive(SPEA2Breed
>>> er.java:138)
>>>         at ec.multiobjective.spea2.SPEA2Breeder.loadElites(SPEA2Breeder
>>> .java:61)
>>>         at ec.simple.SimpleBreeder.breedPopulation(SimpleBreeder.java:2
>>> 57)
>>>         at ec.simple.SimpleEvolutionState.evolve(SimpleEvolutionState.j
>>> ava:104)
>>>         at ec.EvolutionState.run(EvolutionState.java:482)
>>>         at ec.Evolve.main(Evolve.java:773)
>>>
>>> But when I change it back to ECJ previous version it's running fine. The
>>> difference between both SPEA2Breeder.java in ECJ25 and the previous one is
>>> one called individual size (ECJ25) instead of the previous one called
>>> individual length.
>>>
>>
>>
>>
>> --
>>
>> Ph.D student in Computer Science, George Mason University
>> Web Director, Journal of Mason Graduate Research
>> http://mason.gmu.edu/~escott8/
>>
>
>
>
> --
> Thank you.
>
> Besh Wishes,
>
> Norliza Abdullah
>
>


-- 

Ph.D student in Computer Science, George Mason University
Web Director, Journal of Mason Graduate Research
http://mason.gmu.edu/~escott8/