Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Chromosome (evolutionary algorithm)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Examples of chromosomes == === Chromosomes for binary codings === In their classical form, GAs use bit strings and map the decision variables to be optimized onto them. An example for one Boolean and three integer decision variables with the value ranges <math>0 \leq D_1 \leq 60</math>, <math>28 \leq D_2 \leq 30</math> and <math>-12 \leq D_3 \leq 14</math> may illustrate this: {| class="wikitable" style="margin-left: auto; margin-right: auto; border: none; text-align:center;" |+ Example representation of four decision variables in a bitstring |- | decision variable: ||colspan="6"| <math>D_1 = 22</math> ||colspan="5"| <math>D_2 = 29</math> ||colspan="5"| <math>D_3 = -4</math> || <math>D_4 = 0</math> |- |style="text-align:left"| bits: || 0 || 1 || 0 || 1 || 1 || 0 || 1 || 1 || 1 || 0 || 1 || 1 || 1 || 1 || 0 || 0 || 0 |- |style="text-align:left"| position: || 17 || 16 || 15 || 14 || 13 || 12 || 11 || 10 || 9 || 8 || 7 || 6 || 5 || 4 || 3 || 2 || 1 |} Note that the negative number here is given in [[two's complement]]. This straight forward representation uses five bits to represent the three values of <math>D_2</math>, although two bits would suffice. This is a significant redundancy. An improved alternative, where 28 is to be added for the genotype-phenotype mapping, could look like this: {| class="wikitable" style="margin-left: auto; margin-right: auto; border: none; text-align:center;" |+ Example of an improved representation of the four decision variables |- | decision variable: ||colspan="6"| <math>D_1 = 22</math> ||colspan="2"| <math>D'_2 = 1</math> ||colspan="5"| <math>D_3 = -4</math> || <math>D_4 = 0</math> |- |style="text-align:left"| bits: || 0 || 1 || 0 || 1 || 1 || 0 || 0 || 1 || 1 || 1 || 1 || 0 || 0 || 0 |- |style="text-align:left"| position: || 14 || 13 || 12 || 11 || 10 || 9 || 8 || 7 || 6 || 5 || 4 || 3 || 2 || 1 |} with <math>D_2 = 28 + D'_2 = 29</math>. === Chromosomes with real-valued or integer genes === For the processing of tasks with real-valued or mixed-integer decision variables, EAs such as the [[evolution strategy]]<ref name=":3">{{Cite book |last=Schwefel |first=Hans-Paul |url=https://www.researchgate.net/publication/220690578 |title=Evolution and optimum seeking |date=1995 |publisher=John Wiley & Sons |isbn=0-471-57148-2 |location=New York |oclc=30701094}}</ref> or the real-coded GAs<ref>{{Citation |last1=Eshelman |first1=Larry J. |title=Real-Coded Genetic Algorithms and Interval-Schemata |date=1993 |url=https://linkinghub.elsevier.com/retrieve/pii/B9780080948324500180 |work=Foundations of Genetic Algorithms |volume=2 |pages=187–202 |publisher=Elsevier |language=en |doi=10.1016/b978-0-08-094832-4.50018-0 |isbn=978-0-08-094832-4 |access-date=2023-01-26 |last2=Schaffer |first2=J. David|url-access=subscription }}</ref><ref>{{Cite book |last=Michalewicz |first=Zbigniew |url= |title=Genetic Algorithms + Data Structures = Evolution Programs |date=1996 |publisher=Springer |others=Third, revised and extended edition |isbn=978-3-662-03315-9 |edition= |location=Berlin, Heidelberg |language=en |oclc=851375253}}</ref><ref>{{Cite journal |last1=Deep |first1=Kusum |last2=Singh |first2=Krishna Pratap |last3=Kansal |first3=M.L. |last4=Mohan |first4=C. |date=June 2009 |title=A real coded genetic algorithm for solving integer and mixed integer optimization problems |url=https://linkinghub.elsevier.com/retrieve/pii/S0096300309001830 |journal=Applied Mathematics and Computation |language=en |volume=212 |issue=2 |pages=505–518 |doi=10.1016/j.amc.2009.02.044|url-access=subscription }}</ref> are suited. In the case of mixed-integer values, rounding is often used, but this represents some violation of the [[Genetic representation#Relationships between search space and problem space|redundancy requirement]]. If the necessary precisions of the real values can be reasonably narrowed down, this violation can be remedied by using integer-coded GAs.<ref>{{Citation |last1=Wang |first1=Fuchang |title=Decimal-Integer-Coded Genetic Algorithm for Trimmed Estimator of the Multiple Linear Errors in Variables Model |date=2011 |url=http://link.springer.com/10.1007/978-3-642-25255-6_46 |work=Information Computing and Applications |pages=359–366 |editor-last=Liu |editor-first=Baoxiang |series=LNCS 7030 |place=Berlin, Heidelberg |publisher=Springer |doi=10.1007/978-3-642-25255-6_46 |isbn=978-3-642-25254-9 |access-date=2023-01-23 |last2=Cao |first2=Huirong |last3=Qian |first3=Xiaoshi |editor2-last=Chai |editor2-first=Chunlai|url-access=subscription }}</ref><ref>{{Cite journal |last1=Cheng |first1=Xueli |last2=An |first2=Linchao |last3=Zhang |first3=Zhenhua |date=2019 |title=Integer Encoding Genetic Algorithm for Optimizing Redundancy Allocation of Series-parallel Systems |journal=Journal of Engineering Science and Technology Review |volume=12 |issue=1 |pages=126–136|doi=10.25103/JESTR.121.15 |s2cid=149497992 |doi-access=free }}</ref> For this purpose, the valid digits of real values are mapped to integers by multiplication with a suitable factor. For example, 12.380 becomes the integer 12380 by multiplying by 1000. This must of course be taken into account in genotype-phenotype mapping for evaluation and result presentation. A common form is a chromosome consisting of a list or an array of integer or real values. === Chromosomes for permutations === [[Combinatorial optimization|Combinatorial problems]] are mainly concerned with finding an optimal sequence of a set of elementary items. As an example, consider the problem of the [[Travelling salesman problem|traveling salesman]] who wants to visit a given number of cities exactly once on the shortest possible tour. The simplest and most obvious mapping onto a chromosome is to number the cities consecutively, to interpret a resulting sequence as [[permutation]] and to store it directly in a chromosome, where one gene corresponds to the ordinal number of a city.<ref>{{Cite book |last1=Eiben |first1=A.E. |url=https://link.springer.com/10.1007/978-3-662-44874-8 |title=Introduction to Evolutionary Computing |last2=Smith |first2=J.E. |date=2015 |publisher=Springer |isbn=978-3-662-44873-1 |series=Natural Computing Series |location=Berlin, Heidelberg |pages=67–74 |language=en |chapter=Permutation Representation |doi=10.1007/978-3-662-44874-8|s2cid=20912932 }}</ref> Then, however, the [[Genetic operator|variation operators]] may only change the gene order and not remove or duplicate any genes.<ref name=":2">{{Cite journal |last1=Larrañaga |first1=P. |last2=Kuijpers |first2=C.M.H. |last3=Murga |first3=R.H. |last4=Inza |first4=I. |last5=Dizdarevic |first5=S. |date=1999 |title=Genetic Algorithms for the Travelling Salesman Problem: A Review of Representations and Operators |url=http://link.springer.com/10.1023/A:1006529012972 |journal=Artificial Intelligence Review |volume=13 |issue=2 |pages=129–170 |doi=10.1023/A:1006529012972|s2cid=10284682 |url-access=subscription }}</ref> The chromosome thus contains the path of a possible tour to the cities. As an example the sequence <math>3,5,7,1,4,2,9,6,8</math> of nine cities may serve, to which the following chromosome corresponds: {| class="wikitable" style="margin-left: auto; margin-right: auto; border: none; text-align:center;" |- || 3 || 5 || 7 || 1 || 4 || 2 || 9 || 6 || 8 |} In addition to this encoding frequently called ''path representation'', there are several other ways of representing a permutation, for example the ''ordinal representation'' or the ''matrix representation''.<ref name=":2" /><ref>{{Cite book |last=Whitley |first=Darrell |url= |title=Evolutionary computation. Vol. 1, Basic algorithms and operators |date=2000 |publisher=Institute of Physics Pub |isbn=0-585-30560-9 |editor-last=Fogel |editor-first=David B. |location=Bristol |pages=139–150 |language=en |chapter=Permutations |oclc=45730387 |editor-last2=Bäck |editor-first2=Thomas |editor-last3=Michalewicz |editor-first3=Zbigniew}}</ref> === Chromosomes for co-evolution === When a genetic representation contains, in addition to the decision variables, additional information that influences evolution and/or the mapping of the genotype to the phenotype and is itself subject to evolution, this is referred to as ''co-evolution''. A typical example is the [[evolution strategy]] (ES), which includes one or more mutation step sizes as strategy parameters in each chromosome.<ref name=":3" /> Another example is an additional gene to control a selection heuristic for resource allocation in a scheduling tasks.<ref name=":6">{{Cite journal |last1=Jakob |first1=Wilfried |last2=Strack |first2=Sylvia |last3=Quinte |first3=Alexander |last4=Bengel |first4=Günther |last5=Stucky |first5=Karl-Uwe |last6=Süß |first6=Wolfgang |date=2013-04-22 |title=Fast Rescheduling of Multiple Workflows to Constrained Heterogeneous Resources Using Multi-Criteria Memetic Computing |department=p.253-255 |journal=Algorithms |language=en |volume=6 |issue=2 |pages=245–277 |doi=10.3390/a6020245 |issn=1999-4893|doi-access=free }}</ref> This approach is based on the assumption that good solutions are based on an appropriate selection of strategy parameters or on control gene(s) that influences genotype-phenotype mapping. The success of the ES gives evidence to this assumption. === Chromosomes for complex representations === The chromosomes presented above are well suited for processing tasks of continuous, mixed-integer, pure-integer or combinatorial optimization. For a combination of these optimization areas, on the other hand, it becomes increasingly difficult to map them to simple strings of values, depending on the task. The following extension of the gene concept is proposed by the EA GLEAM (General Learning Evolutionary Algorithm and Method) for this purpose:<ref name=":4">{{Citation |last1=Blume |first1=Christian |last2=Jakob |first2=Wilfried |title=GLEAM - An Evolutionary Algorithm for Planning and Control Based on Evolution Strategy |date=2002 |url=https://publikationen.bibliothek.kit.edu/170053025/3814288 |work=Conf. Proc. of Genetic and Evolutionary Computation Conference (GECCO 2002) |volume=Late Breaking Papers |pages=31–38 |access-date=2023-01-01 }}</ref> A gene is considered to be the description of an element or elementary trait of the phenotype, which may have multiple parameters. For this purpose, gene types are defined that contain as many parameters of the appropriate data type as are required to describe the particular element of the phenotype. A chromosome now consists of genes as data objects of the gene types, whereby, depending on the application, each gene type occurs exactly once as a gene or can be contained in the chromosome any number of times. The latter leads to chromosomes of dynamic length, as they are required for some problems.<ref>{{Cite journal |last1=Pawar |first1=Sunil Nilkanth |last2=Bichkar |first2=Rajankumar Sadashivrao |date=June 2015 |title=Genetic algorithm with variable length chromosomes for network intrusion detection |journal=International Journal of Automation and Computing |language=en |volume=12 |issue=3 |pages=337–342 |doi=10.1007/s11633-014-0870-x |s2cid=255346767 |issn=1476-8186|doi-access=free }}</ref><ref>{{Citation |last=Blume |first=Christian |title=Optimized Collision Free Robot Move Statement Generation by the Evolutionary Software GLEAM |date=2000 |url=http://link.springer.com/10.1007/3-540-45561-2_32 |work=Real-World Applications of Evolutionary Computing |series=Lecture Notes in Computer Science |volume=1803 |pages=330–341 |editor-last=Cagnoni |editor-first=Stefano |access-date=2023-06-25 |place=Berlin, Heidelberg |publisher=Springer Berlin Heidelberg |language=en |doi=10.1007/3-540-45561-2_32 |isbn=978-3-540-67353-8|url-access=subscription }}</ref> The gene type definitions also contain information on the permissible value ranges of the gene parameters, which are observed during chromosome generation and by corresponding mutations, so they cannot lead to lethal mutations. For tasks with a combinatorial part, there are suitable [[Genetic operator|genetic operators]] that can move or reposition genes as a whole, i.e. with their parameters. [[File:Genmodell Chromosombeispiel.png|thumb|212x212px|Three exemplary genes matching the adjacent gene type definitions in a chromosome organized as a list]] [[File:Gene model gene types.png|left|thumb|224x224px|Three exemplary genes matching the adjacent gene type definitions in a chromosome organized as a list]] A [[Scheduling (computing)|scheduling]] task is used as an illustration, in which [[Workflow|workflows]] are to be scheduled that require different numbers of heterogeneous resources. A workflow specifies which work steps can be processed in parallel and which have to be executed one after the other. In this context, heterogeneous resources mean different processing times at different costs in addition to different processing capabilities.<ref name=":6" /> Each scheduling operation therefore requires one or more parameters that determine the resource selection, where the value ranges of the parameters depend on the number of alternative resources available for each work step. A suitable chromosome provides one gene type per work step and in this case one corresponding gene, which has one parameter for each required resource. The order of genes determines the order of scheduling operations and, therefore, the precedence in case of allocation conflicts. The exemplary gene type definition of work step 15 with two resources, for which there are four and seven alternatives respectively, would then look as shown in the left image. Since the parameters represent indices in lists of available resources for the respective work step, their value range starts at 0. The right image shows an example of three genes of a chromosome belonging to the gene types in list representation. [[File:Genetic Program Tree.png|thumb|214x214px|Syntax tree of a formula example]] === Chromosomes for tree representations === Tree representations in a chromosome are used by [[genetic programming]], an EA type for generating [[Computer program|computer programs]] or [[Electronic circuit|circuits]].<ref name=":5" /> The trees correspond to the [[Parse tree|syntax trees]] generated by a [[compiler]] as internal representation when translating a computer program. The adjacent figure shows the syntax tree of a mathematical expression as an example. Mutation operators can rearrange, change or delete subtrees depending on the represented syntax structure. Recombination is performed by exchanging suitable subtrees.<ref>{{Cite book |last1=Eiben |first1=A.E. |url=https://link.springer.com/10.1007/978-3-662-44874-8 |title=Introduction to Evolutionary Computing |last2=Smith |first2=J.E. |date=2015 |publisher=Springer |isbn=978-3-662-44873-1 |series=Natural Computing Series |location=Berlin, Heidelberg |pages=75–78 |language=en |chapter=Tree Representation |doi=10.1007/978-3-662-44874-8|s2cid=20912932 }}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)