Print

Print


>> FIRST QUESTION:
>>
>> Is it true that the setting below will evaluate the individuals in
>> groups of two, with each individual in one group?
>>
>> eval = ec.coevolve.CompetitiveEvaluator
>> eval.style = rand-2-ways
>> eval.group-size = 2
>
> Liviu is our coevolution man, but I believe this will do the
> following:
>
> For each individual i in the population
>        If the individual has not yet had GROUPSIZE evaluations
>                Pick a random individual j from the population that
>                        has not yet had GROUPSIZE evaluations
>                evaluate i and j together once, assigning fitness to
> each
>
> Sometimes it happens that there's no one on left to evaluate against,
> in which case a random person j is chosen and his fitness is not
> assigned.

That is correct.  I would suggest you look at the single-elimination-
tournament as well, we found it to work quite nicely (check out our
GECCO 2002 paper for more details).

>> When an individual is copied, is the copy marked evaluated?  I don't
>> seem to be retaining the fitness individual from the previous round.
>> Specifically, given the problem class described below, the "residual
>> fitness" message is never printed.  Any ideas why this might be
>> happening?
>> (In the params file, I've got "pop.subpop.0.species.crossover-
>> prob      =
>> 0.1".)
>
> During breeding, except for a few GP modifiers which had a bug in
> them, individuals modified to the next generation should be marked as
> not evaluated.  Individuals which are direct copies will be marked as
> evaluated.  However CompetitiveEvaluator will evaluate individuals no
> matter how they're marked.
>
> Your GoProblem example is odd though: it appears in
> postprocessPopulation you're just trimming fitnesses to between 0 and
> 100.  Why would you want to do that?

No matter who got evaluated and who did not, I believe the
coevolutionary setting will ignore that information anyway: as the
partners are changing at each generation, the information that
somebody was evaluated at a previous generation is usually not very
useful.

Liviu.