Genetic representation

In computer programming, genetic representation is a way of presenting 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 is one of the major criteria drawing a line between known classes of evolutionary computation.

Terminology is often analogous with natural genetics. The block of computer memory that represents one candidate solution is called an individual. The data in that block is called a chromosome. Each chromosome consists of genes. The possible values of a particular gene are called alleles. A programmer may represent all the individuals of a population using binary encoding, permutational encoding, encoding by tree, or any one of several other representations.[1]

Genetic algorithms (GAs) typically linear representations;[2] these are often, but not always,[3] binary. Holland's original description of GA used arrays 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.[4]

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. The algorithm has no need for knowledge of a particular fixed genetic representation as long as there are enough external agents capable of handling those representations, allowing for free-form and evolving genetic representations.

Common genetic representationsEdit

References and notesEdit

  1. ^ Tomáš Kuthan and Jan Lánský. "Genetic Algorithms in Syllable-Based Text Compression". 2007. p. 26.
  2. ^ Goldberg, D. (1988). "Genetic Algorithms in Search Optimization and Machine Learning". S2CID 38613589. {{cite journal}}: Cite journal requires |journal= (help)
  3. ^ Popyack, Jeffrey L. (2016-06-01). "Gusz Eiben and Jim Smith (Eds): Introduction to evolutionary computing". Genetic Programming and Evolvable Machines. 17 (2): 197–199. doi:10.1007/s10710-016-9267-7. ISSN 1573-7632. S2CID 52798969.
  4. ^ A Representation for the Adaptive Generation of Simple Sequential Programs Archived 2005-12-04 at the Wayback Machine, Nichael Lynn Cramer, Proceedings of an International Conference on Genetic Algorithms and their Applications (1985), pp. 183-187