Genetic representation

Genetic representation is a way of representing solutions/individuals in evolutionary computation methods. Genetic representation can encode appearance, behavior, physical qualities of individuals. Designing a good genetic representation that is expressive and evolvable is a hard problem in evolutionary computation. Difference in genetic representations in one of the major criteria drawing a line between known classes of evolutionary computation.

Genetic algorithm uses linear binary representations. The most standard one is an array of bits. Arrays of other types and structures can be used in essentially the same way. The main property that makes these genetic representations convenient is that their parts are easily aligned due to their fixed size. This facilitates simple crossover operation. Variable length representations were also explored in Genetic algorithms, but crossover implementation is more complex in this case.

Evolution strategy uses linear real-valued representations, e.g. an array of real values. It uses mostly gaussian mutation and blending/averaging crossover.

Genetic programming (GP) pioneered tree-like representations and developed genetic operators suitable for such representations. Tree-like representations are used in GP to represent and evolve functional programs with desired properties.

Human-based genetic algorithm (HBGA) offers a way to avoid solving hard representation problems by outsourcing all genetic operators to outside agents (in this case, humans). This way the algorithm need not be aware of a particular genetic representation used for any solution. We don't need to a fixed genetic representation as long as we have enough external agents capable of handling those representations. This allows for free-form and evolving genetic representations.

Common genetic representations

 * binary array
 * genetic tree
 * parse tree
 * binary tree
 * natural language