Subconjunto de computación evolutiva
En inteligencia computacional (IC), un algoritmo evolutivo ( EA ) es un subconjunto de computación evolutiva , [1] un algoritmo genérico de optimización metaheurística basado en la población . Un EA utiliza mecanismos inspirados en la evolución biológica , como 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 los individuos en una población, y la función de aptitud determina la calidad de las soluciones (véase también función de pérdida ). La evolución de la población tiene lugar luego de la aplicación repetida de los operadores anteriores.
Los algoritmos evolutivos suelen tener un buen rendimiento a la hora de aproximar soluciones a todo tipo de problemas porque, idealmente, no hacen ninguna suposición sobre el panorama de aptitud subyacente . Las técnicas de los algoritmos evolutivos aplicadas al modelado de la evolución biológica se limitan generalmente a las exploraciones de procesos microevolutivos y a los modelos de planificación basados en procesos celulares. En la mayoría de las aplicaciones reales de los AE, la complejidad computacional es un factor prohibitivo. [2] 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, los AE aparentemente simples pueden resolver problemas a menudo complejos; [3] [4] [5] por lo tanto, puede que no haya un vínculo directo entre la complejidad del algoritmo y la complejidad del problema.
Implementación
El siguiente es un ejemplo de un algoritmo genético genérico de objetivo único .
Paso uno: Generar aleatoriamente la población inicial de individuos . (Primera generación)
Paso dos: repita los siguientes pasos regenerativos hasta la finalización (límite de tiempo, aptitud suficiente alcanzada, etc.):
- Evaluar la aptitud de cada individuo en la población.
- Seleccionar los individuos para la reproducción en función de su aptitud. (Padres)
- Criar nuevos individuos mediante operaciones de cruce y mutación para dar origen a descendencia .
- Reemplazar los individuos menos aptos de la población por individuos nuevos.
Tipos
Técnicas similares difieren en la representación genética y otros detalles de implementación, y en la naturaleza del problema particular aplicado.
- Algoritmo genético : este es el tipo de AE 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 ser las que reflejan algo sobre el problema que se está resolviendo), [2] mediante la aplicación de operadores como la recombinación y la mutación (a veces uno, a veces ambos). Este tipo de AE se utiliza a menudo en problemas de optimización .
- Programación genética : en este caso, las soluciones se presentan en forma de programas informáticos y su idoneidad está determinada por su capacidad para resolver un problema computacional. Existen muchas variantes de programación genética, entre ellas la programación genética cartesiana , la programación de expresión genética , la evolución gramatical , la programación genética lineal , la programación de expresión múltiple , etc.
- Programación evolutiva : similar a la programación genética, pero la estructura del programa es fija y se permite que sus parámetros numéricos evolucionen.
- Estrategia de evolución : trabaja con vectores de números reales como representaciones de soluciones y, por lo general, utiliza tasas de mutación autoadaptativas. El método se utiliza principalmente para la optimización numérica, aunque también existen variantes para tareas combinatorias. [6] [7]
- 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 sus resultados a partir de 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 en los que el panorama de aptitud es dinámico, complejo o implica interacciones competitivas. [8] [9]
- Neuroevolución : similar a la programación genética, pero los genomas representan redes neuronales artificiales al describir la estructura y los pesos de conexión. La codificación del genoma puede ser directa o indirecta.
- Sistema de clasificación de aprendizaje : en este caso, la solución es un conjunto de clasificadores (reglas o condiciones). Un sistema Michigan-LCS evoluciona a nivel de clasificadores individuales, mientras que un sistema Pittsburgh-LCS utiliza poblaciones de conjuntos de clasificadores. Inicialmente, los clasificadores eran solo binarios, pero ahora incluyen tipos reales, de redes neuronales o de expresión S. La aptitud se determina normalmente con un enfoque de aprendizaje de refuerzo basado en la fuerza o la precisión o con un enfoque de aprendizaje supervisado .
- Algoritmos de calidad y diversidad: los algoritmos de calidad y diversidad buscan simultáneamente soluciones de alta calidad y diversidad. A diferencia de los algoritmos de optimización tradicionales que se centran únicamente en encontrar la mejor solución a un problema, los algoritmos de calidad y diversidad exploran una amplia variedad de soluciones en un espacio de problemas y conservan aquellas que no solo tienen un alto rendimiento, sino que también son diversas y únicas. [10] [11] [12]
Fundamento teórico
Los siguientes principios teóricos se aplican a todos o casi todos los EA.
Teorema de que no hay almuerzo gratis
El teorema de optimización de que no hay almuerzo gratis 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 ser el caso si el conjunto de todos los problemas está restringido. Esto es exactamente 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 cierta fuerza de mutación o una codificación adaptada al problema ). Por lo tanto, si se comparan dos EA, esta restricción está implícita. Además, un EA puede usar el conocimiento específico del problema, por ejemplo, no generando aleatoriamente toda la población inicial, sino creando algunos individuos a través de heurísticas u otros procedimientos. [13] [14] 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 juegan un papel importante en aplicaciones prácticas, ya que pueden acelerar el proceso de búsqueda y hacerlo más robusto. [13] [15]
Convergencia
Para las EA en las que, además de la descendencia, se utiliza al menos el mejor individuo de la generación parental para formar la generación posterior (las denominadas EA elitistas), existe una prueba general de convergencia bajo la condición de que exista un óptimo . Sin pérdida de generalidad , se supone una búsqueda máxima para la prueba:
De la propiedad de aceptación elitista de la descendencia y de la existencia del óptimo se deduce que por generación se producirá una mejora de la aptitud del respectivo mejor individuo con una probabilidad . Por lo tanto:
Es decir, los valores de aptitud representan una secuencia monótona no decreciente , que está acotada debido a la existencia del óptimo. De aquí se sigue la convergencia de la secuencia respecto del óptimo.
Dado que la prueba no hace ninguna afirmación sobre la velocidad de convergencia, es de poca ayuda en aplicaciones prácticas de los EA. Pero sí justifica la recomendación de utilizar EA elitistas. Sin embargo, cuando se utiliza el modelo de población panmíctico habitual , los EA elitistas tienden a converger prematuramente más que los no elitistas. [16] En un modelo de población panmíctico, la selección de pareja (paso 2 de la sección sobre la implementación) es tal que cada individuo de 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 se puede reducir significativamente mediante modelos de población adecuados que restrinjan la selección de pareja. [17] [18]
Alfabetos virtuales
Con la teoría de alfabetos virtuales, David E. Goldberg demostró en 1990 que al utilizar una representación con números reales, un EA que utiliza operadores de recombinación clásicos (por ejemplo, uniforme o de cruce de n puntos) no puede alcanzar ciertas áreas del espacio de búsqueda, en contraste con una codificación con números binarios. [19] Esto da como resultado la recomendación para EA con representación real de utilizar operadores aritméticos para la recombinación (por ejemplo, media aritmética o recombinación intermedia). Con operadores adecuados, las representaciones de valor real son más efectivas que las binarias, contrariamente a la opinión anterior. [20] [21]
Comparación con procesos biológicos
Una posible limitación [ ¿según quién? ] de muchos algoritmos evolutivos es su falta de una distinción clara entre genotipo y fenotipo . En la naturaleza, el óvulo fertilizado sufre 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. [22] [23] Estas codificaciones indirectas (también conocidas como generativas o de desarrollo) también permiten que la evolución explote la regularidad del entorno. [24] Un trabajo reciente en el campo de la embriogenia artificial , o sistemas de desarrollo artificiales, busca abordar estas preocupaciones. Y la programación de la expresión genética 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. [25] [¿ síntesis incorrecta? ]
Comparación con los métodos de Montecarlo
Ambas clases de métodos tienen en común que sus pasos de búsqueda individuales están determinados por el azar. La principal diferencia, sin embargo, es que los EA, como 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 en una forma específica del método. Con los EA, esto se hace en primer lugar a través de los operadores de selección basados en la aptitud para la elección de socios y la formación de la próxima generación. Y en segundo lugar, en el tipo de pasos de búsqueda: en EA, comienzan a partir de una solución actual y la cambian o mezclan la información de dos soluciones. Por el contrario, cuando se extraen nuevas soluciones en los métodos de Montecarlo , normalmente no hay conexión con las soluciones existentes. [26] [27]
Si, por otra parte, 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 (hiper)plano plano con un único pico estrecho.
Aplicaciones
Las áreas en las que se utilizan prácticamente los algoritmos evolutivos son casi ilimitadas [5] y van desde la industria, [28] [29] la ingeniería, [2] [3] [30] la programación compleja, [4] [31] [32] la agricultura, [33] la planificación del movimiento de robots [34] y las finanzas [35] [36] hasta la investigación [37] [38] y el arte . La aplicación de un algoritmo evolutivo requiere cierto replanteamiento 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 normalmente 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. En lugar de ello, también se debería registrar el número y la duración de las superaciones de un nivel todavía aceptable para recompensar las reducciones por debajo del valor pico máximo real. [39] Por lo tanto, existen algunas publicaciones que están dirigidas a los principiantes y quieren ayudar a evitar los errores de los principiantes, así como a llevar un proyecto de aplicación al éxito. [39] [40] [41] Esto incluye aclarar la cuestión fundamental de cuándo se debe utilizar 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, como
Además, desde principios de este siglo se han propuesto muchos 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. [42]
Las simulaciones por computadora Tierra y Avida intentan modelar la dinámica macroevolutiva .
Galería
[43] [44] [45]
Referencias
- ^ 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, informática y comunicación (ICGTSPICC) . Jalgaon. págs. 261–265. doi :10.1109/ICGTSPICC.2016.7955308. ISBN . 978-1-5090-0467-6. Número de identificación del sujeto 22100336.
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ abc 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.
- ^ ab Slowik, Adam; Kwasnicka, Halina (2020). "Algoritmos evolutivos y sus aplicaciones a problemas de ingeniería". Computación neuronal y aplicaciones . 32 (16): 12363–12379. doi : 10.1007/s00521-020-04832-8 . ISSN 0941-0643. S2CID 212732659.
- ^ ab Mika, Marek; Waligóra, Grzegorz; Węglarz, Jan (2011). "Modelado y solución de problemas de asignación de recursos de 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.
- ^ ab "Conferencia internacional sobre las aplicaciones de la computación evolutiva". La conferencia forma parte de la serie Evo*. Las actas de la conferencia están publicadas por Springer . Consultado el 23 de diciembre de 2022 .
- ^ 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.
- ^ 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, doi :10.1109/TEVC.2018.2868770, S2CID 125149900 , consultado el 2023-05- 22
- ^ Popovici, Elena; Bucci, Anthony; Wiegand, R. Paul; De Jong, Edwin D. (2012). "Principios coevolutivos". En Rozenberg, Grzegorz; Bäck, Thomas; Kok, Joost N. (eds.). Handbook of Natural Computing. Berlín, Heidelberg: Springer Berlin Heidelberg. págs. 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". Fronteras en robótica e inteligencia artificial . 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. pp. 211–218. doi :10.1145/2001576.2001606. ISBN. 9781450305570. Número de identificación del sujeto 17338175.
- ^ Cully, Antoine; Clune, Jeff; Tarapore, Danesh; Mouret, Jean-Baptiste (27 de mayo de 2015). "Robots que pueden adaptarse como animales". Nature . 521 (7553): 503–507. arXiv : 1407.3501 . Código Bibliográfico :2015Natur.521..503C. doi :10.1038/nature14422. ISSN 0028-0836. PMID 26017452. S2CID 3467239.
- ^ ab Davis, Lawrence (1991). Manual de algoritmos genéticos. Nueva York: Van Nostrand Reinhold. ISBN 0-442-00173-8.OCLC 23081440 .
- ^ Lienig, Jens; Brandt, Holger (1994), Davidor, Yuval; Schwefel, Hans-Paul; Männer, Reinhard (eds.), "Un algoritmo evolutivo para el enrutamiento de módulos multichip", Parallel Problem Solving from Nature — PPSN III , vol. 866, Berlín, Heidelberg: Springer, págs. 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 de la población: 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), Eiben, Agoston E.; Detrás, Thomas; Schoenauer, Marc; Schwefel, Hans-Paul (eds.), "Un estudio comparativo de la selección global y local en las estrategias de evolución", Resolución de problemas paralelos desde la naturaleza - PPSN V , Lecture Notes in Computer Science, vol. 1498, Berlín, Heidelberg: Springer Berlin Heidelberg, págs. 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 de interfaces de investigación operativa e informática. Vol. 42. Boston, MA: Springer US. doi :10.1007/978-0-387-77610-1. ISBN 978-0-387-77609-5.
- ^ Goldberg, David E. (1990), Schwefel, Hans-Paul; Männer, Reinhard (eds.), "La teoría de los alfabetos virtuales", 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), págs. 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-0.OCLC 47216370 .
- ^ Michalewicz, Zbigniew (1996). Algoritmos genéticos + estructuras de datos = programas evolutivos (3.ª ed.). Berlín-Heidelberg: Springer. ISBN 978-3-662-03315-9.OCLC 851375253 .
- ^ GS Hornby y JB Pollack. "Creación de componentes de alto nivel con una representación generativa para la evolución cuerpo-cerebro". Artificial Life , 8(3):223–246, 2002.
- ^ Jeff Clune, Benjamin Beckmann, Charles Ofria y Robert Pennock. "Evolución de marchas cuadrúpedas coordinadas con la codificación generativa HyperNEAT" Archivado el 3 de junio de 2016 en Wayback Machine . Actas de la sección especial sobre robótica evolutiva del Congreso IEEE sobre computación evolutiva , 2009. Trondheim, Noruega.
- ^ J. Clune, C. Ofria y RT Pennock, "Cómo funciona 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 , págs. 358–367, Springer, 2008.
- ^ Ferreira, C., 2001. "Programación de expresión genética: un nuevo algoritmo adaptativo para resolver problemas". Complex Systems , vol. 13, número 2: 87–129.
- ^ Schwefel, Hans-Paul (1995). Evolution and Optimum Seeking. Serie de tecnología informática de sexta generación. Nueva York: Wiley. p. 109. ISBN 978-0-471-57148-3.
- ^ Fogel, David B.; Bäck, Thomas; Michalewicz, Zbigniew, eds. (2000). Computación evolutiva 1. Bristol; Filadelfia: Institute of Physics Publishing. pp. xxx y xxxvii (Glosario). ISBN 978-0-7503-0664-5.OCLC 44807816 .
- ^ Sanchez, 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 y ciencias de la computación: 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-3.OCLC 45728460 .
- ^ Gen, Mitsuo; Cheng, Runwei (17 de diciembre de 1999). Algoritmos genéticos y optimización de ingeniería. Serie Wiley sobre diseño de ingeniería y automatización. 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-1.OCLC 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 para recursos heterogéneos restringidos mediante computación memética de múltiples criterios". 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), Cagnoni, Stefano (ed.), "Generación optimizada de instrucciones de movimiento de robots sin colisiones mediante el software evolutivo GLEAM", Aplicaciones en el mundo real de la computación evolutiva , LNCS 1803, vol. 1803, Berlín, Heidelberg: Springer, págs. 330–341, doi :10.1007/3-540-45561-2_32, ISBN 978-3-540-67353-8, consultado el 28 de diciembre de 2022
- ^ Aranha, Claus; Iba, Hitoshi (2008), Wobcke, Wayne; Zhang, Mengjie (eds.), "Aplicación de un algoritmo memético al problema de optimización de carteras", AI 2008: Advances in Artificial Intelligence , Lecture Notes in Computer Science, vol. 5360, Berlín, Heidelberg: Springer Berlin Heidelberg, págs. 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 sobre borrosidad 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 IEEE Antennas and Propagation Society, 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.
- ^ de 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, FRG: 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". Tecnología de la información y el software . 43 (14): 817–831. doi :10.1016/S0950-5849(01)00188-4. S2CID 18637958.
- ^ Eiben, AE; Smith, JE (2015). "Trabajar con algoritmos evolutivos". Introducción a la computación evolutiva. Serie de computación natural (2.ª ed.). Berlín, Heidelberg: Springer Berlin Heidelberg. págs. 147–163. doi :10.1007/978-3-662-44874-8. ISBN 978-3-662-44873-1. Número de identificación del sujeto 20912932.
- ^ Gent, Edd (13 de abril de 2020). «La inteligencia artificial está evolucionando por sí sola». Ciencia | AAAS . Archivado desde el original el 16 de abril de 2020 . Consultado el 16 de abril de 2020 .
- ^ Simionescu, PA; Dozier, GV; Wainwright, RL (2006). "Un algoritmo evolutivo de dos poblaciones para problemas de optimización restringida". Conferencia internacional IEEE de 2006 sobre computación evolutiva . Vancouver, BC, Canadá: IEEE. págs. 1647–1653. doi :10.1109/CEC.2006.1688506. ISBN . 978-0-7803-9487-2. Número de identificación del sujeto 1717817.
- ^ Simionescu, PA; Dozier, GV; Wainwright, RL (2006). "Un algoritmo evolutivo de dos poblaciones para problemas de optimización restringida" (PDF) . 2006 IEEE International Conference on Evolutionary Computation . Proc 2006 IEEE International Conference on Evolutionary Computation. Vancouver, Canadá. págs. 1647–1653. doi :10.1109/CEC.2006.1688506. ISBN . 0-7803-9487-9. S2CID 1717817 . Consultado el 7 de enero de 2017 .
{{cite book}}
: CS1 maint: location missing publisher (link) - ^ 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.
Enlaces externos
- Una visión general de la historia y los matices de los algoritmos evolutivos
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 de evolución, 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), Computación evolutiva 2: algoritmos y operadores avanzados , 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ística moderna . 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 con la evolución de algoritmos". 2010 IEEE Fifth International Conference on Bio-Inspired Computing: Theories and Applications (BIC-TA) . págs. 298–302. doi :10.1109/BICTA.2010.5645312. ISBN 978-1-4244-6437-1.S2CID16875144 .
- Poli, R.; Langdon, WB; McPhee, NF (2008). A Field Guide to Genetic Programming. Lulu.com, disponible gratuitamente en Internet. ISBN 978-1-4092-0073-4Archivado desde el original el 27 de mayo de 2016. Consultado el 5 de marzo de 2011 .[ fuente autopublicada ]
- 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 del óptimo . 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 un algoritmo evolutivo con heurísticas de potencia para manejar restricciones". Complexity . 2017 : 1–12. doi : 10.1155/2017/7053710 .