Print

Print


The loop proper is in EvolutionState.run().

SimpleEvolutionState.evolve() contains the logic for a single iteration of the loop.  In particular, it calls evaluator.evalutePopulation() once each generation.  So you want to inherit from SimpleEvaluator and override evaluatePopulation(), adding your logic after the call to super.evaluatePopulation().

Siggy




On Tue, Jul 29, 2014 at 1:29 PM, Márcio Basgalupp <[log in to unmask]> wrote:
Thanks, but there is no loop in the method evolve() of my EvolutionState.java.

public int evolve()

        throws InternalError, FileNotFoundException, IOException,
Exception { return R_NOTDONE; }


The same for SimpleEvolutionState.java


This loop (varying the children/individuals) is exactly what I'm looking for.

Best,
Márcio



--------
Prof. Dr. Márcio Porto Basgalupp
Instituto de Ciência e Tecnologia (ICT)
Universidade Federal de São Paulo (UNIFESP)
Tel: +55 12 3309-9582


On Tue, Jul 29, 2014 at 12:23 PM, Eric 'Siggy' Scott <[log in to unmask]> wrote:
> The post-evaluation stage is only for running statistics.
>
> Look in the evolve() method of your EvolutionState -- that has the
> high-level loop.  You'll probably want to customize your Evaluator to add a
> post-processing step, leaving the EvolutionState as is.
>
> Siggy
>
>
> On Tue, Jul 29, 2014 at 11:02 AM, Márcio Basgalupp <[log in to unmask]>
> wrote:
>>
>> Thank you Ye.
>>
>> That's true.
>>
>> But my question is: where (in the code) is this post-evaluation stage?
>>
>> Best,
>> Márcio
>> --------
>> Prof. Dr. Márcio Porto Basgalupp
>> Instituto de Ciência e Tecnologia (ICT)
>> Universidade Federal de São Paulo (UNIFESP)
>> Tel: +55 12 3309-9582
>>
>>
>> On Tue, Jul 29, 2014 at 11:40 AM, Xiaomeng Ye <[log in to unmask]>
>> wrote:
>> > It has been a while since I last used ECJ. I could be totally wrong.
>> >
>> > I remember there is a post-evaluation stage for each generation in the
>> > evolution. If I am going to divide all fitness values by the biggest
>> > one. I
>> > will do it in this post-evaluation stage.
>> >
>> > This post-evaluation stage is probably between the evaluation stage
>> > (where
>> > the fitness are calculated) and the breeding stage (where
>> > crossover/mutation
>> > happens).
>> >
>> >
>> > On Tue, Jul 29, 2014 at 10:18 AM, Márcio Basgalupp <[log in to unmask]>
>> > wrote:
>> >>
>> >> Dear all,
>> >>
>> >> I'm using ECJ for implementing a GP based-program. After evaluating
>> >> (compute fitness) all individuals, I would like to "update" these
>> >> fitness values (for example, divide all fitness values by the biggest
>> >> one). However, I couldn't find where (which class) I have to do that.
>> >> It should be where ECJ calls the method evaluate() for each
>> >> individual, then I could update before proceeding to the next steps
>> >> (select, genetic operators, ...).
>> >>
>> >> I would appreciate if someone help me.
>> >>
>> >> Best,
>> >> Márcio
>> >>
>> >> --------
>> >> Prof. Dr. Márcio Porto Basgalupp
>> >> Instituto de Ciência e Tecnologia (ICT)
>> >> Universidade Federal de São Paulo (UNIFESP)
>> >> Tel: +55 12 3309-9582
>> >
>> >
>
>
>
>
> --
>
> Ph.D student in Computer Science
> George Mason University
> http://mason.gmu.edu/~escott8/



--

Ph.D student in Computer Science
George Mason University
http://mason.gmu.edu/~escott8/