Para el trabajo con este sistema debe proveerse la información del terreno. Esta información debe estar en el fichero Terrain.map situado en la carpeta Data. Este es un fichero texto que divide su información en fragmentos a los cuales se ha asociado un valor numérico para identificarlo:
Punto de entrada de los invasores 1
Obstáculos (alambradas, …) 2
Minas 3 Edificaciones 4
Lugares seguros del terreno 5
Cámara 6 Punto a defender de las tropas enemigas 7
Estructura de los pelotones 8
Fin de la información 0
El “punto de entrada de los invasores” queda definido por dos valores, la coordenada X e Y de su posición en el terreno.
El fragmento de “obstáculos” está encabezado por la cantidad de obstáculos, a continuación aparecen los datos de cada uno de éstos: coordenada X, coordenada Y, tipo de obstáculo, ancho, alto, largo y ángulo formado con el Norte.
El fragmento de las “minas” posee una estructura similar, primero aparece la cantidad de minas, seguido de los datos de cada una: coordenada X, coordenada Y, y tipo. El fragmento de las “edificaciones” es igual al de los obstáculos pero sin el campo tipo dentro de los datos de los objetos.
Los “lugares seguros del terreno” es similar, los datos de cada objeto son: coordenada X, coordenada Y, seguridad que ofrece a los soldados.
El fragmento de la “cámara” está compuesto por nueve valores: los tres primeros definen la posición en el espacio de la cámara, los tres siguientes el foco, y los tres últimos representan un vector perpendicular al plano horizontal de la cámara.
El “punto a defender de las tropas enemigas” está definido por: coordenada X, coordenada Y, ancho, alto y largo.
El fragmento de la “estructura de los pelotones” está encabezado por la cantidad de pelotones de las tropas invasoras, a continuación debe aparecer la información de cada pelotón incluyendo el pelotón de las tropas de la defensa que debe aparecer al final. De cada pelotón debe aparecer el número de escuadras que lo forma, seguido del tipo de cada una de estas escuadras.
Además debe ser proveído el conocimiento táctico que regirá el comportamiento de las unidades de combate. Este conocimiento está descrito en el fichero Agentes.xpl
que se encuentra en la carpeta Agents.
Antes de iniciar el sistema debe asegurarse que el fichero MASState.stat exista en la carpeta Agents, este fichero contiene el estado del sistema multiagente después de ser entrenado en el terreno definido en Terrain.map. Si este fichero no existe porque el terreno haya sido definido con una nueva estructura, debe ser ejecutado el programa
Trainer.exe que se encuentra con el sistema para generar el fichero MASState.stat. Este ejecutable produce además el fichero MASTrainingError.err que contiene un rastro de los errores que se han ido cometiendo en el proceso de entrenamiento, ésta puede ser una medida del progreso de este largo proceso para el usuario.
Además puede ser definida la resolución de la pantalla con que correrá la aplicación en el fichero Screen.cfg situado en la carpeta Resolution. Este fichero no es necesario, en el caso de no aparecer el sistema correrá con una resolución de pantalla de 800x600 píxel.
La interfaz del sistema es muy sencilla, se muestra un ejemplo en la figura 3.1. Figura 3.1. Interfaz del sistema de simulación con el usuario.
Mientras se muestran los resultados de la simulación, en la zona inferior se muestra información sobre el estado de las unidades, se muestran cuatro barras que representan el porciento de soldados vivos de cada uno de los ejércitos, así como el porciento de municiones restantes de los mismos. Además se muestra la última orden que emitió cada jefe de pelotón.
A la derecha se brindan un conjunto de controles que pueden ayudar a captar mejor la información. Se brindan dos botones en la zona superior, el de la izquierda para cerrar la aplicación, el de la derecha para pausar o continuar la simulación.
Los cinco botones inferiores permiten mover la cámara hacia arriba abajo o a los lados, el que se encuentra situado en el centro permite restaurar las condiciones
iniciales de la misma. Los dos botones siguientes pueden acercar o alejar la cámara, y los siguientes cuatro sirven para rotarla hacia arriba, hacia abajo y hacia los lados. Los dos botones restantes aceleran o desaceleran el proceso de simulación (debe tenerse cuidado con esta facilidad, al acelerar la simulación los intervalos de tiempo de la simulación se alargan).
Finalmente se brinda una leyenda de los colores usados para cada objeto del terreno. Figura 3.2. Visualización de las propiedades de los objetos
Para saber los atributos de alguno de estos objetos basta un clic sobre el que se desee y el sistema mostrará una ventana en la esquina inferior izquierda de la pantalla con los datos del objeto seleccionado como se puede ver en la figura 3.2.
Este software permite, en un terreno dado con determinadas condiciones, simular la defensa ante un ataque enemigo. Permite hacer varios experimentos variando el terreno, la estructura de las tropas y el armamento. De esta manera se puede estimar con qué cantidad de soldados y armas se puede enfrentar un ataque enemigo, resultando un software con utilidad militar.
Conclusiones
En este trabajo se hizo un estudio de la teoría de sistemas multiagentes y aprendizaje reforzado como una técnica de comunicación en estos sistemas. Se hizo una revisión de los trabajos realizados hasta el momento con estas técnicas para la simulación de aplicaciones.
Se implementó una jerarquía de clases para facilitar el trabajo con ambiente multiagente basada en aprendizaje reforzado extensible a otros sistemas.
Se diseñó e implementó un sistema multiagente que simula la defensa de un edificio ante un ataque enemigo con las siguientes características:
• Basado en la jerarquía de clases implementada
• Se diseñaron tres tipos de agente basados en reglas usando Programación Lógica y C++
• Los agentes colaboran mediante las técnicas de comunicación: transmisor- receptor y aprendizaje reforzado
• Permite variar las condiciones iniciales (terreno, características de las tropas invasoras y defensoras)
Se implementó un conjunto de objetos para el trabajo de la interfaz visual de la simulación basados en OpenGL.
Recomendaciones
• Usar esta herramienta para el desarrollo de otros sistemas que necesiten ambientes multiagente que se ajusten a este modelo, como aplicaciones para bioinformática.
• Extender este sistema de manera que el proceso de entrenamiento utilice técnicas de programación paralela para agilizar el mismo.
• Mejorar la interfaz para permitir más interacción con el usuario.
Referencias bibliográficas
ASADA, M., TAKAHASHI, Y. & HOSODA, K. (1996) Reasonable performance in less learning time by real robot based on incremental state space
segmentation. IEEE/RSJ International Conference on Intelligent Robots and Systems.
ASADA, M., UCHIBE, E. & HOSODA, K. (1996) Behavior Coordination for a Mobile Robot Using Modular Reinforcement Learning. IEEE/RSJ International Conference on Intelligent Robots and Systems.
BEASLEY, G. (2001) Solutions for the Electronic Imaging Professional.
CALFEE, S. H. & ROWE, N. C. (2005) Multi-Agent Simulation of Human Behavior in Naval Air Defense. Naval Engineers' Journal.
CARRERAS, M. (1996) A Proposal of a Behavior-based Control Architecture with Reinforcement Learning for an Autonomous Underwater Robot.
COULOM, R. (2002) Feedforward Neural Networks in Reinforcement Learning Applied to High-dimensional Motor Control. ALT2002.
DIETTERICH, T. & ZHANG, W. (1995) A Reinforcement Learning Approach to Job-shop Scheduling. IJCAI95.
ERNST, D. (2005) Selecting concise sets of samples for a reinforcement learning agent. CIRAS 2005.
ERNST, D., STAN, G. B., GONCALVES, J. & WEHENKEL, L. (2006) Clinical data based optimal STI strategies for HIV: a reinforcement learning approach.
Benelearn 2006. Ghent, Belgium.
FERBER, J. (1999) Multi-Agent Systems, Addison-Wesley.
FERNANDEZ, F. & BORRAJO, D. (1999) Vector Quantization Applied to
Reinforcement Learning. IJCAI'99 Fifth Workshop on RoboCup. Estocolmo, Suecia.
GHORY, I. (2004) Reinforcement Learning in Board Games. IN SCIENCE, D. O. C. (Ed.) CSTR-04-004. Australia, University of Bristol.
GRONLUND, L. & WRIGHT, D. (2004) Missile Defense Agency Confusing Video Games with Reality.
HAMILTON, J. A., GREANEY, K. J. & EVANS, G. (2004) Simulation Software Vulnerability Assessment for Coalition Interoperability. European Simulation Interoperability Workshop. Edinburgo, Escocia.
K. NUMRICH, S., F. WILSON, L., M. UHRMACHER, A. & GELENBE, E. (2000) Agent-directed simulation_challenges to meet defense and civilian
requirements. IN A. JOINES, J., R. BARTON, R., KANG, K. & A. FISHWICK, P. (Eds.) Winter Simulation Conference. Gebze, Kocaeli,
Turquía, Turkish Science and Technical Research Council, Marmara Research Center Information Technologies Research Institute.
KALMAR, Z., SZEPESVARI, C. & LORINCZ, A. (1998) Module-Based Reinforcement Learning for a Real Robot. 6th European Workshop on Learning Robots. Lecture Notes in AI.
KIRIAZOV, P. (2001) Learning Robots to Move: Biological Control Concepts. IN BERNS, E. K. & DILLMAN, R. (Eds.) 4th CLAWAR Conf. on Climbing and Walking Robots, Sept. 2001. Karlsruhe, Alemania, Professional Engineering Publishing Ltd.
MORENO, C. R. (1972) Modelación y Simulación.
RUSSEL, S. J. & NORVING, P. (1995) Artificial intelligence: A modern approach, Prentice-Hall International.
SANDJAI, B. (2002) Markov Decision Processes: the control of high-dimensional systems. Amsterdam, Vrije Universiteit.
SHELDON, M. R. (1999) Simulación.
SRIDHAR, M., MARCHALLECK, N., DAS, T. & GOSAVI, A. (1997) Self- Improving Factory Simulation using Continuous-Time Average-Reward Reinforcement Learning. 14th International Conference on Machine Learning (IMLC '97). Nashville.
STRENS, M. (2003) Learning Multi-Agent Search Strategies. The Interdisciplinary Journal of Artificial Intelligence and the Simulation of Behaviour, 1(4). SYAFIIE, S., TADEO, F. & MARTINEZ, E. (2005) Model Free Intelligent Control
Using Reinforcement Learning and Temporal Abstraction-applied to pH Control. IFAC 2005.
TUMER, K. & WOLPERT, D. (2000) Collective Intelligence and Braess' Paradox.
AAAI 2000. Austin.
VERBEECK, K. (2004) Coordinated Exploration in Multi-agent Reinforcement Learning. Computational Modeling Lab. Brussel, Vrije University Brussel. VERBEECK, K., NOWÉ, A. & TUYLS, K. (2005) Coordinated exploration in multi-
agent reinforcement learning: an application to load-balancing. AAMAS 2005.
WALKER, M. (2000) An Application of Reinforcement Learning to Dialogue Strategy Selection in a Spoken Dialogue System for Email. Journal of Artificial Intelligence Research, 12, 387-416.
WATKINS, J. (1989) EADSIM Executive Summary.
YILMAZ, L. (2004) 2003-2004 Annual Report. Auburn, The Auburn Modeling and Simulation Laboratory of the M&SNet Computer Science & Engineering, College of Engineering, Auburn University.