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
LDonde “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