I'm working just right now with the ES package. It's doing more or
less what I need (the same as in your paper), but now I have to figure
out how I can reduce the population in the specific amount that I
want, for example: eliminate the worst individual in each generation.
Now I have achieved to reduce the population size by removing 2
individuals each generation. However, when the population is empty and
there are more generations to be computed you get an exception. So, I
think I will try to work with the ES package because it seems to be
what I need to build the Plague.
On Mon, Oct 20, 2008 at 4:47 PM, Sean Luke <[log in to unmask]> wrote:
> SimpleBreeder (starting around line 94) uses an overly elaborate bit of math
> to divide the subpopulation into chunks and hand each chunk off to a thread.
> Unless you're doing something fairly funky in PlagueSimpleBreeder, this is
> the primary place where something is going wrong.
> - Are you doing multithreaded breeding? If so, how many threads?
> - How large is the subpopulation when this error occurs?
> - What does PlagueSimpleBreeder.breedPopulation do before it calls
> Daniel Lombraña González wrote:
>> I'm going to check the ES package and try it. Adjoining is the
>> backtrace (I'm using GNU/Linux with jre 1.6)
>> | ECJ
>> | An evolutionary computation system (version 18)
>> | By Sean Luke
>> | Contributors: L. Panait, G. Balan, S. Paus, Z. Skolicki, R.
>> Kicinger, E. Popovici,
>> | J. Harrison, J. Bassett, R. Hubley, A. Desai, and A.
>> | URL: http://cs.gmu.edu/~eclab/projects/ecj/
>> | Mail: [log in to unmask]
>> | (better: join ECJ-INTEREST at URL above)
>> | Date: June 23, 2008
>> | Current Java: 1.6.0_0 / OpenJDK Server VM-1.6.0_0-b11
>> | Required Minimum Java: 1.3
>> Threads: breed/1 eval/1
>> Seed: 4357
>> Job: 0
>> Setting up
>> Processing GP Types
>> Processing GP Node Constraints
>> Processing GP Function Sets
>> Processing GP Tree Constraints
>> Initializing Generation 0
>> Subpop 0 best fitness of generation: Fitness: Raw=24.0 Adjusted=0.04
>> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 18
>> at ec.gp.koza.CrossoverPipeline.produce(CrossoverPipeline.java:422)
>> at ec.simple.SimpleBreeder.breedPopChunk(SimpleBreeder.java:182)
>> at ec.simple.SimpleBreeder.breedPopulation(SimpleBreeder.java:119)
>> at ec.EvolutionState.run(EvolutionState.java:371)
>> at ec.Evolve.main(Evolve.java:648)
>> On Mon, Oct 20, 2008 at 3:02 PM, Sean Luke <[log in to unmask]> wrote:
>>> I'm sorry Daniel, I can't do much here without the full stack backtrace
>>> printed out, not just the exception. Can you provide that?
>>> At any rate, nowhere should ECJ be relying on initial population size
>>> conditions: that would definitely be a bug. Populations can and do
>>> themselves: in fact I have an entire paper relying on that fact.
>>> (http://www.cs.bham.ac.uk/~wbl/biblio/gp-html/luke_2003_gecco.html) And
>>> ES package does it as a matter of course.
>>> Daniel Lombraña González wrote:
>>>> Hi to all,
>>>> I'm trying to use ECJ with GP and dynamic populations. I have been
>>>> searching in the mailing list and I found the following conversation:
>>>> I have tried that solution, but I get an error when the
>>>> CrossoverPipeline tries to create two new offsprings. The obtained
>>>> error is the following one:
>>>> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 18
>>>> It seems that the variable "q" is getting out of the bound in the inds
>>>> array. I don't know how to fix this. It seems that the problem relies
>>>> on the initial population length = 20, which is not varied at all
>>>> during the evolution.
>>>> Any ideas?
>>>> PS: By the way, if using the proposed solution you increase the size
>>>> of the subpopulation you get an error because ECJ tries to compute the
>>>> fitness of a null individual :)
>>>> PhD Candidate
>>>> Cátedra Ceta-Ciemat de la Universidad de Extremadura
>>>> Universidad de Extremadura
>>>> Por favor, NO utilice formatos de archivo propietarios para el
>>>> intercambio de documentos, como DOC y XLS, sino HTML, RTF, TXT, CSV
>>>> o cualquier otro que no obligue a utilizar un programa de un
>>>> fabricante concreto para tratar la información contenida en él.
Cátedra Ceta-Ciemat de la Universidad de Extremadura
Universidad de Extremadura
Por favor, NO utilice formatos de archivo propietarios para el
intercambio de documentos, como DOC y XLS, sino HTML, RTF, TXT, CSV
o cualquier otro que no obligue a utilizar un programa de un
fabricante concreto para tratar la información contenida en él.