INTRODUCCIÓN - Centro de Estudios Hidrográficos

Transcripción

INTRODUCCIÓN - Centro de Estudios Hidrográficos
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
APLICACIÓN DE LA COMPUTACIÓN EVOLUTIVA EN LA
HIDROLOGÍA OPERACIONAL
Angel Luis Aldana Valverde 1
1
Centro de Estudios Hidrográficos. CEDEX- Centro de Estudios y Experimentación de Obras Públicas.
Ministerio de Fomento. Paseo Bajo Virgen del Puerto nº 3. 28005 MADRID. e-mail: [email protected]
web: http://hercules.cedex.es/hidraulica
Resumen
El concepto de computación evolutiva surge en los años 90 y se basa en conceptos de la
evolución y la genética para resolver principalmente problemas de optimización. Es una
interesante rama de la inteligencia artificial que tiene sus raíces en tres líneas de
desarrollo muy próximas entre sí: algoritmos genéticos, programación evolutiva y
estrategias evolutivas.
Fundamentalmente, en el campo de la hidrología operacional, estas técnicas pueden ser
aplicadas para resolver problemas de optimización paramétrica, aunque proporcionan
sugestivas posibilidades de búsquedas de nuevos planteamientos y soluciones.
Estas técnicas se han incorporado al actual entorno de desarrollo y utilización de modelos
hidrológicos EDIMACHI, con algoritmos de creación propia.
Palabras clave
Computación evolutiva, algoritmos genéticos, sistemas en tiempo real, optimización
paramétrica.
1. INTRODUCCIÓN
Durante el periodo 2000-2003, se ha desarrollado el proyecto titulado “Incorporación
de metodologías no convencionales a un entorno integrado de desarrollo y
aplicación de modelos en tiempo real para previsión de crecidas y gestión de
embalses en el SAIH”, financiado por el Ministerio de Ciencia y Tecnología dentro
del Programa Nacional de Recursos Naturales del Plan Nacional de I+D+I
(referencia: REN2000-0337-C02-01 / RIES). De entre otros resultados del proyecto
(ver “Implantación de modelos de previsión basados en EDIMACHI. Información
básica, cobertura y línea actual”) se expone aquí de forma destacada, por su
relevancia y contribución a la solución de problemas de optimización (muy comunes
en las aplicaciones informáticas de ayuda a la decisión ante situaciones de crecida),
1
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
un resumen de las investigaciones y desarrollos en materia de aplicación de la
computación evolutiva.
La computación evolutiva es una rama de la inteligencia artificial que, básicamente,
busca solución a problemas diversos de optimización. Dentro de esta especialidad
se distinguen las siguientes:
-
Algoritmos genéticos
-
Programación evolutiva
-
Estrategias evolutivas
Todas ellas se basan en operar con poblaciones de posibles soluciones para un
problema de optimización, seleccionando aquellas más adecuadas y obteniendo
otras nuevas por recombinación de los miembros de la población. Tanto la selección
como la recombinación son en parte aleatorias. Además, suelen contar con
mecanismos de mutación, que pueden tener interés al contribuir a disminuir la
dependencia de la población inicial y probar, a lo largo del funcionamiento del
algoritmo, con soluciones alejadas de las que proporciona la población en esa
iteración.
Son conceptos similares, que aparecieron casi simultáneamente, con matices
diferenciadores entre ellos en cuyos detalles no se va a profundizar aquí, pues
pueden entenderse como paradigmas, con sus seguidores, que pueden todos ellos
encuadrarse dentro del concepto general de algoritmos genéticos (JJ Merelo;
http://kal-el.ugr.es/~jmerelo/)
Se recoge a continuación literalmente la definición que se encuentra en Wikipedia
(La Enciclopedia Libre), a la que puede accederse a través de Internet:
http://es.wikipedia.org/wiki/Computaci%F3n_evolutiva/
Algoritmos genéticos.- “En los años setenta surgió una de las líneas más
prometedoras de la inteligencia artificial, la de los algoritmos genéticos. Son
llamados así porque parten de diseños simples que se dejan evolucionar.
Estos algoritmos son sometidos a acciones aleatorias semejantes a las que actúan
en la evolución biológica (mutaciones y recombinación genética), así como también
a una selección de acuerdo con algún criterio, en función del cual se decide cuáles
2
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
son los algoritmos más adaptados, que sobreviven, y cuáles los menos aptos, que
son descartados.“
Hay autores que desean mantener una clara diferenciación de conceptos entre los
tres grandes grupos dentro de la computación evolutiva (antes citados),
considerando algoritmos genéticos a aquellos que se basan en la codificación de los
genes en forma de cadenas de caracteres o bites, incluyendo en la programación
evolutiva a aquellos algoritmos en los que los genes son instrucciones de
programación, y en el de las estrategias evolutivas cuando estos últimos son valores
reales (Herrán; 1999).
También se incluyen dentro del campo de la computación evolutiva técnicas
conocidas como la agregación simulada o recocido simulado (Simulated Annealing),
las cuales pueden considerarse una simplificación de los algoritmos genéticos
inspirados en los procedimientos físicos de solidificación controlada, o los
clasificadores
genéticos
(classifier systems) que
solucionan problemas
de
reconocimiento de patrones mediante un entrenamiento basado en ejemplos,
almacenando en las cadenas información que relacione los datos de entrada y la
salida deseada.
Para el caso que se trata en el presente documento, el de la hidrología operacional,
el problema común es de tipo optimización paramétrica, es decir, se trata de obtener
un máximo o mínimo para una función real de variables reales, dentro de un
determinado rango de variación para estas variables, es decir, en un espacio
problema acotado. Dentro de las técnicas de la computación, las de las estrategias
evolutivas se centran en este tipo de problema, aunque si se deja aparte el problema
de la codificación y se centra la atención en la estructura de datos y definiciones
coherentes de recombinación y mutación, pueden entenderse como algoritmos
genéticos.
2. INVESTIGACIÓN BIBLIOGRÁFICA
Los algoritmos de computación evolutiva ofrecen gran flexibilidad en la elección o
definición de la función objetivo, lo que no ocurre con otras técnicas de optimización,
no necesitando cumplir condiciones de linealidad, diferenciabilidad y pudiendo ser
tan complejas como sea necesario. Además de esto, su principal ventaja puede
estar en el modo de variación del esfuerzo de computación con la dimensionalidad
3
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
del problema, que puede ser mucho más moderado que en otras técnicas. Su
principal inconveniente puede estar en la incertidumbre asociada al resultado que
proporcionan, pues no cuenta con las garantías que otros métodos ofrecen debido a
que están fundamentados en un proceso de marcado carácter aleatorio. A pesar de
ello, los resultados que proporcionan en la práctica de su utilización han sido
satisfactorios. Pueden encontrarse en la bibliografía trabajos con comparaciones con
métodos como el de la programación dinámica con diferenciación discreta (Sharif y
Wardlaw; 2000), la cual ofrece gran flexibilidad en la elección de la función objetivo,
y cuyas conclusiones son que la desviación en la consecución del óptimo, en un
problema de optimización de operación de un sistema de embalses, no es
significativa, ofreciendo claras ventajas en cuanto a las posibilidades que ofrece,
entre las que, aparte de las anteriormente citadas, también cabe resaltar que no
necesita discretización de variables ni aproximaciones sucesivas en la función
objetivo o en su derivada. Ofrece también facilidades importantes en cuanto a las
restricciones del problema, brindando, por ejemplo, una solución flexible, en cuanto
a formulación del problema, a la optimización del consumo energético a un sistema
de embalses multipropósito, con generación de energía y suministro para riego,
apareciendo éste último como restricción en la operación (Nandalal; 2003).
También se ha detectado un excelente comportamiento de estos algoritmos en
problemas de estimación de parámetros de modelos con estructura altamente no
lineal, con ventajas sobre técnicas de programación no lineal (Yoo, Jung y Ahn;
2003). Con ellos se han resuelto problemas de calibración de modelos en los que se
había fracasado con técnicas tradicionales (Chérif, Robert y Lagacé; 2002).
Otra de las técnicas de la inteligencia artificial inspirada en procesos biológicos, las
redes neuronales, pueden necesitar una solución a un problema de optimización.
Así, el proceso de entrenamiento de una red neuronal para dotar a ésta de
capacidad de predicción, incluye un problema de optimización de error en función de
los pesos asignados a las conexiones entre neuronas. Los algoritmos genéticos han
demostrado gran capacidad para resolver este problema, en ocasiones claramente
superior a otros (Neelakantan, Lingiredy y Brion; 2001).
Tal y como se mostrará gráficamente en ejemplos posteriores del algoritmo
desarrollado, esta técnica cuenta con la capacidad de ofrecer soluciones en casos
4
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
en los que hay múltiples o infinitas soluciones óptimas, lo que es común en
problemas inversos de simulación o previsión (Gentry, Larsen e Ivey; 2003).
Los parámetros que definen el comportamiento de un algoritmo genético, como
pueda ser la población, pueden necesitar ser evaluados sobre una base
experimental (Ferreira, Costa, Lobo y Câmara; 2002), fundamentalmente siguiendo
un procedimiento de análisis de sensibilidad.
Cuando la técnica usada se trata de programación genética o evolutiva, es decir, los
genes son código de programación, se cuenta con una ventaja muy importante y
sobresaliente sobre el resto de las técnicas de optimización: permite buscar
simultáneamente la forma funcional y sus coeficientes de ajustes. El resultado es
que estas técnicas pueden generar soluciones simbólicas, con sus coeficientes
ajustados, al utilizar como genes funciones, ofreciendo así resultados que en
ocasiones pueden admitir una interpretación física (Babovic; 2002), pues el resultado
es una ecuación con coeficientes ajustados. Esto puede tener gran interés en el
campo de la hidráulica y la hidrología.
3. DESARROLLO PROPIO
Se ha desarrollado un algoritmo propio que está ofreciendo resultados satisfactorios.
Se presenta a continuación un ejemplo de su funcionamiento con una función que
presenta círculos concéntricos con mínimos y máximos locales.
f ( x, y ) = 1 −
(
sen 10 x 2 + y 2
2
10 x + y
2
) ; - 1 ≤ x ≤ 1; - 1 ≤ y ≤ 1
Se plantea el problema de encontrar el mínimo, el cual presenta una gran dificultad
para la mayoría de los algoritmos de optimización paramétrica, pues rara vez éstos
son capaces de diferenciar si el resultado es o no el buscado dentro del rango de
variación de las variables.
El algoritmo desarrollado está basado en mecanismos de cruce orientados a la
estructura de datos, es decir, se evita la codificación y no se opera con bits. La
unidad de información es el valor real.
En un primer paso (Ilustración 1) se genera una población (en número a fijar según
el caso) de forma aleatoria, con valores para las variables dentro de cada rango de
búsqueda. Esta población se ordena según el valor de la función objetivo, es decir,
5
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
según la idoneidad para la solución buscada. Con esta ordenación se define la
probabilidad asociada a cada individuo de la población para que éste sea
seleccionado para el cruce, y así generar nuevos miembros, en número total dado
por el porcentaje de reproducción, teniendo en cuenta la aptitud de los posibles
progenitores. Una nueva ordenación de la población total sirve para eliminar
aquellos individuos peor clasificados y para definir nuevamente la función de
probabilidad para la siguiente fase de reproducción.
El ciclo continúa hasta que se alcanza un número de iteraciones, fijado como
máximo, o cuando la dispersión de resultados desciende por debajo de un
determinado valor fijado como tolerancia en la función objetivo.
El algoritmo también incorpora la posibilidad de crear mutaciones aleatorias, según
un porcentaje de la población total antes de cada reproducción, y se fija también un
porcentaje que se denomina élite, cuyo objetivo es evitar perder las mejores
soluciones protegiéndolas de la posibilidad de mutación.
Ilustración 1: Demostración del algoritmo evolutivo 1.- población inicial aleatoria
Al cabo de unas pocas iteraciones (Ilustración 2) se detectan ya algunos miembros
en el entorno de la solución (el centro del rango: x=0, y=0), aunque otros van
quedando en los mínimos locales. Aún hay gran dispersión en los valores de la
6
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
función objetivo. Según avanzan las iteraciones, la dispersión de resultados va
disminuyendo, situándose en el entorno de la solución (Ilustración 3), hasta que se
cumplan las condiciones de interrupción del proceso (Ilustración 4).
Otro aspecto interesante es que el algoritmo puede proporcionar un conjunto de
soluciones (Ilustración 5). Tal es el caso de la función:
(
)
f ( x, y ) = 1 − x 2 + y 2 − 1.3 x 2 + y 2 ; - 1 ≤ x ≤ 1; - 1 ≤ y ≤ 1
que en el rango de variación tiene cuatro soluciones: (1,1), (-1,1), (-1,-1) y (1,-1).
El algoritmo llega a las 4 soluciones siempre y cuando se utilice con una población
suficiente en número. Puede incluso alcanzar interesantes resultados (Ilustración 6)
para problemas como el de minimizar la función:
f ( x, y ) = 1 −
sen (10 x )
; - 1 ≤ x ≤ 1; - 1 ≤ y ≤ 1
10 x
cuya solución es una línea recta (x=0) con infinitas soluciones.
Ilustración 2: Demostración del algoritmo evolutivo 2.- Iteración 5.
7
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
Ilustración 3: Demostración del algoritmo evolutivo 3.- Iteración 12.
Ilustración 4: Demostración del algoritmo evolutivo 4.- Interrupción del proceso
8
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
Ilustración 5: Demostración del algoritmo evolutivo 5.- Ejemplo con 4 soluciones
Ilustración 6: Demostración del algoritmo evolutivo 6.- Ejemplo con infinitas soluciones
9
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
4. INCORPORACIÓN EN EDIMACHI Y UTILIZACIÓN EN LAS APLICACIONES
OPERATIVAS
En el código que contiene EDIMACHI, hay solución a muchos problemas numéricos
de raíces, máximos o mínimos, pues están asociados a muchos de los algoritmos o
solución de problemas hidrológicos. Inicialmente, se contaba con un algoritmo de
búsqueda de mínimos basado en una técnica de gradientes, siguiendo uno de los
enfoques tradicionales. Ahora se cuenta con un nuevo desarrollo que cuenta con
numerosas ventajas, especialmente en los casos en los que hay gran número de
variables, pues la eficiencia del método en estos casos es claramente superior.
Hay dos problemas en los que el algoritmo evolutivo resulta especialmente útil (ver
capítulo “Módulo EDIMACHI-SIPROP (SImulación, PRevisión Y OPeración de
embalses”). Fundamentos y casos de aplicación):
-
El problema de la calibración automática de parámetros: se trata de minimizar
la función error, siendo los parámetros de simulación las variables
independientes con las que se busca el mínimo error.
-
La búsqueda de soluciones a la operación de embalse: se define una función
de penalización de eventos o circunstancias, que pueden depender de unos
valores objetivo, y la solución será aquella que proporcione su valor mínimo.
Ambos problemas tienen en común la complejidad de las funciones objetivo, que
pueden contar con mínimos locales dentro del rango de variación de las variables y
el número de éstas puede ser alto.
5. REFERENCIAS
–
Manuel
de
la
Herrán
Gascón;
1999.
“Computación
evolutiva”.
Red
científica.
http://www.redcientifica.com/doc/doc199904260012.html. Publicado en marzo de 1998 en la
revista "Solo Programadores" (nº 43) y revisado en abril de 1999 por el autor.
–
Mohd Sharif y Robin Wardlaw; 2000: “Multireservoir systems optimization using genetic
algorithms: case study”. Journal of Computing in Civil Engineering, Vol. 14, No. 4, October, 2000.
ASCE.
–
T. R. Neelakantan, Srinivasa Lingireddy y Gail M. Brion; 2001: “Effectiveness of Different Artificial
Neural Network Training Algorithms in Predicting Protozoa Risks in Surface Waters”. Journal of
Environmental Engineering, Vol. 128, No. 6, June 1, 2002. ASCE.
10
II Jornadas sobre “los sistemas de ayuda a la decisión ante problemas hidráulicos e hidrológicos en tiempo real”.
–
Randall W. Gentry, Daniel Larsen y Stephanie Ivey; 2003: “Efficacy of Genetic Algorithm to
Investigate Small Scale Aquitard Leakage”. Journal of Hydraulic Engineering, Vol. 129, No. 7, July
1, 2003. ASCE.
–
Chulsang Yoo, Kwang-Sik Jung y Jae Hyun Ahn: “Estimating Characteristics of Rainfall and Their
Effects on Sampling Schemes: Case Study for Han River Basin, Korea”. Journal of Hydrologic
Engineering, Vol. 8, No. 3, May 1, 2003. ASCE.
–
K.D.W. Nandalal; 2003: “An application of genetic algorithms in optimal reservoir operation”.
Hydroinformatics 2002: Proceedings of the Fifth International Conference on Hydroinformatics,
Cardiff, UK. IWA Publishing and the authors.
–
João S. Ferreira, Manuel Costa, Fernando Lobo y António Câmara; 2002: “Estuarine transport
model calibration using genetic algorithms”. Proceedings of the Fifth International Conference on
Hydroinformatics, Cardiff, UK. IWA Publishing and the authors.
–
Rim Chérif, Jean-Loup Robert y Robert Lagacé; 2002: “Genetic algorithm calibration of hydrologic
model”. Proceedings of the Fifth International Conference on Hydroinformatics, Cardiff, UK. IWA
Publishing and the authors.
–
Vladan Babovic; 2002: “Introducing knowledge into learning based on genetic programming”.
Proceedings of the Fifth International Conference on Hydroinformatics, Cardiff, UK. IWA
Publishing and the authors.
11

Documentos relacionados