| Relations to Other Modeling Software |
|
|
|
| Introduction to MASS - The Multi-Agent Simulation Suite | |||
|
Luckily many modeling and simulation platforms exist today to support researchers who venture into the exciting field of agent-based modeling and simulation. When introducing a novel simulation package, it is important to discuss its relations to the existing tools and services. The components of the Multi-Agent Simulation Suite where designed in a way to enable multi-platform support. The intention is that many of MASS's services will become available to a wide user base, partially independent of their first simulation package of choice. This functionality is not entirely in place yet, but MASS components support, to different levels, a variety of agent-based simulation packages. In MASS, the components (like the FABLES simulation language, the VISU visualization package, the MEME experiment support module, or the PET web-based environment) interact via a central simulation core (see the figure below). This simulation core in the current release of MASS is largely based on the popular Repast J 3.1 simulation package. (AITIA International Inc. has its own simulation core as well, named Multi-Agent Core (MAC) that was designed for supporting PET operations.) Repast J 3.1 playing such a central role in MASS means that our users have the option to create their models in FABLES, or to base their developments on Repast J 3.1 directly. The entire functionality of the other components (e.g., MEME, PET) are available to modelers using Repast J as well. Moreover, the FABLES compiler generates Java source code that is based on Repast J 3.1. Therefore, advanced modelers can choose to create the first versions of their model in FABLES and then continue by editing the Repast/Java source directly. This choice will not hinder their ability to benefit from the functionality of other MASS components. Alternatively, modelers with advanced programming abilities may choose to implement complex or performance sensitive functionality in Java directly and link it to their FABLES models via the Java2FABLES and FABLES2Java interfaces.
The Model Exploration Module (MEME) has two major branches of functionality. One is concerned with the execution of simulation experiments, while the other is with organizing, processing and analyzing the results of such experiments. The latter functionality is available to modelers using any simulation platform. That is because MEME has a sophisticated wizard to import data sets from text-based file formats. In addition, direct import plugins support the acquirement of results generated by Repast J 3.1, Repast Simphony (Repast S), NetLogo 4.0.4 and pure Java models. MEME's experiment execution part operates on the 'executable' models directly (i.e., on the .class files in case of Repast J 3.1). It uses advanced programming techniques to augment the model's original code with the statistics and data collection functionality selected and assembled by the modeler in the MEME Parameter Sweeper wizard. This functionality currently works in 100% with Repast J 3.1, NetLogo 4.0.4 and pure Java models, while Repast Simphony's support is at about 50%. (This support is not included in the present release, but interested parties should contact us for details.) MEME's support for Repast Simphony is planned to be extended to 100% in the near future. In addition, support for the EMIL-S modeling platform and NetLogo 4.1 is also projected to be available within a year.
The Participatory Extension (PET) currently works with models written in FABLES or in Repast J 3.1, in addition to AITIA's internal Multi-Agent Core (MAC). In principle, any models written in any of these platforms should work well in PET, independent, for example, of the charting package of use. (PET handles Repast J's original, Ptolemy based charts as well as the graphics produced by the VISU component of MASS.) However, it is important to realize the two different levels at which one can work with PET. The base functionality includes the ability of uploading a model to the web-based simulation server, being able to configure it via the administrator's interface, running it by users and the ability to record and replay executed simulations. This should all be available without any further work on any model written in FABLES or in Repast J 3.1. (In the latter case, even simulations that were written without PET in mind or even without any knowledge about PET will work well. That is because PET uses some advanced Java programming techniques to augment Java classes 'on the fly' to make them compatible with PET, without compromising the correctness of their functionality. Naturally, there are limitations to these techniques. For example, if the model uses advanced programming techniques itself or is largely based on external, third party libraries, PET's attempts to make it compatible with the web-based environment might fail. However, such simulations are, in our experience, very rare.) The other level of functionality in PET is concerned with mixing humans with artificial agents. That is, with controlling model agents by human participants. This functionality is also available to both FABLES and Repast J 3.1 modelers. Naturally, however, there is some additional work required to make controlling possible. At the basic level, this only involves selecting (or implementing) action methods whose execution the human agents can initiate from the web interface. (Selection means the editing of an XML descriptor. If the appropriate action methods are available, this is all what one needs to do. However, if the action methods are not available then they must be implemented in pure Java.) This is typically a very easy task. However, this method of making agents 'controllable' in PET results in a rudimentary user interface (generated automatically) for the human participants of the experiment (i.e., a table listing the names of all available actions as web links, etc.). If one wants to provide a more user friendly participatory environments, then one needs to provide some additional Java code, concerning with the visualization of the information available to the human user and with the selection of actions. PET supports this task by providing a few base classes that can be extended and modified to fit these purposes.
|



