3. Desarrollo
3.1.2. Simulación de nuevas poblaciones
Como ya se ha comentado, la simulación de nuevas poblaciones se ha separado del algoritmo principal para de este modo facilitar el desarrollo de futuros métodos de simulación de poblaciones. De tal modo, cada vez que se quisiese añadir un nuevo método bastaría con que éste le devolviese al algoritmo principal la nueva población evolucionada. A continuación se explica el método de simulación que se ha diseñado e implementado para este trabajo final de carrera y al que se le ha denominadoMétodo del Desplazamiento Gaussiano.
3.1.2.1. Método del desplazamiento Gaussiano
Este método recibe dicho nombre dado que para calcular los valores que toman los genes de los nuevos individuos que van a formar parte de la nueva población, se
3.1. DISEÑO DEL ALGORITMO CAPÍTULO 3. DESARROLLO
Figura 3.1.: Diagrama de flujo del algoritmo
aplica un desplazamiento ∆ sobre la media µ de una distribución normal (también denominada distribución Gaussiana). Para determinar si el desplazamiento ∆ ha de ser positivo o negativo y, de este modo, saber si hay que desplazar la media hacia uno u otro lado, se emplea el modelo de regresión calculado previamente sobre la población que se desea hacer evolucionar.
Un poco más adelante se van a mostrar una serie de cuadros, tanto para maximi- zación como minimización, indicando cómo determinar el desplazamiento ∆ pero previamente se van a explicar aquellos factores que son tenidos en cuenta de un mo- delo de regresión. Si se trata de un caso donde no se dan interacciones entre variables, la expresión del modelo de regresión sería análogo al de una regresión lineal múltiple:
Y =β0+β1·x1 +β2·x2+...+βn·xn+
3.1. DISEÑO DEL ALGORITMO CAPÍTULO 3. DESARROLLO expresión del modelo de regresión sería de la forma:
Y =β0+ X βi·xi+ X βij ·xi·xj +...+ X βi·...·z·xi·...·xz+
El grado de interacción entre variables determinará el número de coeficientes que deberán ser calculados mediante la regresión regularizada con penalización L1, la cual se aplica únicamente sobre las interacciones del grado que se haya seleccionado. El algoritmo ha sido diseñado e implementado de modo que sea capaz de procesar interacciones hasta de grado k.
Dicho lo cual, para determinar el desplazamiento ∆ al que se deberá someter la media µde la distribución gaussiana se deben tener en cuenta los siguientes factores:
Tipo de optimización: si se trata de un problema de maximización o mini-
mización.
Signo del coeficiente β: los coeficientes los proporciona el modelo de regre-
sión, pudiendo determinar el signo de éstos.
Signo global de la interacción: dado que las interacciones pueden ser del
tipo xi ·xj ·...·xz y cada una de las variables puede tener signo diferente es necesario determinar el signo global de la interacción entre éstas.
Signo de la variable seleccionada para evolucionar:dado el tipo de opti-
mización, el signo del coeficiente, el signo global de la interacción entre variables y el propio signo de la variable seleccionada para ser evolucionada es posible determinar si sobre la media µ se debe aplicar un desplazamiento positivo o negativo.
El nuevo valor que tomará el gen seleccionado de un determinado individuo se obten- drá de aplicar N(µ+ ∆,σ), donde µ se obtiene haciendo la media de los mejores N individuos seleccionados de la población, siendo σ la desviación típica asociada. Así pues, el incremento ∆ al que se somete µ en un problema de maximización se muestra en la siguiente tabla:
3.1. DISEÑO DEL ALGORITMO CAPÍTULO 3. DESARROLLO Maximización
Signo β Signo Global Requiere Desplazamiento ∆
+ + x¯ci·...·x¯cz lo mayor posible ∆ = ( + ¯xc≥0 − x¯c<0 + - x¯ci·...·x¯cz lo menor posible ∆ = ( + ¯xc≤0 − x¯c>0 - + x¯ci·...·x¯cz lo menor posible ∆ = ( + ¯xc≤0 − x¯c>0 - - x¯ci·...·x¯cz lo mayor posible ∆ = ( + ¯xc≥0 − x¯c<0 Cuadro 3.1.: Incremento ∆ para un problema de maximización Y en el caso de que el problema sea de minimización:
Minimización
Signo β Signo Global Requiere Desplazamiento ∆
+ + x¯ci·...·x¯cz lo menor posible ∆ = ( + ¯xc≤0 − x¯c>0 + - x¯ci·...·x¯cz lo mayor posible ∆ = ( + ¯xc≥0 − x¯c<0 - + x¯ci·...·x¯cz lo mayor posible ∆ = ( + ¯xc≥0 − x¯c<0 - - xci¯ ·...·xcz¯ lo menor posible ∆ =
(
+ ¯xc≤0 − x¯c>0 Cuadro 3.2.: Incremento ∆ para un problema de minimización
Donde ¯xci es la media de los genes i-ésimo de los N mejores individuos seleccionados. Si se trata de un problema de maximización se debe conseguir que el valor deY sea lo mayor posible. Por el contrario, si se trata de un problema de minimización lo que interesa es que el valor deY sea lo menor posible.
A modo de ejemplo, supongamos individuos cuyos genomas tienen una longitud de 2 genes (2 variables x1, x2) y que las relaciones que pueden darse entre los genes son de grado 2. De tal modo, las interacciones posibles 2 a 2 entre variables serían: x1·x1, x1·x2, x2·x2.
El modelo de regresión obtenido para este caso tendría la siguiente expresión: Y =β0+β1·x1+β2·x2+β11·x1·x1+β12·x1·x2+β22·x2·x2
3.1. DISEÑO DEL ALGORITMO CAPÍTULO 3. DESARROLLO Supongamos que tras aplicar la regresión regularizada con penalización L1 sobre el conjunto de los N mejores individuos seleccionados los coeficientes y, por tanto el modelo de regresión resultante, toman los siguientes valores:
Y =−2·x1+ 3·x2 + 2·x1·x2
Se han eliminado términos de la expresión dado que tras aplicar la L1, ésta ha llevado a 0 los coeficientesβ0, β11 y β22, lo cual nos está indicando que dichas relaciones no influyen sobre el valor de fitness que toma la función. Por ello una vez descartados dichos coeficientes nos quedarían aquellos coeficientes de las variables o relaciones entre variables que sí están influyendo en el valor defitness de la función que se desea optimizar.
El siguiente paso sería, a partir del modelo de regresión, determinar el incremento ∆ que se debe aplicar sobre la mediaµ de la distribución normal con la que simular los nuevos valores que van a tomar las variables de cada individuo. Partiendo del modelo de regresión del ejemplo y, suponiendo que vamos a evolucionar los genes de la relaciónx1·x2, que las medias de las variables x1 y x2 de los N mejores individuos seleccionados toman respectivamente los valores ¯X1 = 5 y ¯x2 =−2 y que el problema
que queremos resolver es un problema de minimización habría de aplicarse la siguiente regla extraída de la tabla de minimización para encontrar un ∆ con el que evolucionar los genes x1:
Signoβ12 Signo Globalβ12·x1·x2(+,+,-) Requiere ∆ + - x¯1·x¯2 lo mayor posible + (¯x1≥0) Por lo tanto, habría que aplicar un desplazamiento ∆ positivo. El valor de ∆ se obtiene ponderando el valorβ del término actual con la suma de todos losβi, esto es:
∆ = Pnβ i=1|βi| ∆ tomaría para los genes x1 el valor:
∆ = 27 = 0,285
De modo que los genesx1 tomarán valores según N(5 + 0,285,σ).
De la misma manera, para obtener el desplazamiento ∆ para los genesx2 se aplicaría la regla:
Signo β12 Signo Global β12·x1·x2(+,+,-) Requiere ∆ + - x¯1·x¯2 lo mayor posible - (¯x2 <0)
3.2. IMPLEMENTACIÓN DEL ALGORITMO CAPÍTULO 3. DESARROLLO