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
Crossover (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!
=== Partially mapped crossover (PMX) === The PMX operator was designed as a recombination operator for TSP like Problems.<ref>{{Citation |last1=Goldberg |first1=David E. |last2=Lingle |first2=R. |title=Alleles, loci, and the traveling salesman problem |work=Proceedings of the First International Conference on Genetic Algorithms and Their Applications (ICGA) |date=1985 |publisher=Lawrence Erlbaum Associates |editor-last=Grefenstette |editor-first=John J. |isbn=0-8058-0426-9 |location=Hillsdale, N.J. |pages=154β159 |language=en |oclc=19702892}}</ref><ref name=":3">{{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 |edition=2nd |series=Natural Computing Series |location=Berlin, Heidelberg |pages=70β74 |language=en |chapter=Recombination for Permutation Representation |doi=10.1007/978-3-662-44874-8 |s2cid=20912932}}</ref> The explanation of the procedure is illustrated by an example: {| |- | '''Procedure''' | | '''''Example''''' | | '''''Example Chromosome''''' |- | colspan=5 | <hr style="background-color:black; height:2px;"> |- style="vertical-align: top; " | | | ''Let be given two permutations of the same set.'' | | <math>P_0 = \left( A,B,C,D,E,F,G,H \right)</math> and <math>P_1 = \left( C,G,E,A,F,H,B,D \right)</math> |- | colspan=5 | <hr style="background-color:gray;"> |- style="vertical-align: top; " | Randomly select two crossover points forming a gene segment in <math>P_0</math>. | | ''Here from gene position 4 to 6.'' | | style="vertical-align: middle;" | <math>P_0 = \left( A,B,C,\underline {D,E,F},G,H \right)</math> |- | colspan=5 | <hr style="background-color:gray;"> |- style="vertical-align: top;" | The selected section is copied to the child chromosome in the same position. | | ''The open positions are indicated by question marks.'' | | style="vertical-align: middle;" | <math>P_C = \left( ?,?,?,\underline {D,E,F},?,? \right)</math> |- | colspan=5 | <hr style="background-color:gray;"> |- style="vertical-align: top;" | rowspan=2 | Look for genes that have not been copied in the corresponding segment of <math>P_1</math> starting at the first crossover point. For each gene found (called <math>m</math>), look up in the offspring which element (called <math>n</math>) was copied in its place from <math>P_0</math>. Copy <math>m</math> to the position held by <math>n</math> in <math>P_1</math> if it is not occupied. Otherwise, continue with the next step. | | ''Gene <math>A</math> is the first uncopied gene in the corresponding segment of <math>P_1</math>: <math>\left(..., A,F,H,... \right)</math>. Gene <math>D</math> was copied from <math>P_0</math> in its place in <math>P_C</math>.'' | | style="vertical-align: middle;" | <math>P_C = \left( ?,?,?,\underline {\bold{D},E,F},?,? \right)</math> |- style="vertical-align: top;" | | ''The position of <math>D</math> in <math>P_1</math> is the furthest right position and <math>A</math> will be placed there in <math>P_C</math>.'' | | style="vertical-align: middle;" | <math>P_C = \left( ?,?,?,\underline {D,E,F},?,A \right)</math> |- | colspan=5 | <hr style="background-color:gray;"> |- style="vertical-align: top; " | If the place taken by <math>n</math> in <math>P_1</math> is already occupied by an element <math>k</math> in the descendant, <math>m</math> is put in the place taken by <math>k</math> in <math>P_1</math>. | | ''The next gene in <math>\left(..., A,F,H,... \right)</math> is <math>F</math> and this has already been copied into the child chromosome. Thus, the next gene to be handled is <math>H</math>. Its position in the offspring would be the position of <math>F</math> in <math>P_1</math>. However, this place is already occupied by gene <math>E</math>. So <math>H</math> is copied to the position of <math>E</math> in <math>P_1</math>.'' | | style="vertical-align: middle;" | <math>P_C = \left( ?,?,H,\underline {D,E,F},?,A \right)</math> |- | colspan=5 | <hr style="background-color:gray;"> |- style="vertical-align: top; " | After processing the genes from the selected segment in <math>P_1</math>, the remaining positions in the offspring are filled with the genes from <math>P_1</math> that have not yet been copied, in the order of their appearance. This results in the finished child genome. | | ''The genes copied from <math>P_1</math> are <math>C, G</math> and <math>B</math>.'' | |style="vertical-align: top;" | <math>P_C = \left( C,G,H,\underline {D,E,F},B,A \right)</math> |- | colspan=5 | <hr style="background-color:gray;"> |}
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)