Download Nuevas Técnicas de Modelización y Predicción de Fenómenos
Document related concepts
Transcript
Nuevas Técnicas de Modelización y Predicción de Fenómenos Complejos: Redes Neuronales Artificiales y Algoritmos Genéticos José Ramón Hilera González Departamento de Ciencias de la Computación Universidad de Alcalá 28871 Alcalá de Henares (Madrid) E-mail: jose.hilera@uah.es Web: www.cc.alcala.es/hilera Resumen Se analizan dos tecnologías de procesamiento de la información que forman parte de lo que actualmente se conoce como Geocomputación: la computación neuronal, basada en redes neuronales artificiales; y la computación evolutiva, que se fundamenta en los denominados algoritmos genéticos. Se justifica su utilidad en la resolución de problemas geográficos relacionados con la predicción de fenómenos complejos. Palabras clave: Geocomputación, Computación Cognitiva, Redes Neuronales Artificiales, Algoritmos Genéticos. 1.II 1. Introducción Desde finales de los ochenta se ha desarrollado un nuevo campo de las Ciencias de la Computación que integra los diferentes métodos de resolución de problemas que no pueden ser descritos fácilmente mediante un enfoque algorítmico tradicional. Estos métodos, de una forma u otra, tienen su origen en la emulación, más o menos inteligente, del comportamiento de los sistemas biológicos. Aunque se han utilizado diferentes términos para denotar esta nueva disciplina científica, uno de los más extendidos es el de Computación Cognitiva (Cognitive Computing). Se trata de una forma de computación que es capaz de manejar las imprecisiones e incertidumbres que aparecen cuando se trata de resolver problemas relacionados con el mundo real (reconocimiento de formas, toma de decisiones, etc.), ofreciendo soluciones robustas y de fácil implementación. Para ello, se dispone de un conjunto de técnicas, como son la Lógica Borrosa, las Redes Neuronales, el Razonamiento Aproximado, los Algoritmos Genéticos, la Teoría del Caos, o la Teoría del Aprendizaje. Aunque, en principio, se trata de enfoques diferentes, existe una tendencia a buscar combinaciones entre ellos, para lo cual son cada vez más frecuentes los encuentros entre expertos en cada una de estas disciplinas, lo cual permitirá una consolidación de este campo de las ciencias de la computación y, en consecuencia, el progreso en el desarrollo de nuevas tecnologías de procesamiento de la información. El campo de la Geografía no ha sido ajeno a estos métodos de procesamiento de la información, habiéndose publicado en los últimos años un gran número de trabajos relacionados con la utilización de estas tecnologías en diferentes aplicaciones vinculadas de una, u otra forma, a esta ciencia. Esto ha dado lugar a la Geocomputación o Geografía Computacional, términos con los que se hace referencia a “la aplicación de métodos y técnicas computacionales para explicar (modelizar) y resolver problemas geográficos” (Couclelis, 1998). Se trata problemas del mundo real, normalmente relacionados con la predicción de fenómenos complejos, que se plantean con datos gestionados por los Sistemas de Información Geográfica, y cuya resolución supone su procesamiento utilizando técnicas de Inteligencia Artificial como, entre otra, las redes neuronales artificiales o los algoritmos genéticos (Openshaw y Abrahart, 2000). En los siguientes apartados se describirán someramente estas técnicas de la computación cognitiva y su aplicación en el campo de la Geografía. 2. Las redes neuronales artificiales en Geocomputación 2.1 Conceptos básicos sobre redes neuronales artificiales Las redes neuronales artificiales son sistemas de computación compuestos por un gran número de elementos de proceso simples, denominados nodos o neuronas, que procesan información por medio de su estado dinámico como respuesta a entradas externas. Las conexiones sirven para transmitir las salidas de unos nodos a las entradas de otros. El funcionamiento de un nodo es similar al de las neuronas biológicas del cerebro, donde la información memorizada está relacionada con los valores sinápticos de las conexiones entre las neuronas. De igual forma, se dice que las redes neuronales artificiales tienen la capacidad de “aprender” mediante el ajuste de las conexiones entre nodos. Estas conexiones tienen un valor numérico asociado denominado “peso”, que puede ser positivo (conexiones de excitación) o negativo (conexiones de inhibición). 1.III Existen muchos tipos de redes neuronales. Un modelo utilizado en una gran variedad de aplicaciones relacionadas con problemas de predicción o clasificación, es la red multicapa con conexiones unidireccionales hacia delante (feedfoward). En este tipo de estructura es posible distinguir una capa de entrada, varias capas de neuronas ocultas y una capa de salida (figura 1). Cada una de las neuronas de la red recibe como entrada la suma de los valores de salida de las neuronas a ella conectadas multiplicados por el peso de la conexión correspondiente. Al resultado de esta suma se le aplica una función para obtener el valor que genera a la salida (figura 2). Habitualmente la función utilizada es de tipo sigmoidal (figura 3). Figura 1. Red neuronal feedfoward Figura 2. Valor de salida de una neurona Figura 3. Función de transferencia de una neurona Cuando se trabaja con redes backpropagation se diferencia entre una primera etapa de aprendizaje o entrenamiento de la red y una segunda etapa de funcionamiento u operación. Durante la 1.IV primera se realiza el ajuste de los pesos en función de lo que se desee que almacene o “memorice” la red. Se suele distinguir entre dos tipos de aprendizaje: supervisado y no supervisado. El primero consiste en el ajuste de los pesos hasta que la red “aprenda” a relacionar un conjunto de patrones de entrada con los valores de salida que se desea que genere ante cada uno de esos patrones. El entrenamiento concluye cuando la diferencia entre las salidas deseadas para cada patrón y las que se obtienen realmente con los valores calculados de los pesos es suficientemente pequeña. El algoritmo de aprendizaje o ajuste de pesos más utilizado suele ser una derivación del denominado “retropropagación de error” (backpropagation) (Rumelhart et al., 1986), basado en el método del gradiente descendiente que busca el mínimo de la función que relaciona el error con el conjunto de los pesos de la red. Una vez finalizado el proceso de entrenamiento, los pesos sinápticos no varían y la red entra en una fase operacional, para cumplir la función que se desea de ella. Por ejemplo, si se va a utilizar para resolver un problema de predicción, habrá sido diseñada con un número de entradas igual al número de variables del problema y un conjunto de valores de salida correspondientes a las variables a predecir. En la fase de entrenamiento se habrá utilizado un juego de ensayo obtenido de la observación, es decir, se indicará a la red que ante determinados valores de entrada, se deben generar unos valores de salida concretos. Durante la fase de operación, la red, cuando reciba valores de entrada diferentes deberá generar una salida en función del “aprendizaje” acumulado en los pesos de las conexiones entre las neuronas; esta salida será el resultado que ha predicho la red. Existen otros mecanismos de aprendizaje supervisado diferentes al de retropropagación del error. Así, el conocido como aprendizaje por refuerzo se basa en la idea de no disponer de un ejemplo completo del comportamiento deseado, es decir de no indicar durante el entrenamiento exactamente la salida que se desea proporcione la red ante una determinada entrada. Durante el aprendizaje por refuerzo los pesos de la red se ajustan según un criterio probabilístico, en función de una "señal de refuerzo" que indica si la salida obtenida en la red se ajusta a la deseada. Otro tipo de aprendizaje supervisado utilizado en redes como la Boltzmann machine o la Cauchy machine es el estocástico, que consiste básicamente en realizar cambios aleatorios en los valores de los pesos y evaluar su efecto a partir del objetivo deseado y de distribuciones de probabilidad (Hilera y Martínez, 1995). Otro tipo de redes neuronales diferentes a las anteriores son las que utilizan un mecanismo de aprendizaje no supervisado o autosupervisado. Estas redes no requieren influencia externa para ajustar los pesos de las conexiones entre sus neuronas, es decir no reciben ninguna información por parte del entorno que indique si la salida generada en respuesta a una determinada entrada es o no correcta; por ello suele decirse que son redes capaces de "auto-organizarse". El objetivo de este tipo de redes es encontrar las características, regularidades, correlaciones o categorías que se puedan establecer entre los datos que se presenten en su entrada. Existen varias posibilidades en cuanto a la interpretación de la salida de estas redes, que depende de su estructura y del algoritmo de aprendizaje empleado. En algunos casos la salida representa el grado de familiaridad o similitud entre la información que se le está presentando en la entrada y las informaciones que se le han mostrado hasta entonces (en el pasado). En otros casos se realiza una "clusterización" (clustering) o agrupamiento de datos, indicando la red a la salida a qué categoría pertenece la información presentada a la entrada, siendo la propia red quien debe encontrar las categorías apropiadas según las correlaciones entre las informaciones presentadas. Una variación de esta categorización es el prototipado; en este caso la red obtiene ejemplares o prototipos representantes de las clases a las que pertenecen los datos de entrada. Algunas redes con aprendizaje no supervisado, como la Red de Kohonen (Kohonen, 1997) lo que realizan es un mapeo de características (feature mapping), obteniéndose en la neuronas de salida una disposición geométrica que representa un mapa topográfico de las características de los datos de entrada, de tal forma que si se presentan a la red informaciones similares, siempre serán afectadas neuronas de salida próximas entre sí, en la misma zona del mapa. 1.V En cuanto a los algoritmos de aprendizaje no supervisado, en general se suelen considerar dos tipos, por una parte el aprendizaje hebbiano, que pretende medir la familiaridad o extraer las características de los datos de entrada; y por otra parte el aprendizaje competitivo y cooperativo, cuyo objetivo es la "clusterización" o clasificación de dichos datos (Hilera y Martínez, 1995). 2.2 Aplicaciones de las RNA en Geografía Las redes neuronales se han venido utilizando desde los años ochenta en el ámbito de la Geografía para resolver problemas de optimización, predicción, aproximación de funciones, clasificación y reconocimiento de patrones (Fischer y Abrahart, 2000). En relación con la optimización, se utilizan redes como alternativa al enfoque algorítmico tradicional en la búsqueda de una solución que maximice una funcion objetivo planteada para un problema. La dificultad de las soluciones algorítmicas radica en el elevado número de posibles combinaciones que hay que analizar. Así, por ejemplo, se han utilizado diferentes tipos de redes para resolver un problema tan característico como el del viajante (The travelling Salesman Problem), para encontrar un recorrido óptimo a seguir por una persona que tiene que visitar un determinado número de ciudades sin pasar más de una vez por cada una y volviendo finalmente a la de partida (Hilera y Martínez, 1995). También se han utilizado redes, con aprendizaje supervisado, para modelizar funciones relacionadas con el tratamiento de datos espaciales, que son de difícil formulación algebraica. Se han usado, por ejemplo, para la interpolación espacial en relación con la producción de superficies a partir de información incompleta sobre sus puntos (Rizzo y Dougherty, 1994). Una de las principales aplicaciones de la redes neuronales ha sido la clasificación y organización automática de datos geográficos. Como afirma Opensahaw (1997), las redes neuronales artificiales son un instrumento muy flexible que consigue mejores resultados que las soluciones algorítmicas cuando se trata, por ejemplo, de identificar objetos en imágenes obtenidas por satélite y registradas en una base de datos fotográfica, organizar (clusterizar) de forma automática los datos multidimensionales de la base de datos de un Sistema de Información Geográfica, etc. Winter y Hewitson (1994) han utilizado redes de Kohonen para la obtener información sobre las estructuras sociales subyacentes en la información del censo de un Estado como Sudáfrica en el año 1991. Estos autores utilizaron aproximadamente los datos de cien mil personas tomadas de forma aleatoria para el entrenamiento de una red. Los datos de entrada a la red relativos a cada persona fueron los correspondientes a las diez variables demográficas siguientes: Sexo (1: Hombre, 2: Mujer), Edad (1-99), Indicador de Raza Blanca (0: No, 1: Si), Indicador de Raza Negra (0: No, 1: Si), Indicador de Raza Asiática (0: No, 1: Si), Indicador de Raza de Color (0: No, 1: Si), Nivel de Educación (0-20), Nivel Económico (0-21), Situación laboral (0: Empleado, 1: Desempleado), Estado Civil (0: Soltero, 1: Casado). Los autores probaron tres redes diferentes: con 40, 180 y 432 neuronas de salida. Estas neuronas se disponían de una forma bidimensional, en forma de plano con 8x5, 15x12 y 24x18 nodos respectivamente. Para interpretar los resultados, se crearon imágenes de dos dimensiones en las que el color de cada píxel representaba el valor numérico de la salida de la neurona correspondiente. Cuando se utilizan redes de Kohonen, la salida suele considerarse un “mapa autoorganizado” en el que se representan las categorías que la red ha generado como forma de agrupar u organizar el conjunto de datos de entrada utilizado durante el aprendizaje. En el caso del ejemplo del censo surafricano, a partir de la imágenes se llegaron a conclusiones como las siguientes: “no existe prácticamente relación entre los grupos de personas de raza blanca y asiática, y las personas de raza negra”, “las personas de raza blanca tienen un bajo nivel de educación y económico”, etc. Otro ejemplo de aplicación de las redes neuronales en Geografía, en este caso para resolver un problema de clasificación, es un trabajo realizado por la NASA (Key, 1994), en el que se utilizó una red feedfoward con algoritmo de aprendizaje backpropagation para extraer información sobre nubes y superficies en el Ártico a partir de las imágenes obtenidas por un satélite. El objetivo era identificar, 1.VI mediante un proceso de clasificación, ocho tipos de nubes y cuatro de superficies. La red utilizada tenía 7 neuronas de entrada para representar la información del satélite, una capa interna con 10 neuronas, y una capa de salida con 12 neuronas, una por cada tipo de superficie y nube a identificar a partir de la imagen presentada a la entrada. Las superficies eran: tierra, nieve, agua y hielo; y las nubes: nube baja sobre tierra, nube baja sobre agua, nube baja sobre hielo, nube media sobre agua, nube media sobre hielo, nube alta sobre tierra, nube alta sobre agua, y nube alta sobre hielo. Para comprobar los resultados, se hizo un estudio comparativo entre la clasificación con la red y una clasificación basada en un estudio de probabilidades. Se demostró que el primero era un método más flexible y con el que se conseguía una clasificación más precisa. En cuanto a las posibles aplicaciones de las redes para predecir fenómenos complejos relacionados con la Geografía, en (Carvacho, 1998) se describe la utilización de una red feedfoward con un algoritmo de aprendizaje quickprop (derivado del backpropagation), para predecir la ocurrencia de grandes incendios forestales en la cuenca mediterránea europea. La red tenía 26 neuronas de entrada, correspondientes a las variables que describen la situación de la cuenca, relacionadas con su situación agrícola, natural y socioeconómica. Se utilizó un conjunto de datos de entrenamiento compuesto por 98 casos con información sobre la ocurrencia de grandes incendios forestales entre los años 1991 y 1995. La red sólo tenía una neurona de salida, que debía generar un valor numérico correspondiente a la probabilidad de que se produjera al menos un incendio en un área específica en ese periodo de tiempo. Una vez entrenada la red, se utilizaron 65 casos para medir la calidad de las estimaciones. El acierto general de la red fue aproximadamente de un 70%. El estudio también se realizó aplicando otro método alternativo: la regresión logística, llegando a la conclusión de que la red neuronal se mostraba como un estimador más robusto que la regresión logística en el caso de estudio. Otro ejemplo de problema de predicción lo constituye el control de las precipitaciones. Hewitson y Crane (1994) han realizado un estudio en el caso del Sur de Méjico, en un área alrededor de la región de Chiapas, utilizando una red feedfoward con algoritmo de entrenamiento backpropagation, 16 neuronas de entrada (con información sobre la situación atmosférica de la región cada día en un total de nueve años) y una de salida para indicar el nivel de precipitación previsto. Según los autores de la investigación, ésta sirvió, sobre todo, para demostrar las habilidad de las redes neuronales para determinar la correlación entre la circulación atmosférica y las precipitaciones diarias en la región. Por otra parte, McGinnis (1994) también ha aplicado redes neuronales con una estructura similar a la anterior para la predicción de nevadas en la cuenca del Río Colorado en Estados Unidos, llegando a la conclusión de que con las redes se puede predecir diariamente las nevadas con una precisión del 70%, mientras que con métodos tradicionales de regresión lineal el porcentaje se reduce a la mitad utilizando los mismos datos. Finalmente, en relación con la predicción, las redes neuronales también han demostrado su utilidad en el pronóstico espaciotemporal de la propagación de enfermedades. Gould (1994) ha utilizado redes para predecir los mapas de incidencia del SIDA en determinadas regiones de Estados Unidos. El autor ha probado diferentes arquitecturas de redes feedfoward backpropagation, con un número variable de neuronas de entrada, según los parámetros utilizados para representar la situación epidemiológica de la región, y una única neurona de salida para predecir el número de casos de SIDA en la región. Después de entrenar la red con 225 patrones con información de los años 1986 a 1989, comprobó su operatividad con otras 39 situaciones reales en ese periodo, y se llegó a la conclusión de que los mejores resultados se obtenían cuando se utilizaban variables de entrada dinámicas relacionadas con efectos epidemiológicos, en lugar de basar la red en variables estáticas puramente demográficas. 1.VII 3. Los algoritmos genéticos en GeoComputación Los algoritmos genéticos constituyen una estrategia de búsqueda de propósito general que permite resolver problemas de naturaleza combinatoria (Holland, 1975). En esencia, utilizan una estrategia de búsqueda estocástica, en un espacio de soluciones potenciales de un problema, que trata de modelar las leyes de la evolución natural, en particular la herencia genética y la adaptación al entorno. En líneas generales, la estrategia operativa de un algoritmo genético consiste en partir de una población inicial de individuos generada aleatoriamente, cada uno de los cuales representa una posible solución del problema. Estos individuos se evalúan mediante una función que indica la calidad de la solución o grado de adaptación del individuo al entorno. A partir de esta situación inicial se realiza una serie de iteraciones en cada una de las cuales se simula la creación de una nueva generación de individuos a partir de la generación anterior. Este proceso consiste en aplicar los operadores genéticos de selección, cruce y mutación sobre los individuos, hasta llegar finalmente a una población que, si el algoritmo converge adecuadamente, estará compuesta por buenos individuos, siendo el mejor de estos la solución que ofrece el algoritmo. Un algoritmo genético realiza una búsqueda multidireccional; esta búsqueda es más intensiva en las direcciones más prometedoras, pero se dedica también una parte del esfuerzo a considerar regiones en principio de menor interés. La población sufre una evolución simulada: en cada generación los individuos buenos se reproducen mientras que los malos mueren; en este proceso se generan individuos nuevos que heredan algunas características de sus progenitores mientras que otras son propias de cada individuo. En principio, un individuo se representa mediante un vector de símbolos, en el caso más simple se utiliza una representación binaria, es decir, un vector de 0s y 1s. Siguiendo la terminología biológica, a los individuos se les llama también cromosomas y a cada uno de los símbolos gen. Una función denominada fitness es la responsable de traducir la representación interna: el cromosoma, a la representación externa: la potencial solución del problema. Continuando con el símil biológico, a la representación interna de un individuo se le llama genotipo, mientras que a la externa se le denomina fenotipo. En la figura 4 se muestra la estructura de un algoritmo genético simple. A partir de una población inicial realiza un proceso iterativo en el que la población actual, P(t)={x1t, ..., xnt}, se somete, en cada iteración, a una serie de transformaciones mediante la aplicación de los operadores genéticos de selección, cruce y mutación; dando lugar así a la siguiente generación, P(t+1). La fase de selección simula la supervivencia de los individuos más fuertes o mejor adaptados. Consiste en iniciar la población P(t+1) seleccionando, tantas veces como individuos tiene la población, un individuo de la población anterior P(t). Esta elección no se hace de forma aleatoria, sino que cada individuo es seleccionado con una probabilidad proporcional al valor de su fitness. 1.VIII Dar valor a los parámetros Generar la población inicial Evaluar la población inicial ¿ Última generación ? Si No Generar la siguiente población a partir de la anterior, aplicando operadores de cruce, selección, mutación Evaluar la población generada La solución es el mejor individuo de la última generación Figura 4. Funcionamiento básico de un algoritmo genético El cruce trata de emular la herencia genética de características de los progenitores a los descendientes. La forma de realizarlo depende de la representación elegida para los cromosomas. Si esta representación es binaria, la forma más sencilla de hacer el cruce entre dos individuos es el denominado cruce en un punto: una vez que se decide cruzar dos individuos, se genera un número aleatorio entre 1 y la longitud del individuo, esta es la posición de cruce; después se intercambian las subcadenas de los individuos a partir de la posición de cruce. Por ejemplo, si los individuos se representan por vectores binarios de longitud cinco, el cruce de los padres (01001) y (11110) a partir del segundo gen dará como resultado los hijos (01110) y (11001). La forma de llevar a cabo el cruce en el proceso de reproducción consiste en recorrer, después de la selección, los individuos de la población de dos en dos y con cada uno de estos pares decidir si hay cruce o no de acuerdo con la probabilidad de cruce. En caso afirmativo se cruzan los dos individuos y los hijos resultantes sustituyen a los padres en la nueva población. Por último, la mutación tiene como objetivo cambiar alguna de las características de alguno de los individuos para introducir diversidad en la población. Cuando la representación es binaria, la forma concreta de realizarla consiste en intercambiar el valor de cada uno de los bits de los individuos, después del cruce, de acuerdo con la probabilidad de mutación. 1.IX Para resolver un problema particular mediante un algoritmo genético, se deben considerar los siguientes componentes: una representación genética de las soluciones potenciales del problema, un modo de crear la población inicial, una función de evaluación que juega el papel del entorno permitiendo clasificar a los individuos en términos de su fitness, operadores genéticos de reproducción, cruce y mutación que simulen la evolución de las poblaciones, y valores de los parámetros del algoritmo (longitud de los individuos, tamaño de la población, número de generaciones, probabilidad de cruce y probabilidad de mutación). 3.2 Aplicaciones de los algoritmos genéticos en Geografía Los algoritmos genéticos también se han aplicado en el campo de la Geografía desde principios de los años ochenta. Se han utilizado sobre todo para resolver problemas de predicción, para la modelización de relaciones en bases de datos de Sistemas de Información Geográfica, y para optimizar los motores de búsqueda de estas bases de datos. Opensahaw (1988) los ha utilizado para predecir la evolución del desempleo a partir de una base de datos censal. Por su parte, Birkin et al. (1996), también se han servido de estos algortimos para modelizar y predecir flujos de personas, dinero, bienes, emigración, etc. Por su parte, Diplock y Openshaw (1996), y Turton et al. (1997) demostraron que los algoritmos genéticos pueden servir para calibrar modelos de interacción espacial en Sistemas de Información Geográfica. Uno de los experimentos realizados por los primeros consistió en la modelización de flujos de personas a sus lugares de trabajo, utilizando datos de 160 áreas metropolitanas de Estados Unidos, Gran Bretaña y Japón. 1.X 4. Conclusiones La Computación Cognitiva ofrece grandes posibilidades en el ámbito de la Geografía para la resolución de problemas de difícil tratamiento con un enfoque algorítmico tradicional, especialmente los relacionados con la modelización y predicción de fenómenos complejos. Las redes neuronales y los algoritmos genéticos son dos tipos de sistemas de computación cognitiva que se han utilizado en este campo desde hace más de diez años, aunque no son los únicos, porque también la lógica borrosa, la vida artificial, el razonamiento aproximado o la teoría del caos pueden ofrecer soluciones robustas. La disciplina denominada Computación Geográfica trata de integrar estas y otras ciencias de la computación, buscando formas de mejorar las soluciones a problemas geográficos en las que se consideran cada una de ellas por separado. Esta combinación está dando lugar a nuevas tecnologías de la información, como la computación neuro-borrosa, neuro-genética o neuro-borroso-genética, donde se utilizan algoritmos genéticos para optimizar el aprendizaje de las redes neuronales, o las funciones de pertenencia de los sistemas borrosos, y también redes para generar las reglas de funcionamiento de estos sistemas. En los próximos años, el desarrollo de nuevas arquitecturas de computadores de alto rendimiento permitirá aprovechar todas las posibilidades que ofrecen las tecnologías de la Geocomputación, que en su mayoría precisan de sistemas informáticos masivamente paralelos para procesar los grandes volúmenes de información geográfica que se necesitan para ofrecer soluciones óptimas en un tiempo razonable. 1.XI Referencias Birkin, M.; Clarke, G.; Clarke, M. y Wilson, A. (1996): Intelligent GIS. Londres, GeoInformation International. Carvacho, L. (1998): Evaluación de la estimación de grandes incendios forestales en la cuenca mediterránea europea por redes neuronales y regresión logística. Serie Geográfica, 7: 73-85. Couclelis, H. (1998): Geocomputation in context, en Longley, P.A.; Brooks, S.M.; McDonnell, R. y Macmillan, B. (eds): Geocomputation: A Primer. Chichester, Wiley, 17-30. Diplock, G. y Openshaw, S. (1996): Using simple genetic algorithms to calibrate spatial interaction models. Geographical Analysis, 28: 262-279. Fischer, M.M. y Abrahart, R.J. (2000): Neurocomputing. Tools for geographers, en Openshaw, S. y Abrahart, R.J. (eds): GeoComputation, Londres, Taylor & Francis, 187-217. Gould, P.G. (1994): Neural computing and the AIDS pandemic: the case of Ohio. En Hewitson, B.C. y Crane, R.G. (eds): Neural Nets: Applications in Geography. Dordrecht, Kluwer Academic Publishers, 101-119. Hewitson, B.C. y Crane, R.G. (1994): Precipitation controls in Southern Mexico. En Hewitson, B.C. y Crane, R.G. (eds): Neural Nets: Applications in Geography. Dordrecht, Kluwer Academic Publishers, 121-143. Hilera, J.R. y Martínez, V.J. (1995): Redes Neuronales Artificiales. Madrid, RA-MA. Holland, J.H. (1975): Adaptation in Natural and Artificial Systems. Cambridge, MIT Press. Key, J.R. (1994): Classification of Arctic cloud and sea ice features in multi-spectral satellite data. En Hewitson, B.C. y Crane, R.G. (eds): Neural Nets: Applications in Geography. Dordrecht, Kluwer Academic Publishers, 145-179. Kohonen, T. (1997) Self-Organizing Maps (2ed.). Berlin, Springer. McGinnis, D.L. (1994): Predicting snowfall from synoptic circulation: A comparison of linear regression and neural network. En Hewitson, B.C. y Crane, R.G. (eds): Neural Nets: Applications in Geography. Dordrecht, Kluwer Academic Publishers, 79-99. Openshaw, S. (1988): Building an automated modeling system to explore a universe of spatial interaction models. Geographical Analysis, 20: 31-46. Openshaw, S. y Openshaw, C. (1997): Artificial intelligence in geography. Chichester, Wiley. Openshaw, S. (2000): GeoComputation, en Openshaw, S. y Abrahart, R.J. (eds): GeoComputation. Londres, Taylor & Francis, 1-31. Openshaw, S. y Abrahart, R.J. (eds) (2000): GeoComputation. Londres, Taylor & Francis. Rizzo, D.M. y Dougherty, D.E. (1994): Characterization of aquifer properties using artificial neural networks. Water Resources Research, 30: 483-497. Rumelhart, D.E.; Hinton, G.E. y Williams, R.J. (1986): Learning Representations by Back-Propagating Errors. Nature, 323: 533-536. 1.XII Turton, I.; Openshaw, S. y Diplock, G. (1997): A genetic programming approach to building new spatial models relevant to GIS. En Keme, Z. (ed.): Innovations in GIS 4: Selected Papers from the Fourth National Conference on GIS research UK. Londres, Taylor & Francis, 89-102. Winter, K. y Hewitson, B.C. (1994): Self Organizing Maps. Aplication to census data. En Hewitson, B.C. y Crane, R.G. (eds): Neural Nets: Applications in Geography. Dordrecht, Kluwer Academic Publishers, 71-77. 1.XIII