algoritmos evolutivos en la solución de problemas de estimación de

advertisement
III Congreso Internacional sobre Métodos Numéricos en Ingeniería y Ciencias Aplicadas
S. Gallegos, I. Herrera, S. Botello, F. Zárate, y G. Ayala (Editores)
© ITESM, Monterrey 2004 CIMNE, Barcelona 2004
ALGORITMOS EVOLUTIVOS EN LA SOLUCIÓN DE
PROBLEMAS DE ESTIMACIÓN DE PARÁMETROS
Janoi Villegas Placeres y Janos E.
Acevedo Cárdenas
Departamento de Informática, Facultad de Informática,
Universidad de Matanzas, Carretera a Varadero Km 3,
Matanzas, Cuba, e-mail: janoi.villegas@umcc.cu,
janos_acevedo@yahoo.es,
web page: http://www.umcc.cu
Juan M. Otero Pereira
Departamento de Matemática Aplicada, Facultad de Matemática y
Computación, Universidad de La Habana, San Lázaro y L.
Vedado, 10400 C. Habana, Cuba, e-mail: otero@matcom.uh.cu.
web page: http://www.uh.cu
Resumen. El problema de determinar numéricamente los parámetros (p) de un modelo matemático
f(x,p) de modo que éste ajuste de manera óptima, un conjunto de datos experimentales oi i=1,...,k es
conocido como problema de estimación de parámetros. Uno de los criterios utilizados más
frecuentemente para realizar el ajuste es el de minimizar la suma del cuadrado de los errores (ei=f(xi,p)-oi).
Diferentes métodos han sido propuestos para resolver problemas de este tipo. Al utilizar información de
las derivadas de primer orden de la función a minimizar, la mayoría de dichos métodos corren el riesgo
de quedar atrapados en mínimos locales. Además, éstos no pueden ser aplicados en problemas discretos
o donde el modelo no sea diferenciable. El objetivo de este trabajo es evaluar el comportamiento de los
algoritmos evolutivos como alternativa de solución cuando los métodos clásicos no sean aplicables. Se
muestran los resultados experimentales obtenidos con el sistema computacional implementado.
Palabras clave: algoritmos evolutivos, estimación de parámetros, mínimos cuadrados, sistema
computacional.
1 INTRODUCCIÓN
El problema de estimación de los parámetros óptimos en procesos de modelación matemática de un
conjunto de datos experimentales, está presente en el desarrollo contemporáneo de ramas de la
matemática, la física, la bioquímica y otras ciencias; así como en diversos campos de aplicación de las
mismas11.
El problema de estimación de parámetros es usualmente abordado como un problema de
optimización mínimo cuadrado sin restricciones y para su solución existen diversas técnicas clásicas
deterministas. Los métodos más conocidos de este tipo son los llamados Quasi – Newtons y en
particular el método de Levenberg – Marquardt el cual explota la estructura particular del problema.
Todos estos enfoques clásicos para la resolución del problema mínimo cuadrático mantienen el
problema de la convergencia al óptimo global puesto que ellos garantizan solamente la convergencia a
uno local. Esto se debe a que la información del gradiente y por consecuencia el valor óptimo depende
fuertemente de una aproximación inicial. Además, los métodos deterministas no pueden ser aplicados a
modelos no diferenciables o discontinuos, por ejemplo: módulos, tangentes o modelos del tipo min max.
J. VILLEGAS et al. / AE para Estimación de parámetros
En las siguientes secciones se describe de qué forma hemos utilizado algoritmos evolutivos para
la resolución de problemas de estimación de parámetros. También discutimos el buen desempeño
presentado por este método de búsqueda heurística en la solución de este tipo de problemas, ya que
pueden usarse como solución alternativa en casos en que los algoritmos clásicos no son efectivos.
Para llevar a cabo la experimentación se diseñó e implementó un sistema computacional que
permite resolver problemas de estimación de parámetros utilizando técnicas evolutivas y métodos
deterministas de optimización. Se instrumentó además un generador de problemas que produce
datos experimentales exactos y perturbados, el cual constituye una herramienta útil para la
experimentación en general. Para ello se siguió el Paradigma de Programación Orientada a Objetos.
La organización de este artículo es como sigue. En la Sección 2 (Teoría Numérica) se formula el
problema de estimación de parámetros de forma general y se mencionan ejemplos concretos que van
a ser tratados en el artículo. La Sección 3 (Algoritmo Evolutivo. Aplicación) contiene una
caracterización del algoritmo evolutivo utilizado. En la Sección 4 (Sistema de Optimización) se
presenta el sistema computacional propuesto, módulos implementados, modo de uso. La Sección 5
(Resultados Numéricos) ofrece los resultados experimentales obtenidos de manera general y para los
ejemplos concretos mostrados en la Sección 2. La Sección 6 contiene los comentarios finales de este
artículo. Finalmente se muestra la bibliografía consultada.
2 TEORÍA NUMÉRICA
El problema de estimación de parámetros consiste en determinar numéricamente los parámetros
de un modelo matemático dado, con el que se pretende ajustar de manera óptima un conjunto de
datos experimentales. Puede formularse de la siguiente manera:
Se tiene un conjunto de datos que se quieren representar de forma compacta a través de algún
modelo matemático.
Se parte de un conjunto de observaciones:
x11 x 21 L x n1 o1
x12 x 22 L x n 2 o 2
M
M
M
M
M
x1m x 2 m L x nm o m
f : Rn ® R ,
y se propone un modelo de ajuste: f ( x1 , x2 , ..., x n , p1 , p 2 , ..., pk )
donde p1 , p 2 , ... , p k representan los parámetros a estimar.
La solución de este tipo de problemas puede ser formulada como minimizar la discrepancia entre
los valores numéricos obtenidos en la experimentación y la evaluación del modelo de ajuste en el
conjunto de observaciones dado. Nuestro problema de estimación se convierte entonces en el
problema de mínimos cuadrados descrito a continuación:
m
2
min g = å e i g : R k ® R
(1)
i =1
donde m es el número de observaciones, k la cantidad de parámetros a estimar y ei el error asociado a
la observación i, en general no lineal.
ei = f (x1i , x 2i , ... , x ni , p1 , p 2 , ... , p k ) - o i
(2)
Si el modelo está bien planteado, se puede esperar valores pequeños de los ei y por consiguiente
un buen ajuste de los datos. A partir de este momento abordaremos la solución numérica del
problema de estimación de parámetros como el problema de optimización sin restricciones descrito
en (1).
J. VILLEGAS et al. / AE para Estimación de parámetros
1 m
å f i ( x) 2 puede ser minimizada por un método general de
2 i =1
minimización sin restricciones de tipo determinista, aunque en la mayoría de las ocasiones sus
propiedades hacen que se usen, dentro de este grupo, los diseñados específicamente para el
problema mínimo cuadrado. En particular, el gradiente y la matriz hessiana de la función F tienen
una estructura peculiar:
La función objetivo F =
m
ÑF ( x ) = å f i ( x ) Ñf i ( x ) = J T ( x ) f ( x )
i =1
Ñ 2 F ( x) = J T ( x) J ( x) + Q( x)
(3)
m
Q ( x) = å f i ( x ) Ñ 2 f i ( x )
i =1
donde J (x) es la matriz jacobiana de F (x ) .
Los métodos de minimización mínimo cuadrática están basados típicamente en la premisa de que,
si el modelo está bien planteado, cerca del óptimo el término Q(x) se hace despreciable y J T ( x) J ( x)
se considera una aproximación del hessiano.
Los métodos clásicos para la resolución de este tipo de problema tienen mucho en común. La
similitud se debe a que son algoritmos descendentes basados en el método de Newton. Estos
comienzan a iterar por un punto inicial dado ( x0 ) , en cada iteración eligen una dirección de
movimiento (d k ) , un tamaño de paso a dar en esta dirección (a k ) y “avanzan” hacia el punto
correspondiente. Este proceso termina al encontrar un punto de mínimo local o cuando se cumpla
algún otro criterio de parada especificado. Entre estas técnicas deterministas se encuentran el
método Levenberg – Marquardt y los métodos conocidos como Quasi – Newtons8.
Todos estos enfoques clásicos para la resolución del problema mínimo cuadrático mantienen el
problema de la convergencia al óptimo global ya que garantizan solamente la convergencia al mínimo
local por basarse en la información del gradiente. Además, no pueden ser usados en modelos
discretos o no diferenciables y el valor óptimo depende fuertemente de una aproximación inicial.
Cuando el modelo matemático contiene módulos, tangentes o son modelos del tipo min – max,
por ejemplo, no pueden ser utilizadas las técnicas descritas anteriormente. En este artículo serán
analizados los ejemplos:
1. n + p( x2 - x12 ) + ( q - x1 )2
2.
p( x2 - x1 ) 2 + (1 - x1 ) 2 + q( x4 - x3 ) 2 + (1 - x3 ) 2 + r ( x2 + x4 - 2) 2 + r ( x2 - x4 ) 2
q
3. ( | px1 | )
4. tan( px1 )
2
2
5. | px1 + qx 2 - r |
3 ALGORITMO EVOLUTIVO. APLICACIÓN
Los algoritmos evolutivos se encuentran entre los métodos más conocidos de búsqueda
heurística. Este tipo de métodos tiene como característica más importante su robustez, es decir, el
hecho de que un mismo método pueda ser empleado para resolver una gran variedad de problemas.
Es por ello, que nos ofrecen una alternativa para la optimización. Los algoritmos evolutivos se
desarrollaron a partir de los algoritmos genéticos que fueron propuestos inicialmente por Holland en
1975, su aplicación ha tenido buenos resultados en una gama amplia de aplicaciones.
J. VILLEGAS et al. / AE para Estimación de parámetros
Los algoritmos evolutivos están basados en la teoría de la evolución natural descrita por Darwin,
identificando los conceptos de adaptación y optimización de donde se puede deducir un método de
maximización de funciones. Estos algoritmos operan sobre una población de individuos, cada uno
de los cuales es solución factible del problema y candidato a solución óptima. Los individuos
“luchan” por sobrevivir, se cruzan entre sí y mutan al igual que en la teoría biológica, obteniendo en
cada generación nuevos individuos supuestamente mejor adaptados que irán evolucionando hacia la
solución óptima. El esquema general de un algoritmo evolutivo es como sigue:
Algoritmo
Llenar la población (P)
Repetir
Selección de población intermedia P1
Cruzamientos en P1
Mutaciones en P1
P = P1
Hasta cumplir algún criterio de parada
Tabla 1 – Esquema general de un Algoritmo Evolutivo
3.1
Aplicación al problema de estimación de parámetros
Los aspectos necesarios a tener en cuenta, para la aplicación de los algoritmos evolutivos a un
problema particular son los siguientes:
· Representación cromosómica.
· Creación de una población inicial.
· Función para el cálculo del grado de adaptación de cada individuo (fitness).
· Criterio de selección
· Tipo de cruzamiento y probabilidad
· Tipo de mutación y probabilidad
· Criterio(s) de parada
La representación cromosómica de una solución factible estará dada por un arreglo
unidimensional con k elementos, donde k es el número de parámetros a estimar. Sea el vector
solución ( p1 , p2 , ... , p k ) , entonces el valor del gen que se encuentra en la posición i del cromosoma
que representa a este vector, corresponderá al valor del parámetro Pi de dicha solución. La población
inicial se construirá de forma uniformemente aleatoria y los valores de los genes podrán estar
acotados por valores que elija el usuario. El tamaño de población también será especificado,
llamémosle a éste n.
Nuestra función objetivo (1), será la encargada del cálculo del fitness de cada cromosoma cuyo
valor corresponderá a la evaluación del vector solución que éste representa. Es importante subrayar
que se pretende minimizar g, por lo que el cromosoma estará mejor adaptado mientras menor valor
de fitness posea.
Al comienzo de cada iteración se procede a la selección de los cromosomas que formarán la
población base de la nueva generación. Esta población intermedia tiene igual tamaño que la original,
pero en ella existirán cromosomas repetidos a causa de haber sido seleccionados más de una vez. Es
de suponer que un buen criterio de selección garantice un mayor número de copias de los mejores
cromosomas y que los peores tengan poca probabilidad de ser escogidos. Los criterios de selección
instrumentados en el sistema son: Ruleta y Torneo16.
Después de conformarse la población intermedia, se procede a los cruces entre sus individuos. La
cantidad de cruces está dada por la probabilidad de cruzamiento. Sean Pc la probabilidad de
cruzamiento y n el tamaño poblacional, la cantidad de cromosomas que se cruzan es nP c . Las
J. VILLEGAS et al. / AE para Estimación de parámetros
parejas para el cruce se seleccionan de forma aleatoria. Los tipos de cruzamiento implementados son:
Por un punto, Aritmético, Plano, Promedio y BLX- a .
Al concluir el proceso de cruzamiento se aplica el operador de mutación. Sea Pm la probabilidad
de mutación, se eligen aleatoriamente nPm individuos para mutar. Se utiliza mutación aleatoria.
El algoritmo lleva a cabo una estrategia elitista y como condiciones de parada se utilizan la
cantidad de generaciones a llevar a término y el valor de la función objetivo a alcanzar.
Un problema que se puede presentar en la aplicación de los algoritmos evolutivos es el fenómeno
de convergencia prematura. Este consiste en que los individuos tienden a parecerse mucho a una
solución que es buena, pero aún está lejana del óptimo. Cuando ocurre, dependemos totalmente de
la mutación para obtener nuevos valores y por consiguiente se retrasa en demasía la convergencia del
algoritmo. Para atenuar este problema, en el sistema se instrumentó una variante de las variaciones
propuestas por P. Nikitas y A. Papageorgiou13 al algoritmo genético clásico con el fin de aumentar su
probabilidad de éxito. Consiste en, cada un cierto número elegible de generaciones, rellenar
nuevamente la población de forma análoga a [13], pero en nuestro caso no se realiza desde cero, sino
que se suma al valor de cada gen un número aleatorio b Î [-1,1] . La justificación para esto se
desprende del hecho de que al prersentarse el fenómeno descrito anteriormente en un vector
solución cercano al óptimo global, una intensificación de la búsqueda en una vecindad de dicho
vector proporciona mayores posibilidades de encontrarlo rápidamente.
4 SISTEMA DE OPTIMIZACIÓN
La plataforma utilizada para el desarrollo del sistema fue Windows XP y la instrumentación fue
realizada en el entorno visual de Delphi 7.0 que posee como lenguaje el Object Pascal, descrito como
de alto nivel, fuertemente tipificado que soporta el paradigma de programación orientada a objeto.
En la etapa de instrumentación de las soluciones se implementó un buen número de clases con el
objetivo de aprovechar los beneficios que ofrece el paradigma de programación orientada a objeto.
Existen dos módulos fundamentales: un módulo general que incluye las clases para el manejo de los
ficheros con las observaciones, un evaluador de funciones y un generador de observaciones exactas y
perturbadas en un rango dado; y un módulo para el algoritmo evolutivo que incluye clases para cada
una de las componentes de éste. Además, se instrumentó un tercer módulo que contiene las
implementaciones de los métodos deterministas clásicos Levenberg – Marquardt y los conocidos
como Quasi – Newton para establecer comparaciónes en cuanto a desempeño con los algoritmos
evolutivos.
La interfase de usuario, tanto del generador de observaciones como del sistema de optimización
propiamente, se compone de un conjunto de ventanas y resulta de fácil uso para el investigador. Para
resolver un problema determinado, además de especificar el fichero de observaciones y los
parámetros del algoritmo evolutivo, sólo es necesario escribir el modelo que se desea ajustar; el
sistema reconoce en el modelo los parámetros, los toma como las variables del problema de
optimización y construye la función objetivo; todo esto de forma transparente al usuario. En las
figuras 1 y 2 se muestra un esquema del funcionamiento del generador de observaciones y del
sistema de optimización respectivamente.
Figura 1 - Generador de observaciones.
J. VILLEGAS et al. / AE para Estimación de parámetros
Figura 2 - Sistema de optimización.
5 RESULTADOS NUMÉRICOS
Los algoritmos evolutivos corridos presentaron, de forma general, un buen desempeño en la
búsqueda de la solución óptima. Se alcanzó en todos los casos una mayor exactitud al utilizar la
modificación propuesta en 3. Esta heurística se aplicó a problemas no diferenciables, los cuales no
pueden ser resueltos por técnicas deterministas, y se lograron soluciones satisfactorias.
A continuación mostramos los resultados obtenidos a partir de varios ejemplos. Para cada uno se
especifica: mejor solución obtenida, iteración y tiempo en que se encontró ésta, y el valor de la
función objetivo evaluada en dicho resultado. En todos los casos se creó un fichero con 50
elementos usando el generador de observaciones (exactas). En todos los ejemplos se realizan como
máximo 1000 iteraciones. Para los algoritmos evolutivos se utilizaron los siguientes parámetros:
§ Tamaño poblacional 100.
§ Criterio de selección Torneo. Tamaño de equipo 4.
§ Tipo de cruzamiento Aritmético. Probabilidad 0.8.
§ Tipo de mutación Aleatoria. Probabilidad 0.1.
§ Elitismo.
Ejemplo 1
Modelo: n + p( x 2 - x12 ) + (q - x1 ) 2
Solución real: (1,12,1)
Algoritmos
Lev.-Marquardt
Mejor solución
(1.000000, 12, 1.000000)
Iteración
1000
Quasi-Newtons
(0.999993, 11.999999, 1.0000001)
21
Tiempo (seg) F.objetivo
-22
79:649
1.433 x 10
-7
2:453
5.148 x 10
Alg. Evolutivos
(0.999996, 11.999999, 0.999999)
116
17:885
1.503 x 10
A.E. modificado
(1.000000, 12, 1.000000)
960
89:7855
6.93 x 10
Tabla 2 – Resultados numéricos obtenidos. Ejemplo 1
Ejemplo 2
Modelo: p( x2 - x1 ) 2 + (1 - x1 ) 2 + q( x4 - x3 ) 2 + (1 - x3 ) 2 + r ( x2 + x4 - 2) 2 + r ( x2 - x4 ) 2
Solución real: (100, 90, 10)
-10
-21
J. VILLEGAS et al. / AE para Estimación de parámetros
Algoritmos
Lev.-Marquardt
Mejor solución
(100, 90.000000, 10)
Iteración
58
Quasi-Newtons
(100.000000, 90.000000, 9.999999)
8
Tiempo (seg) F.objetivo
-19
7:351
6.6886 x 10
-6
1:262
2.0133 x 10
Alg. Evolutivos
A.E. modificado
(9.999301, 90.000005, 10.000305)
(100.000000, 89.000000, 10.00000)
112
840
37:34
91:338
1.665837
2.8973 x 10
-14
Tabla 3 - Resultados numéricos obtenidos. Ejemplo 2
Ejemplo 3
q
Modelo: ( | px1 | )
Solución real: (3, 0.5)
Algoritmos
Alg. Evolutivos
A.E. modificado
Mejor solución
(2.985710, 0.500645)
(-3.000000, 0.499999)
Iteración
59
823
Tiempo (seg)
5:799
45:472
F.objetivo
0.000195
2.7620 x 10
-19
Tabla 4 - Resultados numéricos obtenidos. Ejemplo 3
Ejemplo 4
Modelo: tan( px1 )
Solución real: (4)
Algoritmos
Alg. Evolutivos
Mejor solución
(4)
Iteración
438
A.E. modificado
(4)
116
Tiempo (seg) F.objetivo
-25
33:869
1.8304 x 10
-25
9:43
1.8304 x 10
Tabla 5 - Resultados numéricos obtenidos. Ejemplo 4
Ejemplo 5
Modelo: | px 12 + qx 22 - r |
Solución real: (3, 2, 5)
Algoritmos
Alg. Evolutivos
Mejor solución
(3.000001, 2.000000, 5.000321)
Iteración
96
A.E. modificado
(-2.999999, -1.999999, -4.999999)
990
Tiempo (seg) F.objetivo
-6
13:539
2.413 x 10
-12
59:728
6.178 x 10
Tabla 6 - Resultados numéricos obtenidos. Ejemplo 5
Los resultados anteriores fueron obtenidos en una PC Pentium III 700 MHz con 128 Mb de
memoria RAM.
6 CONCLUSIONES
Hemos ilustrado en este artículo como los algoritmos evolutivos pueden ser aplicados de manera
exitosa a problemas de estimación de parámetros que no pueden ser resueltos mediante un método
clásico determinista de optimización.
Para este propósito fue implementado un sistema computacional que utiliza el paradigma de
programación orientada a objeto. Este posee una interfase que facilita el trabajo al investigador, sólo
es necesario escribir el modelo que se desea ajustar. El sistema reconoce en el modelo los
parámetros, los toma como las variables del problema de optimización y construye la función
objetivo, todo esto de forma transparente al usuario. Se instrumentó además un generador que
produce datos experimentales exactos y perturbados, el cual constituye una herramienta útil para la
experimentación en general.
J. VILLEGAS et al. / AE para Estimación de parámetros
Una vez cerca del óptimo, el algoritmo evolutivo produce una convergencia muy lenta a la
solución. Este comportamiento mejoró sensiblemente en la mayoría de los ejemplos resueltos,
cuando se utilizó el algoritmo evolutivo modificado.
La experimentación se realizó con valores de población 100 y probabilidades de cruzamiento y
mutación 0.8 y 0.1 respectivamente. Los algoritmos evolutivos tuvieron un buen desempeño en los
ejemplos mostrados.
Nuestra aplicación está aun en fase de prueba y desarrollo. Serán dados los próximos pasos en el
control de variaciones en los parámetros de los algoritmos evolutivos para lograr así resultados de
mayor trascendencia.
REFERENCIAS
[1] Andre, J. Siarry P.: An improvement of the standard genetic algorithm fighting premature
convergence in continuous optimization, Advances in Engineering Software, (2000).
[2] Conte, S.: Elementary Numerical Analysis, Third Edition.
[3] Fletcher, P.: Practical Methods of Optimization, Second Edition, John Wiley&Sons, (1989).
[4] Garnir, H. G.: Teoría de Funciones, Ediciones Técnicas Marcombo, (1966).
[5] Gill, P. Murray, W.: Practical Optimization, Academic Press, (1981).
[6] Kalyanmoy, D.: Multi-Objective Optimization using Evolutionary Algorithms, (2001).
[7] Lipschutz, S.: Teoría y Problemas de Álgebra Lineal, Pueblo y Educación, (1973).
[8] Luenberger, D. G.: Introduction to Linear and Nonlinear Programing, Second Edition, AddisonWesley Publishing Co, Inc. Massachusetts, (1984).
[9] Man, K.F.: Genetic Algorithms. Concepts and Designs, Springer-Verlag, (1999).
[10] Michalewicz, Z.: Genetic Algorithms + Data Structures = Evolution Programs, Springer-Verlag,
(1992).
[11] Monett, D.: On studying a Non-Standard Genetic Algorithm solving Inverse Problems from
Chemical Kinetics (1996).
[12] Nakamura, S.: Applied Numerical Methods with Software, Prentice-Hall, (1991).
[13] Nikitas, P., Papageorgiou, A.: Modifications of the classical genetic algorithm for non-linear
fitting applied to response surface modeling in HPLC, Computer Physics Communications,
(2001).
[14] Samarsky, A.: Introducción a los Métodos Numéricos, Mir Moscú, (1986).
[15] Scales, L. E.: Introduction to Non-Linear Optimization, Springer-Verlag, (1985).
[16] Schmitt, L.: Theory of genetic algorithms, Theoretical Computer Science, (2001).
[17] Suárez, M.: Matemática Numérica, Editorial de Libros para la Educación, (1980).
[18] Whitley D.: An overview of evolutionary algorithms: practical issues and common pitfalls,
Information and Software Technology, (2001).
[19] Youssef, H.: Evolutionary algorithms,simulated annealing and tabu search: a comparative study,
Engineering Applications of Artifcial Intelligence, (2001).
[20] Yuen, Y. Guaranteeing: The probability of success using repeated runs of genetic algorithm,
Image and Vision Computing, (2001).
Descargar