Diagrama del ciclo de un algoritmo genético

Algoritmos genéticos

Los algoritmos genéticos (AG) no son una moda pasajera. Aunque su nombre parece sacado de una novela de ciencia ficción, sus raíces se remontan a la segunda mitad del siglo XX. Biólogos y matemáticos empezaron a simular la evolución en los años 50 y 60 para optimizar funciones y aprender patrones. El gran salto llegó en 1975, cuando John Holland publicó Adaptación en Sistemas Naturales y Artificiales, donde formalizó el cruce, la mutación y la selección como operadores informáticos. Desde entonces, los AG han pasado de ser curiosidades académicas a herramientas de optimización y búsqueda usadas en ingeniería, finanzas y, cómo no, en inteligencia artificial.

¿Qué es un algoritmo genético?

Un AG es una técnica de búsqueda inspirada en la selección natural. En lugar de probar una única solución, genera una población de soluciones candidatas que evoluciona a lo largo de varias generaciones. Cada individuo representa una posible respuesta al problema (por ejemplo, una cadena de bits que codifica los parámetros de un modelo). La función de aptitud mide lo buena que es cada solución y guía la evolución. Las soluciones más adaptadas se recombinan y mutan para dar lugar a nuevas poblaciones. Este proceso permite encontrar soluciones óptimas o casi óptimas en espacios de búsqueda inmensos donde los métodos deterministas se quedan cortos.

Tip técnico: codificación de soluciones

Una codificación adecuada es clave. Si trabajas con problemas combinatorios (rutas, horarios, cromosomas digitales), utiliza cadenas de bits o enteros. Para parámetros continuos, prueba con vectores de números reales. La representación debe permitir aplicar cruce y mutación sin crear individuos imposibles.

Cómo funcionan los algoritmos genéticos

El ciclo básico de un AG consta de varios pasos:

  1. Población inicial: se generan soluciones aleatorias para reducir el sesgo inicial.

  2. Evaluación: cada individuo se evalúa con la función de aptitud para medir su calidad.

  3. Selección: se eligen los individuos más aptos para reproducirse. Métodos habituales son la ruleta, el torneo o la selección elitista.

  4. Crossover o cruce: los progenitores combinan sus características para crear descendientes.

  5. Mutación: se introducen pequeñas alteraciones aleatorias para mantener la diversidad genética y evitar la convergencia prematura.

  6. Reemplazo: la nueva generación sustituye a la anterior y el proceso se repite hasta alcanzar un criterio de parada (número de generaciones, mejora mínima o umbral de aptitud).

Tip técnico: parámetros críticos

Tamaño de la población: las poblaciones grandes exploran mejor el espacio de búsqueda pero aumentan el coste computacional. Para problemas sencillos 50 – 100 individuos suelen bastar, mientras que para problemas complejos conviene probar con 200 – 500.
Probabilidad de cruce y de mutación: una tasa de cruce alta (0,7 – 0,9) favorece la recombinación de buenas soluciones; una tasa de mutación moderada (0,01 – 0,1) mantiene la diversidad sin provocar caos.
Selección elitista: conservar algunos de los mejores individuos sin alterarlos acelera la convergencia, pero abusar de esta estrategia puede reducir la exploración global.

Descarga un ejemplo completo de algoritmo genético en Python y experimenta con él

Ventajas y limitaciones

Los AG se adaptan a múltiples tipos de problemas sin exigir condiciones sobre la función objetivo y permiten trabajar en paralelo con muchas soluciones. Su exploración global ayuda a escapar de óptimos locales, lo que los hace ideales para problemas no lineales o con múltiples óptimos. Además, se pueden mezclar con otras técnicas como la lógica difusa para crear sistemas más adaptativos.

Sin embargo, no todo son ventajas. Estos algoritmos requieren muchas evaluaciones de la función de aptitud y, por tanto, un alto coste computacional. También pueden estancarse en soluciones subóptimas si la diversidad genética se pierde. El ajuste de parámetros (tamaño de población, tasas de cruce y mutación) influye enormemente en el rendimiento.

Tip técnico: evita la convergencia prematura

Si tu AG se estabiliza rápidamente en soluciones mediocres, incrementa la tasa de mutación o introduce un mecanismo de reactivación, como reinsertar individuos aleatorios cada cierto número de generaciones. También puedes utilizar técnicas de selección por torneo o métodos de nicho que fomenten la diversidad.

Aplicaciones reales

Los algoritmos genéticos brillan en problemas donde el espacio de búsqueda es enorme y las restricciones son complejas. Algunos casos destacados son:

  • Optimización logística: resolver el problema del viajante y la asignación eficiente de rutas y recursos en empresas de transporte. Permiten asignar tareas a trabajadores según disponibilidad, optimizar el uso de maquinaria y reducir costes y tiempos de entrega.

  • Diseño de redes neuronales y sistemas de recomendación: definen la arquitectura óptima de una red (número de capas y neuronas), ajustan hiperparámetros y seleccionan variables. También se utilizan para optimizar sistemas de recomendación cuando hay grandes volúmenes de datos y múltiples criterios.

  • Problemas de optimización combinatoria: desde el clásico problema de la mochila o la coloración de grafos hasta la planificación de horarios y la gestión de líneas de montaje.

  • Ingeniería y ciencias: control de flujo en líneas de producción, diseño de microchips, optimización estructural y bioquímica. En finanzas se aplican para predecir tendencias bursátiles y planificar carteras.

  • IA en el diseño arquitectónico: por ejemplo en la arquitectura, los algoritmos genéticos se combinan con inteligencia artificial para generar distribuciones óptimas en edificios y optimizar envolventes energéticas.

Tip técnico: hibridación con redes neuronales

Los AG pueden servir para inicializar los pesos de una red neuronal o ajustar su arquitectura. Experimenta con neuroevolución: utiliza un AG para generar diferentes configuraciones de red y evalúa su desempeño sobre un conjunto de validación. Después, entrena la mejor configuración con un método de gradiente para refinar los pesos.

Historia y evolución de los algoritmos genéticos

Para entender por qué los AG siguen siendo relevantes, conviene repasar su historia. Los primeros algoritmos inspirados en la evolución surgieron en los años 50 y 60, cuando investigadores como Box, Friedman, Bledsoe y Bremermann diseñaron métodos de optimización y aprendizaje automático basados en mutaciones aleatorias. Poco después, Ingo Rechenberg introdujo la estrategia evolutiva (1965), en la que un progenitor muta y se conserva el mejor individuo, y Fogel, Owens y Walsh presentaron la programación evolutiva (1966), en la que las soluciones son máquinas de estado finito que mutan para mejorar.

El gran salto llegó con el trabajo de John Holland en la Universidad de Michigan. Su libro de 1975 formalizó la selección, el cruce y la mutación como operadores de búsqueda y sentó las bases teóricas de los esquemas y los sistemas digitales adaptativos. Ese mismo año, la tesis de Kenneth De Jong demostró que los AG podían competir en entornos ruidosos y multimodales. A partir de los años 80, los AG se aplicaron a problemas reales como el control de líneas de montaje, la clasificación de patrones y la optimización de estructuras, y con la llegada de la potencia de cálculo actual se han convertido en una herramienta habitual de la ciencia de datos.

En definitiva, los algoritmos genéticos son un puente entre la biología y la informática. Al emular la evolución, permiten explorar espacios de búsqueda gigantescos y encontrar soluciones que de otro modo serían inalcanzables. Su flexibilidad, la capacidad de combinarlos con otras técnicas y su facilidad para paralelizar los convierten en aliados imprescindibles para problemas de optimización. Sin embargo, exigen un diseño cuidadoso y un ajuste fino de parámetros para evitar el coste computacional elevado y la convergencia prematura. En un mundo en el que la inteligencia artificial sigue avanzando, los AG nos recuerdan que la naturaleza lleva millones de años resolviendo problemas difíciles y que sus principios siguen siendo una fuente de inspiración inagotable.

Fuentes

  1. Inesdi, «Algoritmos genéticos: qué son, cómo funcionan y ejemplos prácticos».

  2. Universidad de Sevilla – Blog de Francisco S. («Algoritmos Genéticos»).

  3. Víctor Yepes, «Inteligencia artificial y eficiencia en el diseño de edificios».

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *