Running Agent-Based Simulations

When running agent-based simulations using ready-made components, one usually faces heterogeneity problems both for the agents’ implementation and for the underlying platform. To circumvent these kind of hindrances, we introduce a wrapper technique for mapping the functionality of agents living in an interpreter-based environment to a standardized CORBA interface, thus facilitating the task for any control mechanism (like a simulation manager) which just will need to handle one set of commands for all agents involved. This mapping is made by an XML-based definition file. We also have built a generic simulation manager which makes use of agents with homogeneous interfaces, and which can be used to run simple simulations. In a sample session, we illustrate how wrapper and simulation manager do interact. Finally, we describe the database interface representing the global Artificial Economy environment in which agents operate. In the Appendix, we give a brief overview of the current installation of the SFB reference computer platform. 1 Overview: The Simulation Concept Simulations in the “Artficial Firms and Markets Lab” (AFML) can be implemented using an objectoriented style of programming, allowing for distributed objects (over a cluster of workstations or even the Internet). The AFML provides reusable components for economic simulations. One can think of each economic entity as an agent, e.g., firms, (groups of) consumers, investors, markets, etc., interacting with each other. A typical simulation takes several agents, defines their relationships and observes the resulting interactions between them over time. Running a simulation usually amounts to writing a control program in one’s favorite programming language, named the central simulation manager below. All agents provide standardized interfaces such that they automatically have AFML bindings and can be used for simulations as modularized components. To achieve this goal, we use the CORBA mechanism, which is available for most standard programming languages, including C, C++, Java and Perl. Additionally, all software packages which can dynamically load shared libraries written in one of the above languages can be made CORBA-aware, but this could be a tricky task, though. We therefore need an easy-to-use mechanism enabling the integration of data analysis environments like MATLAB or R, which are the target platforms for AFML simulations, as they offer convenient ways of analyzing simulation results and are also (typically) used for implementing objects and methods.