geosimulation :: innovative geospatial simulation and analysis but innovative people

Home | Book | Research | Publications | Bio | Press | Geosimulation Labs
Dr. Paul M. Torrens, Center for Urban Science + Progress, New York University

Background material on the following topics is available on this site:

Cellular automata have their foundations in the specification of digital computers. They were pioneered by Alan Turing, John von Neumann, and Stanislaw Ulam, initially as computing media. Later, they have been adopted by other fields outside of computing and put to a wide variety of applications. They have been used in the simulation of urban phenomena with a recent flourish of activity. If you are interested in learning more about cellular automata: their origins and their use in urban geosimulation, you can check out a working paper, entitled, 'How cellular models of urban sytems work', penned by yours truly.


Cellular automata consist of several key components: cells arranged evenly on a tessellated grid-space, cell states, neighborhoods, transition rules, and time.


The cell space on which a cellular automaton operates might be considered equivalent in an urban sense to an environment, a landscape, or a territory. The cell space in a cellular automaton is assumed to be both regular in structure, i.e., it resembles a checkered grid like a chess table (although it does not have to be regular), and infinite in extent (infinity is generally achieved by describing the cell space as a torus: its edges 'wrap around' on themselves; again, the cell space does not have to be infinite in extent).
Just like the pixels that comprise a television screen, the individual cells in a cellular automaton are occupied at any given time by a discrete state, e.g., full or empty, alive or dead, yellow or blue, one or zero. In an urban context the cell state can be made to represent any attribute of the urban environment, e.g., land use (residential or commercial), density (high density or low density), land cover (forested or concrete), etc.


Each cell in the cellular automata has a neighborhood of adjacent cells that surround it. Neighborhoods are commonly characterized as either being 'Moore' (the cell in question and the eight surrounding cells that border it) or 'von Neumann' (the cell in question and its four cardinal neighbors), as the diagram below illustrates. However, a neighborhood can be specified to represent any form of action-at-a-distance.


0
Simple spcifications for a one-dimensional CA

0
Simple spcifications for a two-dimensional CA

Certain rules included alongside the model in a transition table govern the state of any given cell in the matrix at any given time in the evolution of the model. These transition rules are applied to cells synchronously, altering the state of cells according to their individual condition and the condition of adjacent cells in the neighborhood. One of the most famous sets of transition rules in John Conway's Game of Life. In the Game of Life, cells are considered to be 'alive' (their state is coded as 'alive') or 'dead'. In each iteration of the model, transition rules are applied to the cells' states. A 'live' cell in one iteration remains 'alive' in the next iteration if its neighborhood contains either two or three other alive cells, otherwise its state is coded as 'dead'. Additionally, a 'dead' cell in one iteration can become 'alive' in the next if its neighbourhood contains exactly three 'live' cells.


Of course, in an urban context, transition rules can be constructed to represent any process affecting an urban system, e.g., a cell is suitable for conversion from vacant to developed if all cells in its neighbourhood have states corresponding to 'extremely high land value'; otherwise it remains vacant.


As the previous discussion of transition rules alludes to, time in cellular automata is discrete. It proceeds in iterative steps, 'jumping' from one point to the next: t; t+1; t+2; t+3; ...; t+n.


0
A three-dimensional Sierpinski carpet (source: Paul Bourke, http://astronomy.swin.edu.au/pbourke/fractals/gasket).

Cities and cellular automata
There are many advantages to applying cellular automata models to urban systems: realism, spatiality, resolution, presentation, and links with geographic information systems, object-oriented programming, and remotely sensed data.


Cellular automata have been used as a simulation technique in the study of an impressively wide range of urban phenomena, including regional growth, urban sprawl, gentrification, Pareto equilibrium, residential growth, population dynamics, economic activity and employment, historical urbanization, land use evolution, and polycentricity to name but a few.

Cellular models of urban systems
Cellular automata models have enjoyed a wide application to the study of urban phenomena. In the formal sense described by the original devleopers of cellular automata--Turing, von Neumann, Wolfram, Conway-- cellular automata are quite rigid in their structure. This rigid structure works well in the simulation of many physical systems in biology, chemistry, and physics, but wanes as an appropriate framework for studying socio-enviro-economic systems such as cities. Understandably, researchers have adapted the formalism of the traditional cellular automata to suit their simulation needs. In this sense, many cellular-automata--like models of urban systems are really cellular models rather than cellular automata.


The formalism described in the first section of this page is adapted to meet the needs of urban researchers in several ways:
Cell space: Of course, the idea of an infinite spatial plain is unrealistic in an urban context. Cellular automata are therfore constrained in their cell space to finite dimensions. The regularity of this space is also questionable in urban contexts. Some cities are quite regular in their structure (at least from the perspective of block configuration, say, in a city like Manhattan), but most are markedly irregular, e.g., cities such as Dublin, Athens, Venice, etc. Recent research has adapted the structure of cellular automata spaces and rendered them irregular.


Cell states: In the traditional cellular automaton, cell states are discrete (and quite often binary): alive or dead, one or zero. There is little in the city, however, that is discrete. Most conditions--land use, land value, land coverage, demogrpahic mix, density, etc.--are continuous, and of course urban spaces are multi-faceted. Therefore, cellular models of urban systems commonly contain several cell states simultaneously, and these states range in type from absolute to discrete and to continuous. An innovative adaptation to the traditional idea of the cell state is the introduction of fixed (states that cannot be altered by transition rules) and and unfixed cell states, corresponding respectively, for example, to water sites or land values.


Neighborhoods: The idea of the neighborhood in the formal cellular automaton is rather restrictive. Urban neighborhoods come in many shapes, configurations, and sizes. Complaining that neighborhoods such as the Moore and von Neumann restrict the level of spatial variation that cellular automata models can generate, many researchers have tinkered with neighborhoods to include the notion of 'action-at-a-distance'. Cell neighborhoods consisting of 113 cells, have in some cases been used in simulations.


Transition rules: Perhaps the greatest tinkering with cellular automata models comes in the formulation of the transition rules. It is here that cellular models of urban systems are generated with adherance to what we know in theory about cities. Recently, urban studies using cellular models have intriduced an innovative range of parameters into transition rules in a bid to enhance their realism. These parameters have included probabilistic functions, utility-maximization, accessibility calculations, exogenous links and constraints (linking cellular models to other models), weights, hierarchies, inertia, and stochasticity.

Challenges facing cellular models
For all of their advantages, applications, and uses in urban geosimulation, cellular automata modelling of urban systems is still very much in its infancy. Indeed, their are early indications that the framework has some serious challenges facing it, particularly if cellular models are to step out of the realm of abstract academic experimentation and into the world of operational scenario simulation, planning support, and urban management. Key difficulties already apparent include issues of cellular model calibration, their capacity to represent top-down processes, the meaning of transition rules and their match with theoretical knowledge of how we understand urban systems, as well as the ramifications of tinkering with the formalism that works so well for many closed physical systems.

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.

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!

 

 

Projects >>

Dynamic physics for built infrastructure

moving agents through space and time

Moving agents through space and time

modeling riots

Modeling riots

Validating agent-based models

Machine-learning behavioral geography

Accelerating agent-based models

megacity models

Megacity futures

Immersive modeling

Space-time GIS and analysis

A toolkit for measuring sprawl

space-time GIS

Modeling time, space, and behavior

simulating crowd behavior

Simulating crowd behavior