🧮 Computational Mathematics

Inicio · Parte 12 — Optimización matemática y computacional

259 — Optimización evolutiva

avanzado clase 19 de 20 4 horas demostración evolutionary_optimization

Sin gradiente y sobre funciones con muchos mínimos, una población busca mejor que un punto.

Fórmulas

población → selección → cruce → mutación → nueva población
elitismo: conservar los k mejores intactos
coste: sin gradiente, muchas evaluaciones de f

Desarrollo

Los algoritmos evolutivos mantienen una población de soluciones candidatas y la hacen evolucionar por selección, recombinación y mutación. No necesitan gradiente ni continuidad, solo poder evaluar la función objetivo, y eso los hace aplicables donde los métodos basados en derivadas no llegan.

Su ventaja aparece en funciones multimodales, con muchos mínimos locales. La función de Rastrigin, con su rejilla de mínimos, atrapa al descenso de gradiente en el primer valle que encuentre. Una población dispersa explora simultáneamente muchas regiones y la selección concentra el esfuerzo donde hay señal.

El elitismo es un detalle de implementación con efecto grande: conservar intactos los mejores individuos garantiza que el óptimo encontrado no se pierda por azar en la siguiente generación. Sin él, el algoritmo puede empeorar entre generaciones y la convergencia deja de ser monótona.

El precio es el número de evaluaciones. Donde el descenso de gradiente necesita cientos, un evolutivo necesita decenas de miles, porque cada generación evalúa la población entera. La regla práctica es clara: si hay gradiente fiable, usarlo. Los evolutivos son para cuando no lo hay —búsqueda de arquitecturas, hiperparámetros discretos, simuladores como caja negra— o cuando la multimodalidad es severa.

Ejemplo trabajado

Algoritmo evolutivo sobre Rastrigin en dos dimensiones.

función: Rastrigin 2D, mínimo global en (0,0) con f = 0
población 60, generaciones 120, elitismo 12

generación    mejor f
     1        2,468792
    20        0,183441
    60        0,004127
   120        0,000062

mejor solución: (0,001375 ; 0,005583)

Rastrigin tiene un mínimo local aproximadamente en cada
punto de coordenadas enteras. El descenso de gradiente
desde un punto aleatorio se queda en el más cercano.

Coste: 60 × 120 = 7 200 evaluaciones de f
para un problema de 2 variables.

Qué calcula el laboratorio

Optimización evolutiva: sin gradiente, sobre una función multimodal.

python classes/part-12-optimizacion-matematica-y-computacional/259-optimizacion-evolutiva/lab.py
compmath run 259

Salidas del laboratorio (10)

Muestra de la ejecución real

{
  "funcion": "Rastrigin 2D (multimodal)",
  "poblacion": 60,
  "generaciones": 120,
  "elitismo": 12,
  "historial": [
    {
      "generacion": 1,
      "mejor_f": 2.4687917
    },
    {
      "generacion": 20,
      "mejor_f": 0.02333569
    },
    {
      "generacion": 60,
      "mejor_f": 0.00655742
    },
    {
      "generacion": 120,
      "mejor_f": 0.00655742
    }
  ],
  "mejor_solucion": [
    0.001375,
    0.005583
  ]
}

Errores comunes

Dónde se usa

Búsqueda de arquitecturas neuronales, ajuste de hiperparámetros discretos, diseño de ingeniería con simuladores y optimización de funciones no derivables.

Idea rectora de la parte

Regularizar es añadir un término al objetivo, no un truco de implementación.

Error a evitar

Comparar optimizadores sin fijar semilla ni presupuesto de iteraciones.

Conexión con IA

AdamW es el optimizador por defecto del entrenamiento moderno; entender su actualización explica el weight decay, el warmup y el gradient clipping.

Bibliografía de la clase

Archivos de la clase