Print

Print


Dear Peter,

The system actually favors high fitness values.  However, as the
opponents keep changing, the objective fitness value does not say
much about how good an individual really is.  In your case, the
initial population contained one individual that was much better than
all the others, and as such it received a very good fitness value.
As evolution progresses, all individuals are getting better and
better, and as such the differences among them become smaller and
smaller.  As a consequence, you can observe that the best individual
in the last generation, although optimal, has only a fitness value of 5.

For this reason, there are different ways to monitor when the
solutions keep improving.  One I use quite often is to assume
coevolution finds better and better individuals, and as such I
consider that the best-of-run is the best-of-last-generation.  An
alternative might be to use Ken Stanley's domination tournament.
There are also other methods out there that might be helpful for this
task, including the Pareto non-dominance methods from the Brandeis
Demo folks.

Best regards,

Liviu.

On Dec 29, 2005, at 12:37 PM, Peter Drake wrote:

> In the run described below, it looks like the evolutionary process is
> favoring low fitness values, but whatever is keeping track of the
> "best individual" prefers high fitnesses.  Am I missing something?
>
> (I should note that I'm using a new version of
> ec.coevolve.CompetitiveEvaluator that Liviu sent me.)
>
> Thanks,
>
> Peter Drake
> Assistant Professor of Computer Science
> Lewis & Clark College
> http://www.lclark.edu/~drake/
>
>
> I modified coevolve1.params to use a random-two-ways tournament:
>
> eval.style =                            rand-2-ways
> eval.group-size =                       7
>
> Then I ran:
>
> java ec.Evolve -file ec/app/coevolve1/coevolve1.params
>
> Here's the beginning and end of the resulting out.stat file:
>
> Generation: 0
> Best Individual:
> Evaluated: T
> Fitness: 53.0
>  1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1
> 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1
>
> Generation: 1
> Best Individual:
> Evaluated: T
> Fitness: 35.0
>  1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1
> 1 1 0 1 1 0 0 0 1 1 1 1 1 0 1 1
>
> Generation: 2
> Best Individual:
> Evaluated: T
> Fitness: 40.0
>  1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1
> 1 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1
>
> ...
>
> Generation: 99
> Best Individual:
> Evaluated: T
> Fitness: 5.0
>  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>
> Best Individual of Run:
> Evaluated: T
> Fitness: 53.0
>  1 0 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1
> 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 1