La mutación es un operador genético que se utiliza para mantener la diversidad genética de los cromosomas de una población de un algoritmo evolutivo (AE), incluidos los algoritmos genéticos en particular. Es análoga a la mutación biológica .
El ejemplo clásico de un operador de mutación en un algoritmo genético (AG) codificado en binario implica la probabilidad de que un bit arbitrario en una secuencia genética cambie de su estado original. Un método común para implementar el operador de mutación consiste en generar una variable aleatoria para cada bit de la secuencia. Esta variable aleatoria indica si un bit en particular cambiará o no. Este procedimiento de mutación, basado en la mutación puntual biológica , se denomina mutación de punto único. Otros tipos de operadores de mutación se utilizan comúnmente para representaciones distintas a la binaria, como codificaciones de punto flotante o representaciones para problemas combinatorios.
El propósito de la mutación en los algoritmos evolutivos (AE) es introducir diversidad en la población muestreada . Los operadores de mutación se utilizan para intentar evitar mínimos locales , impidiendo que la población de cromosomas se vuelva demasiado similar entre sí, lo que ralentiza o incluso detiene la convergencia hacia el óptimo global. Este razonamiento también lleva a la mayoría de los AE a evitar seleccionar únicamente a los individuos más aptos de la población para generar la siguiente generación, y en su lugar seleccionan un conjunto aleatorio (o semialeatorio) con una ponderación hacia aquellos que son más aptos. [ 1 ]
Los siguientes requisitos se aplican a todos los operadores de mutación utilizados en un EA: [ 2 ] [ 3 ]
- Cada punto del espacio de búsqueda debe ser alcanzable mediante una o más mutaciones.
- No debe existir preferencia por ninguna pieza o dirección en el espacio de búsqueda (sin desviación).
- Las mutaciones pequeñas deberían ser más probables que las grandes.
Para distintos tipos de genoma, son adecuados distintos tipos de mutación. Algunas mutaciones son gaussiana, uniforme, en zigzag, aleatoria, por inserción, por inversión, por intercambio, etc. [ 4 ] [ 5 ] [ 6 ] Una descripción general y más operadores que los presentados a continuación se pueden encontrar en el libro introductorio de Eiben y Smith [ 7 ] o en [ 3 ] [ 8 ] .
Mutación de cadena de bits
La mutación de las cadenas de bits se produce mediante cambios de bits en posiciones aleatorias.
Ejemplo:
La probabilidad de mutación de un bit es , donde es la longitud del vector binario. [ 9 ] Por lo tanto, se alcanza una tasa de mutación de por mutación e individuo seleccionado para mutación.
Mutación de los números reales
Muchos EA, como la estrategia evolutiva [ 10 ] [ 11 ] o los algoritmos genéticos de codificación real , [ 12 ] [ 13 ] [ 8 ] trabajan con números reales en lugar de cadenas de bits. Esto se debe a las buenas experiencias que se han tenido con este tipo de codificación. [ 8 ] [ 14 ]
El valor de un gen de valor real puede modificarse o redeterminarse. Una mutación que implique esto último solo debe utilizarse junto con mutaciones que alteren el valor y, aun así, con una probabilidad relativamente baja, ya que puede provocar grandes cambios.
En aplicaciones prácticas, el rango de valores de las variables de decisión del problema de optimización suele ser limitado. Por consiguiente, los valores de los genes asociados se restringen a un intervalo . Las mutaciones pueden o no tener en cuenta estas restricciones. En este último caso, se requiere un postratamiento adecuado, como se describe a continuación.
Mutación sin tener en cuenta las restricciones

Un número real puede ser mutado utilizando la distribución normal sumando el valor aleatorio generado al valor antiguo del gen, lo que da como resultado el valor mutado :
En el caso de genes con un rango restringido de valores, es una buena idea elegir el tamaño del paso de la mutación de manera que se ajuste razonablemente al rango del gen que se va a modificar, por ejemplo:
El tamaño del paso también puede ajustarse al rango de cambio permisible más pequeño, según el valor actual. Sin embargo, en cualquier caso, es probable que el nuevo valor del gen se encuentre fuera del rango de valores permisibles. Este caso debe considerarse una mutación letal, ya que la reparación obvia mediante el uso del límite violado como nuevo valor del gen provocaría una deriva genética. Esto se debe a que el valor límite se seleccionaría entonces con la probabilidad total de que los valores se encuentren fuera del rango permitido.
La estrategia evolutiva funciona con números reales y mutación basada en la distribución normal. Los tamaños de los pasos forman parte del cromosoma y están sujetos a evolución junto con las variables de decisión reales. [ 15 ] [ 16 ]
Mutación teniendo en cuenta las restricciones
Una forma posible de cambiar el valor de un gen teniendo en cuenta su rango de valores es el cambio de parámetro relativo de mutación del algoritmo evolutivo GLEAM (General Learning Evolutionary Algorithm and Method), [ 17 ] en el que, como con la mutación presentada anteriormente, los cambios pequeños son más probables que los grandes.

Primero, se toma una decisión equitativa sobre si el valor actual debe aumentarse o disminuirse, y luego se determina el intervalo de cambio total correspondiente. Sin pérdida de generalidad , se asume un aumento para la explicación y el intervalo de cambio total es entonces . Se divide en subáreas de igual tamaño con un ancho , a partir de las cuales se forman subintervalos de cambio de diferente tamaño:
- -ésimo intervalo de subcambio: con
- y
Posteriormente, se selecciona uno de los intervalos de subcambio con igual frecuencia y se extrae un número aleatorio, también con igual frecuencia, como el nuevo valor del gen. La suma de las probabilidades de los intervalos de subcambio da como resultado la distribución de probabilidad de las subáreas que se muestra en la figura adyacente para el caso ejemplar de . Esta no es una distribución normal como antes, pero también favorece claramente los cambios pequeños sobre los grandes.
Esta mutación para valores mayores de , como 10, es menos adecuada para tareas donde el óptimo se encuentra en uno de los límites del rango de valores. Esto se puede remediar reduciendo significativamente cuando un valor genético se aproxima mucho a sus límites.
Propiedades comunes
Para ambos operadores de mutación aplicados a números reales, la probabilidad de aumento o disminución es independiente del valor actual y es del 50 % en ambos casos. Además, los cambios pequeños son considerablemente más probables que los grandes. En problemas de optimización con variables mixtas , se suele utilizar el redondeo.
Mutación de permutaciones
Las mutaciones de permutaciones están especialmente diseñadas para genomas que son, a su vez, permutaciones de un conjunto . Estas se utilizan a menudo para resolver tareas combinatorias. [ 8 ] [ 18 ] [ 19 ] En las dos mutaciones presentadas, partes del genoma se rotan o invierten.
Rotación hacia la derecha
La presentación del procedimiento [ 19 ] se ilustra con un ejemplo a la derecha:
Inversión
La presentación del procedimiento [ 18 ] se ilustra con un ejemplo a la derecha:
Variantes con preferencia por cambios más pequeños
El requisito planteado inicialmente para las mutaciones, según el cual los cambios pequeños deberían ser más probables que los grandes, no se cumple del todo con las dos mutaciones de permutación presentadas, ya que la longitud de las listas parciales y el número de posiciones de desplazamiento se determinan de forma equitativa. Sin embargo, cuanto más larga sea la lista parcial y el desplazamiento, mayor será el cambio en el orden de los genes.
Esto se puede remediar mediante las siguientes modificaciones. El índice final de las listas parciales se determina como la distancia al índice inicial :
donde se determina aleatoriamente según uno de los dos procedimientos para la mutación de números reales del intervalo y redondeado.
Para la rotación , se determina de forma similar a la distancia , pero el valor está prohibido.
Para la inversión , tenga en cuenta que debe cumplirse, por lo que el valor debe excluirse.
Véase también
Referencias
- ↑ "XI. Cruce y mutación" . Marek Obitko . Consultado el 7 de abril de 2011 .
- ↑ Eiben, AE; Smith, JE (2015). «Operadores de variación (mutación y recombinación)». Introducción a la computación evolutiva . Serie de computación natural. Berlín, Heidelberg: Springer. pp. 31–32 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- 1 2 Bäck, Thomas; Fogel, David B.; Whitley, Darrell; Angeline, Peter J. (1999). "Operadores de mutación". En Bäck, Thomas; Fogel, David B.; Michalewicz, Zbigniew (eds.). Computación evolutiva. Vol. 1, Algoritmos y operadores básicos . Boca Racón: CRC Press. pp. 237–255 . ISBN 0-585-30560-9OCLC 45730387
- ↑ Mirjalili, Seyedali (2019), "Algoritmo genético", en Mirjalili, Seyedali (ed.), Algoritmos evolutivos y redes neuronales: teoría y aplicaciones , Estudios en inteligencia computacional, vol. 780, Cham: Springer International Publishing, pp. 43–55 , doi : 10.1007/978-3-319-93025-1_4 , ISBN 978-3-319-93025-1, S2CID 242047607 , consultado el 26-05-2023
- ↑ Harifi, Sasan; Mohamaddoust, Reza (2023-05-01). "Mutación en zigzag: un nuevo operador de mutación para mejorar el algoritmo genético" . Multimedia Tools and Applications . 82 (29): 45411– 45432. doi : 10.1007/s11042-023-15518-3 . ISSN 1573-7721 . S2CID 258446829 .
- ↑ Katoch, Sourabh; Chauhan, Sumit Singh; Kumar, Vijay (2021-02-01). "Una revisión sobre algoritmos genéticos: pasado, presente y futuro" . Multimedia Tools and Applications . 80 (5): 8091– 8126. doi : 10.1007/s11042-020-10139-6 . ISSN 1573-7721 . PMC 7599983. PMID 33162782 .
- ↑ Eiben, AE; Smith, JE (2015). «Representación, mutación y recombinación». Introducción a la computación evolutiva . Serie de computación natural. Berlín, Heidelberg: Springer. págs. 49–78 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- 1 2 3 4 Michalewicz, Zbigniew (1992). Algoritmos genéticos + Estructuras de datos = Programas evolutivos . Inteligencia artificial. Berlín, Heidelberg: Springer Berlin Heidelberg. doi : 10.1007/978-3-662-02830-8 . ISBN 978-3-662-02832-2. S2CID 33272042 .
- ↑ Eshelman, Larry J. (1999). «Mutación y cruce». En Bäck, Thomas; Fogel, David B.; Michalewicz, Zbigniew (eds.). Computación evolutiva. Vol. 1, Algoritmos y operadores básicos . Boca Racón: CRC Press. pág. 68. ISBN 0-585-30560-9OCLC 45730387
- ^ Rechenberg, Ingo (1973). Evolutionsstrategie - Optimierung technischer Systeme nach Prinzipien der biologischen Evolution (tesis doctoral) (en alemán). Frommann-Holzboog. ISBN 3-7728-0373-3.
- ^ Schwefel, Hans-Paul (1977). Numerische Optimierung von Computermodellen (tesis doctoral) (en alemán). Basilea: Birkhäuser Verlag. Traducción: Optimización numérica de modelos informáticos, Wiley, Chichester, 1981. ISBN 0-471-09988-0OCLC 8011455
- ↑ Wright, Alden H. (1991), Rawlins, Gregory JE (ed.), Algoritmos genéticos para la optimización de parámetros reales , Fundamentos de algoritmos genéticos, vol. 1, Elsevier, pp. 205–218 , doi : 10.1016/b978-0-08-050684-5.50016-1 , ISBN 9780080506845, consultado el 2 de enero de 2023
- ↑ Eshelman, Larry J.; Schaffer, J. David (1993), "Algoritmos genéticos de codificación real y esquemas de intervalos", Fundamentos de algoritmos genéticos , vol. 2, Elsevier, pp. 187–202 , doi : 10.1016/b978-0-08-094832-4.50018-0 , ISBN 978-0-08-094832-4, consultado el 1 de enero de 2023
- ↑ Herrera, F.; Lozano, M.; Verdegay, JL (1998). "Abordando los algoritmos genéticos de codificación real: operadores y herramientas para el análisis del comportamiento" . Artificial Intelligence Review . 12 (4): 265– 319. doi : 10.1023/A:1006504901164 . S2CID 6798965 .
- ↑ Schwefel, Hans-Paul (1995). «Estrategias evolutivas para la optimización numérica». Evolución y búsqueda de óptimos . Serie de tecnología informática de sexta generación. Nueva York: Wiley. págs. 105–151 . ISBN 978-0-471-57148-3.
- ↑ Schwefel, Hans-Paul; Rudolph, Günter (1995), "Estrategias de evolución contemporáneas", en Morán, F.; Moreno, A.; Merelo, JJ; Chacón, P. (eds.), Actas de la Tercera Conferencia Europea sobre Vida Artificial (ECAL'95) , Berlín, Nueva York: Springer, pp. 893–907 , ISBN 978-3-540-59496-3
- ↑ Blume, Christian; Jakob, Wilfried (2002), "GLEAM - Un algoritmo evolutivo para planificación y control basado en estrategia evolutiva", Actas de la Conferencia de Computación Genética y Evolutiva (GECCO 2002) , vol. Artículos de última hora, págs. 31–38 , consultado el 1 de enero de 2023.
- 1 2 Eiben, AE; Smith, JE (2015). "Mutación para la representación de permutaciones". Introducción a la computación evolutiva . Serie de computación natural. Berlín, Heidelberg: Springer. pp. 69–70 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- 1 2 Yu, Xinjie; Gen, Mitsuo (2010). "Operadores de mutación". Introducción a los algoritmos evolutivos . Ingeniería de decisiones. Londres: Springer. pp. 286–288 . doi : 10.1007/978-1-84996-129-5 . ISBN 978-1-84996-128-8.
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.
- De Jong, Kenneth A. (2006). Computación evolutiva : un enfoque unificado . Cambridge, Mass.: MIT Press. ISBN 978-0-262-25598-1OCLC 69652176
- Fogel, David B.; Bäck, Thomas; 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
- Algoritmos evolutivos