Un cromosoma o genotipo en algoritmos evolutivos (AE) es un conjunto de parámetros que definen una solución propuesta al problema que el algoritmo evolutivo intenta resolver. El conjunto de todas las soluciones, también llamadas individuos según el modelo biológico, se conoce como población . [ 1 ] [ 2 ] El genoma de un individuo consta de uno, más raramente de varios, [ 3 ] [ 4 ] cromosomas y corresponde a la representación genética de la tarea a resolver. Un cromosoma está compuesto por un conjunto de genes, donde un gen consta de uno o más parámetros semánticamente conectados , que a menudo también se denominan variables de decisión . Estos determinan una o más características fenotípicas del individuo o al menos influyen en ellas. [ 2 ] En la forma básica de los algoritmos genéticos, el cromosoma se representa como una cadena binaria , [ 5 ] mientras que en variantes posteriores [ 6 ] [ 7 ] y en los AE en general, se utiliza una amplia variedad de otras estructuras de datos . [ 8 ] [ 9 ] [ 10 ]
Diseño cromosómico
Al crear la representación genética de una tarea, se determina qué variables de decisión y otros grados de libertad de la tarea deben mejorarse mediante el EA y posibles heurísticas adicionales, así como cómo debe ser el mapeo genotipo-fenotipo . El diseño de un cromosoma traduce estas consideraciones en estructuras de datos concretas para las cuales se debe seleccionar, configurar, extender o, en el peor de los casos, crear un EA. Encontrar una representación adecuada del dominio del problema para un cromosoma es una consideración importante, ya que una buena representación facilitará la búsqueda al limitar el espacio de búsqueda ; de manera similar, una representación deficiente permitirá un espacio de búsqueda mayor. [ 11 ] En este contexto, también se deben encontrar o definir nuevos operadores de mutación y cruce adecuados [ 2 ] para que se ajusten al diseño de cromosoma elegido. Un requisito importante para estos operadores es que no solo permitan alcanzar todos los puntos en el espacio de búsqueda en principio, sino que también lo hagan lo más fácil posible. [ 12 ] [ 13 ]
Un cromosoma adecuado debe cumplir los siguientes requisitos:
- Debe permitir el acceso a todos los puntos admisibles en el espacio de búsqueda.
- Diseñar el cromosoma de tal manera que cubra únicamente el espacio de búsqueda y ninguna área adicional, de modo que no haya redundancia o la mínima posible.
- Observancia de causalidad fuerte : pequeños cambios en el cromosoma solo deberían conducir a pequeños cambios en el fenotipo. [ 14 ] Esto también se denomina localidad de la relación entre el espacio de búsqueda y el espacio del problema.
- Diseñar el cromosoma de tal manera que excluya por completo o en la mayor medida posible las regiones prohibidas en el espacio de búsqueda.
Si bien el primer requisito es indispensable, dependiendo de la aplicación y del algoritmo evolutivo utilizado, generalmente basta con cumplir los demás requisitos en la medida de lo posible. La búsqueda evolutiva se ve favorecida, e incluso acelerada considerablemente, por un cumplimiento lo más completo posible.
Ejemplos de cromosomas
Cromosomas para codificaciones binarias
En su forma clásica, los algoritmos genéticos utilizan cadenas de bits y asignan a ellas las variables de decisión que se van a optimizar. Un ejemplo para una variable de decisión booleana y tres variables de decisión enteras con los rangos de valores,ypuede ilustrar esto:
Tenga en cuenta que el número negativo aquí se da en complemento a dos . Esta representación directa utiliza cinco bits para representar los tres valores de, aunque dos bits serían suficientes. Esto supone una redundancia significativa. Una alternativa mejorada, en la que se añadiría 28 para el mapeo genotipo-fenotipo, podría tener este aspecto:
con.
Cromosomas con genes de valor real o entero
Para el procesamiento de tareas con variables de decisión de valor real o entero mixto, son adecuados los EA como la estrategia evolutiva [ 15 ] o los GA de codificación real [ 16 ] [ 17 ] [ 18 ] . En el caso de valores enteros mixtos, a menudo se utiliza el redondeo, pero esto representa una violación del requisito de redundancia . Si las precisiones necesarias de los valores reales se pueden reducir razonablemente, esta violación se puede remediar utilizando GA de codificación entera. [ 19 ] [ 20 ] Para este propósito, los dígitos válidos de los valores reales se asignan a enteros mediante la multiplicación por un factor adecuado. Por ejemplo, 12.380 se convierte en el entero 12380 al multiplicarlo por 1000. Esto, por supuesto, debe tenerse en cuenta en el mapeo genotipo-fenotipo para la evaluación y la presentación de resultados. Una forma común es un cromosoma que consiste en una lista o una matriz de valores enteros o reales.
Cromosomas para permutaciones
Los problemas combinatorios se ocupan principalmente de encontrar una secuencia óptima de un conjunto de elementos elementales. Como ejemplo, consideremos el problema del viajante que quiere visitar un número determinado de ciudades exactamente una vez en el recorrido más corto posible. La asignación más simple y obvia a un cromosoma consiste en numerar las ciudades consecutivamente, interpretar la secuencia resultante como una permutación y almacenarla directamente en un cromosoma, donde un gen corresponde al número ordinal de una ciudad. [ 21 ] Sin embargo, los operadores de variación solo pueden cambiar el orden de los genes y no eliminar ni duplicar ninguno. [ 22 ] El cromosoma contiene así la ruta de un posible recorrido por las ciudades. Como ejemplo, la secuenciaDe nueve ciudades pueden servir, a las que corresponde el siguiente cromosoma:
Además de esta codificación, frecuentemente llamada representación de ruta , existen otras formas de representar una permutación, por ejemplo, la representación ordinal o la representación matricial . [ 22 ] [ 23 ]
Cromosomas para la coevolución
Cuando una representación genética contiene, además de las variables de decisión, información adicional que influye en la evolución y/o en la asignación del genotipo al fenotipo, y que a su vez está sujeta a evolución, se habla de coevolución . Un ejemplo típico es la estrategia evolutiva (EE), que incluye uno o más tamaños de pasos de mutación como parámetros de estrategia en cada cromosoma. [ 15 ] Otro ejemplo es un gen adicional para controlar una heurística de selección para la asignación de recursos en la planificación de tareas. [ 24 ]
Este enfoque se basa en la premisa de que las buenas soluciones se fundamentan en una selección adecuada de parámetros estratégicos o en genes de control que influyen en el mapeo genotipo-fenotipo. El éxito del ES respalda esta premisa.
Cromosomas para representaciones complejas
Los cromosomas presentados anteriormente son adecuados para tareas de procesamiento de optimización continua, mixta, entera pura o combinatoria. Sin embargo, para una combinación de estas áreas de optimización, resulta cada vez más difícil mapearlas a simples cadenas de valores, según la tarea. Para este propósito, el algoritmo evolutivo de aprendizaje general GLEAM (EA GLEAM) propone la siguiente extensión del concepto de gen: [ 25 ] Un gen se considera la descripción de un elemento o rasgo elemental del fenotipo, que puede tener múltiples parámetros. Para ello, se definen tipos de genes que contienen tantos parámetros del tipo de datos apropiado como se requieran para describir el elemento particular del fenotipo. Un cromosoma ahora consta de genes como objetos de datos de los tipos de genes, donde, según la aplicación, cada tipo de gen aparece exactamente una vez como gen o puede estar contenido en el cromosoma cualquier número de veces. Esto último da lugar a cromosomas de longitud dinámica, como se requiere para algunos problemas. [ 26 ] [ 27 ] Las definiciones de tipo de gen también contienen información sobre los rangos de valores permisibles de los parámetros del gen, que se observan durante la generación del cromosoma y por las mutaciones correspondientes, por lo que no pueden dar lugar a mutaciones letales. Para tareas con una parte combinatoria, existen operadores genéticos adecuados que pueden mover o reposicionar genes en su conjunto, es decir, con sus parámetros.


A scheduling task is used as an illustration, in which 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.[24] 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.

Chromosomes for tree representations
Tree representations in a chromosome are used by genetic programming, an EA type for generating computer programs or circuits.[10] The trees correspond to the 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.[28]
Bibliography
- Thomas Bäck (1996): Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms, Oxford Univ. Press. ISBN 978-0-19-509971-3
- Wolfgang Banzhaf, P. Nordin, R. Keller, F. Francone (1998): Genetic Programming - An Introduction, Morgan Kaufmann, San Francisco. ISBN 1-55860-510-X
- Kenneth A. de Jong (2006): Evolutionary Computation: A Unified Approach. MIT Press, Cambridge, MA. ISBN 0-262-04194-4
- Melanie Mitchell (1996): An Introduction to Genetic Algorithms. MIT Press, Cambridge MA. ISBN 978-0-262-63185-3
- Hans-Paul Schwefel (1995): Evolution and Optimum Seeking. Wiley & Sons, New York. ISBN 0-471-57148-2
References
- ↑"Introduction to genetic algorithms: IV. Genetic Algorithm". Retrieved 12 August 2015.
- 123Eiben, A.E.; Smith, J.E. (2015). "Components of Evolutionary Algorithms". Introduction to Evolutionary Computing. Natural Computing Series. Berlin, Heidelberg: Springer. pp. 28–34. doi:10.1007/978-3-662-44874-8. ISBN 978-3-662-44873-1. S2CID 20912932.
- ↑Baine, Nicholas (2008), "A simple multi-chromosome genetic algorithm optimization of a Proportional-plus-Derivative Fuzzy Logic Controller", NAFIPS 2008 - 2008 Annual Meeting of the North American Fuzzy Information Processing Society, IEEE, pp. 1–5, doi:10.1109/NAFIPS.2008.4531273, ISBN 978-1-4244-2351-4, S2CID 46591432
- ↑Peng, Jin; Chu, Zhang Shu (2010), "A Hybrid Multi-chromosome Genetic Algorithm for the Cutting Stock Problem", 3rd International Conference on Information Management, Innovation Management and Industrial Engineering, IEEE, pp. 508–511, doi:10.1109/ICIII.2010.128, ISBN 978-1-4244-8829-2, S2CID 15608610
- ↑Holland, John H. (1992). Adaptation in natural and artificial systems. Cambridge, Mass.: MIT Press. ISBN 0-585-03844-9. OCLC 42854623.
- ↑Janikow, C.Z.; Michalewicz, Z. (1991), "An Experimental Comparison of Binary and Floating Point Representations in Genetic Algorithms", in Belew, Richard K.; Booker, Lashon B. (eds.), Proceedings of the Fourth International Conference on Genetic Algorithms(PDF), San Francisco, CA: Morgan Kaufmann Publishers, pp. 31–36, ISBN 1-55860-208-9
- ↑Whitley, Darrell (June 1994). "A genetic algorithm tutorial". Statistics and Computing. 4 (2). CiteSeerX 10.1.1.184.3999. doi:10.1007/BF00175354. S2CID 3447126.
- ↑ Whitley, Darrell (2001). "Una visión general de los algoritmos evolutivos: cuestiones prácticas y errores comunes" . Information and Software Technology . 43 (14): 817– 831. doi : 10.1016/S0950-5849(01)00188-4 . S2CID 18637958 .
- ↑ Bäck, Thomas; Hoffmeister, Frank; Schwefel, Hans-Paul (1991), "A Survey of Evolution Strategies", en Belew, Richard K.; Booker, Lashon B. (eds.), Proceedings of the Fourth International Conference on Genetic Algorithms , San Francisco, CA: Morgan Kaufmann Publishers, pp. 2–9 , ISBN 1-55860-208-9
- 1 2 Koza, John R. (1992). Programación genética : sobre la programación de computadoras mediante selección natural . Cambridge, Mass.: MIT Press. ISBN 0-262-11170-5OCLC 26263956
- ↑ "Algoritmos genéticos" . Archivado del original el 22 de octubre de 2019. Consultado el 12 de agosto de 2015 .
- ↑ Rothlauf, Franz (2002). Representaciones para algoritmos genéticos y evolutivos . Estudios en lógica difusa y computación blanda. Vol. 104. Heidelberg: Physica-Verlag HD. p. 31. doi : 10.1007/978-3-642-88094-0 . ISBN 978-3-642-88096-4.
- ↑ Eiben, AE; Smith, JE (2015). «Representación y funciones de los operadores de variación». Introducción a la computación evolutiva . Serie de computación natural. Berlín, Heidelberg: Springer. pp. 49–51 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- ↑ Galván-López, Edgar; McDermott, James; O'Neill, Michael; Brabazon, Anthony (2010-07-07). «Hacia una comprensión de la localidad en la programación genética» . Actas de la 12.ª conferencia anual sobre computación genética y evolutiva (PDF) . Portland, Oregón, EE. UU.: ACM. págs. 901–908 . doi : 10.1145/1830483.1830646 . ISBN 978-1-4503-0072-8. S2CID 15348983 .
- 1 2 Schwefel, Hans-Paul (1995). Evolución y búsqueda óptima . Nueva York: John Wiley & Sons. ISBN 0-471-57148-2OCLC 30701094
- ↑ 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 26 de enero de 2023
- ↑ Michalewicz, Zbigniew (1996). Algoritmos genéticos + Estructuras de datos = Programas evolutivos . Tercera edición, revisada y ampliada. Berlín, Heidelberg: Springer. ISBN 978-3-662-03315-9OCLC 851375253
- ↑ Deep, Kusum; Singh, Krishna Pratap; Kansal, ML; Mohan, C. (junio de 2009). "Un algoritmo genético codificado real para resolver problemas de optimización de enteros y enteros mixtos" . Matemáticas Aplicadas y Computación . 212 (2): 505– 518. doi : 10.1016/j.amc.2009.02.044 .
- ↑ Wang, Fuchang; Cao, Huirong; Qian, Xiaoshi (2011), "Algoritmo genético codificado en enteros decimales para el estimador recortado del modelo de errores lineales múltiples en variables", en Liu, Baoxiang; Chai, Chunlai (eds.), Information Computing and Applications , LNCS 7030, Berlín, Heidelberg: Springer, pp. 359–366 , doi : 10.1007/978-3-642-25255-6_46 , ISBN 978-3-642-25254-9, consultado el 23 de enero de 2023
- ↑ Cheng, Xueli; An, Linchao; Zhang, Zhenhua (2019). "Algoritmo genético de codificación entera para optimizar la asignación de redundancia de sistemas serie-paralelo" . Journal of Engineering Science and Technology Review . 12 (1): 126– 136. doi : 10.25103/JESTR.121.15 . S2CID 149497992 .
- ↑ Eiben, AE; Smith, JE (2015). «Representación de permutaciones». Introducción a la computación evolutiva . Serie de computación natural. Berlín, Heidelberg: Springer. págs. 67–74 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- 1 2 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 .
- ↑ Whitley, Darrell (2000). «Permutaciones». En Fogel, David B.; Bäck, Thomas; Michalewicz, Zbigniew (eds.). Computación evolutiva. Vol. 1, Algoritmos y operadores básicos . Bristol: Institute of Physics Pub. pp. 139–150 . ISBN 0-585-30560-9OCLC 45730387
- 1 2 Jakob, Wilfried; Strack, Sylvia; Quinte, Alexander; Bengel, Günther; Stucky, Karl-Uwe; Süß, Wolfgang (22 de abril de 2013). "Reprogramación rápida de múltiples flujos de trabajo a recursos heterogéneos restringidos mediante computación memética multicriterio" . págs. 253-255. Algorithms . 6 (2): 245–277 . doi : 10.3390/a6020245 . ISSN 1999-4893 .
- ↑ 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.
- ↑ Pawar, Sunil Nilkanth; Bichkar, Rajankumar Sadashivrao (junio de 2015). "Algoritmo genético con cromosomas de longitud variable para la detección de intrusiones en redes" . International Journal of Automation and Computing . 12 (3): 337– 342. doi : 10.1007/s11633-014-0870-x . ISSN 1476-8186 . S2CID 255346767 .
- ↑ Blume, Christian (2000), "Generación optimizada de instrucciones de movimiento de robots sin colisiones mediante el software evolutivo GLEAM", en Cagnoni, Stefano (ed.), Aplicaciones en el mundo real de la computación evolutiva , Lecture Notes in Computer Science, vol. 1803, Berlín, Heidelberg: Springer Berlin Heidelberg, pp. 330–341 , doi : 10.1007/3-540-45561-2_32 , ISBN 978-3-540-67353-8, consultado el 25/06/2023
- ↑Eiben, A.E.; Smith, J.E. (2015). "Tree Representation". Introduction to Evolutionary Computing. Natural Computing Series. Berlin, Heidelberg: Springer. pp. 75–78. doi:10.1007/978-3-662-44874-8. ISBN 978-3-662-44873-1. S2CID 20912932.
- Evolutionary algorithms