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
Genetic operator
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!
{{distinguish|Operator (genetics)}} {{Evolutionary algorithms}} A '''genetic operator''' is an [[Operator (programming)|operator]] used in [[evolutionary algorithms]] (EA) to guide the algorithm towards a solution to a given problem. There are three main types of operators ([[Mutation (evolutionary algorithm) |mutation]], [[Crossover (evolutionary algorithm)|crossover]] and [[selection (evolutionary algorithm)|selection]]), which must work in conjunction with one another in order for the algorithm to be successful.<ref>{{cite journal |last1=Jiang |first1=Dazhi |last2=Tian |first2=Zhihang |last3=He |first3=Zhihui |last4=Tu |first4=Geng |last5=Huang |first5=Ruixiang |title=A framework for designing of genetic operators automatically based on gene expression programming and differential evolution |journal=Natural Computing |date=1 September 2021 |volume=20 |issue=3 |pages=395β411 |doi=10.1007/s11047-020-09830-2 |url=https://link.springer.com/article/10.1007/s11047-020-09830-2 |language=en |issn=1572-9796|url-access=subscription }}</ref> Genetic operators are used to create and maintain [[genetic diversity]] (mutation operator), combine existing solutions (also known as [[chromosome (evolutionary algorithm)|chromosome]]s) into new solutions (crossover) and select between solutions (selection).<ref name=ga-intro>{{cite web|title=Introduction to Genetic Algorithms|url=http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol1/hmw/article1.html|accessdate=20 August 2015|archive-url=https://web.archive.org/web/20150811025830/http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol1/hmw/article1.html|archive-date=11 August 2015|url-status=dead}}</ref><ref name=":0" /> The classic representatives of evolutionary algorithms include [[Genetic algorithm|genetic algorithms]], [[Evolution strategy|evolution strategies]], [[genetic programming]] and [[evolutionary programming]]. In his book discussing the use of genetic programming for the optimization of complex problems, computer scientist [[John Koza]] has also identified an 'inversion' or 'permutation' operator; however, the effectiveness of this operator has never been conclusively demonstrated and this operator is rarely discussed in the field of genetic programming.<ref name="koza">{{cite book|last1=Koza|first1=John R.|title=Genetic programming : on the programming of computers by means of natural selection|url=https://archive.org/details/geneticprogrammi0000koza|url-access=registration|date=1996|publisher=MIT Press|location=Cambridge, Mass.|isbn=0-262-11170-5|edition=6th}}</ref><ref name="gp-operators">{{Cite FTP |title=Genetic programming operators|url=ftp://ftp.cis.upenn.edu/pub/hollick/public_html/genetic/node7.html#SECTION00023000000000000000|server=FTP server|url-status=dead|accessdate=20 August 2015}}</ref> For [[Combinatorial optimization|combinatorial problems]], however, [[Mutation (evolutionary algorithm)#Mutation of permutations|these and other operators]] tailored to [[Permutation|permutations]] are frequently used by other EAs.<ref>{{Cite book |last1=Eiben |first1=A.E. |title=Introduction to Evolutionary Computing |last2=Smith |first2=J.E. |date=2015 |publisher=Springer |isbn=978-3-662-44873-1 |edition=2nd |series=Natural Computing Series |location=Berlin, Heidelberg |pages=69β70 |language=en |chapter=Mutation for Permutation Representation |doi=10.1007/978-3-662-44874-8}}</ref><ref>{{Cite book |last1=Yu |first1=Xinjie |title=Introduction to Evolutionary Algorithms |last2=Gen |first2=Mitsuo |date=2010 |publisher=Springer |isbn=978-1-84996-128-8 |series=Decision Engineering |volume= |location=London |pages=286β288 |chapter=Mutation Operators |doi=10.1007/978-1-84996-129-5}}</ref> Mutation (or mutation-like) operators are said to be ''[[Unary operation|unary]]'' operators, as they only operate on one chromosome at a time. In contrast, crossover operators are said to be ''[[Binary operation|binary]]'' operators, as they operate on two chromosomes at a time, combining two existing chromosomes into one new chromosome.<ref name=ga-operators>{{cite web|title=Genetic operators|url=http://kal-el.ugr.es/GAGS/gags-tutorial/node3.html|accessdate=20 August 2015|archive-date=30 December 2017|archive-url=https://web.archive.org/web/20171230171723/http://kal-el.ugr.es/GAGS/gags-tutorial/node3.html|url-status=dead}}</ref><ref>{{Cite book |last1=Eiben |first1=A.E. |title=Introduction to Evolutionary Computing |last2=Smith |first2=J.E. |date=2015 |publisher=Springer |isbn=978-3-662-44873-1 |edition=2nd |series=Natural Computing Series |location=Berlin, Heidelberg |pages=31β33 |language=en |chapter=Variation Operators (Mutation and Recombination) |doi=10.1007/978-3-662-44874-8}}</ref> ==Operators== Genetic variation is a necessity for the process of [[evolution]]. Genetic operators used in evolutionary algorithms are analogous to those in the natural world: [[survival of the fittest]], or [[selection (genetic algorithm)|selection]]; reproduction ([[crossover (genetic algorithm)|crossover]], also called recombination); and [[mutation (genetic algorithm)|mutation]]. ===Selection=== {{main|Selection (evolutionary algorithm)}} Selection operators give preference to better candidate solutions (chromosomes), allowing them to pass on their 'genes' to the next generation ([[iteration]]) of the algorithm. The best solutions are determined using some form of [[objective function]] (also known as a '[[fitness function]]' in evolutionary algorithms), before being passed to the crossover operator. Different methods for choosing the best solutions exist, for example, [[fitness proportionate selection]] and [[tournament selection]].<ref>{{Cite book |last1=Eiben |first1=A.E. |title=Introduction to Evolutionary Computing |last2=Smith |first2=J.E. |date=2015 |publisher=Springer |isbn=978-3-662-44873-1 |edition=2nd |series=Natural Computing Series |location=Berlin, Heidelberg |pages=80β87 |language=en |chapter=Parent Selection |doi=10.1007/978-3-662-44874-8}}</ref> A further or the same selection operator is used to determine the individuals for being selected to form the next parental generation. The selection operator may also ensure that the best solution(s) from the current generation always become(s) a member of the next generation without being altered;<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 |edition=2nd |series=Natural Computing Series |location=Berlin, Heidelberg |pages=87β90 |language=en |chapter=Survivor Selection |doi=10.1007/978-3-662-44874-8}}</ref> this is known as ''elitism'' or ''elitist selection''.<ref name=ga-intro /><ref name=ga-intro2>{{cite web|title=Introduction to Genetic Algorithm|url=http://www.rennard.org/alife/english/gavintrgb.html|accessdate=20 August 2015}}</ref><ref>{{Cite book |last1=Eiben |first1=A.E. |title=Introduction to Evolutionary Computing |last2=Smith |first2=J.E. |date=2015 |publisher=Springer |isbn=978-3-662-44873-1 |edition=2nd |series=Natural Computing Series |location=Berlin, Heidelberg |pages=89 |language=en |doi=10.1007/978-3-662-44874-8}}</ref> ===Crossover=== {{main|Crossover (evolutionary algorithm)}} Crossover is the process of taking more than one parent solutions (chromosomes) and producing a child solution from them. By recombining portions of good solutions, the evolutionary algorithm is more likely to create a better solution.<ref name=ga-intro /> As with selection, there are a number of different methods for combining the parent solutions, including the ''edge recombination operator'' (ERO) and the 'cut and splice crossover' and 'uniform crossover' methods. The crossover method is often chosen to closely match the chromosome's representation of the solution; this may become particularly important when variables are grouped together as [[Genetic algorithm#The building block hypothesis|building blocks]], which might be disrupted by a non-respectful crossover operator. Similarly, crossover methods may be particularly suited to certain problems; the ERO is considered a good option for solving the [[travelling salesman problem]].<ref>{{Citation |last1=Whitley |first1=Darrell |last2=Starkweather |first2=Timothy |last3=Fuquay |first3=D'Ann |title=Scheduling Problems and Traveling Salesmen: The Genetic Edge Recombination Operator |date=1989 |work=Proceedings of the 3rd International Conference on Genetic Algorithms (ICGA) |pages=133β140 |editor-last=Schaffer |editor-first=J.D. |place=San Francisco |publisher=Morgan Kaufmann |isbn=1558600663 }}</ref> ===Mutation=== {{main|Mutation (evolutionary algorithm)}} The mutation operator encourages genetic diversity amongst solutions and attempts to prevent the evolutionary algorithm converging to a [[local minimum]] by stopping the solutions becoming too close to one another. In mutating the current pool of solutions, a given solution may change between slightly and entirely from the previous solution.<ref name=":3">{{Cite book |last1=BΓ€ck |first1=Thomas |url=https://www.worldcat.org/oclc/45730387 |title=Evolutionary computation Vol. 1, Basic algorithms and operators |last2=Fogel |first2=David B. |last3=Whitley |first3=Darrell |last4=Angeline |first4=Peter J. |publisher=CRC Press |year=1999 |isbn=0-585-30560-9 |editor-last=BΓ€ck |editor-first=Thomas |location=Boca Racon |pages=237β255 |language=en |chapter=Mutation operators |oclc=45730387 |editor-last2=Fogel |editor-first2=David B. |editor-last3=Michalewicz |editor-first3=Zbigniew}}</ref> By mutating the solutions, an evolutionary algorithm can reach an improved solution solely through the mutation operator.<ref name=ga-intro /> Again, different methods of mutation may be used; these range from a simple ''bit mutation'' (flipping random bits in a binary string chromosome with some low probability) to more complex mutation methods in which genes in the solution are changed, for example by adding a random value from the [[Gaussian distribution]] to the current gene value. As with the crossover operator, the mutation method is usually chosen to match the representation of the solution within the chromosome.<ref name=":3" /><ref name=":0">{{Cite book |last1=Eiben |first1=A.E. |url=http://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=49β78 |chapter=Representation, Mutation, and Recombination |doi=10.1007/978-3-662-44874-8|s2cid=20912932 }}</ref> ==Combining operators== While each operator acts to improve the solutions produced by the evolutionary algorithm working individually, the operators must work in conjunction with each other for the algorithm to be successful in finding a good solution.<ref name=":0" /> Using the selection operator on its own will tend to fill the solution population with copies of the best solution from the population. If the selection and crossover operators are used without the mutation operator, the algorithm will tend to converge to a [[local minimum]], that is, a good but sub-optimal solution to the problem. Using the mutation operator on its own leads to a [[random walk]] through the search space. Only by using all three operators together can the evolutionary algorithm become a noise-tolerant global search algorithm, yielding good solutions to the problem at hand.<ref name=ga-intro /> ==References== {{reflist|2}} {{DEFAULTSORT:Genetic Operator}} [[Category:Evolutionary algorithms|+]]
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)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Cite FTP
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Distinguish
(
edit
)
Template:Evolutionary algorithms
(
edit
)
Template:Main
(
edit
)
Template:Reflist
(
edit
)