Both agent-based modelling and cellular automata begin with individual agents or cells and model a large number of interacting agents leading to complex behaviour. However, what are the differences and pros and cons of each approach?
CAs and ABMs are quite different yet similar! CAs have fixed neighbourhoods (grid) while the nearest neighbours in an ABM vary with time, as the agents are free to move and interact with each other and their environment. Generally, both methods' agents have state, and basically can be represented as FSM (finite state machines) -- however, ABM are possibly more powerful, as the AI capabilities of each agent can be very complex, see e.g. the BDI architecture, and the possibilities of interactions, communication as well as interaction with environment contributes to more complex and realistic situations. CAs usually follow only a few rules to update state depending on neighbourhood states, so this has limited application. In my humble opinion, ABM will give more realistic simulations, especially when dealing with social phenomena and complex adaptive systems. The best introduction to ABM simulation is the NetLogo suite, very easy to program and with an extensive library of demonstration models; there are many other platforms that usually require more programming ability. In computer science, ABM are usually referred to as multi-agent systems (MAS) -- in my opinion, the emphasis is then more on platform development, not the eventual models that are implemented on the platform -- there are very many MAS platforms.
The main purpose of ABM is to simulate the emergent and/or self-organizing properties of systems of agents, which cannot be determined from the rules governing the individual agents. It is a fascinating and still emerging field of study.
The book on ABM by Rand & Wilensky is highly recommended to give you an overview of ABM in NetLogo. Prof Rand also gave a great MOOC on ABM recently at the Santa Fe Institute (www.complexityexplorer.org) and you can find the course lectures there and on YouTube. SFI's Complexity Explorer portal also has a great resource listing about complex systems, highly recommended.
The previous answer is detailed so I can only emphasise that the overall goals are different, CA's are computationally simple and the aim is to achieve complexity (emergence) with simplest possible computation and by doing so to further complexity theory, while ABM is a general approach to modelling simulation.
There is considerable overlap between CAs and ABMs, and I agree that a CA is a limited ABM, in perspective.
The unwary need to be cautioned on assumptions about the "space" that is modeled. Mathematically, an ABM is generally of far higher dimension that a CA, including more degrees of freedom. Also, NO computer simulation is "continuous"...
Indeed, in most cases and a typical ABM , the "environment" which the actions of the agents affect, is an CA in own right. So most ABM in most ABM suites include a de facto CA as the environment... Usually this CA is not infinite, but rather wrapped into a square torus etc.
Also note that the set of agents, their (discrete or discretized) coordinate space, the environmental CA and its coordinate space, are all distinct sets that are mapped to each other, implicitly by the simulation software. Then also necessary is the formalization of the agents' states and internal complexity, as well as their "action spaces" which ultimately lead to consideration of the overall picture, the macro-level.
In essence, these mappings and "action transformations" between "agents" and "environment" could be used to model abstract relations in more situations than simply those involving real-life entities, objects and interactions.
This actually has far-reaching implications for what can be modeled, and ABMs therefore have far greater modelling capabilities than CAs -- which we have only just begun to investigate.
An exciting development in NetLogo is the built-in LevelSpace extension, which allows multi-level ABM: each agent can be an ABM in own right. In my humble opinion, this opens up entirely new vistas.
Lastly, the ABM MOOC at SFI is currently on again, and highly recommended -- http://www.complexityexplorer.org -- a minimum donation of $50 is required to participate beyond the first unit but scholarships are also available.
Is social force model(SFM)under the category of agent-based model(ABM)? It seems from above discussion that SFM is much closer to closer to ABM than CA.
As the previous authors, I'd like to acknowledge the excellent answers so far, especially those detailed ones by Michael Simmons.
@Ervin Wirth: Note that CA, in theory, are not necessarily limited to finite grids. There are also examples with infinite spatial extension. The most famous CA - operating on a theoretically infinite grid - might be the "Game of Life" by John Horton Conway. Of course, for implementation reasons, a spatial limitation of the underlying grid is neccesary for simulation. As pointed out by Michael Simmons, wrapping into a square torus or similar approaches are often used in this case.
@Muhammad Nomani Kabir: Even if there are also strict CA models for pedestrian flows, I would definitely agree that the original social force model is an ABM (rather than a CA) where every person is modelled as an individual agent moving continuously in space but not on a fixed grid. Nevertheless, there is a kind of parallel between the social force model and CA. Namely, in both the state of an agent or a cell changes in dependance of its more or less close spatial neighbourhood only. Note that this specific characteristic does not need to hold for all ABM, in general.
This answer focusses on two aspects of CA & ABM modeling: (a) provides many examples, and (b) gives a link to an open-source CA model where everyone can learn how to design such software from the scratch, see the links at the end. Additionally, hints of other modeling methods that the current science developed and have in its arsenal that is used to describe natural phenomena are provided too.
Massively parallel computations sit at the core of the theory of computation. Our way of thinking, education, and even scientific training lead most of us to linear, sequential thinking. Nevertheless, nature 'plays' in parallel.
Due to the development of computers and ever-increasing computational power, we can explore various massively parallel designs. CAs, ABMs, and their brothers opened a new era in scientific research.
We got in our hands' very expressive tools enabling us to capture and simulate various natural phenomena.
CAs are very suitable to model the development of fixed entities & qualities. Like material science, the city's neighborhood development, catalytic processes, the infection spread through tissues, etc. They work with temporarily fixed neighborhoods, use a local evolution function, are based on a fixed grid of cells. Every single cell is an automaton that carries on its task according to what is happening in its neighborhood.
ABMs are very suitable for situations where entities are spatially movable. Their neighborhoods are defined dynamically, they aren't fixed. Their decisions are typically based on very complicated functions and algorithms that can easily reflect the complicated social, biological, and other types of behavior.
There are existing other types of massively parallel computational models/environments, details in the review paper below.
* Lattice Boltzmann method that can describe interactions of fluid with solid structures.
* Lattice gasses are predecessors of LBM.
* Theory of Games enables us to describe social, economic, and similar interactions.
* Complex Networks are very powerful in describing social, biological, ecological, and similar networks.
* Multi-scale Models combine different classes of models at different spatial levels.
* Machine Learning can distill input-output dependencies unseen by other methods.
* Data Mining is an extension of ML for large data.
* Complex Systems Measures & Entropy are extremely useful in describing systems, which we do not understand and are unable to describe, yet we need to quantify them and predict their behavior.
Review paper on CAs & ABM applications in medicine with an introduction:
Thanks to the person that started this thread and the contributors. I found it very interesting and helpful. Although it's a long thread, it is relevant to me now.
I'm from a different professional background (Urban and Regional Planning) with limitations in programming and computing. So, I'm greatly confused by the depth of terminology used in the thread and extent of specialisation. But I need help to really understand the concepts and applications.
Currently, I'm working on a proposal for a post-doctoral fellowship which would warrant I model future urban growth using Remote Sensing technology. A colleague suggested I use Cellular Automata (CA) approach. On reading further online (which brought me to this thread), I found there are recent approaches such as the Agent-Based Models (ABMs) and Urban-Regional Environment Simulation (FUTURES). I really want to use a very recent and relevant approach.
There are many good answers given by colleagues. After rereading the question, the following info has arisen.
The best intro into agent-based modelling is the following book. It gives a direct insights into the design and inner workings of agents. It will definitely change everyone's view of complex systems.
Ilachinski, A. "Artificial War: Multiagent-Based Simulation of Combat". World Scientific (2004), Singapore.
An intro into cellular automata dan be found here:
Jiri Kroc, Peter Sloot & Alfonz Hoekstra: "Introduction to Modeling of Complex Systems Using Cellular Automata", In book: Simulating Complex Systems by Cellular Automata (Understanding Complex Systems), Springer Berlin Heidelberg (May 2010) DOI: 10.1007/978-3-642-12203-3_1