import numpy as np

Los algoritmos genéticos

Estos algoritmos emulan los procesos que ocurren en la Naturaleza que dan lugar a la evolución por selección natural.

Suponen que la Evolución optimiza algunos de los atributos que distinguen a las especies.

Es notable el caso del cangrejo Heikegani o Heike, también conocido como cangrejo samurai:

Cálculo

_images/ga_opt_function.png

Fig. 40 Función a optimizar

El cálculo infinitesimal ha encontrado condiciones de extremo cuando la función es diferenciable.

Note

Si \(f\) es una función diferenciable en un intervalo, los extremos de \(f\) verifican \(Df(x)=0\)

Existen ocasiones en las que no se conoce la forma explícita de la función

_images/ga_nofuncion.png

Cuando la función rige la dinámica del sistema, el interés reside en conocer los estados que visitará el sistema y, sobre todo, hacia donde tiende.

Espacios de soluciones

La Fuerza Bruta puede ayudar a rastrear el espacio de soluciones y, por comparación, encontrar aquellas en las que la función toma el máximo valor.

Ejemplo: cadenas binarias formadas por \(\nu\) elementos. El número de posibles secuencias es \(S=2^\nu\).

Asociado a cada secuencia tenemos el valor que toma la función \(f\).

Si \(\nu=100\) entonces \(S\approx 10^{31}\)

_images/ga_solution_space.png

Algoritmos inteligentes de búsqueda

  • La derivada: si \(f\) es diferenciable, calculando la derivada reducimos un espacio infinito (un intervalo) a un conjunto de puntos, en principio, finito en los que la derivada se anula

  • Algoritmos de rastreo: que no sea necesario evaluar \(f\) en todos los puntos del espacio solución

  • Los algoritmos genéticos aprovechan las ideas de la evolución (caminos evolutivos) que siguen las poblaciones de especies autorreplicativas para encontrar candidatos a extremos (absolutos) evitando evaluar todas las posibilidades

  • Son métodos heurísticos

    • Funcionan mejor que métodos matemáticos cuando la complejidad del problema sobrepasa unos límites de tratabilidad

Aplicaciones