• No se han encontrado resultados

3. Algoritmos Bioinspirados

3.4. Evolución Diferencial

Price y Storn desarrollaron ED con el objetivo de generar un versátil optimizador de funciones fácil de utilizar y de implementar (Storn y Price, 1997). Desde entonces la ED ha destacado en competencias tales como la IEEE’s International Contest on Evolutionary Optimization (ICEO) en los años 1996 y 1997. Como la mayoría de los ABs, la ED trabaja con una población de posibles soluciones inicializada de forma aleatoria (ver figura 3.8, para el caso de un problema de dos dimensiones), sin embargo la principal diferencia radica en sus operadores de cruza y mutación.

A diferencia de otros enfoques, el operador de mutación en la ED no está basada en una función de distribución de probabilidad predefinida (por ejemplo la distribución Gaussiana), en su lugar la distribución del operador

3.4. Evolución Diferencial 31 de mutación depende de la distribución de las soluciones actuales y parece ser esa una de sus principales ventajas (Price, 1999). A los individuos de la población en la ED se les llama vectores. La ED maneja una codificación de números reales organizados en vectores, y maneja una selección de padres determinística, es decir, cada vectortarget (padre) crea un vectortrial (hijo) y la selección de sobrevivientes es determinística, sobrevive el que tiene mejor calidad entre el vector target y el trial. El algoritmo de la ED en su versión simple se presenta en el algoritmo 2.

Algorithm 2 Algoritmo general de la ED Iniciar población de vectores aleatoriamente

for cada vector target de la poblacióndo

Calcular calidad

end for repeat

for cada vector target de la poblacióndo

Seleccionar tres vectores aleatorios Generar un trial

Calcular calidad

if Vector trial es mejor que Vector target then

Reemplazar el target por el trial

else

Mantener target

end if end for

untilalcanzar la condición de paro

El operador de mutación en la ED consiste en una simple diferencia aritmética entre pares de vectores seleccionados aleatoriamente (x1 y x2),

a esta diferencia se le conoce como el vector de perturbación (ver figura 3.9). Una vez obtenido el vector de perturbación, un tercer vector (x3) es

seleccionado aleatoriamente y se le suma el vector de perturbación escalado, es decir, el vector de perturbación es multiplicado por un factor F que es un parámetro de la ED, el funcionamiento de la mutación es mostrado en la figura 3.10. En el operador de cruza en la ED realiza una selección por cada vector entre el vector mutado y el vector target para asignarlo al vector trial, esta selección es controlada por el parámetro CR (también llamado probabilidad de cruza). Básicamente la cruza y mutación se resume en el algoritmo 3.

Aunque la ED es sumamente simple de entender e implementar, esto no impacta en el desempeño con respecto a los demás algoritmos bioinspirados, ya que es considerado uno de los más poderosos. Otra ventaja que ofrece la ED es que la calibración de sus parámetros no suelen requerir un ajuste muy fino (FyCR).

32 Capítulo 3.Algoritmos Bioinspirados

Figura 3.9: Selección de vectores.

3.4. Evolución Diferencial 33

Algorithm 3 Funcionamiento de la cruza binomial en la ED for cada vector targeti de la población do

jrand = rand[1,2,3,...,numVariables] Seleccionar aleatoriamentex1,x2,x3

for cada variablej del vector trialdo

if ( rand [0,1) <CR ) o (j =jrand ) then uij =x3j +F(x1j-x2j) else uij =xij end if end for end for

El nombre técnico para el operador de cruza/mutación hasta ahora des- crito es DE/rand/1/bin, debido a que el vector base es seleccionado aleato- riamente (rand),1 vector de diferencia es adherido al vector base, por último siguiendo una distribución binomial de sus parámetros, a esta versión se le denomina la ED clásica. Esta versión de la ED es suficientemente robusta para la mayoría de las aplicaciones, sin embargo, existen otros operadores de cruza.

En la cruza uniforme (binomial), es como tal uniforme en el sentido que cada variable en el vector tiene la misma probabilidad de heredar su valor de algún vector dado, esta probabilidad está dada por el parámetro CR de la ED. Este efecto puede notarse en el algoritmo 3. Por otro lado, la cruza exponencial (exponential) simula de cierta forma la cruza de dos puntos del AG; en este operador, la selección de valores para el vector trial se realiza seleccionando aleatoriamente un número entre 0 y 1 por cada variable, si el valor aleatorio es menor o igual a CR, tomará el valor del vector mutado, cuando algún valor aleatorio sea mayor que CR, el actual y los siguientes valores del vector trial son tomados del vector target, el funcionamiento de la cruza exponencial se puede observar en el algoritmo 4. A esta cruza se le denomina exponencial debido al hecho que el número de herencias del vector mutante es exponencialmente distribuida en variables aleatorias y su nombre técnico esDE/rand/1/exp (Price et al., 2005).

Otra forma de seleccionar al vector base en la ED es seleccionando al vector con mejor calidad en la población de vectores. Para el caso de la cruza binaria se le conoce como DE/best/1/bin y en el caso de la cruza la exponencial es conocida comoDE/best/1/exp.

En trabajos como (Slowik y Bialko, 2008; Garro et al., 2010) se ha utiliza- do la ED para entrenar y configurar una RNA. En el dominio de la robótica, la ED se ha utilizado en trabajos como (Joshi y Sanderson, 1999), donde se utiliza la ED para encontrar una representación mínima de la fusión de mul- tisensores, y en (Moreno et al., 2007), donde la ED es utilizado en problemas

34 Capítulo 3.Algoritmos Bioinspirados

Algorithm 4 Funcionamiento de la cruza exponencial en la ED for cada vector target i de la población do

jrand = rand[1,2,3,...,numVariables] Seleccionar aleatoriamente x1,x2,x3

for cada variablej del vector trialdo

if ( rand [0,1) <CR ) o (j =jrand ) then

Romper ciclo

else

uij =x3j +F(x1j-x2j)

end if end for

for cada variable restantej del vector trialdo uij =xij

end for end for

de mapeo.

3.5.

Optimización mediante cúmulos de partículas

Documento similar