Simulación basada en agentes reactivos
1999
Los metodos de modelado analitico clasicos definen un modelo matematico (deterministico o estocastico) que describe la dinamica del sistema, y luego existe una resolucion numerica del conjunto de ecuaciones planteado. Este enfoque, da logicamente, mayor importancia a la precision en los resultados y a la eficiencia en tiempo. Pero en general, no son adecuadamente atendidas cuestiones relativas a como disei'iar una arquitectura de simulacion, que pueda ser adaptada ante posibles cambios en la especificacion del problema, y que sus componentes puedan ser reutilizados en otros modelos de simulacion similares. En este trabajo se propone un framework (Bubble), para construir modelos de simulacion de procesos colectivos utilizando un enfoque multiagente. El objetivo del framework es permitir definir y organizar conjuntos de agentes reactivos, que interaccionen entre ellos a traves de eventos, dando lugar a determinados comportamientos colectivos que tienen aplicacion en la simulacion de procesos. Se ha desarrollado como ejemplo base, una simulacion de flujo de fluidos en 2 fases, donde se analizan las perspectivas del enfoque. 1. Simulacion e Ingenieria de Software La simulacion aparece como una alternativa para el estudio de distintas situaciones: problemas de optimizacion, comportamientos transitorios en modelos dinamicos, problemas de la vida real que contienen ciertos elementos de in certeza, etc. En este campo han surgido distintos enfoques para llevar a cabo estas simulaciones, que utilizan la computadora como herramienta de calculo. Estos enfoques se han ocupado principalmente de cuestiones tales como eficiencia en tiempo y precision en los resultados. Sin embargo, no se ha dado tanta importancia a aspectos relacionados con el proceso de diseno y escritura de software de simulacion. En la practica, existen muchos problemas (por ejemplo el funcionamiento de una planta industrial con flujo de fluidos) que involucran gran cantidad de parametros, restricciones y optimizaciones, que varian con el tiempo, lo cual lleva a problemas dificiles de manejar con las tecnicas de simulacion clasicas. Por otra parte, existen situaciones donde es costoso, peligroso y hasta imposible realizar experimentos sobre sistemas reales. Por esta razon, se hace necesario un estudio de alternativas de simulacion para estos procesos, a fin de evaluar resultados, tomar decisiones y llevar a cabo acciones de control. Para el modelado, es comun que en primera instancia se haga una abstraccion bastante simple del problema, que luego se va complicando con el agregado de nuevas caracteristicas. No obstante, no resulta sencillo disenar una arquitectura de software, que pueda ser adaptada ante posibles cambios en la especificacion del problema, y que sus componentes puedan ser reutilizados en otros modelos de simulacion similares. A menudo se emplea una gran cantidad de esfuerzo construyendo software experimental para simular distintos fenomenos, pero el producto resulta pobre desde el punto de vista de la Simulacion basada en Agentes Reactivos produccion de software reusable y flexible. Estos modelos computacionales "hechos a medida", suelen presentar problemas tales como: • Duplicacion del esfuerzo de desarrollo. • Software muy especifico, donde se complica realizar variaciones en los requerimientos. • Dificultad para comparar resultados y reproducir situaciones. • Complejidad de uso del software, para usuarios sin conocimientos especificos. • Problemas para realizar un diseno de alto nivel de los componentes esenciales del modelo. • Decisiones de diseno que no estan bien documentadas, lo cual perjudica la comunicacion entre grupos de trabajo. En los ultimos anos, se ha propuesto una nueva variante de simulacion computacional denominada simulacion multiagente [DrogouI92], que se encuentra relacionada con el surgimiento de nuevas tecnologias en ingenieria de software, como la orientacion a objetos y el concepto de agentes [Meyer97][Shoham93]. Tambien resulta valioso desde el punto de vista de simulacion, la introduccion del concepto de "vida artificial" [Langton91][Gutowitz95]. La combinacion de estas tecnologias conduce naturalmente a la construccion de un framework para simulacion, como una alternativa para solucionar los problemas descriptos anteriormente. Unframework permite reusar tanto diseno como codigo [Johnson97]. En este trabajo se presenta un framework (Bubble) implementado en Java, para construir modelos de simulacion de sistemas complejos. Los objetivos centrales de Bubble son la provision de un soporte reusable que permita: • Realizar distintos tipos de simulaciones, variando la geometria del modelo. • Proporcionar extensibilidad y flexibilidad, para permitir agregar facilmente nuevos componentes y remover o mejorar los ya existentes. • Contar con componentes reusables en otros modelos de simulacion similares. • Modelar un determinado problema a diferentes niveles de abstraccion. • Integrar al modelo de simulacion, herramientas de visualizacion, recoleccion de datos, inspeccion, etc. 2. Bubble: Un framework para simulacion utilizando Agentes Reactivos El objetivo de Bubble es permitir definir y organizar conjuntos de agentes reactivos para modelar un problema complejo, y obtener una simulacion cuya evolucion se obtenga a partir de la interaccion entre estos agentes. . Los agentes reactivos constituyen las unidades basicas de la simulacion, y se caracterizan por un estado interno y un conjunto de tareas a ejecutar. Tambien pueden existir agentes que contengan grupos de agentes en su interior, con lo cual pueden. realizarse modelamientos a distintos niveles de abstraccion utilizando estructuras jerarquicas de agentes. El mecanismo de interaccion entre los agentes reactivos se realiza a traves de eventos, que los agentes emiten y/o reciben. Los agentes poseen sensores asociados, que se pueden registrar por los distintos eventos de interes que deseen recibir. Existe un mecanismo de invocacion implicita, que permite que los agentes sean notificados de los eventos a traves de sus sensores [Shaw96]. Simulacion basada en Agentes Reactivos 3 El comportamiento de los agentes se define a traves de un conjunto de tareas, cada una de las cuales se organiza segun un esquema precondicion-accion. Una tarea define una serie de acciones a ejecutar por un agente cuando se satisfacen ciertas precondiciones (relacionadas con el estado interno del agente y los eventos recibidos) . Tambien se pueden definir tareas compuestas que encapsulen una determinada red de tareas ya existentes, esto permite componer y relacionar diferentes comportamientos. El framework permite tambien, el agregado de agentes encargados de otros aspectos de la simulacion, como por ejemplo visualizacion y recoleccion de informacion estadistica. evento, pues su sensor no esta registrado para captarlo
Keywords:
- Correction
- Source
- Cite
- Save
- Machine Reading By IdeaReader
1
References
0
Citations
NaN
KQI