• No results found

3.5 Discussion

4.1.5 Problem summary

En la ED a los individuos dentro de una poblaci´on se les conoce mayormente como vectores, los pasos con los que trabaja este algoritmo son inicializaci´on, mutaci´on, recombinaci´on o cruza y selecci´on.

Parainicializar la poblaci´on primero se deben establecer los limites superior e infe- rior para cada par´ametro. Una vez especificados estos limites el dominio de las variables del problema estar´a restringido entre valores m´ınimos y m´aximos. Los valores son rep- resentados con las variable “b”, el sub´ındice “U” representa el valor m´ınimo que puede tomar el par´ametro y el sub´ındice “L” el mayor valor que puede tomar. Por ejemplo, el valor inicial (g=0) delj-esimo par´ametro del i-esimo vector ser´ıa:

X

j ,i

,

0

=

rand

j

(0,1)(b

j ,U

b

j

,

L

) +b

L

Donde “randj(0,1)” devuelve un n´umero aleatorio distribuido de manera uniforme

dentro del rango [0,1), es decir 0≤randj(0,1)<1. El sub´ındice, j, indica que un nuevo

valor aleatorio se genera para cada par´ametro, y el sub´ındice i representa el ´ındice de la poblaci´on, esto generar´a una poblaci´on de NP individuos [Storn and Price, 1997].

La ED genera nuevos vectores de par´ametros mediante la adici´on de la diferencia entre dos vectores de la poblaci´on a un tercer vector. A este paso se le conoce como mutaci´on. El algoritmo general para la ED se puede observar en el algoritmo 3

Una vez inicializada la poblaci´on, la ED aplica la mutaci´on. Primero se debe hacer un proceso de selecci´on, el cual es determinista, es decir cada vector “target” (padre) generar´a un vector “trial” (hijo), y la selecci´on de sobrevivientes tambi´en ser´a determin- ista puesto que sobrevive el individuo con mejor aptitud entre el “target” y el “trial”’. De esta manera por cada vector “target”’ ( xi,G,i= 1,2,3...N P ) se elegir´an aleato-

riamente otros 3 vectores (ver figura 3.7) para generar un vector mutuante, es decir es una diferencia aritm´etica entre un par de vectores (xr2, xr3), a esta diferencia se le

conoce como vector de perturbaci´on. Una vez obtenido el vector de perturbaci´on, un tercer vector es seleccionado (xr1) tambi´en aleatoriamente y se le suma el vector de

40 CAPITULO 3. ALGORITMOS BIOINSPIRADOS

Algoritmo 2 Pseudo-c´odigo de Evoluci´on Diferencial Iniciar la poblaci´on de vectores aleatoriamente para Cada vector “target” de la poblaci´on hacer

Calcular aptitud fin para

repetir

para Cada vector “target” de la poblaci´onhacer Seleccionar 3 vectores aleatorios

Generar un “trial” Calular aptitud

siVector “trial” es mejor que vector “target”’entonces Reemplazar el “target” por el “trial”

si no

Mantener “target” fin si

fin para

3.3. EVOLUCI ´ON DIFERENCIAL 41

Figura 3.7: Figura que muestra la elecci´on de 3 vectores aleatoriamente

un factor “F” que es un par´ametro de la ED generalmente configurado por el usuario, esto expresado en una formula ser´ıa:

v

i

,

G+1

=

x

r1

,

G

+F

(x

r2

,

G

x

r3

,

G

)

El factor escalar F 0,1+, es un par´ametro de control positivo para escalar la diferencia entre vectores, despu´es de estas operaciones se obtiene un vector mutante (vi) como lo ilustra la figura 3.8.

Tras la fase de mutaci´on, el operador de cruza se aplica para cada vector objetivo (“target”) xi,G y su correspondiente vector mutado vi,G, generando un nuevo vector,

denominado vector de prueba o vector “trial” uiG. El individuo “trial” es construido

mezclando los par´ametros de xi,G y vi,G, el operador de cruza en la ED se controla

con el par´ametro CR, de esta manera inicializa su resultado con los valores del vector objetivo, y comprueba si cada componente, j, se modifica con los valores del vector mutado generando un n´umero aleatorio, rnd(), en el intervalo [0, 1], si ´este es menor o igual que el par´ametro de cruza CR, se reemplaza dicho componente, de acuerdo a la siguiente expresi´on, la cruza ser´ıa de la siguiente manera:

Ui,Gj =    vi,Gj SI rnd()≤CR vi,Gj SI rnd()> CR

42 CAPITULO 3. ALGORITMOS BIOINSPIRADOS

Figura 3.8: Obtenci´on del vector mutante: la diferencia escalada de los vectores x2 y x3 se a˜nade al vector base x1, para producir un vector mutante v

La figura 3.9 muestra los posibles vectores “trial” que pueden resultar de la cruza de un vector mutanteviGcon el vector xiG.

Por ´ultimo, seselecciona que individuo pasa a las siguiente generaci´onG+ 1. Si es vector “trial” obtiene una soluci´on igual o mejor que el vector “target”, ´este remplaza a su correspondiente vector objetivo en la siguiente generaci´on, sino el vector “target” es el que pasa a la siguiente generaci´on. El algoritmo para la cruza y mutaci´on puede apreciar en el algoritmo 3

xi,G+1 =

  

ui,G SI f(ui,G) f(xi,G)

xi,G En otro caso

Una vez que la nueva generaci´on a sustituido a la anterior los procesos demutaci´on, cruza y selecci´on se repiten hasta que se encuentra alg´un ´optimo o hasta que se alcance alguna condici´on especificada de paro, como por ejemplo Gmax

El nombre t´ecnico para el operador para el tipo de ED que se ha descrito hasta ahora es DE/ rand/ 1/ bin, debido a que el vector base es seleccionado aleatoriamente(rand), 1 vector de diferencia es adherido al vector base, por ´ultimo siguiendo una distribuci´on binomial de sus par´ametros.

3.3. EVOLUCI ´ON DIFERENCIAL 43

Figura 3.9: Posibles vectores “trial” adicionales cuandoviG y xiG se cruzan de manera

uniforme

Algoritmo 3 Funcionamiento de la cruza en la ED Iniciar la poblaci´on de vectores aleatoriamente para Cada vector “target” de la poblaci´on hacer

Calcular aptitud fin para

para Cada vector “target” i de la poblaci´onhacer jrand = rand[1,2,3... numVariables]

Sleccionar aleatoriamentex1, x2, x3

para cada variable j del vector trial hacer si (rand[0,1)< CR) o (j = jrand) entonces

uij =x1,j +F(x2,j −x3,j) si no uij =xij fin si fin para fin para

44 CAPITULO 3. ALGORITMOS BIOINSPIRADOS