2 Agent Based Models (ABMs)

Many ALife systems and simulations take the generic form of Agent Based Models or ABMs. At its most abstract, an ABM consists of a collection of primitive computational entities, called agents. We can, without loss of generality, assume that agents are implemented in the form of computational objects.1 Thus an agent consists essentially of a package of state variables and methods. The methods are distinct computations which have been programmed for the agent, and which can be invoked by that agent or, indeed, other agents in the system.

Agents are organised into distinct classes, where a class is associated with a specific set of methods. A particular agent is then said to be an instance of its class. All agents of the same class share the same methods; but each individual instance has its own distinct state variables.

The computations realised by the agent methods may, in general, involve (pseudo-)stochastic elements; correspondingly, the entire system behaviour may be stochastic.

Agents generally have some ``locality'' of interaction. That is, a given agent can only (``instantaneously'') interact with a subset of the other agents, thought of as those in its neighborhood.

Both the collection of agents, and the neighborhood relations between them, may be static. For example, a Cellular Automaton (CA) can be viewed as an ABM in this sense. However, more usually, the collection of agents, and the neighborhood relations between them, is dynamic; which is to say that agents can be moved, created and destroyed. These dynamics in the constitution of, and relations between, agents are typically mediated through an encompassing ``world''--which itself can be formally represented by one or more additional agents, albeit of particularly distinctive classes.

Conceptually, agents are normally regarded as concurrent computational units. However, ABMs are typically realised on serial computers such that, in fact, only one agent executes at a time. Some mechanism for scheduling CPU time, and providing for synchronisation, between the agents is therefore necessary; and the resulting system behaviours may be quite different depending on the details of how this is implemented. One simple approach is that an update() method is invoked, and allowed to execute to completion, on each agent in turn (in either a fixed or a stochastic sequence). Of course, in the course of executing its update() method a particular agent may invoke methods on other agents (within its neighborhood): so even with this apparently simple sequencing approach, agent activities may be interleaved in very complicated ways.

In all ABMs, each agent has a well defined instantaneous agent state, represented by the values of its state variables; and a dynamics, represented by its methods. By definition, the former can, and generally do, change during the execution of the model; whereas the latter cannot.2

Correspondingly, the entire system has an instantaneous system-wide state. This is, in effect, the array or vector of agent states (including any ``world'' or ``environmental'' agent states) for all agents instantiated at any given instant. Now the set of all possible states for any single agent (its phase space) is determined by its class specific set of state variables, and is thus fixed. However, in the general case where agents may be dynamically created or destroyed, the phase space of the system as a whole will be dynamic. We may say that it is of infinite (or, at least, indefinite) dimensionality; but that, at each time-step only a sub-space of dimensionality $ \sum_{{i=0}}^{N}$$ \mu_{i}^{t}$di is occupied, where $ \mu_{i}^{t}$ is the multiplicity of agents of class i at time-step t and di is the fixed dimensionality of agent of class i; altogether there are N different classes of agents.

At any given time then, the state of the system is uniquely identified by its position in the system phase space. We call this completely detailed system state the micro-state. The key feature is that the trajectory of the micro-states, including any changes in the dimensionality of the (micro-state) phase space, is completely entailed (whether deterministically or stochastically) by the micro-states themselves. In some sense, the micro-state exhausts the entailment of the model.

Now given such a model, with a particular repertoire of classes, scheduling and synchronization mechanisms etc..., this will give rise to a particular micro-state dynamics, or system behaviour, which must be examined and analysed. One possibility to do this is to look directly at the micro-state trajectory--but in general this is not useful. Instead, one is usually interested in the behaviours and interactions of agents at a coarser level of resolution. One might take averages over state variables of some or all agents, count associations between agents, or simply interpret some subjective gestalt patterns in graphical representation(s) derived from the micro-state.

In any case, the model is analysed at the level of some kind of user-defined description which (it is hoped) grasps the essential features of interest. At this level the history of the model is characterised by the succession of some macroscopic states, or macro-states, {F$\scriptstyle \theta$=0, F$\scriptstyle \theta$=1,..., F$\scriptstyle \theta$=m}; these are determined by the micro-states together with some more or less arbitrary analysis rules which transform the micro-states into the macro-states. Even the timescale of the macro-states is not necessarily the same as that of the micro-states (reflected in the notation above by the letter $ \theta$ as time index). Certainly, knowledge of macro-state alone is not generally sufficient to deduce the micro-state; thus the transition from the micro- to the macro-state generally (indeed, deliberately) involves some loss of information.

Note that we use both ``micro-state'' and ``macro-state'' here with senses that are derivative of, but still somewhat distinct from, the corresponding terms in statistical mechanics. Specifically, as we have noted, while the phase space of individual agents is fixed, the phase space of the whole system is not: its very dimensionality changes as agents are created or destroyed. Similarly, the macro-states of statistical mechanics are formally defined ensembles or equivalence classes of micro-states; whereas, in our case macro-states are rather informal, possibly even subjective, observables. They are not even necessarily features ``of the system'' (i.e., as a whole); this is a point we shall return to later.

Copyright © 2002 All Rights Reserved.
Timestamp: 2002-12-23