UNIVERSIDAD BICENTENARIA DE ARAGUA
VICERRECTORADO ACADEMICO

UNIVERSIDAD BICENTENARIA DE ARAGUA
VICERRECTORADO ACADEMICO
• Escrito por Andrés Gutiérrez.
• Materia:Algoritmos Genéticos.
• Docente: Franklin Morillo
• Escuela de Ingeniería.
• San Antonio, 2024
• 1. Portada.
• 2. Contraportada.
• 3. Índice.
• 4. Línea editorial
• 5. ¿Qué es un algoritmo genético?
• 6. Algoritmos genéticos como técnica de búsqueda y optimización.
• 7. ¿Cómo funciona?
• 8. Aportes.
• 9. Origen de la computación evolutiva.
• 10, Modelos de computación bioinspirados.
• https://www.esteve.org/publicaciones/nosotras-respondemosalgoritmos/?doing_wp_cron=1715968980.9837501049041748046875
• https://www.cs.us.es/~fsancho/Blog/posts/Algoritmos_Geneticos.md. html
• https://ignaciogavilan.com/como-funcionan-los-algoritmos-geneticos/
• https://enzyme.biz/blog/algoritmos-geneticos-y-sus-aplicaciones-parasoluciones
• http://sabia.tic.udc.es/mgestal/cv/AAGGtutorial/node4.html
• https://www.fing.edu.uy/~sergion/gp/documentos/propios/EDCAGP.p df
• https://conahcyt.mx/computacion-evolutiva-y-algunas-de-susaplicaciones-en-el-mundo-real/
• https://jarroba.com/computacion-evolutiva-ejemplo-con-unalgoritmo-genetico/
• https://www.iic.uam.es/noticias/algoritmos-bioinspiradosoptimizacion-basada-evolucion-natural/
• https://aplicat.upv.es/exploraupv/ficha-servicio/capacidad/6612
• Son un tipo de algoritmo de búsqueda y optimización inspirados en el proceso de evolución natural. Se utilizan para encontrar soluciones aproximadas a problemas complejos mediante la generación, selección y evolución de una población de posibles soluciones.
• La idea básica detrás de los algoritmos genéticos es simular el proceso de selección natural, donde las soluciones más aptas tienen más probabilidades de sobrevivir y transmitir sus características a las siguientes generaciones. Estos algoritmos operan con una población inicial de posibles soluciones, las cuales son codificadas de manera que puedan ser manipuladas por operadores genéticos como la cruza y la mutación.
• Funcionan generando una población inicial de soluciones (llamadas individuos o cromosomas) de manera aleatoria o utilizando algún criterio específico. Luego, a través de una serie de operadores genéticos, como la selección, el cruce y la mutación, los individuos evolucionan y se adaptan a lo largo de las generaciones, con el objetivo de encontrar soluciones óptimas o aproximadas a un problema dado
La forma en que funciona un algoritmo genético se puede describir en varios pasos:
1. Inicialización: Se crea una población inicial de individuos de manera aleatoria o mediante algún método específico. Cada individuo representa una posible solución al problema que se está tratando de resolver.
2. Evaluación de la aptitud (fitness): Se evalúa qué tan buena es cada solución en la población. Esto se hace mediante una función de aptitud que mide qué tan cerca está una solución de ser óptima en términos del problema que se está resolviendo.
3. Selección: Se seleccionan los individuos más aptos (con mayor valor de aptitud) para reproducirse y formar parte de la próxima generación. Este proceso se realiza para simular el proceso de selección natural, donde los individuos más aptos tienen una mayor probabilidad de sobrevivir y reproducirse.
4. Cruce (crossover): Se combinan las características de los individuos seleccionados para crear nuevas soluciones. Esto se hace intercambiando parte de la información genética entre los individuos seleccionados, simulando la reproducción sexual en la naturaleza.
5. Mutación: Ocasionalmente, se introduce un cambio aleatorio en los individuos para mantener la diversidad genética en la población y evitar la convergencia prematura hacia una solución subóptima.
6. Reemplazo: Los nuevos individuos generados (ya sea por cruces o mutaciones) reemplazan a los menos aptos en la población actual, formando así la próxima generación.
7. Convergencia: Este ciclo de selección, cruce, mutación y reemplazo se repite durante varias generaciones o hasta que se cumpla algún criterio de terminación, como un número máximo de generaciones o la convergencia hacia una solución aceptable.
Los algoritmos genéticos han realizado varios aportes significativos a la inteligencia artificial (IA), especialmente en áreas como la optimización, la búsqueda de soluciones en espacios de alta dimensionalidad y la simulación de procesos de evolución biológica. Aquí hay algunos de los principales aportes:
1. Optimización Global: Los algoritmos genéticos son efectivos para encontrar soluciones óptimas o cercanas a óptimas en problemas de optimización global, donde el espacio de búsqueda es grande y complejo Esto es útil en campos como la ingeniería, la logística, la planificación y el diseño de sistemas.
2. Exploración de Espacios de Búsqueda Complejos: Los algoritmos genéticos pueden explorar eficientemente espacios de búsqueda complejos y de alta dimensionalidad, donde otras técnicas de búsqueda tradicionales pueden ser ineficaces o computacionalmente costosas.
3. Aprendizaje de Máquina Evolutivo: Los algoritmos genéticos se utilizan en el aprendizaje de máquina evolutivo, donde se aplican para evolucionar estructuras o parámetros de modelos de aprendizaje automático. Esto incluye la optimización de arquitecturas de redes neuronales, la selección de características y la sintonización de hiperparámetros.
4. Robótica Evolutiva: En la robótica, los algoritmos genéticos se utilizan para la evolución de controladores robóticos y el diseño de estructuras físicas de robots. Esto permite la creación de robots con comportamientos y capacidades adaptativas y robustas
5. Problemas de Programación Genética: La programación genética es una variante de los algoritmos genéticos donde se evolucionan programas informáticos para resolver problemas. Esto es útil en la generación automática de código, el diseño de algoritmos y la resolución de problemas de programación.
6. Optimización Multiobjetivo: Los algoritmos genéticos pueden manejar problemas de optimización multiobjetivo, donde hay múltiples objetivos contradictorios que deben ser optimizados simultáneamente. Esto es útil en situaciones donde se deben tomar decisiones que implican compromisos entre diferentes objetivos.
7. Simulación y Modelado Evolutivo: Los algoritmos genéticos se utilizan en la simulación y el modelado de procesos evolutivos en biología y ecología, lo que ayuda a comprender mejor la evolución de especies, la dinámica de poblaciones y otros fenómenos relacionados con la evolución.
• El concepto de computación evolutiva tiene sus raíces en la teoría de la evolución biológica propuesta por Charles Darwin en el siglo XIX. La idea fundamental es que las poblaciones de organismos evolucionan a lo largo del tiempo mediante la selección natural, donde aquellos individuos con características favorables tienen una mayor probabilidad de sobrevivir y reproducirse, transmitiendo esas características a las generaciones futuras. Esta idea ha sido fundamental en la biología y ha inspirado diversos campos científicos y tecnológicos.
• La computación evolutiva es una rama de la inteligencia artificial que se inspira en los principios de la evolución biológica para resolver problemas computacionales. Su origen se remonta a las décadas de 1950 y 1960, cuando investigadores como Alan Turing, John Holland y otros comenzaron a explorar formas de utilizar conceptos evolutivos en la optimización y búsqueda de soluciones computacionales.
• El trabajo pionero en este campo incluye el desarrollo de algoritmos genéticos por parte de John Holland en la década de 1960. Holland propuso una forma de simular la evolución biológica en computadoras, utilizando una población de soluciones candidatas que se someten a operadores genéticos como selección, cruce y mutación para mejorar la calidad de las soluciones a lo largo del tiempo. Este enfoque resultó ser efectivo para resolver una amplia gama de problemas de optimización y búsqueda.
• Desde entonces, la computación evolutiva ha evolucionado y se ha diversificado en varias ramas, que incluyen no solo los algoritmos genéticos, sino también estrategias evolutivas, programación evolutiva, y algoritmos de colonia de hormigas, entre otros. Estas técnicas se aplican en una variedad de áreas, como la ingeniería, la ciencia de datos, la robótica, la economía computacional y más.
• En resumen, el origen del concepto de computación evolutiva se encuentra en la teoría de la evolución biológica de Darwin y ha sido desarrollado y refinado a lo largo del tiempo por científicos y tecnólogos interesados en aprovechar los principios evolutivos para resolver problemas computacionales de manera eficiente y efectiva.
• Programación Evolutiva: En la programación evolutiva, se evolucionan programas informáticos para resolver problemas específicos. Los programas se representan como cadenas de genes que son sometidas a operadores genéticos para mejorar su desempeño en términos de una función de aptitud.
• Redes Neuronales Artificiales: Inspiradas en el funcionamiento del cerebro humano, las redes neuronales artificiales son sistemas de procesamiento de información que consisten en interconexiones de unidades de procesamiento (neuronas artificiales) que se organizan en capas y aprenden de los datos mediante algoritmos de entrenamiento, como el algoritmo de retropropagación.
• Algoritmos de Colonias de Hormigas: Inspirados en el comportamiento de las colonias de hormigas, estos algoritmos se utilizan para resolver problemas de optimización y búsqueda, donde los agentes (hormigas) cooperan entre sí dejando rastros de feromonas para encontrar caminos óptimos hacia una solución.
• Computación de Enjambre de Partículas (Particle Swarm Optimization, PSO): Basada en el comportamiento de los enjambres de aves o peces, PSO es una técnica de optimización que simula el movimiento cooperativo de una población de partículas en busca de soluciones óptimas.