Un algoritmo genético simula la evolución por selección natural. Poblaciones de "individuos" (soluciones) evolucionan hacia óptimos mediante selección, cruce y mutación.
John Holland (1975): Formalizó los algoritmos genéticos inspirándose en Darwin. Demostró que la evolución puede "programarse" para resolver problemas.
Mecanismos de Selección
Los individuos con mayor fitness tienen más probabilidad de reproducirse.
- Ruleta: P(selección) ∝ fitness
- Torneo: Competencia entre k individuos
- Ranking: Basado en posición, no valor absoluto
- Elitismo: Los mejores pasan directamente
Operadores Genéticos
- Crossover (cruce): Combina genes de dos padres en punto(s) de corte
- Mutación: Cambio aleatorio de un gen (tasa típica: 1-5%)
- Inversión: Revierte segmento del cromosoma
Balance: Exploración (mutación alta) vs Explotación (selección fuerte).
Paisaje de Fitness
- Óptimo global: Mejor solución posible
- Óptimos locales: Buenos pero no los mejores
- Valle: Zona de bajo fitness
- Presión selectiva: Qué tan rápido converge
- Diversidad: Explorar más del espacio
- Convergencia prematura: Atascado en óptimo local
Experimentos guiados
Observar la evolución del fitness
El fitness promedio de la población aumentará con cada generación, siguiendo una curva que se desacelera al acercarse al óptimo.
- Inicia con una población aleatoria (fitness bajo y diverso)
- Ejecuta 50 generaciones observando la gráfica de fitness
- Nota cómo el fitness promedio sube rápido al inicio
- Observa la desaceleración cuando se acerca al óptimo (rendimientos decrecientes)
Efecto de la tasa de mutación
Existe una tasa de mutación óptima: muy baja causa convergencia prematura, muy alta impide convergencia.
- Ejecuta evolución con mutación = 0% — observa convergencia prematura
- Aumenta a mutación = 1% — mejor exploración
- Prueba mutación = 50% — el sistema no converge (búsqueda aleatoria)
- Encuentra el valor óptimo para tu problema (generalmente 1-5%)
Tamaño de población y diversidad
Poblaciones más grandes mantienen más diversidad genética y escapan mejor de óptimos locales.
- Ejecuta con población N = 10 — observa pérdida rápida de diversidad
- Aumenta a N = 100 — más variantes coexisten
- Compara cuál encuentra mejores soluciones después de 100 generaciones
- Relaciona con la deriva genética: poblaciones pequeñas son más "ruidosas"
Conexiones interdisciplinarias
⚠️ Limitaciones de la simulación
- Fitness definido: En la vida real, el fitness es emergente y cambiante
- Genoma fijo: No modela duplicación de genes ni cambios estructurales
- Sin coevolución: El ambiente (fitness landscape) no cambia con la población
- Generaciones discretas: En realidad hay solapamiento y reproducción continua
🔬 Preguntas de reflexión
- ¿Por qué los algoritmos genéticos funcionan bien en problemas donde no conocemos la estructura de la solución?
- ¿Qué analogía hay entre "convergencia prematura" en AG y "pérdida de biodiversidad" en conservación?
- Si la mutación es dañina en la mayoría de los casos, ¿por qué la evolución la mantiene?
- ¿Cómo cambiaría un algoritmo genético si el fitness dependiera de la interacción con otros individuos (coevolución)?