Agent-Based Models
Nigel Gilbert
In Agent-Based Models, Nigel Gilbert reviews a range of examples of agent-based modeling, describes how to design and build your own models, and considers practical issues such as verification, validation, planning a modeling project, and how to structure a scholarly article reporting the results of agent-based modeling. It includes a glossary, an annotated list of resources, advice on which programming environment to use when creating agent-based models, and a worked, step-by-step example of the development of an ABM.
This volume in the SAGE Quantitative Applications in the Social Sciences series will have wide appeal in the social sciences, including the disciplines of sociology, economics, social psychology, geography, economic history, science studies, and environmental studies. It is appropriate for graduate students, researchers and academics in these fields, for both those wanting to keep up with new developments in their fields and those who are considering using ABM for their research.
Key Features
- Aimed at readers who are new to ABM
- Offers a brief, but thorough, treatment of a cutting-edge technique
- Offers practical advice about how to design and create ABM
- Includes carefully chosen examples from different disciplines
Resources
This page has a link to the source of the model used as an example of agent-based modelling in the book, and links to useful related sites.
The Generic Collectivities model
Useful links
There is an e-mail distribution list for simulation in the social sciences. To subscribe, fill in your details at the subscription page, http://www.jiscmail.ac.uk/lists/simsoc.html
Programs, packages and environments
NetLogo
http://ccl.northwestern.edu/netlogo/NetLogo is a programmable modelling environment for simulating natural and social phenomena. It is particularly well suited for modelling complex systems developing over time. Modellers can give instructions to hundreds or thousands of independent agents all operating concurrently. This makes it possible to explore the connection between the micro-level behaviour of individuals and the macro-level patterns that emerge from the interaction of many individuals.
NetLogo lets students open simulations and play with them, exploring their behaviour under various conditions. It is also an authoring environment that enables students, teachers and curriculum developers to create their own models. NetLogo is simple enough that students and teachers can easily run simulations or even build their own. It is advanced enough to serve as a powerful tool for researchers in many fields.
NetLogo has extensive documentation and tutorials. It also comes with a models library, which is a large collection of pre-written simulations that can be used and modified. These simulations address many content areas in the natural and social sciences, including biology and medicine, physics and chemistry, mathematics and computer science, and economics and social psychology. Several model-based inquiry curricula using NetLogo are currently under development.
Swarm
http://wiki.swarm.org/Swarm is a software package for multi-agent simulation of complex systems developed at the Santa Fe Institute. It is intended to be a useful tool for researchers in a variety of disciplines, especially artificial life. The basic architecture of Swarm is the simulation of collections of concurrently interacting agents: with this architecture, a large variety of agent-based models can be implemented. It runs on UNIX machines with GNU Objective C and X-windows: the source code is freely available under GNU licensing terms; more recent versions use Java and also run on Windows machines.
Swarm is available for download in both source and binary versions.
RePast
http://repast.sourceforge.net/RePast is a free software framework for creating agent-based simulations using the Java language (requires version Java 1.4 or greater). It provides a library of classes for creating, running, displaying and collecting data from an agent-based simulation. In addition, RePast can take snapshots of running simulations, and create quicktime movies of simulations. RePast borrows much from the Swarm simulation toolkit and can properly be termed `Swarm-like'. In addition, RePast includes such features as run-time model manipulation via graphical user interface widgets.
MASON
http://cs.gmu.edu/~eclab/projects/mason/MASON is a free, fast discrete-event multi-agent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, and also to provide functionality for many lightweight simulation needs. MASON contains both a model library and an optional suite of visualization tools in 2D and 3D.
Electronic journals
There are several electronic journals which publish papers relating to computer simulation available on the Web. The most relevant of these is the Journal of Artificial Societies and Social Simulation, at http://jasss.soc.surrey.ac.uk/JASSS.html
Others worthy of mention are:
- Complexity International (http://journal-ci.csse.monash.edu.au/ci/info-journal.html), an electronic refereed journal including a wide range of papers on complexity theory;
- Complexity Digest (http://www.comdig.org/), a weekly newsletter about complexity in the natural and social sciences, which includes links to relevant reviews, notices of articles, conference announcements and so forth;
- Artificial Life Online (http://www.alife.org/), the online companion to the (paper) journal Artificial Life, published by the Santa Fe Institute (http://www.santafe.edu/).
Cellular automata
Open Directory
http://search.dmoz.org/cgi-bin/search?search=cellular+automataA good starting place for further information on cellular automata is the Open Directory, a voluntary effort to create a directory of the Web.
Modern Cellular Automata
http://www.collidoscope.com/modernca/welcome.htmlThis page has many examples of CAs and offers a Java applet that can be embedded in a Web page to produce many more variations.
DDLab
http://www.ddlab.com/DDLab is an interactive graphics program for researching discrete dynamical networks, relevant to the study of complexity, emergent phenomena, neural networks, and aspects of theoretical biology such as gene regulatory networks. A network can be set up with any architecture from cellular autamata (CA) to `random Boolean networks' (RBN, networks with arbitrary connections and heterogeneous rules). Network dimensions may be 1d, 2d or 3d. The network may also have heterogeneous neighbourhood sizes.
Stephen Wolfram's collected papers on cellular automata
{cellular automaton} and complexity} http://www.stephenwolfram.com/publications/Wolfram has provided an extensive set of pages on cellular automata and their uses.
Multi-agent systems
Agent-Based Computational Economics: Growing Economies from the Bottom Up
http://www.econ.iastate.edu/tesfatsi/ace.htmThis site has a comprehensive bibliography and links to everything to do with computational economics and social simulation, and is especially good on links to multi-agent simulations. It also includes a tutorial on agent-based computational economics.
Intelligent software agents
http://www.sics.se/isl/abc/survey.htmlSverker Janson has a page on the Swedish Institute of Computer Science site with a huge number of agent-based links.
Multi-agent systems
fhttp://www.multiagent.com/This site contains pointers to information about multi-agent systems, including both research and industrial references.
Neural networks
Neural Networks Warehouse
http://neuralnetworks.ai-depot.com/A comprehensive site with links to books, tutorials, software and descriptions of applications.
Artificial Neural Networks tutorial
http://www.gc.ssr.upm.es/inves/neural/ann1/anntutorial.htmlA tutorial with a short bibliography.
Neural Java
http://diwww.epfl.ch/mantra/tutorial/english/Neural Java is a series of exercises and demonstrations. Each exercise consists of a short introduction, a small demonstration program written in Java as an Applet, and a series of questions which are intended as an invitation to play with the programs and explore the possibilities of different algorithms.
Evolutionary computation
EVOWEB
http://evonet.lri.frThe website of EvoNet, the European Network of Excellence in Evolutionary Computing. It includes many tutorial resources.
The Genetic Algorithms Archive
http://www.aic.nrl.navy.mil/galist/This site provides a good set of genetic algorithm resources, including archives of the GA discussion list and source code.
Genetic Programming
http://www.geneticprogramming.org/This is a guide to genetic algorithms and genetic programming, with many links.
Introduction to Genetic Algorithms
http://cs.felk.cvut.cz/~xobitko/ga/These pages introduce some of the fundamentals of genetics algorithms. Several interactive Java applets have been included to demonstrate basic concepts of genetic algorithms.

