You are on page 1of 9

Corsello Research Foundation

CRF-RDTE-TR-20050901-01 2/2/2009

CORSELLO RESEARCH FOUNDATION

AGENT BASED SIMULATION


BACKGROUND FOR ADVANCED COMPUTING

Public Distribution| Michael Corsello


Public Distribution CRF-RDTE-TR-20050901-01

Corsello Research Foundation

Abstract
Simulations are an invaluable tool in determining the behaviors of the interactions of components of a complex system. The range of systems that are simulated are ever growing, from the manufacturing industries, to ecosystems, celestial bodies, sub-atomic particles and so forth. The list of uses for simulation systems is nearly endless. Simulations can be grouped into different classes, the subject of this document is agent-based simulations. In general terms, an agent-based simulation is a model of a real-world phenomenon based upon the use of agents which represent a model of a component of the system to be simulated. The agent is, in other words, a model of an item or entity that exists in the system modeled. A simple example of this would be a salesman agent in a traveling salesman simulation. The concept of agent-based simulation has been in use for some time. Currently, most agent-based simulations are quite specific to the problem modeled. In an attempt to generalize the simulation concepts to permit reuse of simulation components at the agent level, a novel framework and simulation API has been developed. The Generic Agent Framework (GAF) has been designed to permit the modeling and simulation of phenomenon based on the use of extensible agents that loosely coupled via a standard API. This methodology permits the addition of agents into hybrid simulations by reusing the agents used in previous sub-simulations. This reuse will expand the realm of understanding of phenomenon modeled via massive agent parallelization across simulation environments and platforms.

Public Distribution

CRF-RDTE-TR-20050901-01

Corsello Research Foundation

Table of Contents
Abstract ........................................................................................................................................... 2 Introduction ..................................................................................................................................... 4 Agent Simulation Concept ........................................................................................................... 4 Agent Simulation Overview ......................................................................................................... 5 GAF Operations Overview ........................................................................................................... 6 GAF Agent Base Types ............................................................................................................. 7 Conclusions...................................................................................................................................... 9 Appendices ...................................................................................................................................... 9 Works Cited ..................................................................................................................................... 9

Public Distribution

CRF-RDTE-TR-20050901-01

Corsello Research Foundation

Introduction
Agent based simulations have been used for years in various disciplines to model complex systems via a less is more approach. In general, the agent based paradigm allows a component of a system to be defined in an agent, which then can be populated en masse within the simulation. These instances of an agent can then interact within the constraints of the rules defined in the agent model. This provides tremendous power and complexity of simulation with minimal effort. In general, agent based simulations have been used to model patterns in space, either through a cellular approach, or via a vector space. In both cases, the environment of the simulation is representative of spatial domains in 2 or 3 dimensions, simulating a real-world environment. This is a primary use for agent based simulations however, with a minimum of abstraction, the agent paradigm can effectively serve a more broad range of simulation needs including lower dimensions (0 or 1D) and high dimensional space (ND). The use of multi-dimensional (or 0dimensional) spaces can add great value and complexity to a simulation, with great potential rewards. The GAF accomplishes this by design.

Agent Simulation Concept


As a simple example, panther movements can be modeled in an agent simulation by defining a panther agent. This agent would travel within the simulation world based on a rule set defined in the agent itself. This rule set may include sampling the environment in which it is traveling for certain aspects. The base layers that make up the environment are simply static data that model things like climate, elevation, soil type, etc. This model is complete as far as the agent is defined, and will serve to show how a real panther might behave in respect to the model of the environment it is instantiated in. To make the simulation more real, multiple panthers can be created in this simulated environment, and the panther agent may have rules defining its behavior with respect to other panthers. This may include aggression, territory establishment and defense, mating, reproduction, life span, etc. In this model, the simulation is far more real and complete. However, to make the model even better, the possible prey items could also be modeled as other agents. As the complexity of the model and agents increase, the more realistic (and not necessarily accurate) the model will become. In general, if agents exist that can interact with a common set of information; they can be added to a common simulation. This extensibility is core to the GAF.

Public Distribution

CRF-RDTE-TR-20050901-01

Agent Simulation Overview


In a simulation environment, agents can be defined to represent phenomenon that are static, global, active or pools. A static agent is a fixed value that does not change over the life of the simulation. These agents are discreet values that do not model space or time. The global agent is a spatial agent that has discreet values distributed over space. This agent acts as a single entity that is updated over time, potentially evolving in space. An active agent is the primary type of agent used. This is a single entity that may or may not be spatially aware or temporally aware. These agents can represent anything, and are, in general, the base for extension in code. Finally, the agent pool is a collection of agents that are updated together. This is a logical grouping of individual agents that can be used to add specific behaviors en masse or to enhance performance by suppressing or deferring calculations. A spatial agent may require a backing data store for providing the information it represents. This is accomplished through the use of specialized data-bound agent types. A global agent that represents vegetation types may be build from a shapefile data source, using the 2D shapefile vector agent. This streamlines the development process and adds flexibility to the design.

The GAF is designed to permit agent creation, operation and interaction through a simple API and many extension points. This use of object-oriented design is a natural fit for the agent simulation methodology.

Corsello Research Foundation

GAF Operations Overview


In the GAF, agents all provide a simple set of operations to perform a simulation. The agent simulation is based entirely on discreet time-steps, which can be mapped to real-world time for relative timeline tracking of a simulation. These time-steps are used as the atomic unit of calculation for all agents within the simulation. To perform the calculations required for an agent, all agents expose the concept of a calculate and update method. These methods permit the agents to determine the new state they will transition to, while still providing all other agents with the current state prior to moving to the next time step. Upon completion of the calculate phase, the agents all update, which defines the current state to be the state defined from the calculate method. This two-fold process prevents propagating bias throughout the simulation iteration. Each agent must define what these methods entail internally, acting as a black box implementation.

The agent is given access to all other agents it requires at creation time via a reference to a listing of other agents. This listing mechanism provides a docket of environmental factors that contribute to the agents overall behavior as realized in the calculation and update phases. There is no restriction on the complexity of these methods, or the presence of other methods to augment the agent functionality.

The overall sequence of events for a simulation run involves the calculation of all agents, followed by the update of all agents. This basic sequence is repeated until a stop state is achieved, either by a fixed iteration limit, a user action, or an agent imposed completion message.

Public Distribution

CRF-RDTE-TR-20050901-01

Corsello Research Foundation

GAF Agent Base Types In the GAF, there are several core types of agents. The primary agent types are: Spatial Agents Global Agents Static Agents Agent Pools Generic Agents Agents that are spatially aware in some fixed dimensional space Agents that are of global extent Agents that represent a single static value (constant) Agents that serve as a container for other agents

Base type of all agents, used to define new agent constructs

Public Distribution

CRF-RDTE-TR-20050901-01

Corsello Research Foundation Spatial Agents

The spatial agent is the primary class of agents used for classic geospatial simulations. Spatial agents are sub-classed into 3 primary types: Raster Agent Agent existing as a cellular space, the nature of the cells and space is defined in the sub-classes of this type. The agents move about via discreet cell addresses, occupying a cell of the space. This is the basis for cellular automata models (Conway game of life). Vector Agent Agent existing as a Cartesian space, as defined by a Cartesian grid parameter set. The agents are free to move about using Euclidean geometry and occupy any aspect of the space. Graph Agent Agent existing as a graph structure, composed of nodes and edges. Agents are free to move along the graph, occupying edges, nodes, or points along edges. This is often used in network simulations.

These spatial agent types are the foundation data sets, which may or may not actually participate in the simulation itself, instead serving as a set of base layers used as the environmental background for the active agents moving throughout the space. The active agents themselves may be of these very types as well. The use of different types of agents together in a single simulation is supported as a standard form, with a translation between heterogeneous coordinate spaces performed at the agent level to ensure spatial concomitance. Spatial Dimensions Simulations can be performed between and across data sources of varying dimensionality. This is accomplished via a standard data access API and a set of dimensional agent classes. These classes are defined in both raster and vector spaces at each dimensional level.

Public Distribution

CRF-RDTE-TR-20050901-01

Corsello Research Foundation

Vector Agents There are several basic sub-types of vector agent, each designed to provide a native support for a backing store. There is a single common API for spatial data file I/O, allowing a single code base to support multiple underlying file types through this common API in a pluggable manner. For fixed data type access, the use of vector agent sub-types is the simple choice, there are several specialized agent types provided for this purpose.

Conclusions
The Generic Agent Framework (GAF) concept, once developed, will provide a robust feature set for the development of consistent, interoperable agent-based modeling applications that may be distributed dynamically.

Appendices Works Cited


There are no sources in the current document.

Public Distribution

CRF-RDTE-TR-20050901-01

You might also like