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¶
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
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}\)
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