An introduction to agent-based modeling

I have been hearing that agent-based modeling has been used effectively in the policy-making domain. I'm interested in exploring this topic - mostly because I use agent- based models in my research on cancer, but I am also interested in figuring out the “best” way to structure systems.

So, what is agent-based modeling then? And why is it spelled as both “modeling” and “modelling”? I may never be able to answer the latter question, though a bit of googling might do a lot of good. Rather than directly answer the former, I’ll describe an example of an agent-based model used to characterize ants foraging for food to bring back to their colony. To begin with, each ant is an independent “agent” in our model that can sense its local environment and make decisions accordingly. For example, when an ant finds food in the model during its forages, she releases packets of pheromone on her way back home, like Hansel and Gretel did with their trail of breadcrumbs. When another ant happens upon the pheromone from its sibling, she will follow the trail to the food source. If an ant doesn't find a pheromone trail, she randomly wanders around in search of a new food source and marks the path from the food to the colony with pheromones when she does.

These are all of the properties and behaviors of the “Ant Agent” in our agent-based model. So what does the area where these ants live look like? How many ants are there? How much food can be found? These are all decisions we can make when constructing the virtual world for the “Ant Agents”. Again, we try to mimic nature as much as possible and construct an ant colony, place some virtual food in several places in the virtual world, and create 100 or so “Ant Agents” (this is a very small virtual ant colony). We can now simulate ants foraging on the computer. As in reality, these ants wander around, find the food, communicate its location to their sisters, and bring food back home.

If this is all sounding rather magical, don’t worry. It really isn’t as complicated as it seems. There are really two major steps: describing the agents (including their senses and behaviors), and describing their environment. The rest is just like building a house - only with computers.

The point of this magic is that we can reproduce the foraging behavior of ant colonies through a few, simple behavior rules that each ant agent follows on its own.

Pretty cool, right? But does this mean that this is true for real ants? Could they use some other language to tell their sisters where the food is? Maybe morse code by bum wiggles? It is possible! Our agent-based model doesn’t tell us anything about that. All we can say is that the pheromone rules are sufficient to reproduce the behavior.

The next question is how we can use these sorts of models in the pursuit of social justice. That’ll be the focus on an upcoming post.