Biomedical Engineering Reference
In-Depth Information
5.1. Computational Implementation: Agents are Objects
The nicest way to computationally implement the commitment of distinctly
representing each agent is to make agents objects , which are, to oversimplify
slightly, data structures that have internal states, and interact with each other by
passing messages. While objects are not necessary for agent-based models, they
do make programming them much easier, especially if the agents have much
more state than, say, just a position and a type. If you try to implement models
with sophisticated agents without using objects, the odds are good that you will
find yourself reinventing well-known features of object-oriented programming.
(Historically, object-oriented programming began with languages for simulation
modeling (131).) You might as well save your time, and do those things right ,
by using objects in the first place.
Generally speaking, computational implementations of ABMs contain many
non-agent objects, engaged in various housekeeping tasks, or implementing the
functions agents are supposed to perform. For instance, an agent, say a rat,
might be supposed to memorize a sequence, say, of turns in a maze. One way of
implementing this would be to use a linked list, which is an object itself. Such
objects do not represent actual features of the model , and it should be possible to
vary them without interfering with the model's behavior. Which objects are
picked out as agents is to some degree a matter of convenience and taste. It is
common, for instance, to have mobile agents interacting on astatic environment.
If the environment is an object, modelers may or may not speak of it as an "envi-
ronment agent," and little seems to hinge on whether or not they do.
There are several programming environments designed to facilitate agent-
based modeling. Perhaps the best known of these is (www.swarm.org), which
works very flexibly with several languages, is extensively documented, and has
a large user community, though it presently (2004) lacks an institutional home.
R E P AST , while conceptually similar, is open-source (repast.sourceforge.net) and
is associated with the University of Chicago. S TAR L OGO , and its successor,
N ET L OGO (ccl.sesp.northwestern.edu/netlogo), are extensions of the popular
L OGO language to handle multiple interacting "turtles," i.e., agents. Like Logo,
children can learn to use them (132), but they are fairly easy for adults, too, and
certainly give a feel for working with ABMs.
5.2. Three Things Which Are Not Agent-Based Models
Not everything which involves the word "agent" is connected to agent-
based modeling.
Representative agent models are not ABMs. In these models, the response
of a population to environmental conditions is found by picking out a single
typical or representative agent, determining its behavior, and assuming that eve-
Search WWH ::




Custom Search