Está en la página 1de 8

Comparando un Algoritmo de Evolución Diferencial Tradicional contra un Algoritmo de

Evolución Diferencial con Mejora de Acuerdo a una Regla de Deb

Gustavo Alejandro Galindo Rosales

Xalapa Veracruz – México Agosto de 2010

Resumen. En 1995, Rainer Storn y Kenneth V. Price desarrollaron un algoritmo evolutivo para optimización global
sobre espacios continuos llamado Evolución Diferencial. Este algoritmo realiza una cruza entre tres padres y suele
converger rápidamente al óptimo (o a su vecindad) en problemas con una sola función objetivo y sin restricciones.
Además, el desempeño de este algoritmo depende del control de pocos parámetros, lo cual facilita su uso en diversos
problemas. Estas características hacen de la evolución diferencial un candidato idóneo para resolver problemas
multiobjetivo.

Este trabajo presenta una comparación entre un Algoritmo de Evolución Diferencial tradicional contra una versión
donde el vector r1 es el mejor (de acuerdo a las reglas de Deb [1]) de los 3 que se escogen de manera aleatoria. La
intención es ver si este cambio donde la dirección de búsqueda se garantiza hacia una zona prometedora mejora los
resultados en las funciones de prueba. Nos apoyaremos de las medidas de desempeño (FP, P, AFES y SP) y usando
las funciones g08y g11 con restricciones [2].

Capítulo 1

Introducción.

Los problemas de optimización han sido sumamente estudiados, debido a la importancia que tienen en la práctica.
Algunos problemas han logrado resolverse satisfactoriamente mediante métodos matemáticos, como la optimización
lineal. Sin embargo, el problema general de optimización global no lineal permanece como no resuelto, dado que no
existe ningún método determinista que garantice converger siempre al óptimo de una función objetivo arbitraría con
restricciones arbitrarias [3]. Por esa razón, las heurísticas han tomado un gran auge, y entre ellas destacan los
Algoritmos Evolutivos (AE). La computación evolutiva engloba a un conjunto de heurísticas que basan su
funcionamiento en el mecanismo de selección natural propuesto por Charles Darwin, y luego extendido en el
denominado Neo-Darwinismo

El problema de optimización numérica con restricciones, también conocido como el problema general de
programación no lineal, se define como [18]: Encontrar un vector de variables de decisión que satisfaga las
restricciones y optimice una función dada. Esta función contiene la descripción matemática del criterio del
desempeño del problema. Formalmente, el problema de nuestro interés se establece como el: Encontrar ⃗ que
optimice ⃗ sujeta a ⃗ , i= 1,…,m, ⃗ , j = 1,…,p, donde f : , ⃗ es el vector de variables de
decisión ⃗ =[ , donde cada , i=1,…,n, está acotada por un límite inferior y superior
, m es el número de restricciones de desigualdad y p es el número de restricciones de igualdad; en ambos casos las
restricciones pueden ser lineales o no lineales, continuas y descontinuas, convexas o no convexas. Lo mismo aplica
para la función objetivo.

Para resolver problemas de optimización, se utilizó un tipo de algoritmo evolutivo llamado Evolución
Diferencial(ED), el cual fue desarrollado por Storn y Price en 1995 [4,5] para optimización en espacios continuos. La
diferencia entre la ED y otros AE es que emplea combinaciones lineales de individuos en la población actual, para
generar nuevas soluciones que heredan características deseables para la solución del problema. En su forma original,
al igual que todo algoritmo evolutivo, no tiene un mecanismo de manejo de restricciones.

El contenido del trabajo comprende un total de 5 capítulos, y es el siguiente:

 Capítulo 1. Introducción. Capítulo Actual.


 Capítulo 2. Evolución Diferencial. Descripción del algoritmo de ED y trabajos relacionados.
 Capítulo 3. Propuesta. En este capítulo se detallan los experimentos y ciertas métricas establecidas.
 Capítulo 4. Resultados y Discusión: Este capítulo proporciona los resultados de cada experimento así como una
discusión de los mismos.
 Capítulo 5. Conclusiones y Trabajo Futuro: Finalmente este capítulo remarca las conclusiones obtenidas y
muestra las líneas futuras de investigación.
2

Índices de Tablas

Tabla 4.1: Tabla de comparación de la gráfica g08. Comparación de Estadísticas ED vs EDr1 5

Tabla 4.2: Tabla de comparación de la gráfica g08. Comparación de Medidas Desempeño ED vs EDr1 5

Tabla 4.3: Tabla de comparación de la gráfica g11. Comparación de Estadísticas ED vs EDr1 6

Tabla 4.4: Tabla de comparación de la gráfica g11. Comparación de Medidas Desempeño ED vs EDr1 6

Índices de Gráficas

Gráfica 4.1: Gráfica de comparación para la función g08. Gráfica de Caja ED vs EDr1 5

Gráfica 4.2: Gráfica de comparación para la función g11. Gráfica de Caja ED vs EDr1 6

Índices de Figuras

Figura 2.1: Pseudocódigo ED. 2

Capítulo 2
Evolución Diferencial.

La Evolución Diferencial es un algoritmo evolutivo para la solución de problemas de optimización cuando él


problema tiene características como no linealidad, alta dimensionalidad o la existencia de múltiples óptimos locales
estas características, y emplea un novedoso esquema simple de mutación auto-adaptada.

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 [6].

Inicio
Generar una población inicial de tamaño NP
Evaluar cada individuo en popsize
Para i = 1 to Max Generación
Mientras (j ≤ popsize)
Tomar al padre j y escoger aleatoriamente 3 soluciones de la población
distintas
entre si de la población
Aplicar cruza y mutación con los operadores de ED usando al padre j
y a los 3 individuos aleatorios para generar un
descendiente (CR=0.9) y F=(0.9)
Evaluar al individuo
j=j+1
Comparar el padre con el hijo con base en Reglas de Factibilidad
el mejor sobrevive para la población de la siguiente generación
Fin Mientras
Fin Para
Fin

Figura 2.1: Pseudocódigo ED.


3

Primeramente, se generan aleatoriamente a los individuos, basados en el valor NP definido previamente que expresa
el tamaño de la población. La población inicial se conforma de la siguiente manera: donde i = 1, 2 . . .NP y
j = 1, 2, . . .D. La dimensión (D) se refiere al tamaño del problema es decir, el número de variables que presenta.
Antes de inicializar a la población, es necesario especificar los límites inferiores y superiores de cada variable de
diseño. Esto con la finalidad de generar valores aleatorios para cada una, dentro del rango especificado. La ecuación
2.1, muestra la manera de generar a los individuos [7].

( )

El número aleatorio generado , retorna un valor uniformemente distribuido en el rango [0,1), El subíndice
j, indica que un nuevo valor aleatorio es generado por cada variable; b se refiere a cada limite y los índices L y U,
significan inferior y superior respectivamente.

Al ser inicializados cada uno de los np individuos, cada uno contiene los valores dentro de los límites permitidos de
las D variables de diseño dentro de su estructura, mismos que se evaluaran de acuerdo a la función a optimizar o
función objetivo donde i = 1, 2, . . .np , Esto dará como resultado una medida de calidad. Posteriormente, por
cada generación de la población, los nuevos vectores generados de igual manera se evaluarán para determinar el
avance con respecto en la búsqueda del valor óptimo [8].

La mutación en la ED es principalmente responsable de generar nuevas direcciones de búsqueda. Por cada variable de
diseño, el mecanismo de mutación se encarga de sumar al vector base , la fracción del valor de la diferencia
escalada - , definida por el factor de escalamiento F en el rango [0,1) con el fin de generar un vector
mutante , donde g se refiere a la generación.

( )

Trabajos Relacionados.

Este trabajo de trabajo, surge de la motivación de conocer más algoritmos de cómputo inteligente y realizar el
proyecto final de la misma materia. Nos apoyamos de un trabajo de tesis realizada por Carlos Augusto Monterrosa
López en Lania en Enero de 2010, y tiene que ver con el desempeño del algoritmo de Evolución Diferencial (ED) en
su versión ED/rand/1/bin aplicado a espacios restringidos, el cual es un algoritmo simple de búsqueda directa
empleado en optimización numérica global.

Las investigaciones recientes se enfocan a mejorar la técnica añadiendo un mecanismo para el manejo de las
restricciones del problema, que en ocasiones este puede sumar parámetros extra y/o modificar la estructura original
del algoritmo.

Capítulo 3

Propuesta.

El algoritmo de evolución diferencial con selección global se refiere básicamente al hecho de que el
vector base se elige de manera aleatoria diferente al vector Target (r0 *= i). Lo que permite generar una
mayor diversidad de direcciones de búsqueda, el pseudocódigo se aprecia en la figura 2.1.

Se propone efectuar 30 ejecuciones independientes de cada algoritmo (ED y EDr1), con diferente semilla inicial para
la generación de números aleatorios para crear una población de 90 individuos, con un factor de escalamiento fijado
en F=0.9, probabilidad de recombinación de CR=0.9, se evaluaran cada una de las 4 funciones de prueba, para
determinar el rendimiento del algoritmo en sus resultados finales, con un promedio de 250,000 evaluaciones.
4

Se utilizan 4 funciones de minimización descritas en la literatura especializada [9]. El conjunto de problemas cuenta
con características diferentes en la función objetivo, en las restricciones y en la dimensionalidad.

Para entender mejor las medidas de desempeño se entenderá como una corrida exitosa aquella donde se alcance una
solución en la vecindad del ´optimo a una distancia no mayor de .

Las medidas empleadas son las siguientes:

 Average number of function evaluations (AFES), número de Evaluaciones promedio de las corridas exitosas que
se necesitaron para que el valor resultante de la función objetivo estuviera dentro del rango de éxito.

 Probability of convergence (P), promedio de corridas exitosas. P = st. Donde s es el número de corridas exitosas
y t es el número total de corridas realizadas.

 Success performance (Sp) es una medida del desempeño del algoritmo y está dado por una operación entre las 2
variables explicadas anteriormente, es el resultado de la división del número promedio de evaluaciones (AFES)
entre la probabilidad de convergencia (P). Sp = AFES

 Probabilidad de factibilidad (PF) es el porcentaje de corridas donde se alcanza la zona factible del total de
corridas realizadas. PF = ft. Donde f es el número de corridas donde se alcanzó la zona factible y t es el número
total de corridas realizadas.

El presente proyecto se enfocó a comparar el algoritmo de ED tradicional y otro algoritmo ED con una mejora donde
el vector r1 es el mejor (de acuerdo a las reglas de Deb) de los 3 que escoges de manera aleatoria. La intención es ver
si este cambio donde la dirección de búsqueda se garantiza hacia una zona prometedora mejora los resultados en las
funciones de prueba.

Capítulo 4

Resultado y Discusión.

De acuerdo a las definiciones de las medidas de desempeño, un valor de AFES menor es preferible, pues refleja un
menor costo promedio del algoritmo para alcanzar una muy buena solución. Por otro lado, un valor de P mayor es
preferible porque significa una mayor capacidad del algoritmo para alcanzar una muy buena solución. Un valor de Sp
menor es preferible pues indica un mejor equilibrio costo/éxito del algoritmo. Finalmente, un valor alto de PF es
preferible ya que indica una mejor capacidad de generar soluciones factibles del algoritmo.

Se presentan los resultados de los experimentos propuestos en el capítulo anterior, así como la discusión de los
mismos, de las versiones DE (Algoritmo de Evolución Diferencia) y DEr1 (Algoritmo de Evolución Diferencial con
mejora) explicados previamente.

La Implementación del algoritmo fue realizada en lenguaje Java 6, bajo la plataforma NetBeans IDE 6.8 y sistema
operativo Windows 7 de 64 bits.

Función g08

El mínimo global se encuentra en = (1,22797135260752599; 4,24537336612274885)


5

Donde −0,0958250414180359

Técnicas Comparadas
Estadísticas
ED ED r1 mejor

mejor -0.0954863 -0.09543

media -0.09049 -0.093907

mediana -0.09348 -0.094325

peor -0.07221 -0.0908

Desv. Est. 0.006 0.001632

Tabla 4.1: Tabla de comparación de la gráfica g08.


Comparación de Estadísticas ED vs EDr1
Algoritmo AFES P Sp PF

ED 900 26.7% 3375 100.0%

EDr1 990 50.0% 1980 100.0%

Tabla 4.2: Tabla de comparación de la gráfica g08.


Comparación de Medidas Desempeño ED vs EDr1

Gráfica g08
-0.070 -0.070

-0.075 -0.075

-0.080 -0.080
Datos

-0.085 -0.085

-0.090 -0.090

-0.095 -0.095

ED EDr1
Grafica 01: grafica de caja ED vs EDR1

Gráfica 4.1: Gráfica de comparación para la función g08.


Gráfica de Caja ED vs EDr1
6

Descripción de tablas y gráficas g08.

Las tablas 4.1-4.2 presentan los resultados obtenidos para la función g8(x), no lineal, con 2 restricciones de
desigualdad y 2 variables con selección global. Como se puede observar en la tabla 4.1, el Algoritmo EDr1 tiene
mejores valores estadísticos que ED. La tabla 4.2 nos confirma ese mejor desempeño del algoritmo EDr1 ya que
también tiene mejores medidas de desempeño, nos apoyamos del Software Minitab, en su versión 15 en español, que
es un software estadístico para hacer la gráfica de caja de intervalo de confianza de la media y mediana. El primer
rectángulo de las gráficas (de adentro hacia afuera) representa el rango de confianza de la media, el segundo
representa el intercuartil. La línea horizontal representa a la mediana. Esta nos confirma lo que las Tabla 4.1y 4.2 ,
nos dice, que el algoritmo EDr1 es mejor que ED. La caja del algoritmo ED es más amplia que la del EDr1, y esto es
porque los datos están más espaciados entre sí. También podemos observar que la media (que está representada por
un circulo con un + dentro) en el caso del ED, no está en medio de la caja, sino que esta hacia arriba por lo que los
datos están más cargados hacia arriba, además de que esto la mediana (que está representada con circulo con una x
dentro) debería de estar cercana a la media, pero esta hacia el otro lado, lo que no sucede en la gráfica de caja del
algoritmo EDr1 que casi coincide y están al medio dela caja, esto nos quiere decir que el algoritmo EDr1 es más
robusto que el algoritmo ED, ya que nos entrega resultados muy similares entre sí y lo más cercanos al valor óptimo
de hacer mínima a la función de aptitud. También podemos observar que ED tiene un valor atípico representado por
un *, que está muy afuera de los rangos de confianza de media y mediana, cosa que no sucede en EDr1.

Función g11

El mínimo global se encuentra en donde 0.75

Técnicas Comparadas
Estadísticas
ED ED r1 mejor
mejor 0.7499 0.7499
media 0.985 0.992
mediana 0.750 0.751
peor 3.018 4.099
Desv. Est. 0.718 0.806

Tabla 4.3: Tabla de comparación de la gráfica g11.


Comparación de Estadísticas ED vs EDr1

Algoritmo AFES P Sp PF
ED 1350 30.0% 4500 73.3%
EDr1 1440 30.0% 4800 86.7%

Tabla 4.4: Tabla de comparación de la gráfica g11.


Comparación de Medidas Desempeño ED vs EDr1
7

Gráfica g11 ED vs EDr1


ED EDr1

4 4

3 3
Datos

2 2

1 1

0 0
ED EDr1

Gráfica 4.2: Gráfica de comparación para la función g11.


Gráfica de Caja ED vs EDr1

Descripción de tablas y gráficas g11.

Las tablas 4.3-4.4 presentan los resultados obtenidos para la función g11(x), cuadrática, con 1 restricción de igualdad
y 2 variables. Como se puede observar en la tabla 4.3, el Algoritmo ED tiene mejores valores estadísticos que EDr1.
La tabla 4.4 nos confirma ese mejor desempeño del algoritmo ED ya que también tiene mejores medidas de
desempeño. La gráfica 4.2 nos muestra un comportamiento similar entre los dos algoritmos ED yEDr1, ya que en
ambos casos tiene un valores atípicos representado por un *, que está muy afuera de los rangos de confianza de media
y mediana (que en este caso observamos una línea) siendo mayor el número de casos en ED (8) que en EDr1 (4). En
el caso de la media y mediana están a la misma altura en ambos algoritmos, y la media está fuera de los rangos de
confianza de la cajas, esto debido a los valores atípicos que se produjeron, la mediana en ambos casos esta sobre la
caja, que en ambos casos es una línea, esto es porque los algoritmos genero soluciones muy similares, por lo se
observan las líneas, esto es deseable ya que lo que busquemos es que nos dé en la mayoría de las corridas el valor
cercano al óptimo. Podemos concluir que ambos algoritmos son buenos al resolver esta función g11, aunque las
estadísticas apuntan hacia ED como mejor que EDr1, pero hay que tomar en cuenta que EDr1 tuvo la mitad de
resultados atípicos que ED, por lo que me inclinaría por EDr1, ya que las demás estadísticas están de uno u otro modo
parejas.

Capítulo 5

Conclusiones y Trabajo Futuro.

Se propuso un experimento para comparar 2 algoritmos ED y EDr1, la idea era comparar la ED tradicional (Selección
Global) contra una versión donde el vector r1 es el mejor (de acuerdo a las reglas de Deb) de los 3 que escoges de
manera aleatoria. La intención es ver si este cambio donde la dirección de búsqueda se garantiza hacia una zona
prometedora mejora los resultados en las funciones de prueba. Se usaron los parámetros fijo de F=0.9, CR=0.9,
población = 90, generaciones = 2777 (para que hacer en total 250,000 evaluaciones), esto para poder comparar los
dos algoritmos. Por cada función de análisis se hicieron 30 corridas para generar las estadísticas de comparación y ver
el comportamiento de los algoritmos a funciones de diferentes tipos y con restricciones de igualdad y desigualdad.
8

Podríamos concluir que este cambio si mejora los resultados de EDr1 sobre ED, el programa tiene una robustez
mayor, que hace que los resultados no se disparen tanto, además de que tiene un buen rango de soluciones, lo que me
hace pensar que también hace una buena búsqueda en el espacio teniendo menos valores atípicos que ED. Aunque
desde mi punto de vista haría falta hacer más comparaciones con diferentes tipos de funciones y restricciones, para
ver su comportamiento (mínimo unas 15 comparaciones).

Queda como trabajo futuro hacer más comparaciones con más funciones y restricciones, además de poder calibrar los
parámetros iniciales con algún software y hacer comparaciones con el EDlocal, para ver si realmente esta mejora es
contundente o no.

Referencias Bibliográficas:

[1] Kalyanmoy Deb. Multi-Objective Genetic Algorithms: Problem Difficulties and Construction of Test Problems.
Evolutionary Computation, 7(3):205–230, Fall 1999.

[2] Efrén Mezura-Montes and Carlos A. Monterrosa López, Global and Local Selection in Differential Evolution for
Constrained Optimization, Journal of Computer Science & Technology, 9(2):43--52, October, 2009, ISNN:1666-
6038.

[3] Colin B.Reeves. Modern Heuristic Techniques for Combinatorial Problems. John Wiley & Sons, Inc., Great
Britain, 1993.

[4] Rainer Storn and Kenneth Price. Differential evolution - a simple and efficient adaptative scheme for global
optimization over continuous spaces. Technical Report TR-95- 12, International Computer Science, Berkeley,
California, March 1995. .

[5] Rainer Storn and Kenneth Price. Differential evolution - a fast and efficient heuristic for global optimization over
continuous spaces. Journal of Global Optimization, (11):341–359, 1997.

[6] Kenneth V. Price. An introduction to differential evolution. pages 79–108, 1999.

[7] Marco Laumanns, Lothar Thiele, Kalyanmoy Deb, and Eckart Zitzler. Combining Convergence and Diversity in
Evolutionary Multiobjective Optimization. Evolutionary Computation, 10(3):263–282, Fall 2002.

[8] Kenneth V. Price, Rainer M. Storn, and Jouni A. Lampinen. Differential Evolution A Practical Approach to
Global Optimization. Natural Computing Series. Springer-Verlag, Berlin, Germany, 2005.

[9] Runarsson T. P. Mezura-Montes E. Clerc M. Suganthan P. N. Coello C. A. C. Liang, J. J. and K. Deb. Problem
definitions and evaluation criteria for the cec 2006 special session on constrained real-parameter optimization.
Technical report, Nanyang Technological University, 2006.

También podría gustarte