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