El cruce genético en algoritmos y computación evolutiva , también llamado recombinación , es un operador genético que se utiliza para combinar la información genética de dos progenitores y generar nueva descendencia. Es una forma de generar estocásticamente nuevas soluciones a partir de una población existente y es análogo al cruce genético que ocurre durante la reproducción sexual en biología . También se pueden generar nuevas soluciones clonando una solución existente, lo cual es análogo a la reproducción asexual . Las soluciones recién generadas pueden mutar antes de incorporarse a la población. El objetivo de la recombinación es transferir características deseables de dos progenitores diferentes a un solo descendiente.
En la computación evolutiva, los distintos algoritmos pueden utilizar diferentes estructuras de datos para almacenar información genética, y cada representación genética puede recombinarse con diferentes operadores de cruce. Las estructuras de datos típicas que pueden recombinarse mediante cruce son matrices de bits , vectores de números reales o árboles .
La lista de operadores que se presenta a continuación no es exhaustiva y sirve principalmente como ejemplo ilustrativo de este tipo de operador genético diádico . En la bibliografía se pueden encontrar más operadores y detalles. [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]
Cruce para matrices binarias
Los algoritmos genéticos tradicionales almacenan información genética en un cromosoma representado por una matriz de bits . Los métodos de cruce para matrices de bits son populares y constituyen un ejemplo ilustrativo de recombinación genética .
Cruce de un punto
Se elige un punto al azar en los cromosomas de ambos padres y se le denomina "punto de recombinación". Los fragmentos de ADN situados a la derecha de dicho punto se intercambian entre los cromosomas de ambos progenitores. Esto da como resultado dos descendientes, cada uno con información genética de ambos padres.
![]()
Cruce de dos puntos y de k puntos
En el entrecruzamiento de dos puntos, se seleccionan aleatoriamente dos puntos de entrecruzamiento de los cromosomas parentales. Los bits que se encuentran entre estos dos puntos se intercambian entre los organismos parentales.
![]()
El cruce de dos puntos equivale a realizar dos cruces de un punto con puntos de cruce diferentes. Esta estrategia se puede generalizar al cruce de k puntos para cualquier entero positivo k, seleccionando k puntos de cruce.
Cruce uniforme
En el entrecruzamiento uniforme, normalmente, cada bit se elige de cualquiera de los padres con igual probabilidad. [ 6 ] A veces se utilizan otras proporciones de mezcla, lo que da como resultado descendientes que heredan más información genética de un progenitor que del otro. En un entrecruzamiento uniforme, no dividimos el cromosoma en segmentos, sino que tratamos cada gen por separado. En este caso, básicamente lanzamos una moneda para cada cromosoma para decidir si se incluirá o no en la descendencia.
Cruce para genomas de valores enteros o reales

Para los operadores de cruce presentados anteriormente y para la mayoría de los demás operadores de cruce para cadenas de bits, se cumple que también pueden aplicarse de forma similar a genomas enteros o reales cuyos genes consisten cada uno en un número entero o real. En lugar de bits individuales, los números enteros o reales se copian simplemente en el genoma hijo. La descendencia se sitúa en las esquinas restantes del hipercuerpo formado por los dos progenitores.y, como se ejemplifica en la imagen adjunta para el caso tridimensional.
Recombinación discreta
Si se aplican las reglas del cruce uniforme para cadenas de bits durante la generación de la descendencia, esto también se denomina recombinación discreta . [ 7 ]
Recombinación intermedia

En este operador de recombinación, los valores alélicos del genoma del niñose generan mezclando los alelos de los dos genomas parentales.y: [ 7 ] [ 8 ]
- distribuidos aleatoriamente de manera igual por gen
La elección del intervalocausas que además del interior del hipercuerpo abarcado por los valores alélicos de los genes parentales, también está en cuestión un cierto entorno para el rango de valores de la descendencia. Un valor deSe recomienda parapara contrarrestar la tendencia a reducir los valores alélicos que de otro modo existen en. [ 9 ]
La figura adjunta muestra, para el caso bidimensional, el rango de posibles nuevos alelos de los dos progenitores ejemplares.yen la recombinación intermedia. La descendencia de la recombinación discreta.yTambién se grafican. La recombinación intermedia satisface el cálculo aritmético de los valores alélicos del genoma hijo requerido por la teoría del alfabeto virtual. [ 10 ] [ 11 ] La recombinación discreta e intermedia se utiliza como estándar en la estrategia evolutiva . [ 12 ]
Cruce para permutaciones
Para tareas combinatorias , se suelen utilizar permutaciones diseñadas específicamente para genomas que son a su vez permutaciones de un conjunto . El conjunto subyacente suele ser un subconjunto deoSi se utiliza el cruce de 1 o n puntos, o el cruce uniforme para genomas enteros, un genoma hijo puede contener algunos valores duplicados y otros pueden estar ausentes. Esto se puede remediar mediante reparación genética , por ejemplo, reemplazando los genes redundantes con fidelidad posicional por los genes ausentes del otro genoma hijo.
Para evitar la generación de descendencia inválida, se han desarrollado operadores de cruce especiales para permutaciones [ 13 ] que cumplen con los requisitos básicos de dichos operadores, a saber, que todos los elementos de la permutación inicial también estén presentes en la nueva y que solo cambie el orden. Se puede distinguir entre tareas combinatorias, donde todas las secuencias son admisibles, y aquellas donde existen restricciones en forma de secuencias parciales inadmisibles. Un ejemplo bien conocido del primer tipo de tarea es el problema del viajante (TSP), donde el objetivo es visitar un conjunto de ciudades exactamente una vez en el recorrido más corto. Un ejemplo del tipo de tarea restringida es la programación de múltiples flujos de trabajo . Los flujos de trabajo implican restricciones de secuencia en algunos de los pasos de trabajo individuales. Por ejemplo, no se puede cortar una rosca hasta que se haya perforado el orificio correspondiente en una pieza de trabajo. Estos problemas también se denominan permutaciones restringidas . [ 14 ]
A continuación, se presentan dos operadores de cruce como ejemplos: el cruce parcialmente mapeado (PMX), inspirado en el problema del viajante, y el cruce ordenado (OX1), diseñado para permutaciones basadas en el orden. En ambos casos, se puede generar un segundo descendiente intercambiando los cromosomas parentales.
Cruce parcialmente mapeado (PMX)
El operador PMX fue diseñado como un operador de recombinación para problemas similares al TSP. [ 15 ] [ 16 ] La explicación del procedimiento se ilustra con un ejemplo:
Cruce de órdenes (OX1)
El cruce de orden se remonta a Davis [ 1 ] en su forma original y se presenta aquí en una versión ligeramente generalizada con más de dos puntos de cruce. Transfiere información sobre el orden relativo del segundo progenitor a la descendencia. Primero, se determina aleatoriamente el número y la posición de los puntos de cruce. Las secuencias genéticas resultantes se procesan como se describe a continuación:
Entre otras cosas, el cruce de órdenes es muy adecuado para programar múltiples flujos de trabajo, cuando se utiliza junto con el cruce de 1 y n puntos. [ 17 ]
Otros operadores de cruce para permutaciones
Con el tiempo, se han propuesto numerosos operadores de cruce para permutaciones, por lo que la siguiente lista es solo una pequeña selección. Para más información, se remite al lector a la bibliografía. [ 1 ] [ 5 ] [ 16 ] [ 13 ]
- cruce de ciclo (CX) [ 18 ] [ 16 ]
- cruce basado en el orden (OX2) [ 5 ] [ 19 ]
- cruce basado en la posición (POS) [ 5 ] [ 19 ]
- recombinación de borde [ 20 ] [ 16 ]
- recombinación de votación (VR) [ 13 ]
- cruce de posiciones alternas (AP) [ 13 ]
- cruce máximo de conservantes (MPX) [ 5 ] [ 21 ]
- fusión cruzada (MX) [ 5 ] [ 22 ]
- operador de cruce constructivo secuencial (SCX) [ 23 ]
El enfoque habitual para resolver problemas similares al TSP mediante algoritmos genéticos o, más generalmente, evolutivos, presentado anteriormente, consiste en corregir los descendientes ilegales o ajustar los operadores adecuadamente para que no surjan descendientes ilegales en primer lugar. Como alternativa, Riazi sugiere el uso de una representación de cromosoma doble, que evita la descendencia ilegal. [ 24 ]
Véase también
Bibliografía
- John Holland (1975). Adaptación en sistemas naturales y artificiales , tesis doctoral, University of Michigan Press , Ann Arbor, Michigan. ISBN 0-262-58111-6.
- Schwefel, Hans-Paul (1995). Evolución y búsqueda óptima . Nueva York: John Wiley & Sons. ISBN 0-471-57148-2.
- Davis, Lawrence (1991). Manual de algoritmos genéticos . Nueva York: Van Nostrand Reinhold. ISBN 0-442-00173-8OCLC 23081440
- Eiben, AE; Smith, JE (2015). Introducción a la computación evolutiva . Serie de computación natural. Berlín, Heidelberg: Springer. doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- Yu, Xinjie; Gen, Mitsuo (2010). Introducción a los algoritmos evolutivos . Ingeniería de decisiones. Londres: Springer. doi : 10.1007/978-1-84996-129-5 . ISBN 978-1-84996-128-8.
- Bäck, Thomas; Fogel, David B.; Michalewicz, Zbigniew, eds. (1999). Computación evolutiva. Vol. 1, Algoritmos y operadores básicos . Bristol: Institute of Physics Pub. ISBN 0-585-30560-9OCLC 45730387
Referencias
- 1 2 3 Davis, Lawrence (1991). Manual de algoritmos genéticos . Nueva York: Van Nostrand Reinhold. ISBN 0-442-00173-8OCLC 23081440
- ↑ Eiben, AE; Smith, JE (2015). «Representación, mutación y recombinación». Introducción a la computación evolutiva . Serie de computación natural (2.ª ed.). Berlín, Heidelberg: Springer. págs. 49–78 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- ↑ Yu, Xinjie; Gen, Mitsuo (2010). "Codificación y operadores". Introducción a los algoritmos evolutivos . Ingeniería de decisiones. Londres: Springer. pp. 40–63 . doi : 10.1007/978-1-84996-129-5 . ISBN 978-1-84996-129-5OCLC 654380156
- ↑ Yu, Xinjie; Gen, Mitsuo (2010). «Operadores de variación para códigos de permutación». Introducción a los algoritmos evolutivos . Ingeniería de decisiones. Londres: Springer. pp. 285–299 . doi : 10.1007/978-1-84996-129-5 . ISBN 978-1-84996-128-8.
- 1 2 3 4 5 6 Booker, Lashon B.; Fogel, David B.; Whitley, Darrell; Angeline, Peter J.; Eiben, AE (2000). "Recombinación". En Bäck, Thomas; Fogel, David B.; Michalewicz, Zbigniew (eds.). Computación evolutiva. Vol. 1, Algoritmos y operadores básicos . Bristol: Institute of Physics Pub. pp. 256–307 . ISBN 0-585-30560-9OCLC 45730387
- ↑ Syswerda, Gilbert (1989), "Cruce uniforme en algoritmos genéticos", en Schaffer, JD (ed.), Actas de la 3.ª Conferencia Internacional sobre Algoritmos Genéticos (ICGA) , San Francisco: Morgan Kaufmann, pp. 2–9 , ISBN 1558600663
- 1 2 Eiben, AE; Smith, JE (2015). "Operadores de recombinación para la representación de valores reales". Introducción a la computación evolutiva . Serie de computación natural (2.ª ed.). Berlín, Heidelberg: Springer. pp. 65–67 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- ↑ Yu, Xinjie; Gen, Mitsuo (2010). "Código real y operadores relacionados". Introducción a los algoritmos evolutivos . Ingeniería de decisiones. Londres: Springer. págs. 45–63 . doi : 10.1007/978-1-84996-129-5 . ISBN 978-1-84996-128-8.
- ↑ Mühlenbein, Heinz; Schlierkamp-Voosen, Dirk (1993). "Modelos predictivos para el algoritmo genético de reproducción I. Optimización continua de parámetros" . Evolutionary Computation . 1 (1): 25– 49. doi : 10.1162/evco.1993.1.1.25 . ISSN 1063-6560 . S2CID 16085506 .
- ↑ Goldberg, David E. (1991). "Algoritmos genéticos de codificación real, alfabetos virtuales y bloqueo" . Complex Syst . 5 (2): 139– 167.
- ↑ Stender, J.; Hillebrand, E.; Kingdon, J. (1994). Algoritmos genéticos en optimización, simulación y modelado . Ámsterdam: IOS Press. ISBN 90-5199-180-0OCLC 47216370
- ↑ Schwefel, Hans-Paul (1995). Evolución y búsqueda óptima . Nueva York: Wiley. ISBN 0-471-57148-2OCLC 30701094
- 1 2 3 4 Larrañaga, P.; Kuijpers, CMH; Murga, RH; Inza, I.; Dizdarevic, S. (1999). "Algoritmos genéticos para el problema del viajante: una revisión de representaciones y operadores" . Artificial Intelligence Review . 13 (2): 129– 170. doi : 10.1023/A:1006529012972 . S2CID 10284682 .
- ↑ Atkinson, MD (enero de 1999). "Permutaciones restringidas". Matemáticas Discretas . 195 (1): 27– 38. doi : 10.1016/S0012-365X(98)00162-9 .
- ↑ Goldberg, David E.; Lingle, R. (1985), "Alelos, loci y el problema del viajante", en Grefenstette, John J. (ed.), Actas de la Primera Conferencia Internacional sobre Algoritmos Genéticos y sus Aplicaciones (ICGA) , Hillsdale, NJ: Lawrence Erlbaum Associates, pp. 154–159 , ISBN 0-8058-0426-9, OCLC 19702892
- 1 2 3 4 Eiben, AE; Smith, JE (2015). "Recombinación para la representación de permutaciones". Introducción a la computación evolutiva . Serie de computación natural (2.ª ed.). Berlín, Heidelberg: Springer. págs. 70–74 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- ↑ Jakob, Wilfried; Quinte, Alexander; Stucky, Karl-Uwe; Süß, Wolfgang (2008), "Fast Multi-objective Scheduling of Jobs to Constrained Resources Using a Hybrid Evolutionary Algorithm" , en Rudolph, Günter; Jansen, Thomas; Beume, Nicola; Lucas, Simon (eds.), Parallel Problem Solving from Nature – PPSN X , vol. LNCS 5199, Berlín, Heidelberg: Springer, pp. 1031–1040 , doi : 10.1007/978-3-540-87700-4_102 , ISBN 978-3-540-87699-1, consultado el 14 de enero de 2023
- ↑ Oliver, IM; Smith, DJ; Holland, J. (1987), "Un estudio de operadores de cruce de permutaciones en el problema del viajante de comercio", en Grefenstette, John J. (ed.), Actas de la Segunda Conferencia Internacional sobre Algoritmos Genéticos y sus Aplicaciones (ICGA) , Hillsdale, NJ: Lawrence Erlbaum Associates, pp. 224–230 , ISBN 978-0-8058-0158-3
- 1 2 Syswerda, Gilbert (1991). "Optimización de la programación mediante algoritmos genéticos". En Davis, Lawrence (ed.). Manual de algoritmos genéticos . Nueva York: Van Nostrand Reinhold. pp. 332–349 . ISBN 0-442-00173-8OCLC 23081440
- ↑ Whitley, Darrell; Starkweather, Timothy; Fuquay, D'Ann (1989), "Problemas de programación y viajante de comercio: el operador de recombinación de bordes genéticos", en Schaffer, JD (ed.), Actas de la 3.ª Conferencia Internacional sobre Algoritmos Genéticos (ICGA) , San Francisco: Morgan Kaufmann, pp. 133–140 , ISBN 1558600663
- ↑ Dzubera, John; Whitley, Darrell (1994), "Análisis avanzado de correlación de operadores para el problema del viajante" , en Davidor, Yuval; Schwefel, Hans-Paul; Männer, Reinhard (eds.), Resolución de problemas paralelos inspirada en la naturaleza — PPSN III , vol. 866, Berlín, Heidelberg: Springer, pp. 68–77 , doi : 10.1007/3-540-58484-6_251 , ISBN 978-3-540-58484-1, consultado el 15 de enero de 2023
- ↑ Blanton, Joe L.; Wainwright, Roger L. (1993), "Enrutamiento de múltiples vehículos con restricciones de tiempo y capacidad mediante algoritmos genéticos", en Forrest, Stephanie (ed.), Actas de la 5.ª Conferencia Internacional sobre Algoritmos Genéticos (ICGA) , San Francisco: Morgan Kaufmann, pp. 452–459 , ISBN 978-1-55860-299-1
- ↑ Ahmed, Zakir Hussain (2000). Muestreo constructivo secuencial y enfoques relacionados con la optimización combinatoria (Tesis doctoral). Universidad de Tezpur, India.
- ↑ Riazi, Amin (14 de octubre de 2019). "Algoritmo genético y una implementación de doble cromosoma para el problema del viajante". SN Applied Sciences . 1 (11) 1397. doi : 10.1007/s42452-019-1469-1 .
Enlaces externos
- Grupo de noticias: Preguntas frecuentes de comp.ai.genetic - consulte la sección sobre entrecruzamiento (también conocido como recombinación).
- Algoritmos evolutivos