Diploid genetics 

Would it possible (for users/developers) to develop a diploid genotype
encoding?

Diploid simply means that there are two copies of each gene. If two
copies of a particluar gene are not identical, this conflict (deciding
which one is to be expressed) is resolved through a dominance operators
in the gene (dominance/recessivity mechanism).

Diploid genetic algorithms show several interesting and practical
characteristics, such as high peak performance (best in population is
very good), and robust adaptivity in changing environments, and
maintaining genetic diversity in the population. (And, ofcourse, being
somewhat biologically plausible.)

Calabretta's articles on this issue (Diploid GAs in Khepera robots):
http://gral.ip.rm.cnr.it/rcalabretta/calabretta.diploidy.pdf
http://gral.ip.rm.cnr.it/rcalabretta/calabretta.diplo2.pdf

We would like to develop such a mechanism, and investigate its
performance in a spontaneous evolution scheme. I know many parameters
and processes can be modified in Framsticks, but I can't see how to
implement diploidy in a straight-forward manner.

It shouldn't be too hard, though. It implies doubling the f1 genotype
and extending it with genes for dominance resolution (for every gene),
plus modifying the genotype-to-phenotype decoding mechanism to include
the reading out of dominance genes.

Best regards,

Walter de Back

Maciej Komosinski's picture

> Would it possible (for users/developers) to develop a diploid genotype
> encoding?
>
> We would like to develop such a mechanism, and investigate its
> performance in a spontaneous evolution scheme. I know many parameters
> and processes can be modified in Framsticks, but I can't see how to
> implement diploidy in a straight-forward manner.

Please have a look at the SDK sources. You can design a representation of your choice. You need to supply

1. translation of your encoding to some existing one,
2. genetic operators on your encoding.

The 1. point seems easy. You will be translating your encoding into f1 (is this the best choice...)

The 2. point may require more work, depends on your plans.

-

You might think about other diploid encoding, not necessarily inspired by the f1 encoding. You might also think about converting it to f0, not f1.

Yours,

MacKo