t nx txtx tP ,...,2,1 )( = - Universidad Autónoma de Madrid

Anuncio
ANÁLISIS DE LA EFICIENCIA DE LOS ALGORITMOS DE ESTIMACIÓN DE DISTRIBUCIONES
Pablo Martín Muñoz1, Alejandro Sierra Urrecho
Universidad Autónoma de Madrid
Resumen. En este trabajo se compara el rendimiento
de tres tipos de algoritmos evolutivos en la optimización
de funciones discretas, y se presenta una variante
innovadora de los algoritmos de estimación de
distribuciones (en adelante, AED), consistente en la
introducción del concepto de búsqueda direccional en
el espacio de soluciones del problema a resolver.
Palabras clave: algoritmos evolutivos, algoritmos de
estimación de distribuciones
INTRODUCCIÓN
Algoritmos evolutivos
Un algoritmo evolutivo es un proceso matemático que
encuentra soluciones a problemas basándose en los
principios de la evolución natural de las especies. A
continuación se muestra la estructura básica de un
algoritmo evolutivo.
Procedimiento Algoritmo Evolutivo
Comenzar
tÅ0
Inicializar P(t)
Evaluar P(t)
Mientras (Condición parada = Falso) hacer
Comenzar
t Å t+1
Seleccionar P(t) de P(t-1)
Alterar P(t)
Evaluar P(t)
Fin
Este algoritmo trabaja con una población de n
individuos P(t) para la iteración t :
{
P(t ) = x t , x t ,..., x t
1 2
n
}
La condición de parada suele ser alguna de las
siguientes: se ha encontrado el individuo óptimo, no se
aprecian mejoras significativas entre una población y la
siguiente, se ha completado un número máximo de
iteraciones. La función Alterar P(t) representa al
conjunto de operadores que modifican los individuos,
de una forma general. Una vez alcanzada la condición
de parada, la población de individuos P(t) que resulta
del proceso iterativo será mejor –en términos de la
función Evaluar P(t)- que la población de partida P(0).
Evaluar P(t) mide el grado de adaptación de los
individuos al medio, es habitual denominarla función de
fitness. La mejora de los individuos en las siguientes
iteraciones se obtiene gracias a la función Seleccionar
P(t) de P(t-1).
1
[email protected]
Algoritmos genéticos
Son algoritmos de búsqueda basados en los
mecanismos de selección natural de las especies.
Combinan la supervivencia de los individuos mejor
adaptados con el intercambio de información entre
unas generaciones y las siguientes. Las principales
características diferenciadoras del resto de algoritmos
clásicos de optimización y búsqueda son las siguientes:
no trabajan directamente con los parámetros del
problema, sino con una codificación de los mismos,
emplean poblaciones de individuos, no individuos
aislados, utilizan directamente el valor de la función
objetivo, no sus derivadas u otra información auxiliar,
las reglas de transición son probabilísticas. La
estructura de un algoritmo genético es la siguiente:
Procedimiento Algoritmo Genético
Comenzar
tÅ0
Inicializar P(t)
Evaluar P(t)
Mientras (Condición parada = Falso) hacer
Comenzar
t Å t+1
Seleccionar P(t) de P(t-1)
Cruzar P(t)
Mutar P(t)
Evaluar P(t)
Fin
Los tres operadores básicos presentes en un algoritmo
genético son Seleccionar P(t), Cruzar P(t) y Mutar P(t).
Es muy frecuente encontrar realizaciones de algoritmos
genéticos que cumplen lo siguiente: el proceso de
selección se efectúa por torneos: se toman dos parejas
de dos individuos de P(t), de forma aleatoria. Se
evalúan los individuos de las dos parejas,
seleccionando el mejor de cada pareja. El cruce se
efectúa con los dos individuos ganadores de la fase
anterior. Una posibilidad muy empleada es el cruce en
un punto: se elige de forma aleatoria un punto de las
cadenas para partir a los individuos seleccionados, y se
obtienen dos descendientes mezclando los segmentos
de las cadenas resultantes. La mutación se realiza
cambiando el valor de algún bit de alguno de los
individuos de la población.
Algoritmos de estimación de distribuciones
En los AEDs, las nuevas poblaciones de individuos se
obtienen por muestreo a partir de una distribución de
probabilidad que se va actualizando población a
población, a partir de un conjunto formado por los
mejores individuos de cada población. Una de sus
principales ventajas, es la eliminación de los
operadores de cruce y mutación, que al desaparecer
evitan tener que realizar los ajustes de los parámetros,
tarea que puede constituir un problema de optimización
en si misma. La estructura de un AED es la siguiente:
Procedimiento AED
Comenzar
tÅ0
Inicializar P(t)
Inicializar probabilidades P(t)
Evaluar P(t)
Mientras (Condición parada = Falso) hacer
Comenzar
Generar población P(t)
Evaluar P(t)
Seleccionar P(t)
Actualizar probabilidades P(t)
t Å t+1
Fin
La función Generar población, emplea el vector de
probabilidades para crear, a partir de un muestreo, la
población con la que se trabaja en cada iteración. Una
vez creada la población, se evalúa - función Evaluar
P(t) – y a continuación se seleccionan – Seleccionar
P(t) – los individuos con mejor fitness. Las
probabilidades se actualizan con la función Actualizar
probabilidades P(t)
Inicializar matriz de probabilidades
Mientras (Condición parada = Falso) hacer
Comenzar
Generar población de direcciones
Buscar óptimo en cada dirección
Seleccionar mejores direcciones
Recalcular matriz de probabilidades
t Å t+1
Fin
Los bits cuyo valor es el carácter comodín ‘*’ pueden
tomar indistintamente el valor ‘0’ o ‘1’: la búsqueda del
elemento con mayor fitness en una dirección
determinada se lleva a cabo asignando el valor ‘1’ y ‘0’
a los bits comodín, y seleccionando aquel valor que
ofrece mejor fitness, siguiendo un proceso de descenso
por gradiente. En cada población, los comodines se
inicializan con los valores correspondientes al individuo
con más fitness que se haya obtenido hasta ese
momento. La función ‘Generar población de
direcciones’ emplea la matriz de probabilidades para
crear, por muestreo, un nuevo conjunto de direcciones
en cada iteración. Una vez que se cuenta con la nueva
población de direcciones, se emplea el procedimiento
de descenso por gradiente para encontrar el óptimo en
cada una de las direcciones. En estas condiciones ya
se pueden seleccionar las direcciones en las que los
óptimos encontrados han obtenido los mayores fitness.
ESTUDIO COMPARATIVO
El objetivo del estudio realizado ha sido comparar el
rendimiento de tres algoritmos: un algoritmo genético
con selección por torneos y cruce simple en un punto,
un algoritmo de estimación de distribuciones con
probabilidades independientes para cada variable, y un
algoritmo de estimación de distribuciones direccional.
AED’s DIRECCIONALES
Diseño
Como alternativa a los AEDs, se propone un algoritmo
que muestrea direcciones en el espacio, y luego realiza
una búsqueda determinista del individuo con más
fitness en cada dirección muestreada. De este modo,
se van obteniendo poblaciones de direcciones – en
lugar de poblaciones de individuos - , cada una de ellas
caracterizada con el mejor individuo encontrado en
dicha dirección. Cada uno de los bits de cada individuo
puede tomar tres valores, según el alfabeto {0,1,*}. La
inicialización de la matriz de probabilidades se realiza
otorgando la misma probabilidad a cada valor del
alfabeto – el 33% - actualizando en cada iteración estos
valores según la evolución de los resultados, mediante
la función ‘Recalcular matriz de probabilidades’.
Se han realizado un total de 960 simulaciones con los
tres algoritmos de prueba: algoritmo genético sencillo,
algoritmo de estimación de distribuciones y algoritmo
de estimación de distribuciones direccional. Se han
empleado cuatro funciones objetivo a maximizar:
OneMax, dos funciones tipo Royal Road y una función
Unit Commitment.
La estructura de un algoritmo AED direccional se
muestra a continuación
Procedimiento AED direccional
Comenzar
tÅ0
Este experimento se ha repetido para cuatro longitudes
de individuos diferentes: 8, 16, 32 y 64 bits. Los
resultados corresponden a la media de 20 repeticiones
en cada uno de los casos anteriores, resultando un total
de 3 x 4 x 4 x 20 = 960 simulaciones.
Funciones evaluadas
A continuación se describen las cuatro funciones
empleadas en las simulaciones.
Función OneMax
Función Unit Commitment
Esta función toma un individuo x (cadena n de bits de
una longitud determinada), y devuelve un número igual
a la suma de los valores de todos sus bits. El individuo
que maximiza esta función es aquel en el que todos sus
bits valen uno, coincidiendo en ese caso el valor de
OneMax con la longitud del individuo.
Dado un conjunto de generadores {G1 G2 … GN}, con
potencias eléctricas {P1 P2 … PN} y costes de
generación {C1 C2 … CN}, se trata de encontrar la
combinación óptima de generadores que satisfacen una
demanda determinada D, minimizando los costes de
generación:
n
OneMax( x) = ∑ xi
i =1
xi puede valer 1 o 0.
Funciones Royal Road
Se trata de un conjunto de funciones diseñadas por
Stephanie Forrest, John Holland y Melanie Mitchel, con
la finalidad de comprobar el tratamiento de los buildings
blocks, en las poblaciones sucesivas que van
generando los algoritmos evolutivos. En estas
funciones sólo se obtienen incrementos de fitness
cuando el individuo va completando bloques de unos
que están en situaciones predeterminadas, definidas en
un conjunto de esquemas inicial. Se describe el
funcionamiento de estas funciones empleando un
ejemplo para individuos de 16 bits. Dado el conjunto
inicial de 8 esquemas
R = {1 1 * * * * * * * * * * * * * *
**11************
****11**********
******11********
********11******
**********11****
************11**
* * * * * * * * * * * * * * 1 1}
y el vector de pesos c = {2 2 2 2 2 2 2 2}. El valor de la
función Royal Road para un individuo x es:
8
RoyalRoad ( x) = ∑ ci ⋅ δ i ( x) ,
i =1
donde δi(x) vale 1 si el individuo x es una realización del
esquema que ocupa la posición i en el conjunto R, y 0
en caso contrario. Si se considera el individuo:
x = 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 1,
al aplicar la expresión anterior se obtiene:
RoyalRoad(x) = 2 · 1 + 2 · 1 = 4,
puesto que x es realización de dos esquemas, los que
ocupan la posición 1 y 8 en R. Modificando el conjunto
de esquemas R y el vector de pesos c, se pueden
obtener diferentes funciones Royal Road.
N
CostesGeneración = ∑ C i
i =1
En este problema, los individuos se modelan de
manera que cada uno de los bits representa el estado –
conectado o desconectado- de cada uno de los
generadores del Sistema Eléctrico de Potencia
considerado. El individuo óptimo que se busca es el
que satisface la demanda D con un coste mínimo.
Resultados
Convergencia de los algoritmos
En las simulaciones que se han realizado, el porcentaje
de casos en los que los algoritmos han convergido son
los siguientes: 99,58 % para el algoritmo genético,
99,68% para el AED sencillo, y 100% para el AED
direccional. Estos porcentajes están calculados
dividiendo el número de simulaciones en las que se ha
alcanzado el óptimo antes de llegar al límite máximo de
poblaciones entre el número total de simulaciones
realizado. Hay que destacar que la única función en la
que no ha existido convergencia ha sido la Royal Road
R1, para individuos de 64 bits.
Número de evaluaciones de la función de fitness
Se ha elegido el número de evaluaciones de la función
de fitness como medida adecuada del esfuerzo que
tiene que realizar cada algoritmo para alcanzar el
óptimo, ya que es independiente de la velocidad de
proceso de la computadora donde se efectúan las
pruebas. Se han calculado los números medios de
evaluaciones de la función de fitness que se han
necesitado para alcanzar el óptimo, así como la
desviación típica. Las figuras siguientes se han
confeccionado descartando las 7 simulaciones en las
que no se ha obtenido convergencia, 4 corresponden al
algoritmo genético, y tres al AED sencillo.
Evaluación de Royal Road R1
25000
60000
20000
50000
Nº medio de evaluaciones
Nº medio de evaluaciones
Evaluación de OneMax
15000
10000
5000
40000
30000
20000
10000
0
8 bits
AED sencillo
0
AED direccional
Algoritmo genético
16 bits
32 bits
8 bits
64 bits
Figura 1: Optimización de la función OneMax
Se observa claramente que los resultados de los
algoritmos de estimación de distribuciones son
superiores a los del algoritmo genético. Existe –para
esta función- una pequeña diferencia a favor del
algoritmo AED sencillo, que no ha podido ser
contrastada estadísticamente por falta de normalidad
en las muestras tomadas (rechazo de la hipótesis de
normalidad de la distribución en el test de KolmogorovSmirnof para α = 0,05). Obviando esta hipótesis,
necesaria para contrastar la hipótesis de igualdad de
medias, se ha realizado una prueba t-student para dos
muestras con varianzas desiguales, rechazándose la
hipótesis para las cuatro longitudes de individuo.
Hay que destacar que en este caso, para la longitud de
individuo de 64 bits el único algoritmo que ha
encontrado el óptimo en todos los casos antes de
agotar el número máximo de generaciones ha sido el
AED direccional. Considerando únicamente las
simulaciones en las que ha habido convergencia, para
individuos de 64 bits el algoritmo más eficiente en la
evaluación de esta función ha sido el genético. Para
tamaños de individuo de 16 y 32 bits el número medio
de evaluaciones de la función Royal Road R1 ha sido
menor en el caso del AED direccional que en AED
sencillo, aunque la diferencia no es significativa con α =
0,05. Con individuos de 32 bits, no existen diferencias
significativas entre los tres algoritmos. En este caso,
para individuos de 64 bits, el número de evaluaciones
necesarias para optimizar la función es claramente
menor en el caso del AED direccional.
AED sencillo
16 bits
32 bits
AED direccional
64 bits
Figura 2: Optimización de la función Royal Road 1
Evaluación de Royal Road R2
60000
50000
Nº medio de evaluaciones
Algoritmo
genético
40000
30000
20000
10000
0
Algoritmo
genético
8 bits
AED sencillo
16 bits
32 bits
AED direccional
64 bits
Figura 3: Optimización de la función Royal Road 2
En el caso de la función Royal Road 2, el algoritmo
más eficiente para encontrar el óptimo con longitudes
de 64 bits ha sido el genético, pero la diferencia no es
significativa con respecto al AED sencillo. El AED
direccional ha sido menos eficiente.
60000
En la figura 5 se muestra un ejemplo de evolución del
fitness medio de cada población en el proceso de
optimización de la función Royal Road 1 en 64 bits,
para los tres algoritmos considerados.
50000
CONCLUSIONES
Nº medio de evaluaciones
Evaluación de Unit Commitment
Se ha realizado un análisis de un nuevo tipo de
algoritmo de estimación de distribuciones direccional
para variables binarias, y se ha comparado su
rendimiento con el de dos algoritmos evolutivos
consolidados: un algoritmo genético con selección por
torneos y cruce simple en un punto y un algoritmo de
estimación de distribuciones con modelo de
probabilidad univariable (UMDA).
40000
30000
20000
10000
0
Algoritmo genético
8 bits
AED sencillo
16 bits
32 bits
AED direccional
64 bits
Figura 4: Optimización de la función Unit Commitment
Excepto en el caso de individuos de 8 bits, en el que el
AED direccional ha sido el más eficiente, el AED
sencillo ha necesitado realizar el menor número de
evaluaciones de la función de fitness. Esta diferencia es
significativa con respecto a los resultados del AED
direccional únicamente en el caso de individuos de
longitud 64.
Número de poblaciones evaluadas
El algoritmo que resulta más eficiente considerando el
número de poblaciones evaluadas es el AED
direccional.
Evolución del fitness medio de las poblaciones
64,00
56,00
Fitness medio
48,00
40,00
32,00
24,00
16,00
8,00
0,00
0
10
20
30
40
50
60
70
80
90 100 110 120 130 140 150 160
Población Nº
Genético
AED sencillo
AED direccional
Figura 5: Evolución del fitness medio, en la
optimización de la función Royal Road R1
El algoritmo direccional es el único que ha encontrado
el óptimo en todas las simulaciones que se han
realizado, sin agotar el número máximo de
simulaciones. El algoritmo direccional ha sido el que
menor número de poblaciones ha necesitado para
alcanzar el óptimo, con las cuatro funciones evaluadas.
El AED sencillo es el que menor número de
evaluaciones de la función de fitness requiere para
encontrar el óptimo, aunque en la mayor parte de los
casos, las diferencias existentes con el AED direccional
no son significativas.
Como líneas de trabajo futuras se propone la aplicación
de este tipo de algoritmos a la resolución de problemas
de Sistemas Eléctricos de Potencia, y la repetición del
estudio comparativo con un conjunto de funciones
mayor, y con más dificultad de optimización
REFERENCIAS
[1] M. Mitchell, ‘An introduction to genetic algortihms’,
Bradford Book, MIT Press, 1998.
[2] Z. Michalewicz, D. B. Fogel, ‘How to solve it: modern
heuristics’, Springer 2004.
[3] David Edward Goldberg, ‘Genetic algorithms in
search, optimization and machine learning’, AddisonWesley, 2005.
[4] Pedro Larrañaga, ‘Estimation of distribution
algorithms. A new tool for Evolutionary Computation’,
Kluwer Academic Publisher, 2002.
[5] A. Sierra and I. Santibáñez, ‘Evolution of descent
directions’, Proceedings of the 7th EU Meeting on
Adaptive, Self-Adaptive, and Multi-Level Metaheuristics,
Málaga 2006.
Descargar