import numpy as np

El Algoritmo Genético

Referencia figuras

Pasos elementales

  • Codificación del problema en genotipos/fenotipos

_images/ga_algo_1.png
  • Generación inicial de una población de genotipos

  • Replicación con variación (inversión o entrecruzamiento)

_images/ga_algo_2.png
_images/ga_algo_3.png
  • Nuevos individuos (hijos)

_images/ga_algo_4.png
  • Mutación (por dígito)

_images/ga_algo_5.png
  • Selección de los mejores fenotipos/genotipos

    • Función fitness

  • Repetición hasta convergencia.

  • Comprobación e interpretación del resultado en el problema original.

Esquema general

_images/ga_algorithm1.png

Ejemplo

_images/ga_genetic.png

Operadores de mutación

  • Mutación por dígito (substitution)

  • Inversión

  • Entrecruzamiento (crossover)

_images/ga_genetic2.png

Convergencia

La convergencia de los GA es un problema abierto

_images/ga_convergence.png

No existe una teoría general que asegure hacia dónde se dirige un GA en problemas con cierta complejidad. No obstante, existen resultados generales que aseguran la convergencia en determinadas condiciones:

[Greenhalgh and Marshall, 2000]

Otros algoritmos de optimización

  • La evolución ha dado lugar a estrategias colectivas que aumentan la posibilidad de supervivencia del grupo.

  • Algoritmos de optimización genéricamente denominados enjambre (Particle Swarm Optimization, PSO)

  • A diferencia de los algoritmos genéticos que buscan el óptimo mediante la competición de individuos, los PSO lo hacen cooperando

  • Otro grupo de algoritmos de optimización bioinspirados: Ant Colony Optimization, basados en la estrategia de búsqueda de hormigas

_images/ga_ant_optimization.png
  • Las hormigas se disponen en una red y su movimiento por la misma depende del nivel de feromonas y las visibilidades (distancias) de los arcos que unen los nodos (posiciones).

_images/ga_ant_optimization2.png
  • Este tipo de algoritmos ha permitido resolver problemas de gran complejidad como el problema del viajante de comercio (Travelling Salesman Problem)