viernes, 20 de febrero de 2009

EJEMPLO DEL ALGORITMO DE EVOLUCION DIFERENCIAL

El primer paso al resolver un problema de optimización es determinar si existe algún algoritmo diseñado específicamente para el problema en cuestión. Si el problema puede resolverse a través de los métodos tradicionales como el método simplex, para el caso de la programación lineal [6], no tiene sentido utilizar heurísticas, desafortunadamente los algoritmos tradicionales son insuficientes cuando el problema presenta no linealidad, alta dimensionalidad o la existencia de múltiples óptimos locales.

La evolución diferencial (ED) es un algoritmo evolutivo para la solución de problemas con estas características, empleando un novedoso esquema simple de mutación auto-adaptada.

La ED fue desarrollada por Rainer Storn y Kenneth Price  para optimización en espacios continuos.
En la ED, las variables se representan mediante vectores de números reales. La población inicial se genera de forma aleatoria y se seleccionan tres individuos para llevar a cabo la generación de una nueva solución. Uno de ellos es el llamado vector base que se perturba con el vector diferencia de los otros dos vectores. Si el vector resultante es mejor que el padre, entonces lo reemplaza. De otra forma, se retiene al padre al menos una generación más.

La evolución diferencial es una técnica estocástica de búsqueda directa que no requiere calcular derivadas de la función a optimizar. La cual ha demostrado ser un método robusto de búsqueda al ser aplicado en una gran variedad de problemas

el siguiente enlace posee un documento donde se presenta un pequeño ejemplo de como se aplica el algoritmo de evolucion diferencial para una funcion sencilla.

EJEMPLO DE EVOLUCION DIFERENCIAL ESCRITO POR CARLOS MONTERROSA