f1 mutation on weights 

When only evolving connection weights in f1 creatures, the combination of
mutations on weights and crossover, causes a problem. Apart from the
weights, the morphology changes too.

Mutations on connection weights can change the length of the genotype, e.g.
when a weight '1' is changed into '-1.212'. After this mutation, when
crossover occurs, and the crossover point is after the location of this
weight, this can result in different morphologies.

---------------'1'-------|------
---------------'1.212'--|-----------
( "|" indicates crossover point)

A possible solution to this problem could be to have a convention that
connection weights should have fixed string lengths, so that mutation cannot
change the length of the genotype. For example '1', would be converted to
'001.000'.

Maciej Komosinski's picture

> When only evolving connection weights in f1 creatures, the combination of
> mutations on weights and crossover, causes a problem. Apart from the
> weights, the morphology changes too.
>
> Mutations on connection weights can change the length of the genotype, e.g.
> when a weight '1' is changed into '-1.212'. After this mutation, when
> crossover occurs, and the crossover point is after the location of this
> weight, this can result in different morphologies.
>
> ---------------'1'-------|------
> ---------------'1.212'--|-----------
> ( "|" indicates crossover point)
>
> A possible solution to this problem could be...

Well, crossover is never expected to preserve morphologies (bodies).
If you want to evolve neural weights only, turn off crossover.
Crossover selects two RANDOM substrings to exchange, so it will
always modify morphology and brain.

You could try "proportional segments crossover" option which
will try to select two segments proportionally.

Anyway, when evolving brain weights, better use mutation alone.

MacKo