E-Book sobre los Algoritmos Genéticos
Autor: Fernando Avendano
San Antonio de los Altos, mayo de 2024 Fernando Avendano 29.555.599
República Bolivariana de Venezuela Ministerio del Poder Popular para la Educación Universidad Bicentenaria de Aragua Facultad de Ingeniería Escuela de Ingeniera de Sistemas
Indice
Pag 1............................................ Prologo.
Pag 2............................................ Algoritmos Genéticos.
Pag 6............................................ Computación Evolutiva.
Pag 8............................................ Modelos de Computación Bioinspirados.
Pag 10.......................................... Conclusión.
Pag 11.......................................... Referencias Bibliográficas.
Prologo
Existen infinidad de métodos mediante los cuales resolver el planteamiento de problemas de toda índole, uno de los mas extravagantes es sin duda los algoritmos evolutivos, una combinación de dos conceptos que no parece tener nada en común pero que sin duda funcionan de maravilla. En realidad se trata de una serie de técnicas computarizadas cuyos objetivos son la búsqueda y la optimizacion para brindar respuesta una serie de filtros y parámetros, los cuales condicional los resultados que debe alcanzar el algoritmo.
Todo esto se sustenta gracias a los sistemas bioinspirados, y la computación evolutiva, que como sus nombres dan a entender, se trata de sistemas computarizados que están programados para replicar las características y aspectos de la evolución genética y los sistemas biológicos, otros conceptos involucrados en el diseño de estos sistemas y programas son la programación numérico-simbolica, las redes neuronales artificiales y la logica difusa.
Algoritmos Geneticos
Efectivamente, los algoritmos genéticos son un conjuntos de técnicas de resolución de problemas programadas para dar con la solución optima utilizando las operaciones genéticas tales como la selección, cruce o mutación. Los operandos, tal como pasa en la naturaleza, se trata de una población de individuos, la diferencias es que en el caso de los algoritmos genéticos, esta población de un conjunto de soluciones posibles la problema, las cuales se evolucionan para poder dar con la mejor.
La primera población de soluciones rara vez funcionara, sin embargo las mas prometedoras serán las elegidas para poder reproducirse (para calificar las soluciones se utiliza una prueba llamada función de aptitud que evaluá cuantitativamente la solución) introduciéndole varios cambios sutiles o mutaciones, esto dará como resultado una nueva de poblaciones, la cual sera sometida nuevamente a una prueba para probar su bondades con respecto a los estándares de evaluación, y al igual que anteriormente, las menos factibles serán descartadas y las que mejor se adapten se les permitirá reproducirse y mutar, así cuantas veces sea necesarias para dar con la solución optima.
Aportes de los algoritmos genéticos a la Inteligencia Artificial
Debido a la flexibilidad de estos algoritmos genéticos, su aplicacion en la inteligencias artificiales es amplia, los algoritmos geneticos son capaces de encontrar soluciones satisfactorias en paradigmas donde incluso, los métodos tradicionales fracasan, algunos de los aportes de los algoritmos genéticos son:
“Optimización de parámetros: Los AG pueden ser utilizados para optimizar los parámetros de un modelo de aprendizaje automático, como las redes neuronales. En este contexto, cada individuo en la población representa un conjunto de parámetros, y la aptitud puede ser definida en términos de la precisión del modelo en un conjunto de datos de validación.”
“Programación automática: Los AG pueden generar programas de computadora para resolver problemas específicos. En este caso, cada individuo representa un programa de computadora diferente, y la aptitud puede ser definida en términos de la capacidad del programa para resolver el problema.”
Diseño de sistemas: Los AG pueden ser utilizados para el diseño y la optimización de sistemas, como las redes de comunicación. En este caso, cada individuo podría representar una configuración diferente de la red, y la aptitud podría medirse en términos de la eficiencia de la red.
Origen del concepto de computación evolutiva
El concepto de Computación Evolutiva tiene sus raíces en la teoría de la evolución de Charles Darwin. La idea fundamental detrás de la computación evolutiva es simular el proceso de evolución biológica para resolver problemas complejos en diferentes campos, como la optimización, el diseño de algoritmos y la inteligencia artificial. A continuación, se detallan los aspectos clave del origen y desarrollo de la Computación Evolutiva:
Inicios: El concepto de Computación Evolutiva surgió en la década de 1960, cuando se empezaron a explorar métodos inspirados en la evolución biológica para resolver problemas computacionales. Uno de los primeros en proponer este enfoque fue Ingo Rechenberg, quien introdujo estrategias evolutivas para optimización numérica.
Algoritmos Genéticos: En la década de 1970, John Holland propuso los Algoritmos Genéticos, una técnica de optimización basada en la selección natural y la genética. Los Algoritmos Genéticos simulan el proceso de evolución de una población de posibles soluciones para encontrar la mejor solución a un problema dado.
Evolución Continua: Desde entonces, la Computación Evolutiva ha seguido evolucionando, incorporando nuevas ideas y conceptos. Se han desarrollado otras técnicas evolutivas, como Estrategias Evolutivas y Programación Genética, que han ampliado el alcance de la computación evolutiva a diferentes tipos de problemas.
Aplicaciones: La Computación Evolutiva se ha utilizado con éxito en una amplia gama de aplicaciones, como optimización de sistemas complejos, diseño de redes neuronales, robótica evolutiva, diseño de circuitos y muchas otras áreas donde se requiere encontrar soluciones óptimas en entornos complejos y cambiantes.
En resumen, el origen del concepto de Computación Evolutiva se remonta a la idea de simular la evolución biológica para resolver problemas computacionales de manera eficiente y efectiva. A lo largo de los años, esta área ha crecido y se ha diversificado, ofreciendo herramientas poderosas para abordar desafíos en diversos campos de la ciencia y la tecnología.
modelos de computación bioinspirados
Los modelos de computación bioinspirados se basan en principios y procesos observados en la naturaleza para desarrollar algoritmos y técnicas computacionales que puedan resolver problemas complejos. A continuación, se mencionan algunos de los modelos de computación bioinspirados más destacados:
- *Algoritmos Genéticos (AG):*
- Inspirados en la evolución biológica, los AG simulan el proceso de selección natural y reproducción para generar soluciones óptimas a un problema.
- Utilizan operadores genéticos como la selección, cruce y mutación para evolucionar una población de posibles soluciones y encontrar la mejor solución.
- *Estrategias Evolutivas (EE):*
- Similar a los Algoritmos Genéticos, las EE se centran en la optimización numérica utilizando mecanismos de selección y variación.
- Se enfocan en la adaptación de los individuos de una población a través de operadores de mutación y recombinación.
- *Programación Genética (PG):*
- La PG se basa en la evolución de programas informáticos en lugar de estructuras de datos.
- Utiliza algoritmos evolutivos para evolucionar programas informáticos que resuelven problemas específicos.
- *Enjambres de Partículas (PSO):*
- Inspirado en el comportamiento de los enjambres de animales, como los pájaros o los insectos, el PSO optimiza soluciones basándose en la interacción social y la cooperación.
- Las partículas se mueven a través del espacio de búsqueda en busca de la mejor solución posible.
- *Colonias de Hormigas (ACO):*
- Basado en el comportamiento de las colonias de hormigas, el ACO resuelve problemas de optimización encontrando caminos óptimos en un grafo.
- Las hormigas dejan feromonas en el suelo para comunicarse y marcar caminos, optimizando la búsqueda de soluciones.
- *Computación de Enjambre (Swarm Intelligence):*
- Incluye modelos como Optimización de Enjambre de Partículas (PSO), Inteligencia de Enjambre de Hormigas (ASI), y Colonias de Abejas Artificiales (ABC).
- Se basa en la inteligencia colectiva y la autoorganización de sistemas descentralizados para resolver problemas de optimización y toma de decisiones. Estos modelos de computación bioinspirados han demostrado ser eficaces para abordar una amplia gama de problemas en diversas áreas, desde la optimización de funciones matemáticas hasta el diseño de algoritmos y la toma de decisiones en entornos complejos. Su capacidad para adaptarse y encontrar soluciones óptimas en entornos dinámicos los convierte en herramientas poderosas en el campo de la computación evolutiva y la inteligencia artificial.
Conclusión
Como se suele escuchar mucho la naturaleza es sabia, parte de la lógica detrás de la computación bioinspirada es utilizar la fascinante capacidad que tienen los seres vivos para adaptarse y encontrar las soluciones más optimas mediante la evolución y el aprendizaje constante, se trata de la repuesta a una gran cantidad de problemas cuya solución es sumamente compleja, uno de los contra que podemos encontrarle a este tipo de algoritmos para la solución de problemas es la duración de ejecución, ya que consiste en generación tras generación de la población inicial, en un habitad natural esto significa gran cantidad de tiempo, es ahí donde las ventajas de los entornos virtuales para la simulación y replicación de la evolución natural convierte años de espera en horas de ejecución del algoritmo.
Tecnologías que hoy en día han acelerado la productividad de los seres humanos, como la novedosa inteligencia artificial tiene sus bases en modelos de computación bioinspirados, basados en la propia naturaleza detrás del funcionamiento de las redes neuronales que hacen a nuestros cerebros tan diferenciados a los de cualquier ser vivo en el planeta. Sin duda alguna el rumbo de la tecnología apunta a seguir imitando las formas de la naturaleza, obteniendo lo mejor de ambos mundos.
Referencias Bibliográficas
Gestal, M (2013).”Introducción a los Algoritmos Genéticos”. Universidad de A Coruña . Recuperado 27 de Mayo de 2024 en: https://www.researchgate.net/publication/237812449_Introduccion_a_los_Algoritmos_Geneticos Gavilán, I (2019). “¿Cómo funcionan los algoritmos genéticos?”. Recuperado 27 de Mayo de 2024 en: https://ignaciogavilan.com/como-funcionanlos-algoritmos-geneticos/ Coello, C (2019). “Computación Evolutiva”. ACADEMIA MEXICANA DE COMPUTACIÓN, A, C. Recuperado 27 de Mayo de 2024 en: https://amexcomp.mx/media/publicaciones/comp-evolutiva.pdf
J. E. Smith & A. E. Eiben (2003). “INTRODUCTION TO EVOLUTIONARY COMPUTING”. Recuperado 27 de Mayo de 2024 en: http://portal.uned.es/EadmonGuiasWeb/htdocs/abrir_fichero/abrir_fichero.jsp?idGuia=99744 Medina, I (2014). “Revisión de los Algoritmos Bioinspirados”. The Hong Kong University of Science and Technology. Recuperado 27 de Mayo de 2024 en: https://www.fis.unam.mx/~javazquez/files/Met_num/Algoritmosbioinspiradosfinal.pdf
Banzhaf W. Reeves C. (editors) (1999) Foundations of Genetic Algorithms. Morgan Kaufmann Publishers. Bauer, R.J. (1994) Genetic Algorithms and investment strategies. Wiley Finance Edition.
Goldberg D.E. (1989) Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley.
Langdon W.B., Poli R. (2002) Foundations of Genetic Programming. Springer. Mitchell M. (1998). An introduction to Genetic Algorithms. MIT Press.