Hi Eva,
I too am using SPEA2 and am confused by this and other issues. I
experienced similar behaviour to that described below, and initially
assumed "top block" must refer to the *end* of the individuals array,
rather than the *start*.
However, looking at the SPEA2TournamentSelection class:
int i =
state.random[thread].nextInt(((SPEA2Subpopulation)state.population.subpops[subpopulation]).archiveSize);
We can see the the individual (which should be selected from the archive
only) will come from the *start* of the array, as the documentation states.
Is it possible there is a bug in the SPEA2 code? I have not received
the results I expected when trying a few experiments, and have seen
similar postings from others.
I have, as Sean suggested, contacted the author (Rob Hubley) but he's
currently unavailable. If Rob gets back to me I'll post his reply.
Kind Regards,
David
Eva Alfaro wrote:
> Dear all,
>
> Lately I have been using SPEA2 for a bankruptcy prediction problem.
> Everything seemed to work fine but once I got to analyse the final
> population of one of my runs the results didn't match what I expected to
> find.
>
> According to the documentation the archive is maintained at the top block
> of the individuals vector. Since I was getting "Truncating the archive"
> messages on the screen, I assumed that the archive would be filled with
> non-dominated individuals. That was not the case. In the top block of the
> population non-dominated individuals and dominated individuals were all
> mixed and furhter below the archive size limit (out of the archive) there
> were non-dominated individuals. Summarizing, in the final population of my
> run I could find more than 300 non-dominated individuals (settings for
> population size and archive size were 1000 and 100, respectively) and only
> around 50 of them were placed at the top 100 position of the individuals
> vector.
>
> Any help? Where am I going wrong?
>
> Thank you,
> Eva
>
--
David R White
Research Student
Department of Computer Science
University of York
York YO10 5DD
United Kingdom
Phone: +44 (0)1904 434756
|