Galatea: una historia de modelado y simulacion

Galatea: a modelling and simulation story

Uzcategui, Mayerlin; Davila, Jacinto; Tucci, Kay

Centro de Simulacion y Modelos.

Facultad de Ingenier a. Universidad de Los Andes.

Merida - Venezuela.

Resumen

Galatea es una plataforma libre para simulacion de sistemas multi-agente que incorpora estrategias de simulacion bien conocidas y con la cual cualquier modelista o simulista puede ensayar esas estrategias sobre problemas de simulacion de sistemas complejos. La historia de Galatea comienza mucho antes que se planteara formalmente el proyecto con ese nombre. En 1993, el entonces muy joven Centro de Simulacion, CESIMO, propone un proyecto para explorar la reimplementacion de Glider sobre una plataforma orientada a objetos dando origen a un prototipo experimental. El problema del cambio estructural, inspirado por investigaciones en econom a, se hab a convertido entonces en uno de los objetivos de investigacion fundamentales del CESIMO y vendr a a dictar tambien la pauta para Galatea. La nocion de agente hizo su aparicion en algunos reportes en los que se enfatizaba su importancia para modelar sistemas complejos como una econom a nacional. En 1998, coincidiendo con el proceso fundacional del postgrado en modelado y simulacion en la Universidad de Los Andes, se planteo la posibilidad de integrar Glider con herramientas de inteligencia arti cial para modelar agentes. En el 2000, un proyecto vendr a a combinar aquel prototipo de 1993, con una teor a de agentes basada en logica computacional que se planeaba integrar en una nueva teor a de simulacion de sistemas multi-agentes. All nacio Galatea. El logro fundamental para el proyecto, sin embargo, llegar a con las aplicaciones. En 2004, Galatea fue incorporada al conjunto de camas de prueba de un proyecto en biocomplejidad. Las lecciones aprendidas desde entonces, los aportes particulares del proyecto, as como los desaciertos y caminos futuros, son discutidos en este documento.

Palabras Clave: software, simulacion, agentes

Abstract

Galatea is free and open source software for multi-agent, DEVS simulations. The platform integrates well-known, and some experimental simultation strategies to allow any modelist or simulist to use them to solve problems involving simulations of complex systems. The history of Galatea precedes its naming. In 1993, the new Centre For Modelling and Simulation, started a project to migrate the simulation system Glider to a object-oriented platform leading to a functional prototype. The problem of Structural Change, identi ed by the economists, had become a research target for CESIMO and it also did for Galatea. The notion of agent appeared in some internal reports amid the insistence upon its importance as an abstract tool to model systems as complex as a national economy. In 1998, by the time of the foundation of the graduate program in modelling and simulation at Universidad de Los Andes, there was a proposal to integrate Glider with some Arti cial Intelligence developments to model agents. In 2000, that proposal became a project aimed to combine the 1993 prototype with the agent modelling proposal to produce a multi-agent simulation theory that serve as the speci cation of a new simulation platform. At that time, Galatea was born. However, the real achievements started to be obtained in 2004, when Galatea was considered, among other tools, as a test-bed for a biocomplexity international project. The lessons learnt ever since, other achievements, strategic mistakes and future developments are all discussed in this paper.

Keywords: software, simulation, agents

Laboratorio SUMA, Facultad de Ciencias, Universidad de Los Andes. Merida - Venezuela.

Un rastreo en Internet o en servicios electronicos bibliogra cos de los terminos \software"y \simula- cion"devuelve millones de referencias1. Suponer que hay cientos de miles de sistemas de software para simulacion no parece una exageracion. No obstante, ese orden de magnitud en la cantidad de soluciones es todav a n mo comparado con la cantidad de problemas diferentes so- bre los que se considera util la simulacion, sin mencio- nar que muchos de esos desarrollos no estan al alcance de cualquiera. As que parece seguro asumir que hay mucho trabajo de desarrollo pendiente y eso, en s mis- mo, permitir a justi car un nuevo proyecto. Desde luego que hace 10 a~nos, la situacion era mucho peor. Pero la justi cacion basica para emprender el proyecto Galatea no fue esa solamente. La meta primera fue contar con una pieza de software integral, es decir, que incorporara todas las estrategias de simulacion que se propusieran, especialmente de origen local, y con la cual cualquier modelista o simulista pudiera ensayar esas estrategias sobre problemas de simulacion de sistemas complejos.

Ese ambicioso objetivo se ha venido cumpliendo

paulatinamente. Galatea es una plataforma libre
para simulacion de eventos discretos, DEVS, con
una semantica basada a una red de nodos como
metafora del sistema a simular, la misma semantica
matr z del sistema Glider (Domingo y Hernandez, 1985;
Domingo, 1988; Domingo et al., 1993; Domingo, 1995;
Domingo et al., 1996), el proyecto paterno local,

que fuera formalizada como parte del nuevo pro-

yecto (Davila y Tucci, 2000; Davila y Tucci, 2002;
Davila, Uzcategui y Tucci, 2005) y luego generalizada

para re-acomodar la simulacion continua, la simulacion de sistemas multi-agentes (Moreno et al., 2007) y la

simulacion distribu da (Davila et al., 2005), simula-
cion con automatas celulares (Uzcategui et al., 2000;
Uzcategui et al., 2002; Quintero et al., 2004) y simu-
lacion con modelos expl citos del espacio geogra co
o urbano (La aille et al., 2005). En Galatea, no solo
se ha formalizado la semantica Glider, sino que se ha

reimplementado desde cero el software, sobre platafor- mas que, a nuestro juicio, facilitan extensiones futuras en muy diversas direcciones gracias a su popularidad,

apertura y distribucion.

1. La historia de Galatea

La historia de Galatea, como suele suceder, co-

mienza mucho antes que se planteara formalmente
el proyecto con ese nombre. En 1993, el enton-

ces muy joven Centro de Simulacion, CESIMO, pro- pone un proyecto para explorar la re-implementacion de Glider sobre una plataforma orientada a objetos (Tonella et al., 1993). Ese proyecto se convierte en un prototipo de Glider sobre C++ (Tucci, 1993) que in- cluyo un dise~no de las estructuras de datos basicas para simulacion de eventos discretos, DEVS, tales co- mo objetos y clases, considerados ya entonces como fundamentales para un simulador del cambio estruc- tural (Teran, 1994; Domingo et al., 1996; Palm, 1999; Domingo et al., 1996; Domingo y Tonella, 2000). El problema del cambio estructural, inspirado por inves- tigaciones en econom a, se hab a convertido en uno de los objetivos de investigacion fundamentales del CESI- MO (Domingo y Tonella, 2000; Domingo et al., 1995) y vendr a a dictar tambien la pauta para Galatea. En va- rios seminarios y cursos del centro se discutio la necesi- dad de una conceptualizacion alternativa que permitiera representar la dinamica de sistemas que contienen mo- delos parciales de ellos mismos, es decir, los sistemas endomor cos (Zeigler, 1990). Ademas, deber a manejar conocimiento alternativo y tener capacidad para cambiar la estructura del propio sistema. La nocion de agente, tambien llamados actores, hizo su aparicion en algunos reportes en los que se enfatizaba su importancia para modelar sistemas complejos como una econom a nacio- nal2. Coincidiendo con el proceso fundacional del post- grado en modelado y simulacion en la Universidad de Los Andes, a nales de los 90s, se planteo la posibilidad de integrar Glider con herramientas de inteligencia arti -

cial para modelar agentes (Davila, 1997). En el 2000, un
proyecto   (Uzcategui, 2002; Davila y Uzcategui, 2000;
Davila y Uzcategui, 2002) vendr a a combinar aquel
prototipo de 1993, con una teor a de agentes
basada   en logica   computacional desarrollada en
(Davila, 1997) y que se planeaba integrar en una

nueva teor a de simulacion de sistemas multi-agentes (Davila, Uzcategui y Tucci, 2005). All nacio Galatea.

1 En Google, los terminos software y simulacion, en ese or- El logro fundamental para el proyecto, sin embargo,
       
den, dan aproximadamente 1.200.000 resultados (0,33 se- llegar a con las aplicaciones. En 2004, Galatea fue in-
gundos), mientras que simulation software, da Aproxima-
corporada al conjunto de camas de prueba de un pro-
damente 32.800.000 resultados (0,32 segundos). En Yahoo
yecto en biocomplejidad (Biocomplexity Group, 2002;
(www.yahoo.com) son 4,090,025 para la primera y 98,500,936
Moreno et al., 2007; Quintero et al., 2004), con el pro-
para la segunda. En Bing (www.bing.com), son 241.000 y
23.500.000 respectivamente. El metabuscador Monstercrawler posito de servir como herramienta base para el desarro-
(www.monstercrawler.com) devuelve 81 y 70. MetaCrawler
   
(http://www.metacrawler.com) da 79 y 69. De nuevo en Goo-    
gle, software, simulacion y agentes sube la colecta a aproxima-    
damente 3.430.000 resultados (0,37 segundos). Mientras que la    
combinacion Agents, simulation y software da aproximadamen- 2 Por ejemplo en el Modelo del Proceso de Apertura Petrolera.
te 1.610.000 resultados (0,29 segundos).       http://cesimo.ing.ula.ve/MAPEV.

llo de un simulador de un sistema biocomplejo. Para atender el proyecto, se desarrollo una version de Gala- tea con un sistema de agentes totalmente desarrollado en Java y el simulador fue integrado con otra herramienta de desarrollo local: el SpaSim (Moreno et al., 2002), que es una biblioteca API (Java library) para construir mo- delos espaciales con automatas celulares. Galatea y su teor a de agentes representados en una forma de logica computacional fueron particularmente utiles para aten- der las especi cidades de un modelo de simulacion de una reserva forestal venezolana. En particular, la ca- rencia de datos precisos del comportamiento historico

de los agentes fue compensada con reglas de conducta que pueden ser informalmente validadas por conocedo- res del sistema real, aun cuando no tengan mucha expe- riencia en lenguajes de programacion de computadores (Moreno et al., 2007; Acevedo et al., 2008).

2. La arquitectura de la plataforma Galatea

El camino desde el dise~no hasta la implementacion ha sido tortuoso. Incluso partiendo de una especi ca- cion matematica, que supone una cierta claridad de los objetivos de desarrollo, convocar el esfuerzo de los pro- gramadores no ha sido facil. La eleccion del sistema base: la plataforma Java, siempre rodeada de polemica, ha quedado ampliamente justi cada. Necesitabamos un lenguaje de nivel medio-bajo (en el eje entre la maquina

y el usuario), que nos aislara de las especi cidades del hardware particular, pero que nos permitiera su cienteexibilidad para la indispensable optimizacion del simu- lador, a bajo nivel, sobre una maquina (en este caso una maquina virtual) o muchas maquinas en una red. Otras virtudes que se le suelen atribuir a Java: como portabili- dad y seguridad, han contribuido pero no han sido esen- ciales. En cambio es su condicion de lenguaje matriz con sintaxis C, lo que ha resultado mas util como base para el desarrollo de otro lenguaje, esta vez espec co para simulacion, al que denominamos lenguaje Galatea. La sintaxis del lenguaje Galatea es, de hecho, una mezcla de la sintaxis Glider, las estructuras basicas de Java reem- plazando a Pascal (que fue el lenguaje matriz de Glider) y las reglas de conducta de los agentes escritas en los lenguajes de programacion logica Actilog (Davila, 2003) y OpenLog (Davila, 1999). La compleja semantica de Galatea establece que el codigo Java sea compilado y ejecutado por el motor de simulacion de eventos discre- tos, mientras que las reglas de los agentes son interpre- tadas por un motor de inferencia implementado sobre una maquina Prolog (Davila y Uzcategui, 2004).

Esa combinacion de lenguajes y el nivel de desarrollo ha hecho mas dif cil convocar el apoyo de nuevos pro- gramadores, al punto que ya esta institucionalizado el proceso de formacion previo a la realizacion de cada tra- bajo academico. Los programadores reciben instruccion en Java y en Prolog bien enfocada en torno a las apli-

caciones y a una coleccion de ejemplos: la modeloteca, originalmente herencia Glider, que se ha convertido en la herramienta instruccional fundamental.

La modeloteca es una coleccion de ejemplos con mode- los de simulacion de diversos sistemas. Se la puede con- sultar directamente en el repositorio Galatea, bajo los di- rectorios demos y contrib3. La primera implementacion de algunos ejemplos migrados manualmente desde Gli- der se muestra en (Uzcategui, 2002). En (Vivas, 2008) se re ere un esfuerzo por generalizar el concepto de la modeloteca en torno a la idea de plantillas de mode- los o metamodelos, mientras que en (La aille, 2005), el concepto de metamodelo incluye, ademas de esas plan- tillas para generar modelos, a toda la biblioteca con software de soporte para el modelado y simulacion de

un tipo espec co de sistemas, en ese caso modelos
de movilidad en espacios geogra cos o urbanos. All

nacio gSpace (La aille, 2005; La aille et al., 2005), la \librer a" originalmente usada para modelos de espa- cios urbanos y simulacion de desalojos (La aille, 2005; La aille et al., 2005; La aille et al., 2008), pero que tambien ha sido aplicada recientemente al modelado y simulacion de la movilidad vehicular (Perez, 2010).

Como esperabamos, esa combinacion de varios len- guajes ha signi cado un desaf o particularmente dif cil para el desarrollo de los traductores y compiladores. El primer esfuerzo de codi cacion del compilador des- de la sintaxis Glider modi cada a Galatea se realizo en (Vargas, 2003) y es profundizo luego en (Ramos, 2006). Pero la leccion principal en esa direccion es que el desa- rrollo de los traductores es un trabajo delicado que debe ser asumido por un grupo de consulta permanente. En Galatea se le denomina la comision de sintaxis y se reune periodicamente para acordar cambios a la sintaxis, des- de luego, siempre conectados con la semantica de toda la plataforma. Todav a no se cuenta con un traductor completo para el lenguaje Galatea, pero se esta bastante cerca del desarrollo del compilador que traduce a codigo Java y ya existe el interpretador de los lenguajes de pro- gramacion logica sobre Prolog. Ademas, se ha explorado la posibilidad de traducir todos los codigos al mismo len- guaje base Java. En (Amaya 2003) se desarrollo un tra- ductor automatico de codigo Prolog a Java, ProgtoJav (Amaya y Davila, 2009), con el cual se podr a desplegar toda la plataforma sobre un solo sistema base optimiza- do para ejecucion. Una conclusion de ese trabajo, sin embargo, es que la plataforma mixta, que \corre" sobre las maquinas virtuales de Java y Prolog, es su ciente para soportar aplicaciones de mediana envergadura.

3 El repositorio Galatea funciona con el sistema de
control de versiones Subversion y se le puede re-

visar en l nea desde http://galatea.sourceforge.net y http://galatea.svn.sourceforge.net/viewvc/galatea/

3. Modelos de sistemas dinamicos.

Un aspecto que continua siendo muy novedoso en Ga- latea es la plataforma multi-agente. El simulador con- vencional DEVS ha sido integrado con una capacidad para lanzar procesos o corutinas para cada agente en la simulacion. Cada uno de esos procesos o corutinas se ocupa de la dinamica interna del cada agente y se tiene mas de una forma de implementarla. Una im- plementacion pura en Java con un motor de inferen- cia muy elemental, apropiado para agentes reactivos, se empleo en (Ablan et al., 2003; Moreno et al., 2007; Quintero et al., 2004). Pero tambien se cuenta con una implementacion que emplea la maquina Prolog para pro- veer a cada agente de un motor de inferencia que pue- de usar como sistema de plani cacion de sus acciones. Esta es una implementacion que puede admitir agen- tes reactivos, pero tambien agentes proactivos que pla- ni can sus acciones en procura de metas de alto nivel (Davila, 2009).

La plataforma multi-agente se ha prestado para expe- rimentos innovadores de simulacion. En (Gomez, 2002; Gomez, 2005), el simulador es transformado en una maquina distribuida, con un procesador real al servicio de cada agente en la realizacion de simulaciones multi- agentes. Ese esfuerzo se ha convertido en una buena carta a jugar cuandoquiera que algun sistema a simular exija mayores recursos de computo en virtud de su com- plejidad. Siempre sera posible distribuir a los agentes entre varios procesadores, sin mencionar que el propio simulador DEVS podr a aprovechar calculos en parale- lo. De hecho, en (D az, 2002), Galatea se conecta con Grass, un conocido sistema de informacion geogra ca (GIS) libre. Ese trabajo fue un primer esfuerzo en la direccion a integrar la simulacion con la gestion de in- formacion geogra ca. El simulador se conecta, mediante un API de consulta y actualizacion, con la base de datos geogra ca que gestiona el GIS.

Algunos de nuestros experimentos con sistemas multi- agentes precedieron a Galatea y fueron implementados sobre Glider. En (Contreras, 1999), se modelo un siste- ma de transporte publico local con usuarios y veh culos, mientras que en (Ferrer, 2003), el concepto de agente fue incorporado a los modelos de simulacion de una empresa de desarrollo de software y de una institucion educativa en los cuales las creencias de los agentes, incluyendo sus ontolog as, fueron expl citamente representados y pro- bado en Prolog. Tambien antes de tener la capacidad multi-agente, Galatea fue usada en (Lopez, 2003) para implementar un alineador de secuencias de ADN usando un mecanismo de optimizacion basado en un algoritmo genetico. Esos experimentos contribuyeron a mostrar la necesidad y a probar la factibilidad de una plataforma integrada para simulacion.

Otra aproximacion al modelado multi-agente fue posi- ble incluso con Galatea antes de que tuviese incorporado

el simulador multi-agentes. En (Grisol a, 2003) se codi-co, en Java y para el simulador DEVS de Galatea, una version completa de un modelo de simulacion de la eco- nom a de Venezuela, original del Prof. Carlos Domingo, quien lo codi co originalmente en Glider; convirtiendolo en un juego de simulacion. Este modelo-juego permi- te que los humanos representen a los actores de la eco- nom a mientras participan en la evolucion del sistema economico en rondas nancieras anuales. Ese trabajo se hizo al mismo tiempo que el desarrollo complementario y soporte para internet del modelo juego (Davila, 2003) el cual demostro cuan facil es implementar la plataforma cliente-servidor para simulacion de juegos sobre Internet con Galatea.

Aun mas signi cativo para la tecnolog a multi-agente es la variedad de posibilidades para la codi cacion de agentes. En la semantica original Glider, como demues- tran aquellos ejemplos, es posible concebir representacio- nes de los humanos que realizan acciones o se desplazan por el sistema simulado. Incluso es posible representar conceptos esenciales en las organizaciones humanas tales como \proceso" y \servicio" que guardan una relacion natural con los agentes. La siguiente seccion elabora al respecto.

3.1. Modelos de la burocracia

La descripcion expl cita de los agentes puede ser una herramienta muy util para abordar la complejidad al nivel de detalle apropiado en ciertos sistemas. Sin em- bargo, no es la unica forma de dar cuenta de conductas humanas en un modelo de simulacion. La simulacion tra- dicional DEVS (Zeigler, 1976; Zeigler et al., 2000) per- mite, sin mas, modelar un proceso como una serie par- cialmente ordenada y posiblemente recurrente o concu- rrente de actividades caracterizadas como servicios. Un servicio es, en terminos simples, una cola de solicitan- tes que son servidos por uno o mas agentes desde una taquilla, durante ciertos tiempos determinables.

Esa conceptualizacion esta imbuida en la semantica de Galatea, de manera que un servicio puede ser facilmente representado en un modelo de simulacion como se mues- tra en la gura 1 y un proceso, de la misma manera,

Figura 1: Un servicio es una cola y una taquilla.

como un agregado de servicios, como en la gura 2.

La gura 3 ilustra, con un ejemplo de un sistema real, la posibilidad de describir un proceso burocratico institucional como el que se sigue en cierta institucion

Figura 2: El proceso es una composicion de servicios.

publica Venezolana4, para otorgar subvenciones (ayu- das economicas) a investigadores y proyectos de in- vestigacion. La descripcion corresponde a una especie

Figura 3: Un Proceso Burocratico.

de diagrama de ujo que usa s mbolos que tienen una semantica espec ca en Glider (que no se puede explicar aqu . Ver (GLIDER Development Group, 2000)) y otros que corresponden a los tradicionales diagramas de ujo.

4 Fundacite Merida. El modelo fue dise~nado a partir de las espe- ci caciones suministradas por Marisol Ru z e Ingrid Vivas, en- cargadas de ese proceso institucional por varios a~nos. El modelo fue implementado por el autor y Liliana Andrade. La interfaz gra ca se le debe a Nelson Vicu~na quien adapto el software del JfreeChart a Galatea.

La unica variante es la utilizacion de unos recuadros con etiquetas que identi can a cada agente y que incluyen las acciones o decisiones de tal agente. Cada agente es responsable de un servicio y el conjunto completo, con sus direcciones de ujo bien de nidas, constituyen un proceso burocratico.

El paquete contrib.burocracia, en el repositorio Galatea, contiene la codi cacion de un modelo elemen- tal, pero completamente funcional (simulable) de ese proceso real. Con ayuda del codigo en contrib.gGui, es posible visualizar el comportamiento de ese sistema siguiendo el proceso en cada servicio de varias maneras. Es posible reportar, como se muestra en la gura 4, el

Figura 4: Ocupacion de un servicio.

nivel de ocupacion de cada servicio, con las estad sticas de sus colas. Resulta, ademas, sumamente conveniente para los tomadores de decisiones conocer la \inclinacion hacia la estabilidad" de cada servicio, gra cando el com- portamiento de las colas a lo largo del tiempo, como se muestra en la gura 5. Las gra cas de \inclinacion hacia

Figura 5: Inclinacion hacia la estabilidad. Taquilla es soste- nible. Presidencia no.

la estabilidad" permiten saber si la con guracion actual del sistema modelado se inclina hacia una conducta esta- ble o deriva sin remedio hacia una situacion insostenible en la que las colas de los servicios se llenaran y estos colapsaran.

La gura 6 muestra un ejemplo de interfaz gra ca para el modelo contrib.burocracia, donde, ademas de los reportes de niveles y de las tendencias de las calas de los servicios, se le ofrece al usuario informacion adicional del proseso de simulacion.

Figura 6: Interfaz al Usuario del Modelo del Proceso Bu- rocratico. Ver interfaz viva al final

4. Modelos de cambio estructural

Todos los proyectos descritos hasta este punto, a pesar de su enorme valor practico, no plantearon mayor desaf o a la expresividad de los lenguajes de simulacion existen- tes. El cambio estructural (Domingo y Tonella, 2000) ha planteado ese desaf o. Se trata de como modelar sis- temas que combinan mas de una dinamica tradicional- mente descrita por algun modelo matematico bien de - nido. En econom a es comun observar que un modelo matematico se agota cuando el sistema alcanza ciertos bordes de los dominios de las variables que le ha incor- porado el modelista. Se habla entonces de que el sistema cambia de estructura y pasa a necesitar un nuevo mo- delo matematico con una suerte de vigencia por tramos (en las trayectorias del modelo) a partir del punto de quiebre del modelo anterior. La solucion ingenua consis- te en proveer una metarepresentacion que organiza los modelos y los \habilita" de acuerdo al tramo por el que transcurra el sistema simulado. No solo es esta una so- lucion muy r gida en terminos matematicos, pues obliga al modelista a anticipar todas las estructuras posibles y sus interconexiones, sino que ademas, puede conducir a implementaciones muy pesadas en terminos computacio- nales.

La migracion de Glider a una plataforma orientada a objetos estuvo motivada, entre otras cosas, por la posi- bilidad de asociar codigo a los elementos cambiantes o dinamicos en una simulacion. La plataforma base del Glider, el lenguaje Pascal, no incorporaba entonces, en ninguna de sus realizaciones, facilidades para asociar codigo a las estructuras de datos y esto imped a, por ejemplo, que los mensajes, usados en la semantica Glider para representar elementos que se desplazan por la red de nodos, tuvieran asociados instrucciones espec cas para adecuar su conducta a contextos espec cos de si- mulacion, analogos a los tramos que se mencionaron an- tes. Era entonces una facilidad importante a procurar

en direccion al cambio estructural.

Pero hubo tambien otra motivacion importante pa- ra la migracion, esta vez no solamente a la orienta- cion por objetos, sino hacia la orientacion por agen- tes. En aquellas primeras conversaciones con Carlos Domingo y Giorgio Tonella, se per lo la posibilidad de que los agentes se convirtieran en \fuentes" de los cam- bios, tal como fue discutido y formalizado, en el contex- to de la programacion logica y la inteligencia arti cial en (Davila, 1997; Davila y Uzcategui, 2004). El obje- tivo planteado fue explorar el uso de los agentes para generar el cambio estructural, a proposito de lo cual se plantearon algunos escenarios simpli cados de estudio.

Con el animo de abreviar este presentacion, perm ta el lector que, a la usanza tradicional en logica, se use un ejemplo muy simple para ilustrar como Galatea ofrece los medios para codi car modelos en los que los agentes actuan como fuentes del cambio estructural.

4.1. El ejemplo del Gerente Bancario

Un modelo de las taquillas de un banco se ha conver- tido en un objeto instruccional tradicional en los cursos de modelado y simulacion. Galatea lo hereda de Glider ya codi cado como una peque~na red de nodos, con un nodo de entrada que representa la puerta del banco por la que arriban los clientes, representados como mensajes. Las taquillas del banco son representadas por un arreglo de nodos de tipo recurso, tal como los que usamos para representar servicios en el modelo de la burocracia, y la salida del banco es un simple nodo de salida. Los clien- tes se acumulan, siempre que la tasa de entrada supere a las de servicio, en la cola corrrespondiente de cada nodo recurso que representa una de las taquillas. El numero

de taquillas es, junto con otros parametros de modelo, una decision que toma el modelista al momento de co- di car el modelo. Es decir, esa es la especi cacion de la estructura del sistema que permanece a lo largo de toda simulacion en los modelos tradicionales.

Uno puede codi car un modelo exible de un banco en el que se abran y cierren taquillas de acuerdo a las demandas de los clientes (es decir, la cantidad de clientes en el banco). Lo que se har a, normalmente, para lograr tal modelo es declarar una estructura maxima con to- das las taquillas posibles en el banco y se ofrecer a una manera de habilitar y deshabilitar taquillas segun sea necesario. Esto es equivalente a programar un modelo de funciones matematicas por tramos, en el que cada funcion se \activar a" en el tramo correspondiente para dar cuenta de la conducta de las variables dependientes, dado los valores que las independientes adquieren en ese tramo.

Lo que se propone aca es sutil pero profundamente diferente. Se propone que el propio modelo contenga el mecanismo, no para habilitar y deshabilitar subestruc- turas de la macro-estructura, sino para crear y eliminar

directamente a las estructuras espec cas. Galatea ofre- ce esta posibilidad gracias, en principio, a la plataforma subyacente orientada a los objetos, que permite crear y eliminar objetos con gran exibilidad y robustez; pero tambien gracias a las previsiones para modelar agentes que se encargan de hacer el trabajo.

El modelo del Gerente, ubicado en el paquete contrib.gerente del repositorio Galatea, ilustra todo esto. El modelo esta de nido en el nivel Galatea en el ar- chivo Gerente.g, que se muestra en las guras 7-9 y que

TITLE Sistema simple de taquillas con gerente NETWORK

Entrada(I){

IT = 10; SENDTO(Taquilla[MIN]);}

Taquilla (R) [3]{ RELEASE SENDTO(Salida); STAY = 45;}

Salida (E){} DECL

STATISTICS ALLNODES; INIT

TSIM = 300; ACT(Entrada,0); END.

...

Figura 7: El Gerente Bancario. Primera Parte: contiene a las secciones TITLE, NETWORK, DECL e INIT.

da origen a las clases y objetos, en el nivel Java, que se describen en (Davila, 2009). La conducta del modelo es identica a las descrita en el viejo modelo de las taquillas. De hecho, las l neas de codigo mostradas en la gura 7 corresponden exactamente con la forma tradicional de describir el banco y su sistema de taquillas.

En Galatea se incorpora, con las l neas de codigo de las guras 8 y 9, el modelo un agente con capacidad para crear y eliminar taquillas de acuerdo a ciertas condicio- nes que se sugieren.

Ademas de todo lo dicho sobre cambio estructural, el modelo del agente es un excelente espacio para ilustrar porque identi camos a Galatea con una familia de len- guajes. Como podran ver, el codigo de la gura 7 es el mismo codigo tradicional Glider, con algunas modi ca- ciones que explotan la sintaxis Java para manipular ob- jetos (ver el codigo Taquilla3.java en el repositorio). Pero tambien se incluye codigo en lenguajes de progra- macion logica, en la seccion AGENTS, para activar al agente gerente ( gura 8); y la seccion INTERFACE ( - gura 9), donde se de ne la interfaz entre el o los agentes y el ambiente para que el simulador pueda interpretar las acciones propuestas por el agente sobre el sistema, esta codi cada en Java.

Estas extensiones permiten que un modelo tradicional de simulacion, las taquillas de banco, incorpore elemen-

...

AGENTS Gerente {

abd(cola_larga). abd(crear_taquilla). abd(taq_vacias). abd(elim_taquilla). abd(revisa_cola). observable(cola_larga). observable(taq_vacias). user_built(timing(_)).

if timing(T) then revisa_cola(T). if cola_larga then crear_taquilla. if taq_vacias then elim_taquilla.

// codigo prolog para predicados user_built timing(T) :- gensym('', C), atom_number(C, T).

}

...

Figura 8: El Gerente Bancario. Segunda Parte (AGENTS).

tos del cambio estructural. En este caso (ver los codigo

de contrib.gerente en el repositorio Galatea), el ban- co que comienza funcionando con 3 taquillas, en ciertas condiciones de alta demanda ( jando el tiempo entre llegadas de personas en 1) y con su ciente tiempo ( - jando el tiempo de simulacion en 300), termina con 11 taquillas, es decir, 7 nuevas taquillas abiertas durante la simulacion, como muestra la gura 10.

5. Desaciertos en el proyecto

Galatea, como todo servicio o producto tecnologico, debe ser evaluada por sus usuarios. No se entienda lo que sigue como un anticipo, ni mucho menos como un reemplazo de esa evaluacion, a la que el proyecto se so- mete con humildad. Hay, sin embargo, una conjunto de decisiones que pueden estar afectando justamente la posibilidad de que Galatea, como Glider antes, esten al alcance para uso y evaluacion por parte de una comuni- dad mayor de usuarios.

Con todos los interesantes desaf os tecnicos que ha enfrentado el proyecto, las decisiones acerca del como aprovechar la fuerza de trabajo, siempre voluntaria, han privilegiado el desarrollo de la plataforma para llevarla al punto que otros programadores puedan usarla para producir simuladores. Los llamados usuarios nales, no expertos o poco conocedores de computacion o simula- cion, no han sido atendidos lo su ciente. Se han hecho esfuerzos considerables, en (Cabral, 2001; Ramos, 2006), para dotar a Galatea de un ambiente gra co de desarro- llo con servicios visuales para apoyar a quienes tengan menos pericia en el desarrollo y codi cacion de mode- los. Pero son desarrollos aun no completos y que, en to- do caso, requeriran del usuario o usuaria una formacion basica en computacion, con lo que se excluye de su uso a

...

INTERFACE

public void revisa_cola(double t, Agent ag, jpl.Integer at) {

int clientes_en_banco = 0;

for (int i=0; i<Taquilla3.taquilla.length;i++) clientes_en_banco =+

Taquilla3.taquilla[i].getEl().ll();

if (clientes_en_banco > 10) agente.inputs.add("cola_larga");

}

public void queja(double t, Agent ag) { System.err.println("#"+ag.agentType+

ag.agentId + ": Cola larga!!");

}

public void crear_taquilla(double t, Agent ag) { if (Taquilla.mult > Taquilla.maxMult) {

System.out.println("Banco lleno!!"); else

addNodeInstance(Taquilla); }

}

public void taq_vacias(double t, Agent ag) { for (int i=0, j=0; i<Taquilla.mult; i++)

if (Taquilla3.taquilla[i].getEl().ll()+ Taquilla3.taquilla[i].getIl().ll()==0) {

j++;

if (j > 1) ag.inputs.add("taq_vacias");

}

}

public void elim_taquilla(double t, Agent ag) { int i = 0;

while ((i < Taquilla.mult - 1) & (Taquilla3.taquilla[i].getIl().ll()+ Taquilla3.taquilla[i].getEl().ll()>0))

i++;

if (Taquilla3.taquilla[i].getIl().ll()+ Taquilla3.taquilla[i].getEl().ll()==0)

delNodeInstance(Taquilla,i);

}

Figura 9: El Gerente Bancario. Tercera Parte (INTERFACE)

una poblacion, incluso con conocimientos cient cos, que bien podr an favorecerse de la simulacion para resolver problemas.

Es posible que una estrategia diferente, como la reali- zacion de ciertos simuladores con interfaces amigables a usuarios no expertos, pudiera potenciar la comunidad de usuarios y atraer la atencion, no solo hacia Galatea, sino hacia el uso de la simulacion para enfrentar, entender y resolver problemas cotidianos.

Banco lleno!!    
300.0 Scan (E)Salida[0]
300.0 Scan (R)Taquilla[10]
300.0 Scan (R)Taquilla[9]
300.0 Scan (R)Taquilla[8]
300.0 Scan (R)Taquilla[7]
300.0 Scan (R)Taquilla[6]
300.0 Scan (R)Taquilla[5]
300.0 Scan (R)Taquilla[4]
300.0 Scan (R)Taquilla[3]
300.0 Scan (R)Taquilla[2]
300.0 Scan (R)Taquilla[1]
300.0 Scan (R)Taquilla[0]
...    
Sistema simple de tres taquillas con gerente
Time:   301.0
Time Stat:   301.0
Replication:   1
Date:   04/49/09 11:49:06
Elapsed time:   0h 1m 53.169s

Figura 10: Fragmento del archivo de traza del modelo del Gerente. Notese que en el instante 300:0 hay 11 taquillas:

Taquilla[0] - Taquilla[10].

6. Conclusion y caminos futuros.

Galatea ya sirve al objetivo planteado en su origen: contar con un sistema de software integral, es decir, que incorpora todas las estrategias de simulacion bien co- nocidas y con el cual cualquier modelista o simulista puede ensayar esas estrategias sobre problemas de simu- lacion de sistemas complejos. Hay, desde luego, un largo camino por recorrer con las aplicaciones, posiblemente considerando las lecciones sugeridas en la seccion an- terior. En particular, se plantea explorar soluciones de GeoSimulacion para usuarios no expertos y la simulacion para optimizacion.

En (Davila, 2009) y en proximas publicaciones, por ejemplo, se explica como la simulacion con agentes sir- ve a ejercicios de optimizacion (es decir, para mejorar la conducta de todo un sistema) por medio de la ca- pacidad que tienen los agentes de corregir su conducta aprendiendo nuevas reglas durante la simulacion. Este puede constituir un nuevo y mas expresivo marco pa- ra problemas de optimizacion que requieran la forma generica

maximizar Ci! (1)
  Xi  
sujeto a    
8i(Ci = KpTi si Ci < Ui y Ci = KcTi si Ci > Ui)  
  y (2)
  Pi Ti 5 T y 8i(Ti = Ti0) ;  

en los cuales las restricciones tradicionales existentes en problemas de programacion lineal son expresadas como reglas condicionales y los agentes en la simulacion se encargan de procurar la solucion.

Todas esas alternativas se constituyen en proyectos de largo aliento y por tanto, dif ciles de organizar y realizar desde las condiciones locales de trabajo. La historia aca contada, sin embargo, es el mejor testimonio de que el trabajo es posible, valioso y reconfortante.

Agradecimientos

Este trabajo ha sido nanciado en parte a traves del proyecto C-1696-10-05-B del Consejo de Desarrollo Cient co, Human stico, Tecnologico y Art stico, CD- CHTA, de la Universidad de Los Andes.

Referencias

Ablan M, Davila J, Moreno N, Quintero R y Uzcategui

M, 2003, Agent modeling of the caparo forest reser- ve, En ESMc'2003. European Simulation and Mode- lling Conference, pages 367{372, Naples, Italy, October 2003.

Acevedo MF, Callicott JB, Monticino M, Lyons D, Pa- lomino J, Rosales J, Delgado L, Ablan M, Davila J, Tonella G, Ram rez H y Vilanova E, 2008, Models of na- tural and human dynamics in forest landscapes: Cross- site and cross-cultural synthesis, Geoforum, Vol. 39, No. 2, pp. 846-866.

Amaya JE, 2003, Integracion de la programacion de- clarativa y la programacion orientada por objetos pa- ra desarrollar agentes inteligentes, Tesis de Maestr a, Maestr a en Computacion, Universidad de Los Andes, Merida, Venezuela.

Amaya JE y Davila J, 2009, Mecanismos de traduccion de prolog a java mediante progtojav, En The Seventh Latin American and Caribbean Conference for Enginee- ring and Technology, pp. WE1-1 - WE1-10, San Cris- tobal, Venezuela.

Biocomplexity Group, 2002, Biocomplexity: Integra- ting models of natural and human dynamics in fo- rest landscapes across scales and cultures, UNT-Yale- RICE-ULA-UNEG Universities. NFS Grant CNH BCS- 0216722.

Cabral M, 2001 Prototipo del modulo GUI para la plataforma de simulacion galatea, Tesis de Licenciatu- ra, Ingenier a de Sistemas, Universidad de Los Andes, Merida, Venezuela.

Contreras L, 1999, Simulacion de sistemas de transpor- te basada en agentes, Tesis de Licenciatura, Ingenier a de Sistemas, Universidad de Los Andes, Merida, Vene- zuela.

Davila J, 1997, Agents in Logic Programming, Tesis de PhD, Imperial College of Science, Technology and Medicine, Londres, Reino Unido.

Davila J, 1999, Openlog: A logic programming langua- ge based on abduction, En PPDP'99. Principles and Practice of Declarative Programming, Lecture Notes in Computer Science, Vol. 1702/1999, pp. 278-293, Paris, France.

Davila J, 2003, Actilog: An agent activation language. Lecture Notes in Computer Science, Vol. 2562/2003, pp. 194-207

Davila J, 2009, Logica practica y aprendizaje compu- tacional, Trabajo de ascenso, CESIMO, Facultad de In- genier a, Universidad de Los Andes.

Davila J, Gomez E, La aille K, Tucci K y Uzcategui

M, 2005, Multiagent distributed simulation with gala- tea, En DS-RT '05: Proceedings of the 9th IEEE In- ternational Symposium on Distributed Simulation and Real-Time Applications, pp. 165-170, Washington, DC, USA, IEEE Computer Society.

Davila J y Tucci K, 2000, Towards a logic-based, multi-agent simulation theory. En International Con- ference on Modelling, Simulation and Neural Networks [MSNN-2000], pp. 199-215, Merida, Venezuela.

Davila J y Tucci K, 2002, Towards a logic-based, multi- agent simulation theory, AMSE Special Issue 2000. As- sociation for the advancement of Modelling & Simula- tion techniques in Enterprises, pp 37-51.

Davila J y Uzcategui M, 2000, Galatea: A multi-agent simulation platform. En International Conference on Modelling, Simulation and Neural Networks [MSNN- 2000], pp. 217-233, Merida, Venezuela.

Davila J y Uzcategui M, 2002, Galatea: A multi-agent simulation platform. AMSE Special Issue 2000. Asso- ciation for the advancement of Modelling & Simulation techniques in Enterprises, pp. 52-67.

Davila J y Uzcategui M, 2004, Gloria: An agent's exe- cutable speci cation. Collegium Logicum, Kurt G•odel Society, Vol. VIII, pp 35-44.

Davila J, Uzcategui M y Tucci K, 2005, A multi-agent theory for simulation, En MSO'2005. Fifth IASTED International Conference on Modelling, Simulation and Optimization, pp. 285-290, Oranjestad, Aruba.

Davila MA, 2003, Una plataforma cliente-servidor pa- ra simulacion con modelos juego, Tesis de Licenciatu- ra, Ingenier a de Sistemas, Universidad de Los Andes, Merida, Venezuela.

D az L, 2002, Integracion de sistemas de informacion geogra ca a la plataforma de simulacion galatea, Tesis de Licenciatura, Ingenier a de Sistemas, Universidad de Los Andes, Merida, Venezuela.

Domingo C, Jimenez T, Ram rez V, Sananes M, Teran O y Tonella G, 1996, Simulation of structu- ral change. En 8th European Simulation Symposium (ESS'96), Editores Bruzzone A y Kerckho s E, pp. 112- 117, Genova, Italia.

Domingo C, Sananes M y Tonella G, 1995, Problem solving by structural simulation, En IASTED Interna- tional Conference, Editor Hamza MH, Acta Press, pp.

463-367, Anaheim, USA.

Domingo C, Tonella G y Teran O, 1996, Generating scenarios by structural change, En 6th Annual Confe- rence AI, Simulation and Planning in High Autonomy Systems, pp. 331-335, La Jolla, USA.

Domingo C, 1988, GLIDER, a network oriented simu- lation language for continuous and discrete event simu- lation, En International Conference on Mathematical Models, pp. 11-14, Madras, India.

Domingo C, 1995, Proyecto GLIDER e-122-92 infor- me 1992-1995, CDCHT, Universidad de Los Andes, Merida, Venezuela.

Domingo C y Hernandez M, 1985, Ideas basicas del len- guaje GLIDER, Instituto de Estad stica Aplicada en Computacion, Universidad de Los Andes, Merida, Ve- nezuela.

Domingo C y Tonella G, Towards a theory of structural modeling, Structural Change and Economic Dynamics, Vol. 11, No. 1-2, pp. 209-225.

Domingo C, Tonella G, Herbert H, Hernandez M, Sana- nes M y Silva J, 1993, Use of object oriented program- ming ideas in a new simulation language, En Summer Computer Simulation Conference, pp. 137-142, Boston, USA.

Domingo C, Tonella G y Sananes M, 1996, GLIDER Reference Manual, CESIMO{IEAC, Universidad de Los Andes, Merida, Venezuela.

Ferrer M, 2003, Dise~no de un sistema basado en tec- nolog as multiagente y del conocimiento para modela- do y simulacion de organizaciones, Tesis de Maestr a, Maestr a en Computacion, Universidad de Los Andes, Merida, Venezuela.

GLIDER Development Group, 2000, GLIDER Referen- ce Manual, Version 5.0, Cesimo - IEAC, Universidad de Los Andes, Merida, Venezuela.

Gomez E, 2002, Desarrollo de un prototipo del modulo agente para la plataforma de simulacion galatea, Tesis de licenciatura, Ingenier a de Sistemas, Universidad de Los Andes, Merida, Venezuela.

Gomez E, 2005, Dise~no e implementacion de la platafor- ma distribuible para el simulador multiagente galatea, Tesis de Maestr a, Maestr a en Modelado y Simulacion, Universidad de Los Andes. Merida. Venezuela. Grisol a T, 2003, Un modelo juego para simulacion de la econom a venezolana orientado a agentes, Tesis de licenciatura, Ingenier a de Sistemas, Universidad de Los Andes, Merida, Venezuela.

La aille K, 2005, Gspaces meta-modelo para simular espacios urbanos y arquitectonicos basado en galatea, Tesis de maestr a, Maestr a en Modelado y Simulacion, Universidad de Los Andes, Merida, Venezuela. La aille K, Tucci K, Uzcategui M y Davila J, 2005, Gspaces a meta-model for simulating agent mobility in urban or architectonic design, En MSO'2005. Fifth IASTED International Conference on Modelling, Simu- lation and Optimization, pp. 303-306, Oranjestad, Aru-

ba.

La aille K, Tucci K, Uzcategui M, Davila J y Nava M, 2008, Simulacion de desalojos en la ciudad universitaria de caracas. aportes para el desarrollo de aplicaciones espec cas para mitigar desastres en centros urbanos estrategicos, TodoArquitectura Revista Digital, Vol. 42, pp. 1851-1244.

Lopez J, 2003, Computacion evolutiva en el alineamien- to de secuencias de adn. Trabajo de ascenso a la cate- gor a de asistente, LCAR, Universidad Nacional Expe- rimental del Tachira, San Cristobal, Venezuela.

Moreno N, Ablan M y Tonella G, 2002, SpaSim: A soft- ware to simulate cellular automata models, En IEMSs 2002, First Biennial Meeting of the International En- vironmental Modeling and Software Society, Lugano, Switzerland.

Moreno N, Quintero R, Ablan M, Barros R, Davila J, Ram rez H, Tonella G y Acevedo M, 2007, Biocomple- xity of deforestation in the caparo tropical forest reser- ve in venezuela: an integrated multi-agent and cellular automata model. Environmental Modelling & Software, Vol. 22, No. 5, pp. 664-673.

Palm F, 1999, Simulacion combinada discreta/continua orientada a objetos: Dise~no para un lenguaje GLIDER orientado a objetos, Tesis de Maestr a, Maestr a en Ma- tematica Aplicada a la Ingenier a, Universidad de Los Andes, Merida, Venezuela.

Perez CJD, 2010, Desarrollo de modelos de tra co vehi- cular en galatea, Tesis de licenciatura, Departamento de F sica, Universidad de Los Andes, Merida, Venezuela. Quintero R, Barros R, Davila J, Moreno N, Tonella G y Ablan M, 2004, A model of the biocomplexity of deforestation in tropical forest: Caparo case study, En IEMSs 2004. International Environmental Mode- lling and Software Society, Editores: Pahl C, Schmidt S y Jakeman T, Osnabrueck, Germany.

Ramos A, 2006, Gide: un ambiente de desarrollo inte- grado para la plataforma de simulacion galatea, Tesis de Maestr a, Maestr a en Modelado y Simulacion, Uni- versidad de Los Andes. Merida. Venezuela.

Teran O, 1994, Simulacion de cambios estructurales y analisis de escenarios, Tesis de Maestr a, Maestr a en Estad stica Aplicada, Universidad de Los Andes. Merida. Venezuela.

Tonella G, Domingo C, Sananes M y Tucci K, 1993, El lenguaje GLIDER y la computacion orientada hacia objeto, En XLIII Convencion Anual ASOVAC, Merida, Venezuela.

Tucci K, 1993, Prototipo del compilador GLIDER en C++, Tesis de licenciatura, Ingenier a de Sistemas, Universidad de Los Andes. Merida. Venezuela.

Uzcategui M, 2002, Dise~no de la plataforma de si- mulacion de sistemas multi-agentes galatea, Tesis de Maestr a, Maestr a en Computacion, Universidad de Los Andes. Merida, Venezuela.

Uzcategui M, Tucci K y Moreno N, 2000, Ejemplo de

Simulacion Espacial en GALATEA II Taller Interdis- ciplinario de Sistemas Complejos (TISC 2000), Isla de Margarita, Venezuela.

Uzcategui M, Tucci K y Moreno N, 2000, Ejemplo de si- mulacion espacial en galatea, En II Taller Interdiscipli- nario de Sistemas Complejos (TISC 2000), Margarita, Venezuela.

Vargas Y, 2003, Traductor de modelos de simulacion galatea a codigo java, Tesis de Licenciatura, Ingenier a de Sistemas, Universidad de Los Andes, Merida, Vene- zuela.

Vivas A, La modeloteca. biblioteca de meta > modelos para simulacion basados en galatea. Tesis de Maestr a, Maestr a en Modelado y Simulacion, Universidad de Los Andes, Merida, Venezuela.

Zeigler BP, 1976, Theory of modelling and simulation, Interscience. Jhon Wiley& Sons, New York.

Zeigler BP, 1990, Object-oriented simulation with hie- rarchical, Modular models (Intelligent agents and endo- morphic systems), Academic Press, Inc (Harcourt Bra- ce Jovanovich, Publishers), Boston-Sydney.

Zeigler BP, Praehofer H y Kim TG, 2000, Theory of Modelling and Simulation, Academic Press, second edi- tion.

Figura 11: Interfaz Viva del Modelo del Proceso Burocratico. Realice sus propios experimentos

Convert PDF to HTML using PDF2HTML Online