An agent-based model (ABM) is a computational model for simulating the actions and interactions of autonomous individuals in a network, with a view to assessing their effects on the system as a whole. It combines elements of game theory, complex systems, emergence, computational sociology, multi agent systems, and evolutionary programming. Monte Carlo Methods are used to introduce randomness.
The models simulate the simultaneous operations of multiple agents, in an attempt to re-create and predict the actions of complex phenomena. The process is one of emergence from the lower (micro) level of systems to a higher (macro) level. The individual agents are presumed to be acting in what they perceive as their own interests, such as reproduction, economic benefit, or social status, and their knowledge is limited. ABM agents may experience "learning", adaptation, and reproduction.
The idea of agent-based modeling was developed as a relatively simple concept in the late 1940s. Since it requires computation-intensive procedures, it did not become widespread until the 1990s.
The history of the agent-based model can be traced back to the Von Neumann machine, a theoretical machine capable of reproduction. The device von Neumann proposed would follow precisely detailed instructions to fashion a copy of itself. The concept was then improved by von Neumann's friend Stanisław Ulam, also a mathematician; Ulam suggested that the machine be built on paper, as a collection of cells on a grid. The idea intrigued von Neumann, who drew it up - creating the first of the devices later termed cellular automata.
Another improvement was introduced by the mathematician John Conway. He constructed the well-known Game of Life. Unlike von Neumann's machine, Conway's Game of Life operated by tremendously simple rules in a virtual world in the form of a 2-dimensional checkerboard.
One of the earliest agent-based models in concept was Thomas Schelling's segregation model, which was discussed in his paper Dynamic Models of Segregation in 1971. Though Schelling originally used coins and graph paper rather than computers, his models embodied the basic concept of agent-based models as autonomous agents interacting in a shared environment with an observed aggregate, emergent outcome.
In the early 1980s, Robert Axelrod hosted a tournament of Prisoner's Dilemma strategies and had them interact in an agent-based manner to determine a winner. Axelrod would go on to develop many other agent-based models in the field of political science that examine phenomena from ethnocentrism to the dissemination of culture .
In the late 1980s, Craig Reynolds work on flocking models contributed to the development of some of the first biological agent-based models that contained social characteristics. He tried to model the reality of lively biological agents, known as artificial life, a term coined by Christopher Langton.
The first use of the word "agent" and a definition as it is currently used today is hard to track down. One candidate appears to be John Holland and John H. Miller's 1991 paper "Artificial Adaptive Agents in Economic Theory" which is based on an earlier conference presentation of theirs.
At the same time, during the 1980s, social scientists, mathematicians, operations researchers, and a scattering of people from other disciplines developed Computational and Mathematical Organization Theory (CMOT). This field grew as a special interest group of The Institute of Management Sciences (TIMS) and its sister society, the Operations Research Society of America (ORSA). Through the mid-1990s, the field focused on such issues as designing effective teams, understanding the communication required for organizational effectiveness, and the behavior of social networks. With the appearance of SWARM in the mid-1990s and RePast in 2000, as well as some custom-designed code, CMOT -- later renamed Computational Analysis of Social and Organizational Systems (CASOS) -- incorporated more and more agent-based modeling. Samuelson (2000) is a good brief overview of the early history, and Samuelson (2005) and Samuelson and Macal (2006) trace the more recent developments. Bonabeau (2002) is a good survey of the potential of agent-based modeling as of the time that its modelling software became widely available.
Joshua M. Epstein and Robert Axtell developed the first large-scale ABM, the Sugarscape, to simulate and explore the role of social phenomenon such as seasonal migrations, pollution, sexual reproduction, combat, and transmission of disease and even culture.
In the late 1990s, the merger of TIMS and ORSA to form INFORMS, and the move by INFORMS from two meetings each year to one, helped to spur the CMOT group to form a separate society, the North American Association for Computational Social and Organizational Sciences (NAACSOS). Kathleen Carley, of Carnegie Mellon University, was a major contributor, especially to models of social networks, obtaining National Science Foundation funding for the annual conference and serving as the first President of NAACSOS. She was succeeded by David Sallach of the University of Chicago and Argonne National Laboratory, and then by Michael Prietula of Emory University. At about the same time NAACSOS began, the European Social Simulation Association (ESSA) and the Pacific Asian Association for Agent-Based Approach in Social Systems Science (PAAA), counterparts of NAACSOS, were organized. These organizations now collaborate internationally. The First World Congress on Social Simulation was held under their joint sponsorship in Kyoto, Japan, in August 2006. The Second World Congress was held in the northern Virginia suburbs of Washington, D.C., in July 2008, with George Mason University taking the lead role in local arrangements.
More recently, Ron Sun developed methods for basing agent-based simulation on models of human cognition, known as cognitive social simulation (see Sun 2006). Bill McKelvey, Suzanne Lohmann, Dario Nardi and others at UCLA have also made significant contributions in organizational behavior and decision-making. Since 2001, UCLA has arranged a conference at Lake Arrowhead, California, that has become another major gathering point for practitioners in this field.
Most computational modeling research describes systems in equilibrium or as moving between equilibria. Agent-based modeling, however, using simple rules, can result in far more complex and interesting behavior.
Agent-based models consist of dynamically interacting rule based agents. The systems within which they interact can create real world-like complexity. These agents are:
In some ways, agent-based models complement traditional analytic methods. Where analytic methods enable humans to characterize the equilibria of a system, agent-based models allow the possibility of generating those equilibria. This generative contribution may be the most mainstream of the potential benefits of agent-based modeling. Agent-based models can explain the emergence of higher order patterns -- network structures of terrorist organizations and the Internet, power law distributions in the sizes of traffic jams, wars, and stock market crashes, and social segregation that persists despite populations of tolerant people. Agent-based models also can be used to identify lever points, defined as moments in time in which interventions have extreme consequences, and to distinguish among types of path dependency.
Rather than focusing on stable states, the models consider a system's robustness -- the ways that complex systems adapt to internal and external pressures so as to maintain their functionalities. The task of harnessing that complexity requires consideration of the agents themselves -- their diversity, connectedness, and level of interactions.
Agent-based models have been used since the mid-1990s to solve a variety of business and technology problems. Examples of applications include supply chain optimization and logistics, modeling of consumer behavior, including word of mouth, social network effects, distributed computing, workforce management, and portfolio management. They have also been used to analyze traffic congestion. In these and other applications, the system of interest is simulated by capturing the behavior of individual agents and their interconnections. Agent-based modeling tools can be used to test how changes in individual behaviors will affect the system's emerging overall behavior.
Other models have analyzed the spread of epidemics, the threat of biowarfare, the growth and decline of ancient civilizations, and biomedical applications including inflammation and the human immune system.
A simple and accessible program for creating agent-based models is NetLogo. NetLogo was originally designed for educational purposes but now numbers many thousands of research users as well. Many colleges have used this as a tool to teach their students about agent-based modeling. A similar program, StarLogo, has also been released with similar functionality. Swarm was one of the first general purpose ABM systems. Swarm, developed by the Swarm Development Group, uses the Objective C programming language, and is recommended for C programmers with little object-oriented programming experience. Swarm can also be implemented by Java programmers, as can Ascape. Both MASON and Repast are widely used, and EcoLab is suitable for C++ programmers. Cormas is another platform, focusing on natural resources management, rural development or ecology research, based on the Smalltalk language. All the toolkits described previously are based on serial von-Neumann computer architectures. This limits the speed and scalability of these systems. A recent development is the use of data-parallel algorithms on Graphics Processing Units GPUs for ABM simulation http://rudomin.cem.itesm.mx/~rudomin/shader-agents.htm and http://www.me.mtu.edu/~rmdsouza/ABM_GPU.html. The extreme memory bandwidth combined with the sheer number crunching power of multi-processor GPUs has enabled simulation of millions of agents at tens of frames per second.