Los algoritmos evolutivos ( AE ) reproducen elementos esenciales de la evolución biológica en un algoritmo informático para resolver problemas "difíciles", al menos de forma aproximada , para los que no se conocen métodos de solución exactos o satisfactorios. Son metaheurísticas y algoritmos bioinspirados basados en poblaciones [ 1 ] y computación evolutiva , que a su vez forman parte del campo de la inteligencia computacional [ 2 ] . Los mecanismos de la evolución biológica que un AE imita principalmente son la reproducción , la mutación , la recombinación y la selección . Las soluciones candidatas al problema de optimización desempeñan el papel de individuos en una población, y la función de aptitud determina la calidad de las soluciones (véase también la función de pérdida ). La evolución de la población tiene lugar después de la aplicación repetida de los operadores mencionados.
Los algoritmos evolutivos suelen funcionar bien aproximando soluciones a todo tipo de problemas porque, idealmente, no hacen ninguna suposición sobre el paisaje de aptitud subyacente . Las técnicas de algoritmos evolutivos aplicadas al modelado de la evolución biológica generalmente se limitan a exploraciones de microevolución (procesos microevolutivos) y modelos de planificación basados en procesos celulares. En la mayoría de las aplicaciones reales de los EA, la complejidad computacional es un factor limitante. [ 3 ] De hecho, esta complejidad computacional se debe a la evaluación de la función de aptitud. La aproximación de la aptitud es una de las soluciones para superar esta dificultad. Sin embargo, un EA aparentemente simple puede resolver problemas a menudo complejos; [ 4 ] [ 5 ] [ 6 ] por lo tanto, puede que no haya un vínculo directo entre la complejidad del algoritmo y la complejidad del problema.
Definición genérica
El siguiente es un ejemplo de un algoritmo evolutivo genérico: [ 7 ] [ 8 ] [ 9 ]
- Genera aleatoriamente la población inicial de individuos , la primera generación.
- Evaluar la aptitud de cada individuo en la población.
- Compruebe si se ha alcanzado el objetivo y si el algoritmo puede finalizar.
- Seleccione como padres a personas que, preferiblemente, tengan un buen estado físico.
- Producir descendencia con entrecruzamiento opcional (imitando la reproducción ).
- Aplicar operaciones de mutación a la descendencia .
- Seleccionar individuos preferiblemente con menor aptitud para reemplazarlos con nuevos individuos (imitando la selección natural ).
- Volver a 2
Tipos
Técnicas similares difieren en la representación genética y otros detalles de implementación, así como en la naturaleza del problema específico que se aplica.
- Algoritmo genético : este es el tipo de EA más popular. Se busca la solución de un problema en forma de cadenas de números (tradicionalmente binarios, aunque las mejores representaciones suelen reflejar algo sobre el problema que se está resolviendo) [ 3 ] mediante la aplicación de operadores como la recombinación y la mutación (a veces uno, a veces ambos). Este tipo de EA se utiliza a menudo en problemas de optimización .
- Programación genética : Aquí las soluciones se presentan en forma de programas informáticos, y su aptitud se determina por su capacidad para resolver un problema computacional. Existen muchas variantes de la programación genética:
- Programación evolutiva : similar a la estrategia evolutiva, pero con una selección determinista de todos los progenitores.
- Estrategia evolutiva (EE): trabaja con vectores de números reales como representaciones de soluciones y, por lo general, utiliza tasas de mutación auto-adaptativas. El método se utiliza principalmente para la optimización numérica, aunque también existen variantes para tareas combinatorias. [ 10 ] [ 11 ] [ 12 ]
- Evolución diferencial : se basa en diferencias vectoriales y, por lo tanto, es principalmente adecuada para problemas de optimización numérica .
- Algoritmo coevolutivo: similar a los algoritmos genéticos y las estrategias evolutivas, pero las soluciones creadas se comparan en función de los resultados de sus interacciones con otras soluciones. Las soluciones pueden competir o cooperar durante el proceso de búsqueda. Los algoritmos coevolutivos se utilizan a menudo en escenarios donde el panorama de aptitud es dinámico, complejo o implica interacciones competitivas. [ 13 ] [ 14 ]
- Neuroevolución : similar a la programación genética, pero los genomas representan redes neuronales artificiales al describir la estructura y los pesos de las conexiones. La codificación del genoma puede ser directa o indirecta.
- Sistema de aprendizaje de clasificadores : en este caso, la solución consiste en un conjunto de clasificadores (reglas o condiciones). Un sistema de aprendizaje de clasificadores de Michigan (Michigan-LCS) evoluciona a nivel de clasificadores individuales, mientras que un sistema de aprendizaje de clasificadores de Pittsburgh (Pittsburgh-LCS) utiliza conjuntos de clasificadores. Inicialmente, los clasificadores eran binarios, pero ahora incluyen tipos reales, de redes neuronales o de expresiones S. La aptitud se determina generalmente mediante un enfoque de aprendizaje por refuerzo o aprendizaje supervisado basado en la fuerza o la precisión .
- Algoritmos de calidad-diversidad (QD): Los algoritmos QD buscan simultáneamente soluciones de alta calidad y diversas. A diferencia de los algoritmos de optimización tradicionales, que se centran únicamente en encontrar la mejor solución a un problema, los algoritmos QD exploran una amplia variedad de soluciones en todo el espacio del problema y conservan aquellas que no solo ofrecen un alto rendimiento, sino que también son diversas y únicas. [ 15 ] [ 16 ] [ 17 ]
Fundamentos teóricos
Los siguientes principios teóricos se aplican a todos o casi todos los algoritmos evolutivos.
Teorema de que no hay almuerzo gratis
El teorema de la no existencia de almuerzos gratis en la optimización establece que todas las estrategias de optimización son igualmente efectivas cuando se considera el conjunto de todos los problemas de optimización. Bajo la misma condición, ningún algoritmo evolutivo es fundamentalmente mejor que otro. Esto solo puede ocurrir si el conjunto de todos los problemas está restringido. Esto es precisamente lo que inevitablemente se hace en la práctica. Por lo tanto, para mejorar un EA, debe explotar el conocimiento del problema de alguna forma (por ejemplo, eligiendo una determinada fuerza de mutación o una codificación adaptada al problema ). Así, si se comparan dos EA, esta restricción está implícita. Además, un EA puede utilizar conocimiento específico del problema, por ejemplo, no generando aleatoriamente toda la población inicial, sino creando algunos individuos mediante heurísticas u otros procedimientos. [ 18 ] [ 19 ] Otra posibilidad para adaptar un EA a un dominio de problema dado es involucrar heurísticas adecuadas, procedimientos de búsqueda local u otros procedimientos relacionados con el problema en el proceso de generación de la descendencia. Esta forma de extensión de un EA también se conoce como algoritmo memético . Ambas extensiones desempeñan un papel fundamental en las aplicaciones prácticas, ya que pueden acelerar el proceso de búsqueda y hacerlo más robusto. [ 18 ] [ 20 ]
Convergencia
Para los algoritmos evolutivos (AE) en los que, además de la descendencia, se utiliza al menos el mejor individuo de la generación parental para formar la siguiente generación (los llamados AE elitistas), existe una prueba general de convergencia bajo la condición de que exista un óptimo . Sin pérdida de generalidad , se asume una búsqueda máxima para la prueba:
De la propiedad de aceptación de la descendencia elitista y la existencia del óptimo se deduce que por generaciónuna mejora de la condición físicadel mejor individuo respectivoocurrirá con una probabilidad. De este modo:
Es decir, los valores de aptitud representan una secuencia monótonamente no decreciente , la cual está acotada debido a la existencia del óptimo. De esto se deduce la convergencia de la secuencia hacia el óptimo.
Dado que la demostración no hace ninguna afirmación sobre la velocidad de convergencia, es de poca ayuda en las aplicaciones prácticas de los EA. Pero sí justifica la recomendación de usar EA elitistas. Sin embargo, al usar el modelo de población panmíctica habitual , los EA elitistas tienden a converger prematuramente más que los no elitistas. [ 21 ] En un modelo de población panmíctica, la selección de pareja (véase el paso 4 de la definición genérica ) es tal que cada individuo en toda la población es elegible como pareja. En poblaciones no panmícticas , la selección está adecuadamente restringida, de modo que la velocidad de dispersión de los mejores individuos se reduce en comparación con los panmícticos. Por lo tanto, el riesgo general de convergencia prematura de los EA elitistas puede reducirse significativamente mediante modelos de población adecuados que restrinjan la selección de pareja. [ 22 ] [ 23 ]
alfabetos virtuales
Con la teoría de los alfabetos virtuales, David E. Goldberg demostró en 1990 que, al usar una representación con números reales, un EA que utiliza operadores de recombinación clásicos (por ejemplo, cruce uniforme o de n puntos) no puede alcanzar ciertas áreas del espacio de búsqueda, a diferencia de una codificación con números binarios. [ 24 ] Esto lleva a recomendar que los EA con representación real utilicen operadores aritméticos para la recombinación (por ejemplo, media aritmética o recombinación intermedia). Con operadores adecuados, las representaciones de valores reales son más efectivas que las binarias, contrariamente a la opinión anterior. [ 25 ] [ 26 ]
Comparación con otros conceptos
Procesos biológicos
Una posible limitación de muchos algoritmos evolutivos es su falta de una distinción clara entre genotipo y fenotipo . En la naturaleza, el óvulo fecundado experimenta un proceso complejo conocido como embriogénesis para convertirse en un fenotipo maduro . Se cree que esta codificación indirecta hace que la búsqueda genética sea más robusta (es decir, reduce la probabilidad de mutaciones fatales) y también puede mejorar la capacidad de evolución del organismo. [ 27 ] [ 28 ] Estas codificaciones indirectas (también conocidas como generativas o de desarrollo) también permiten que la evolución explote la regularidad del entorno. [ 29 ] Trabajos recientes en el campo de la embriogénesis artificial , o sistemas de desarrollo artificiales, buscan abordar estas preocupaciones. Y la programación de la expresión génica explora con éxito un sistema genotipo-fenotipo, donde el genotipo consiste en cromosomas multigénicos lineales de longitud fija y el fenotipo consiste en múltiples árboles de expresión o programas informáticos de diferentes tamaños y formas. [ 30 ]
Métodos de Montecarlo
Los algoritmos evolutivos (AE) y los métodos de Montecarlo tienen en común que sus pasos de búsqueda individuales se determinan por azar. Sin embargo, la principal diferencia radica en que los AE, al igual que muchas otras metaheurísticas, aprenden de los pasos de búsqueda anteriores e incorporan esta experiencia en la ejecución de los siguientes pasos de búsqueda de forma específica para cada método. En los AE, esto se logra, en primer lugar, mediante operadores de selección basados en la aptitud para la elección de socios y la formación de la siguiente generación. En segundo lugar, en el tipo de pasos de búsqueda: en los AE, se parte de una solución actual y se modifica, o bien se combina la información de dos soluciones. En cambio, al generar nuevas soluciones en los métodos de Montecarlo, generalmente no existe conexión con las soluciones existentes. [ 31 ] [ 32 ]
Si, por otro lado, el espacio de búsqueda de una tarea es tal que no hay nada que aprender, los métodos de Montecarlo son una herramienta apropiada, ya que no contienen ninguna sobrecarga algorítmica que intente extraer conclusiones adecuadas de la búsqueda anterior. Un ejemplo de tales tareas es la proverbial búsqueda de una aguja en un pajar , por ejemplo, en forma de un hiperplano plano con un único pico estrecho.
Aplicaciones
Las áreas en las que los algoritmos evolutivos se utilizan prácticamente son casi ilimitadas [ 6 ] y abarcan desde la industria, [ 33 ] [ 34 ] la ingeniería, [ 3 ] [ 4 ] [ 35 ] la programación compleja, [ 5 ] [ 36 ] [ 37 ] la agricultura, [ 38 ] la planificación del movimiento de robots [ 39 ] y las finanzas [ 40 ] [ 41 ] hasta la investigación [ 42 ] [ 43 ] y el arte . La aplicación de un algoritmo evolutivo requiere cierta reflexión por parte del usuario inexperto, ya que el enfoque de una tarea utilizando un EA es diferente de los métodos exactos convencionales y esto generalmente no forma parte del plan de estudios de los ingenieros u otras disciplinas. Por ejemplo, el cálculo de aptitud no solo debe formular el objetivo sino también apoyar el proceso de búsqueda evolutiva hacia él, por ejemplo, recompensando las mejoras que aún no conducen a una mejor evaluación de los criterios de calidad originales. Por ejemplo, si se quiere evitar la utilización máxima de recursos como el despliegue de personal o el consumo de energía en una tarea de programación, no basta con evaluar la utilización máxima. Más bien, también se debe registrar el número y la duración de las superaciones de un nivel aún aceptable para recompensar las reducciones por debajo del valor máximo real. [ 44 ] Por lo tanto, hay algunas publicaciones que están dirigidas a principiantes y que buscan ayudar a evitar errores de principiante, así como a llevar un proyecto de aplicación al éxito. [ 44 ] [ 45 ] [ 46 ] Esto incluye aclarar la cuestión fundamental de cuándo se debe usar un EA para resolver un problema y cuándo es mejor no hacerlo.
Técnicas relacionadas y otros métodos de búsqueda global
Existen otros métodos probados y ampliamente utilizados de técnicas de búsqueda global inspiradas en la naturaleza [ 47 ] tales como:
- Algoritmo memético : un método híbrido, inspirado en la noción de meme de Richard Dawkins . Generalmente adopta la forma de un algoritmo basado en poblaciones (frecuentemente un EA) acoplado con procedimientos de aprendizaje individuales capaces de realizar refinamientos locales. Enfatiza la explotación del conocimiento específico del problema e intenta orquestar la búsqueda local y global de manera sinérgica. [ 48 ] [ 49 ] [ 50 ]
- Un algoritmo evolutivo celular o memético utiliza una relación de vecindad topológica entre los individuos de una población para restringir la selección de pareja y, por consiguiente, reducir la velocidad de propagación de los individuos con características superiores a la media. La idea es mantener la diversidad genotípica en la población durante un período de tiempo prolongado para reducir el riesgo de convergencia prematura. [ 51 ] [ 52 ] [ 53 ]
- La optimización por colonia de hormigas se basa en la idea de que las hormigas buscan alimento mediante la comunicación por feromonas para formar rutas. Es especialmente adecuada para la optimización combinatoria y los problemas de grafos . [ 54 ] [ 55 ]
- La optimización por enjambre de partículas se basa en las ideas del comportamiento de bandada animal. También es especialmente adecuada para problemas de optimización numérica . [ 56 ] [ 57 ]
- Adaptación gaussiana : basada en la teoría de la información. Se utiliza para maximizar el rendimiento de fabricación, la aptitud media o la información promedio . [ 58 ] [ 59 ] Véase, por ejemplo, la entropía en la termodinámica y la teoría de la información .
Además, desde principios del siglo XXI se han propuesto numerosos algoritmos nuevos inspirados en la naturaleza o guiados por metáforas. Para consultar las críticas a la mayoría de las publicaciones sobre estos algoritmos, véanse las observaciones al final de la introducción del artículo sobre metaheurísticas .
Ejemplos
En 2020, Google afirmó que su AutoML-Zero puede redescubrir con éxito algoritmos clásicos como el concepto de redes neuronales. [ 60 ]
Las simulaciones informáticas Tierra y Avida intentan modelar la dinámica macroevolutiva .
Galería
Búsqueda de un algoritmo evolutivo con dos poblaciones sobre una función de Rosenbrock restringida con un óptimo global acotado.
Búsqueda mediante un algoritmo evolutivo de dos poblaciones sobre una función de Rosenbrock restringida . El óptimo global no está acotado.
Búsqueda mediante un algoritmo evolutivo de dos poblaciones de un óptimo acotado de la función de Simionescu.
Referencias
- ↑ Farinati, Davide; Vanneschi, Leonardo (diciembre de 2024). "Un estudio sobre poblaciones dinámicas en algoritmos bioinspirados". Genetic Programming and Evolvable Machines . 25 (2) 19. doi : 10.1007/s10710-024-09492-4 . hdl : 10362/170138 .
- ↑ Vikhar, PA (2016). «Algoritmos evolutivos: una revisión crítica y sus perspectivas futuras». Conferencia Internacional de 2016 sobre Tendencias Globales en Procesamiento de Señales, Computación de la Información y Comunicación (ICGTSPICC) . IEEE. págs. 261–265 . doi : 10.1109/ICGTSPICC.2016.7955308 . ISBN 978-1-5090-0467-6. S2CID 22100336 .
- 1 2 3 Cohoon, JP; Karro, J.; Lienig, J. (2003). «Algoritmos evolutivos para el diseño físico de circuitos VLSI» en Avances en computación evolutiva: teoría y aplicaciones (PDF) . Londres: Springer Verlag. págs. 683–712 . ISBN 978-3-540-43330-9.
- 1 2 Slowik, Adam; Kwasnicka, Halina (2020). "Algoritmos evolutivos y sus aplicaciones a problemas de ingeniería" . Neural Computing and Applications . 32 (16): 12363– 12379. doi : 10.1007/s00521-020-04832-8 . ISSN 0941-0643 . S2CID 212732659 .
- 1 2 Mika, Marek; Waligóra, Grzegorz; Węglarz, Jan (2011). "Modelado y resolución del problema de asignación de recursos de la red con recursos de red para aplicaciones de flujo de trabajo" . Journal of Scheduling . 14 (3): 291– 306. doi : 10.1007/s10951-009-0158-0 . ISSN 1094-6136 . S2CID 31859338 .
- 1 2 "Conferencia Internacional sobre Aplicaciones de Computación Evolutiva" . La conferencia forma parte de la serie Evo*. Las actas de la conferencia son publicadas por Springer . Consultado el 23 de diciembre de 2022 .
- ↑ Jansen, Thomas; Weyland, Dennis (7 de julio de 2007). «Análisis de algoritmos evolutivos para el problema de la subsecuencia común más larga» . Actas de la 9.ª conferencia anual sobre computación genética y evolutiva . Association for Computing Machinery. págs. 939–946 . doi : 10.1145/1276958.1277148 . ISBN 978-1-59593-697-4.
- ↑ Jin, Yaochu (2003). "Algoritmos evolutivos" . Diseño y aplicaciones de sistemas difusos avanzados . Estudios en lógica difusa y computación blanda. Vol. 112. Physica-Verlag HD. pp. 49–71 . doi : 10.1007/978-3-7908-1771-3_2 . ISBN 978-3-7908-2520-6.
- ↑ Tavares, Jorge; Machado, Penousal; Cardoso, Amílcar; Pereira, Francisco B.; Costa, Ernesto (2004). "Sobre la evolución de los algoritmos evolutivos" . Programación genética . Apuntes de conferencias sobre informática. vol. 3003. Saltador. págs. 389– 398. doi : 10.1007/978-3-540-24650-3_37 . ISBN 978-3-540-21346-8.
- ↑ Nissen, Volker; Krause, Matthias (1994), "Optimización combinatoria restringida con una estrategia de evolución", en Reusch, Bernd (ed.), Fuzzy Logik , Informatik aktuell, Berlín, Heidelberg: Springer, págs. 33–40 , doi : 10.1007/978-3-642-79386-8_5 , ISBN 978-3-642-79386-8
- ^ Coelho, VN; Coelho, IM; Souza, MJF; Oliveira, TA; Cota, LP; Haddad, Minnesota; Mladenovic, N.; Silva, PCR; Guimarães, FG (2016). "Estrategias de evolución híbrida autoadaptativa guiadas por estructuras vecinales para problemas de optimización combinatoria". Computación Evol . 24 (4): 637– 666. doi : 10.1162/EVCO_a_00187 . PMID 27258842 . S2CID 13582781 .
- ↑ Slowik, Adam; Kwasnicka, Halina (1 de agosto de 2020). "Algoritmos evolutivos y sus aplicaciones a problemas de ingeniería" . Neural Computing and Applications . 32 (16): 12363– 12379. doi : 10.1007/s00521-020-04832-8 . ISSN 1433-3058 .
- ^ Mamá, Xiaoliang; Li, Xiaodong; Zhang, Qingfu; Tang, Ke; Liang, Zhengping; Xie, Weixin; Zhu, Zexuan (2019), "Una encuesta sobre algoritmos coevolutivos cooperativos", IEEE Transactions on Evolutionary Computation , 23 (3): 421– 441, Bibcode : 2019ITEC...23..421M , doi : 10.1109/TEVC.2018.2868770 , S2CID 125149900
- ↑ Popovici, Elena; Bucci, Anthony; Wiegand, R. Paul; De Jong, Edwin D. (2012). «Principios coevolutivos» . En Rozenberg, Grzegorz; Bäck, Thomas; Kok, Joost N. (eds.). Manual de computación natural . Berlín, Heidelberg: Springer Berlin Heidelberg. pp. 987–1033 . doi : 10.1007/978-3-540-92910-9_31 . ISBN 978-3-540-92910-9.
- ↑ Pugh, Justin K.; Soros, Lisa B.; Stanley, Kenneth O. (12 de julio de 2016). "Diversidad de calidad: una nueva frontera para la computación evolutiva" . Frontiers in Robotics and AI . 3. doi : 10.3389/frobt.2016.00040 . ISSN 2296-9144 .
- ↑ Lehman, Joel; Stanley, Kenneth O. (12 de julio de 2011). «Evolución de una diversidad de criaturas virtuales mediante la búsqueda de novedades y la competencia local» . Actas de la 13.ª conferencia anual sobre computación genética y evolutiva . Nueva York, NY, EE. UU.: ACM. págs. 211-218 . doi : 10.1145/2001576.2001606 . ISBN 9781450305570. S2CID 17338175 .
- ↑ Cully, Antoine; Clune, Jeff; Tarapore, Danesh; Mouret, Jean-Baptiste (27-05-2015). "Robots que pueden adaptarse como animales" . Nature . 521 (7553): 503– 507. arXiv : 1407.3501 . Bibcode : 2015Natur.521..503C . doi : 10.1038 / nature14422 . ISSN 0028-0836 . PMID 26017452. S2CID 3467239 .
- 1 2 Davis, Lawrence (1991). Manual de algoritmos genéticos . Nueva York: Van Nostrand Reinhold. ISBN 0-442-00173-8OCLC 23081440
- ↑ Lienig, Jens; Brandt, Holger (1994), "Un algoritmo evolutivo para el enrutamiento de módulos multichip", 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. 588–597 , doi : 10.1007/3-540-58484-6_301 , ISBN 978-3-540-58484-1, consultado el 18 de octubre de 2022
- ↑ Neri, Ferrante; Cotta, Carlos; Moscato, Pablo, eds. (2012). Handbook of Memetic Algorithms . Studies in Computational Intelligence. Vol. 379. Berlín, Heidelberg: Springer Berlin Heidelberg. doi : 10.1007/978-3-642-23247-3 . ISBN 978-3-642-23246-6.
- ↑ Leung, Yee; Gao, Yong; Xu, Zong-Ben (1997). "Grado de diversidad poblacional: una perspectiva sobre la convergencia prematura en algoritmos genéticos y su análisis de cadena de Markov". IEEE Transactions on Neural Networks . 8 (5): 1165– 1176. doi : 10.1109/72.623217 . ISSN 1045-9227 . PMID 18255718 .
- ↑ Gorges-Schleuter, Martina (1998), "Un estudio comparativo de la selección global y local en estrategias evolutivas", en Eiben, Agoston E.; Bäck, Thomas; Schoenauer, Marc; Schwefel, Hans-Paul (eds.), Resolución de problemas paralelos inspirada en la naturaleza — PPSN V , Lecture Notes in Computer Science, vol. 1498, Berlín, Heidelberg: Springer Berlin Heidelberg, pp. 367–377 , doi : 10.1007/bfb0056879 , ISBN 978-3-540-65078-2, consultado el 21 de octubre de 2022
- ↑ Dorronsoro, Bernabe; Alba, Enrique (2008). Algoritmos genéticos celulares . Serie Interfaces de Investigación Operativa/Ciencias de la Computación. Vol. 42. Boston, MA: Springer US. doi : 10.1007/978-0-387-77610-1 . ISBN 978-0-387-77609-5.
- ↑ Goldberg, David E. (1990), "La teoría de los alfabetos virtuales", en Schwefel, Hans-Paul; Männer, Reinhard (eds.), Resolución de problemas paralelos a partir de la naturaleza , Lecture Notes in Computer Science, vol. 496, Berlín/Heidelberg: Springer-Verlag (publicado en 1991), pp. 13–22 , doi : 10.1007/bfb0029726 , ISBN 978-3-540-54148-6, consultado el 22 de octubre de 2022
- ↑ 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
- ↑ Michalewicz, Zbigniew (1996). Algoritmos genéticos + Estructuras de datos = Programas evolutivos (3.ª ed.). Berlín Heidelberg: Springer. ISBN 978-3-662-03315-9OCLC 851375253
- ↑ GS Hornby y JB Pollack. "Creación de componentes de alto nivel con una representación generativa para la evolución del cuerpo y el cerebro". Artificial Life , 8(3):223–246, 2002.
- ↑ Jeff Clune, Benjamin Beckmann, Charles Ofria y Robert Pennock. «Evolución de la marcha coordinada de cuadrúpedos con la codificación generativa HyperNEAT». Archivado el 3 de junio de 2016 en Wayback Machine . Actas del Congreso IEEE sobre Computación Evolutiva, Sección Especial sobre Robótica Evolutiva , 2009. Trondheim, Noruega.
- ↑ J. Clune, C. Ofria y RT Pennock, "Cómo se comporta una codificación generativa a medida que disminuye la regularidad del problema" , en PPSN (G. Rudolph, T. Jansen, SM Lucas, C. Poloni y N. Beume, eds.), vol. 5199 de Lecture Notes in Computer Science , pp. 358–367, Springer, 2008.
- ↑ Ferreira, C., 2001. "Programación de expresión genética: un nuevo algoritmo adaptativo para la resolución de problemas" . Sistemas complejos , vol. 13, número 2: 87–129.
- ↑ Schwefel, Hans-Paul (1995). Evolución y búsqueda óptima . Serie de tecnología informática de sexta generación. Nueva York: Wiley. pág. 109. ISBN 978-0-471-57148-3.
- ↑ Fogel, David B.; Bäck, Thomas; Michalewicz, Zbigniew, eds. (2000). Evolutionary Computation 1. Bristol ; Filadelfia: Institute of Physics Publishing. pp. xxx y xxxvii (Glosario). ISBN 978-0-7503-0664-5OCLC 44807816
- ↑ Sánchez, Ernesto; Squillero, Giovanni; Tonda, Alberto (2012). Aplicaciones industriales de algoritmos evolutivos . Biblioteca de referencia de sistemas inteligentes. Vol. 34. Berlín, Heidelberg: Springer Berlin Heidelberg. doi : 10.1007/978-3-642-27467-1 . ISBN 978-3-642-27466-4.
- ↑ Miettinen, Kaisa; Neittaanmäki, Pekka; Mäkelä, MM; Périaux, Jacques, eds. (1999). Algoritmos evolutivos en ingeniería e informática : avances recientes en algoritmos genéticos, estrategias evolutivas, programación evolutiva, programación genética y aplicaciones industriales . Chichester: Wiley and Sons. ISBN 0-585-29445-3OCLC 45728460
- ↑ Gen, Mitsuo; Cheng, Runwei (17 de diciembre de 1999). Algoritmos genéticos y optimización en ingeniería . Serie Wiley en diseño y automatización de ingeniería. Hoboken, NJ, EE. UU.: John Wiley & Sons, Inc. doi : 10.1002/9780470172261 . ISBN 978-0-470-17226-1.
- ↑ Dahal, Keshav P.; Tan, Kay Chen; Cowling, Peter I. (2007). Programación evolutiva . Berlín: Springer. doi : 10.1007/978-3-540-48584-1 . ISBN 978-3-540-48584-1OCLC 184984689
- ↑ 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" . Algorithms . 6 (2): 245–277 . doi : 10.3390/a6020245 . ISSN 1999-4893 .
- ↑ Mayer, David G. (2002). Algoritmos evolutivos y sistemas agrícolas . Boston, MA: Springer US. doi : 10.1007/978-1-4615-1717-7 . ISBN 978-1-4613-5693-6.
- ↑ 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 , LNCS 1803, vol. 1803, Berlín, Heidelberg: Springer, pp. 330–341 , doi : 10.1007/3-540-45561-2_32 , ISBN 978-3-540-67353-8, consultado el 28-12-2022
- ↑ Aranha, Claus; Iba, Hitoshi (2008), "Aplicación de un algoritmo memético al problema de optimización de cartera", en Wobcke, Wayne; Zhang, Mengjie (eds.), AI 2008: Avances en inteligencia artificial , Lecture Notes in Computer Science, vol. 5360, Berlín, Heidelberg: Springer Berlin Heidelberg, pp. 512–521 , doi : 10.1007/978-3-540-89378-3_52 , ISBN 978-3-540-89377-6, consultado el 23 de diciembre de 2022
- ↑ Chen, Shu-Heng, ed. (2002). Computación evolutiva en economía y finanzas . Estudios en lógica difusa y computación blanda. Vol. 100. Heidelberg: Physica-Verlag HD. doi : 10.1007/978-3-7908-1784-3 . ISBN 978-3-7908-2512-1.
- ↑ Lohn, JD; Linden, DS; Hornby, GS; Kraus, WF (junio de 2004). "Diseño evolutivo de una antena de banda X para la misión Space Technology 5 de la NASA". Simposio de la Sociedad de Antenas y Propagación del IEEE, 2004. Vol. 3. págs. 2313–2316. Vol. 3. doi : 10.1109/APS.2004.1331834 . hdl : 2060/20030067398 . ISBN 0-7803-8302-8.
- ↑ Fogel, Gary; Corne, David (2003). Computación evolutiva en bioinformática . Elsevier. doi : 10.1016/b978-1-55860-797-2.x5000-8 . ISBN 978-1-55860-797-2.
- 1 2 Jakob, Wilfried (2021), Aplicación exitosa de algoritmos evolutivos: una guía obtenida de aplicaciones del mundo real , KIT Scientific Working Papers, vol. 170, Karlsruhe, RFA: KIT Scientific Publishing, arXiv : 2107.11300 , doi : 10.5445/IR/1000135763 , S2CID 236318422 , consultado el 23 de diciembre de 2022
- ↑ 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 .
- ↑ Eiben, AE; Smith, JE (2015). «Trabajando con algoritmos evolutivos». Introducción a la computación evolutiva . Serie de computación natural (2.ª ed.). Berlín, Heidelberg: Springer Berlin Heidelberg. pp. 147–163 . doi : 10.1007/978-3-662-44874-8 . ISBN 978-3-662-44873-1. S2CID 20912932 .
- ↑ Singh, Avjeet; Kumar, Anoj (2021). "Aplicaciones de algoritmos metaheurísticos inspirados en la naturaleza: una revisión". International Journal of Advanced Intelligence Paradigms . 20 (3/4) 119026: 388– 417. doi : 10.1504/IJAIP.2021.119026 .
- ↑ Chen, Xianshun; Ong, Yew-Soon; Lim, Meng-Hiot; Tan, Kay Chen (octubre de 2011). "Una revisión multifacética sobre computación memética". IEEE Transactions on Evolutionary Computation . 15 (5): 591– 607. Bibcode : 2011ITEC...15..591C . doi : 10.1109/TEVC.2011.2132725 . ISSN 1089-778X .
- ↑ Cotta, Carlos; Fernández, Antonio J. (2007), "Algoritmos meméticos en planificación, programación y elaboración de horarios", en Dahal, Keshav P.; Tan, Kay Chen; Cowling, Peter I. (eds.), Programación evolutiva , vol. 49, Berlín, Heidelberg: Springer Berlin Heidelberg, pp. 1–30 , doi : 10.1007/978-3-540-48584-1_1 , ISBN 978-3-540-48582-7
- ↑ Nguyen, Phan Trung Hai; Sudholt, Dirk (octubre de 2020). "Los algoritmos meméticos superan a los algoritmos evolutivos en la optimización multimodal". Inteligencia Artificial . 287 103345. doi : 10.1016/j.artint.2020.103345 .
- ↑ Gordon, V. Scott; Mathias, Keith; Whitley, Darrell (1994), "Algoritmos genéticos celulares como optimizadores de funciones", Actas del simposio ACM de 1994 sobre computación aplicada - SAC '94 , Phoenix, Arizona, Estados Unidos: ACM Press, págs. 237–241 , doi : 10.1145/326619.326732 , ISBN 978-0-89791-647-9, S2CID 6418773
- ↑ Alba, Enrique; Dorronsoro, Bernabé (2008). Algoritmos genéticos celulares . Serie de interfaces de investigación operativa/ciencia de la computación. Nueva York: Springer. ISBN 978-0-387-77610-1.
- ↑ Alba, Enrique; Dorronsoro, Bernabé; Alfonso, Hugo (1 de diciembre de 2005). "Algoritmos meméticos celulares" . Revista de informática y tecnología . 5 (4): 257–263 .
- ↑ Dorigo, Marco; Gambardella, Luca Maria (abril de 1997). "Sistema de colonia de hormigas: un enfoque de aprendizaje cooperativo para el problema del viajante". IEEE Transactions on Evolutionary Computation . 1 (1): 53– 66. doi : 10.1109/4235.585892 .
- ↑ Dorigo, Marco (2004). Optimización de colonias de hormigas . Thomas G. Stützle. Cambridge, Mass: MIT Press. ISBN 978-0-262-04219-2.
- ↑ Kennedy, J.; Eberhart, R. (1995). "Optimización por enjambre de partículas". Actas de la Conferencia Internacional IEEE sobre Redes Neuronales . Vol. IV. pp. 1942–1948 . doi : 10.1109/ICNN.1995.488968 .
- ↑ Zhang, Yudong; Wang, Shuihua; Ji, Genlin (2015). "Un estudio exhaustivo sobre el algoritmo de optimización por enjambre de partículas y sus aplicaciones" . Problemas matemáticos en ingeniería . 2015 : 1–38 . doi : 10.1155/2015/931256 . ISSN 1024-123X .
- ↑ Kjellström, Gregor; Taxén, Lars (1992), "Adaptación gaussiana, un optimizador global eficiente basado en la evolución", en Brezinski, Claude; Kulisch, Ulrich (eds.), Matemáticas computacionales y aplicadas. 1: Algoritmos y teoría , Ámsterdam: North-Holland, pp. 267–276 , ISBN 978-0-444-89701-5, recuperado el 3 de abril de 2026
- ↑ Kjellström, Gregor (1991-12-01). "Sobre la eficiencia de la adaptación gaussiana" . Journal of Optimization Theory and Applications . 71 (3): 589– 597. ISSN 0022-3239 .
- ↑ Gent, Edd (13 de abril de 2020). "La inteligencia artificial está evolucionando por sí sola" . Science | AAAS . Archivado del original el 16 de abril de 2020. Recuperado el 16 de abril de 2020 .
- ↑ Simionescu, PA; Dozier, GV; Wainwright, RL (2006). "Un algoritmo evolutivo de dos poblaciones para problemas de optimización con restricciones" (PDF) . Conferencia Internacional IEEE de Computación Evolutiva de 2006. Actas de la Conferencia Internacional IEEE de Computación Evolutiva de 2006. IEEE. págs. 1647–1653 . doi : 10.1109/CEC.2006.1688506 . ISBN 0-7803-9487-9. S2CID 1717817 . Consultado el 7 de enero de 2017 .
- ↑ Simionescu, PA (2014). Herramientas de simulación y gráficos asistidos por computadora para usuarios de AutoCAD (1.ª ed.). Boca Raton, FL: CRC Press . ISBN 978-1-4822-5290-3.
Bibliografía
- Ashlock, D. (2006), Computación evolutiva para modelado y optimización , Springer, Nueva York, doi:10.1007/0-387-31909-3 ISBN 0-387-22196-4.
- Bäck, T. (1996), Algoritmos evolutivos en teoría y práctica: estrategias evolutivas, programación evolutiva, algoritmos genéticos , Oxford Univ. Press, Nueva York, ISBN 978-0-19-509971-3.
- Bäck, T., Fogel, D., Michalewicz, Z. (1999), Computación evolutiva 1: Algoritmos y operadores básicos , CRC Press, Boca Raton, EE. UU., ISBN 978-0-7503-0664-5.
- Bäck, T., Fogel, D., Michalewicz, Z. (2000), Evolutionary Computation 2: Advanced Algorithms and Operators , CRC Press, Boca Raton, EE. UU., doi:10.1201/9781420034349 ISBN 978-0-3678-0637-8.
- Banzhaf, W., Nordin, P., Keller, R., Francone, F. (1998), Programación genética: introducción , Morgan Kaufmann, San Francisco, ISBN 978-1-55860-510-7.
- Eiben, AE, Smith, JE (2003), Introducción a la computación evolutiva , Springer, Heidelberg, Nueva York, doi:10.1007/978-3-662-44874-8 ISBN 978-3-662-44873-1.
- Holland, JH (1992), Adaptación en sistemas naturales y artificiales , MIT Press, Cambridge, MA, ISBN 978-0-262-08213-6.
- Michalewicz, Z.; Fogel, DB (2004), Cómo resolverlo: Heurísticas modernas . Springer, Berlín, Heidelberg, ISBN 978-3-642-06134-9, doi:10.1007/978-3-662-07807-5 .
- Benko, Attila; Dosa, Gyorgy; Tuza, Zsolt (2010). "Empaquetado/recubrimiento de contenedores con entrega, resuelto mediante la evolución de algoritmos". Quinta Conferencia Internacional IEEE de 2010 sobre Computación Bioinspirada: Teorías y Aplicaciones (BIC-TA) . pp. 298–302 . doi : 10.1109/BICTA.2010.5645312 . ISBN 978-1-4244-6437-1. S2CID 16875144 .
- Price, K., Storn, RM, Lampinen, JA, (2005). Evolución diferencial: un enfoque práctico para la optimización global , Springer, Berlín, Heidelberg, ISBN 978-3-642-42416-8, doi:10.1007/3-540-31306-0 .
- Ingo Rechenberg (1971), Evolutionsstrategie - Optimierung technischer Systeme nach Prinzipien der biologischen Evolution (tesis doctoral). Reimpreso por Fromman-Holzboog (1973). ISBN 3-7728-1642-8
- Hans-Paul Schwefel (1974), Numerische Optimierung von Computer-Modellen (tesis doctoral). Reimpreso por Birkhäuser (1977).
- Hans-Paul Schwefel (1995), Evolución y búsqueda óptima . Wiley & Sons, Nueva York. ISBN 0-471-57148-2
- Simon, D. (2013), Algoritmos de optimización evolutiva Archivado el 10 de marzo de 2014 en Wayback Machine , Wiley & Sons, ISBN 978-0-470-93741-9
- Kruse, Rudolf; Borgelt, cristiano; Klawonn, Frank; Moewes, cristiano; Steinbrecher, Matías; Held, Pascal (2013), Inteligencia computacional: una introducción metodológica . Springer, Londres. ISBN 978-1-4471-5012-1, doi:10.1007/978-1-4471-5013-8 .
- Rahman, Rosshairy Abd.; Kendall, Graham; Ramli, Razamin; Jamari, Zainoddin; Ku-Mahamud, Ku Ruhana (2017). "Formulación de alimento para camarones mediante algoritmo evolutivo con heurísticas de potencia para el manejo de restricciones" . Complexity . 2017 : 1–12 . doi : 10.1155/2017/7053710 .
Enlaces externos
- Panorama general de la historia y las variantes de los algoritmos evolutivos
- Cibernética
- Evolución
- Algoritmos evolutivos
- Algoritmos y métodos de optimización