Print

Print


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.

Daniel

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.
>
> Questions:
>
> - 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
> super.breedPopulation?
>
> Sean
>
>
> Daniel Lombraña González wrote:
>>
>> Hi,
>>
>> I'm going to check the ES package and try it. Adjoining is the
>> backtrace (I'm using GNU/Linux with jre 1.6)
>>
>> Daniel
>>
>>
>> | 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.
>> Chircop
>> | 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
>> Hits=40
>> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 18
>>        at ec.gp.koza.CrossoverPipeline.produce(CrossoverPipeline.java:422)
>>        at
>> ec.breed.MultiBreedingPipeline.produce(MultiBreedingPipeline.java:130)
>>        at ec.simple.SimpleBreeder.breedPopChunk(SimpleBreeder.java:182)
>>        at ec.simple.SimpleBreeder.breedPopulation(SimpleBreeder.java:119)
>>        at
>> ec.simple.PlagueSimpleBreeder.breedPopulation(PlagueSimpleBreeder.java:25)
>>        at
>> ec.simple.SimpleEvolutionState.evolve(SimpleEvolutionState.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
>>> resize
>>> 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
>>> the
>>> ES package does it as a matter of course.
>>>
>>> Sean
>>>
>>> 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:
>>>>
>>>>
>>>> https://listserv.gmu.edu/cgi-bin/wa?A2=ind0404&L=ECJ-INTEREST-L&P=R72&I=-3
>>>>
>>>> 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
>>>> http://gea.unex.es/catedra-ceta-ciemat/
>>>> 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.
>>>>
>>>>
>>>> ··························································································································································
>>>>
>>>>
>>>>
>>
>>
>>
>



-- 
··························································································································································
PhD Candidate
Cátedra Ceta-Ciemat de la Universidad de Extremadura
http://gea.unex.es/catedra-ceta-ciemat/
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.
··························································································································································