Multi-agent systems (MAS) possess characteristics that are analogous to those of cellular automata (CA). The elemental components of MAS are agents--pieces of software code with attributes that describe their condition and characteristics that govern their behavior. (This is a very simplified characterization of agents. For a more thorough review, particularly regarding "strong" and "weak" notions of agency, the reader is referred to Ferber, J, 1999, Multi-Agent Systems: An Introduction to Distributed Artificial Intelligence, (Addison-Wesley, Harlow (UK)).)
Like CA, agents exist in some space. For network agents that space may be an area of the Internet, or perhaps some other communications network. For distributed computational agents, the shadier corners of a computer's memory storage unit may constitute their space. Other agents may exist in an artificial neural network. In an urban context, any number of artificial environments might be designed for agents to inhabit, from building spaces to cities. Agents are much more free to navigate and explore their spatial environments than the individual finite state machines that comprise CA are, simply because their spatial behavior is not constrained by a lattice and interaction can be mediated beyond the neighborhood. MAS possess true mobility within their virtual spaces, allowing for a much richer range of spatial processes to be represented than is possible in CA.
As with CA, agents posses some discrete confines that separate them from the environment in which they exist. This boundary need not be cellular, although that is one of the forms that agents may take. In this way, agents can be designed to mimic any urban entity, e.g., individual inhabitants, businesses, vehicles, etc.
Agents have sets of attributes--states--that describe their characteristics. States can be formulated to represent the attributes of real urban entities, e.g., an agent designed to mimic a household could hold attributes such as median income, car ownership, etc. In many cases, attributes that lend agents some form of "agency" are also attributed to individual agents in a multi-agent system.
In CA, information exchange is mediated through the neighborhood. With MAS, the exchange of information is much more explicit. Agents can, in many instances, "communicate" with other agents as well as with their environments. Indeed, specific computer languages and protocols have been devised to cater to agent communication, e.g., Knowledge Query and Manipulation Language (KQML). The potential channels for interaction are therefore much greater within MAS when compared to CA.
As with CA, agent behavior is driven by transition rules. Any number of rules can be devised to govern the activities of agents: goals that agents seek to satisfy (e.g., minimizing travel distance using some form of traveling salesman algorithm), "preferences" that agents might be regarded as possessing (e.g., "likes" and "dislikes" for certain spaces), etc.
In MAS, time proceeds iteratively through discrete steps, as is the case in CA.

A diagram illustrating some of the characteristics of a multi-agent system.
|
Cellular automata and agent programming environments
Here is a list of cellular automata and agent-based modeling platforms. Most of them are available under the GNU or GPL Public Licensing Agreements (which means that you can get the source code for the package and modify it, if necessary, to suit your own needs; you cannot use the package commercially, however.) You may also be interested in looking at the COSI project homepage at the Institut de Recherche en Informatique de Toulouse, France, which is investigating various ways to model complexity.
Name |
CA/Agent |
URL |
Development Platform |
Licensing |
DUEM |
CA |
http://ceita.acad.emich.edu
Yichun Xie (Eastern Michigan University) and Michael Batty's (University College London, CASA) urban cellular automata model. If you want a copy, you will have to contact Prof. Xie at CEITA.
|
C++ |
Proprietary |
Swarm |
Agent |
http://www.swarm.org
Swarm is probably the most famous agent-based development environment in social science research, popularized by its use in Artificial Life research. It was developed by Nelson Minar and Chris Langton while they were at the Santa Fe Institute. It is very actively used in all areas of science and various extensions exist, e.g., Kenge and MAML. A SwarmFest is held every year, showcasing various models and experiments developed with the Swarm libraries.
Other Web resources:
|
Objective-C and Java |
Public |
MAML |
Agent |
http://www.syslab.ceu.hu/maml
MAML was developed at the Complex Adaptive Systems Laboratory of the Central European University. It is an extension of the Swarm development environment. It aims to simplify the development of Swarm models through the use of various "macros" (much like Evolver for RePast).
Other Web resources:
- MAML overview from the 1999 Swarmfest, by John B. Corliss, László Gulyás, Tamás Kozsik, Sándor Fazekas.
|
Macros, Objective-C |
Academic |
Kenge |
CA |
http://www.nr.usu.edu/swarm
Kenge is an extension to the Swarm development libraries. It is being developed by Paul Box and colleagues at Utah State University as a Geographic Information Systems toolkit for Swarm. Geographers should really take a look at this one!
|
Objective-C |
Public |
RePast |
Agent |
http://repast.sourceforge.net
RePast is the REcursive Porous Agent Simulation Toolkit, developed at the University of Chicago and Argonne National Laboratories. It operates in much the same way as the Swarm libraries, but in my opinion it's a much nicer environment. It also has a WYSIWYG model-building application, called Evolver, that let's you build the infrastructure of your model by dragging-and-dropping components in a GUI (Visual Basic-style), and/or backing them up with Python, a simpler version of the Perl scripting language.
I am currently using RePast, so I have lots to say about it. Look for more details soon.
|
Java |
Public, Sourceforge |
Evolver |
Agent |
http://repast.sourceforge.net (scroll down to the Evolver section)
As detailed above, Evolver is a what-you-see-is-what-you-get application for simplifying the construction of models in the RePast development environment. You can build models by dragging and dropping components in a Graphical User Interface, and perform further development using Python (which is a less cryptic variant of Perl) and XML.
I am currently using Evolver and have lots of nice things to say. Look for more details shortly.
|
Java, Perl, Python, XML |
Public, Sourceforge |
Ascape |
CA-agent |
http://www.brook.edu/es/dynamics/models/ascape
Joshua Epstein and Robert Axelrod's famous Sugarscape development environment at the Brookings Institution. Ascape is a very flexible tool, operating in much the same way as Swarm and RePast. It was designed explicitly for social science simulation.
Some other Web resources:
|
Java |
Academic |
StarLogo |
CA-agent |
http://www.media.mit.edu/starlogo/
Mitchell Resnick's StarLogo tool is developed at the MIT Media Lab. It was originally designed for exploring massively parallel simulations on the desktop and designed as a tool to help children learn simulation and explore complex systems. Since its initial introduction, it has been used for a variety of other tasks, including social science simulation. It has also spawned a few variants: StarLogoT and NetLogo. The "development language" is very easy to pick up.
|
StarLogo |
Academic |
StarLogoT |
CA-Agent |
http://ccl.northwestern.edu/cm/starlogoT/
A variant of StarLogo developed by Uri Wilensky's group at Northwestern University's Center for Connected Learning. The "development language" is very easy to pick up. It's a much more flexible tool than StarLogo, in my opinion.
|
StarLogo |
Academic |
NetLogo |
CA-Agent |
http://ccl.northwestern.edu/netlogo/
NetLogo is a variant of the original StarLogo, developed by Uri Wilensky's group at Northwestern University's Center for Connected Learning. It is a lot like StarLogo and StarLogoT, but differs in that you can use it to generate applets of your models that can then be delivered over the Web. It is also very actively developed. As with the other variants, the "development language" is very easy to pick up.
|
StarLogo |
Academic |
Aglets |
Agent |
http://aglets.sourceforge.net/
Aglets is a very robust and flexible agent-based simulation development environment. It is mostly used for intelligent agent design, rather than social science simulation, although there is no real reason why this should be the case.
|
Java |
Public, Sourceforge |
JCASim |
CA |
http://www.sc.cs.tu-bs.de/~weimar/jcasim/
A really felxible CA development package by Jörg Richard Weimar at Technische Universität Braunschweig. You can introduce lots of different lattice structures and even perform asynchronous updates.
|
Java |
Academic |
JADE |
Agent |
http://sharon.cselt.it/projects/jade/
(From the Website.) "JADE (Java Agent DEvelopment Framework) is a software framework fully implemented in Java language. It simplifies the implementation of multi-agent systems through a middle-ware that claims to comply with the FIPA specifications and through a set of tools that supports the debugging and deployment phase. The agent platform can be distributed across machines (which not even need to share the same OS) and the configuration can be controlled via a remote GUI."
JADE is developed at the Telecom Italia Lab. It is more in the genre of intelligent agents than the multi-agent systems used for social science simulation.
|
Java |
Public |
IMT |
Agent |
http://sourceforge.net/projects/imt/
The Integrating Modeling Toolkit is being developed by Ferdinando Villa at the Chesapeake Biological Laboratory, University of Maryland. It's an XML environment for using agents to tie together diverse model components. From the GPL description:
"A comprehensive and extensible set of abstractions allowing definition and use of interoperable model componenents. Modellers create and IMT "world" made of IMT "agents" that will each perform a particular phase of a modelling task. The core set of agents can describe modular, distributed components either native to the IMT or from existing toolkits specialized for various modelling, analysis and simulation tasks. IMT agents are designed to easily 'glue' together in higher-level simulations while integrating different modelling paradigms and toolkits. Programming experience is not neede to start developing models with IMT; an agent or collection of agents is fully described by an XML document and can be read from and written to a URL, just like a Web page. "
|
XML |
GPL , Sourceforge |
ZEUS |
Agent |
http://innovate.bt.com/projects/agents.htm
For the most part, ZEUS seems to be used to develop intelligent agent models. From the Website:
"The ISR Agent Research is concerned with the development and analysis of sophisticated AI problem-solving and control architectures for both single-agent and multiple-agent systems. Current research themes include multi-agent coordination and negotiation protocols, cooperative and non-cooperative multi-agent systems, organizational self-design, multi-agent adaptation of coordination strategies, compuational economics as well as multi-agent building platform."
|
EOS |
I'm not sure! |
|