SIMULACIÓN ANIMADA DE UN ECOSISTEMA NATURAL BASADA EN TÉCNICAS AVANZADAS DE INTELIGENCIA ARTIFICIAL Autor: Rodríguez-Pina Aldama, Daniel. Director: Olivas Varela, José Ángel. Entidad Colaboradora: ICAI – Universidad Pontificia Comillas RESUMEN DEL PROYECTO Un ecosistema es una unidad natural formado por plantas, animales y microorganismos que funciona bajo sus efectos, todo ello sujeto a los factores del medio ambiente. Los organismos reciben como entrada continuamente un conjunto de información tras relacionarse con algunos de los elementos que constituyen el ambiente en el que estos habitan. Los ecosistemas describen cualquier situación donde hay relación entre organismos y su ambiente. Tras el estudio de los ecosistemas se concluye que en un momento de equilibrio cualquier aparición o introducción de nuevos elementos en un ecosistema normalmente tiende a tener un efecto de ruptura brusca. A veces, esto puede llevar al desplome ecológico, en otras palabras, a la muerte de muchas especies que pertenecen al ecosistema en cuestión. A menudo, sin embargo, los ecosistemas tienen la habilidad de sobrevivir a un momento de ruptura brusca. El objetivo del proyecto es la creación de un programa informático que simule de forma animada un ecosistema natural que siga las reglas descritas. Esta simulación informática es un modelado de una situación real para ser estudiada. Cambiando las variables del modelo, se pueden hacer predicciones acerca del comportamiento del ecosistema. De esta forma se pueden conocer las reacciones sin que repercutan en el mundo real. La aplicación que nos ocupa se conoce con el nombre de ecosimulación al ser una simulación de un ecosistema. Tras el proceso de elección de los datos y supuestos iniciales, se pueden probar todo tipo de situaciones posibles y problemas que tras su ejecución se espera den unos resultados similares a lo que podría suceder en un ecosistema presente en el mundo real. Existe una relación directa entre la exactitud de los resultados obtenidos y como de real es el escenario. Mientras más reglas de un ecosistema se consigan implementar, más se podrá confiar en los resultados finales que se obtengan. En la actualidad, gracias a la potencia de los ordenadores y la existencia de lenguajes que ofrecen la capacidad de crear escenarios complejos, la realización de este tipo de simulaciones es más viable. En el proceso de implementación de la simulación, se han creado distintos agentes que van a interactuar entre sí. Estos agentes son animales y plantas, dotados de comportamientos reales y dejados en “libertad”. Para conseguir lo anterior se utiliza la Inteligencia Artificial que pone a nuestra disposición, multitud de técnicas que han servido para lograr este fin. Gran parte del esfuerzo se basa en implementar todas esas técnicas y conseguir que satisfactoriamente los agentes se relacionen entre sí. Como por ejemplo, técnicas de búsqueda heurística o técnicas de matemática borrosa, usadas para solucionar momentos de incertidumbre que se producen durante la simulación. Se entiende por agentes, no solo los animales y plantas, sino también otros muchos posibles objetos sin vida. El ser humano es un importante agente a tener en cuenta y tiene un importante papel en la aplicación de simulación. La simulación se basa en un entorno donde coexisten múltiples tipos de animales y plantas. Cada animal y planta es un agente propio, individual y con características propias que descienden de su tipo. Trabajando con la aplicación se pueden crear simulaciones desde cero, donde el usuario introduce el tipo de animal y elige en qué parte del mundo crearlos. También se da la opción de definir macros, empezar la simulación con determinados animales de cada tipo. O finalmente pasar a la generación aleatoria. En cada momento el usuario puede decidir dinámicamente añadir nuevos agentes al sistema, que entrarán a formar parte de éste en tiempo real. Otra característica es que la velocidad de simulación se puede ajustar. Todo esto es posible gracias al motor gráfico que se ha creado para la aplicación. Dada la posibilidad de crear macros, el usuario puede definir una serie de parámetros de inicio para una simulación y guardarlos. Todos estos macros pueden ser reutilizados para su uso en cualquier otra simulación. Toda la información de las simulaciones se guarda en una base de datos situada en el portal “www.ecosimulacion.es”. El portal es una parte importante del proyecto ya que es el lugar donde el usuario puede estudiar todas las simulaciones que se han producido. El motor de gráficas genera una serie de informes completos, con toda la información necesaria que el usuario necesita para estudiar las simulaciones, una vez terminadas. Otra de las opciones que permite el portal ecosimulación, es ver todos los macros que se han definido. El portal web es también el lugar donde se pueden encontrar todas las aplicaciones del proyecto. Para el desarrollo se ha seguido una metodología de tipo evolutiva. En un ciclo evolutivo se diferencian 5 fases distintas; requerimientos, análisis, diseño, implementación y pruebas. La diferencia es que estas fases se repiten varias veces. Es importante prestar mucha atención en el apartado de pruebas de cada fase. Todos los errores que se descubran deben de ser llevados como requerimientos a la fase siguiente. Así se asegura la calidad del producto final. El proyecto se ha realizado en dos ciclos distintos que siguen la metodología descrita. En el primero se ha trabajado con los requisitos y objetivos primarios. Por otro lado, el segundo ciclo ha estado orientado a añadir toda la funcionalidad que ha dado tiempo respecto a la planificación realizada. De esta forma se ha buscado implementar una base funcional que cumpliera con todas las necesidades principales y a partir de entonces utilizar el tiempo restante para trabajar en todos aquellos objetivos secundarios que se definieron. Para el desarrollo del proyecto se han seguido los siguientes pasos: 1. Análisis de simulaciones existentes 2. Estudio de los ecosistemas 3. Estudio de los agentes, la búsqueda e implementación de los sentidos 4. Diseño del modelo de simulación 5. Diseño del interfaz grafico 6. Implementación del simulador 7. Estudio e implementación del motor de estadísticas 8. Implementación del motor de Macros 9. Integración de todas las aplicaciones 10. Preparación de los escenarios de pruebas 11. Análisis de los resultados de la simulación Además de la simulación realizada y del portal de estadísticas descrito se han implementado otras dos aplicaciones más. La primera de ellas es la aplicación visual de búsqueda que ha servido para estudiar los distintos algoritmos de búsqueda heurística que existen para luego elegir aquel que mejor se adecúa a los conceptos de la simulación. La segunda aplicación se conoce como el juego de los zombis. Esta pequeña simulación en forma de juego ha servido para desarrollar la implementación de los sentidos. Estos algoritmos sirven para su implementación en los agentes. Los algoritmos de los sentidos son complejos y por tanto esta aplicación ha ayudado en el diseño. Por tanto se ha logrado implementar un paquete de simulación completo, finalmente compuesto por distintas aplicaciones. Todas ellas sencillas de usar y accesibles desde el portal web. Esto ha sido posible, en parte, gracias a una correcta planificación del trabajo. ABSTRACT An ecosystem is a natural unit consisting of all plants, animals and micro-organisms in an area functioning together with all of the non-living physical factors of the environment. The inhabitants of an ecosystem receive as entrance continuously an assembly of information after relations with some of the elements that constitute the environment in which they inhabit. The ecosystem describes any situation where there is relation between agents and their environment. After the study of the ecosystems it was concluded that when an external element was introduced to the ecosystem the equilibrium was disturbed. At times, this could lead to the collapse of the system, in other words to the death of many species that belong to the ecosystem. Though oftentimes, the ecosystems have a way of surviving this disruption The objective of the project is the creation of a data processing program that is a simulation of a natural ecosystem including animation and based on the rules described above. This data processing simulation is based on a real situation which is going to be studied. Changing the model variables and predictions about the behavior of the ecosystem can be done. In this way the reactions can be predicted without affecting the real world. The application is known with the name of ecosimulación since it is a simulation of an ecosystem. After obtaining the data and initial information, it is possible to study all kinds of situations that can be potentially tested. After its execution those results can be expected to be similar to those that would happen in the real world. A direct relation exists among the accuracy of the results obtained and how real the setting is. The more rules of the ecosystem that are implemented, the more we can trust the final results obtained. Currently, thanks to the power of computers and the existence of languages that offer the complex capacity to create settings, the execution of this type of simulations is simpler. During the process of implementing the simulation different agents have been created that are going to interact amongst themselves. These agents are animals and plants, and mimic realtime behavior of the same. For these objectives to be accomplished, Artificial Intelligence is utilized. It makes available a multitude of techniques that has been used to achieve this end. A huge amount of effort is focused on implementing all those techniques to obtain a satisfactory relation between the agents. As for example heuristic search or different fuzzy logic techniques, use to solve moments of uncertainty that are produced during the simulation. It has to be understood that agents are not only the animals and plants but also the other possible inanimate objects. It should be kept in mind that the human being is also an agent with an important role in the application of the simulation. The simulation is based on an environment where multiple types of animals and plants coexist. Each animal and plant is an individual agent with its own characteristics. When working with the application, simulations can be created from scratch. The user introduces the type of agent and chooses its position in the layout of the simulation. There is also available the option to define a macros system, i.e. to begin the simulation with a determined number of animals of each type. Or finally the user can choose to start by ‘random generation’. At any moment the user can decide to dynamically add new agents to the system that will become a part of this real-time environment. Another characteristic is that the speed of simulation can be adjusted. The user can decide to increase or decrease the speed at any time. All this is possible thanks to the graphic engine that has been created for the application. Given the possibility to create macros, the user can define a series of starting parameter for the simulation and save them. These macros can then be reused for other simulations. All the information of the simulations is kept in a database situated in the “www.ecosimulacion.es” server. This server is an important part of the project since it is the place where the user can study all the simulations that have been produced. The graphics engine generates a series of complete reports with all the necessary information that the user can use to study the simulations once finished. Another option that the server permits is to view all the macros that have been defined. The server is also the place where all the project applications can be found. For the development of this project an evolutionary methodology has been followed. In this methodology there are 5 different stages; requests, analysis, design, implementation and testing. The difference is that these stages are repeated several times. In the first phase a functional skeleton has been obtained, that has been used in the following phases. It is important to pay close attention to the testing of each stage. All the discovered errors should be carried as requests to the following stage. Thus the quality of the final product is assured. The project has been carried out in two different cycles based on the methodology described. In the first one the requirements and primary objectives have been accomplished. In the second cycle all the functionalities are added with extra time according to plan. In this way the functional base has been implemented, with the ability to accomplish all the main requirements and then utilize the extra time to add all the secondary objectives that were defined. For the development of the project the following steps have been followed: 1. Analysis of existing simulations 2. Study of the ecosystems 3. Study of the agents, the search and implementation of the senses 4. Design of the simulation model 5. Design of the GUIs 6. Implementation of the simulation model 7. Study and implementation of the statistics engine 8. Implementation of the Macros engine 9. Integration of all the applications 10. Preparation of the test settings 11. Analysis of the simulation results Besides the simulation which was carried out and the statistics engine described above, two more applications have been implemented. The first one is a visual application for searching that has served to investigate the different heuristics search algorithms that exist. This was also useful in order to choose which one is better adapted to the concepts of the simulation. The other application that has been implemented is known as the zombies’ game. This application implemented as a game has served to develop the implementation of the senses. These algorithms serve have been used in all the simulation agents. The algorithms of the senses are complex and therefore this application has helped in the design. To sum up, a simulation package has been designed, all of it composed by many different applications. These are public and stored in the project website. All this work has been possible, partly, to a correct planning of the work.