At the 2016 Winter Simulation Conference, I presented “Active Shooter: An Agent-Based Model of Unarmed Resistance” (PDF) (view/follow project on ResearchGate), coauthored with William G. Kennedy. The paper appeared in WSC 2016’s Social and Behavioral Simulation track, chaired by Ugo Merlone of the University of Torino and Stephen Davies from the University of Mary Washington.
Background and motivation:
I initially undertook this modeling project during a 2015 seminar on agent-based modeling for military applications (ABM) offered by Kenneth Comer at George Mason University. The issue of active and mass shooters is obviously not unique to the military, but the shootings at Ft. Hood and the very few ABMs [1 , 2] I could find on mass shootings suggest more attention from computational modelers is needed.
Examining mass shootings through the lens of complexity science and agent-based modeling raised an additional wrinkle that’s seldom addressed in the literature or training for active shooter events. Specifically, the prescription to “Run, Hide, Fight” (or “Avoid, Deny Defend”) might work for individuals, but what about the impact one individual’s behavior has on another individual’s likelihood of surviving an active shooter incident? To illustrate, imagine an active shooting is unfolding and a potential victim is able to run and hide, barricading himself in a supply closet. What happens when the next potential victim arrives at that same supply closet, having also planned to use it? The individual inside the closet has monopolized the secure hiding space, leaving the second individual at greater risk.
The study of mass shootings is complicated. Despite disproportionate media coverage, mass shootings are extremely rare and each mass shooting is unique and difficult to generalize. Even the definition of “mass shooting” is debated. In my work, I’ve relied on the U.S. Federal Bureau of Investigation for official definitions, not because I think they are necessarily the best possible, but because they provide an authoritative baseline to study the issue. The FBI considered a “mass shooting” a single incident in which four or more individuals are killed (this is the definition of “mass murder”) involving the criminal use of a firearm. Importantly, this definition means that an incident in which three are shot and killed would not rise to the level of “mass shooting,” nor would an incident in which many were shot but less than four died of their wounds.
Compounding the rarity of mass shootings available for study is the fact that many of the primary sources (including the shooter himself) are often deceased. This fact, combined with methodological issues of relying on eyewitness accounts that are subject to recall errors and bias, makes the study of historical mass shootings difficult. Conducting experiments in which participants believed they could possibly die would be unethical and dangerous. Computational modeling and simulation, on the other hand, would offer an infinitely repeatable virtual laboratory in which to study this issue and would have no possibility of harming human subjects.
I had initially imagined a model that would include a variety of agents: shooter(s), victims, and peacekeepers/LEOs. While developing the model, I realized that what was most important was creating a model that allowed users–those with more subject-matter expertise than me–to calibrate the model to their knowledge. The eventual version 1 was a generalized outdoor model in which a shooter targets and fires upon victims, victims flee the shooter, and, if set by the user, and small proportion of victims attempt to subdue the shooter, as occurred during the thwarted attack in 2015 on a Thalys train traveling from Amsterdam to Paris.
User-settable parameters permit the user to control the shooter’s accuracy, armament, and, importantly, the probability of a “fighter” overcoming a shooter.
Initial findings suggest that even with a very small probability of success – a 1 out of 100 chance for each second of the struggle – a very small proportion of “fighters” in a population can potentially subdue an active shooter, even if that shooter has a 50 percent probability per second of disabling the “fighters.”
My model is available under the Apache 2.0 license from OpenABM for others to use in their own research. I encourage other modelers to extend this model and have made several suggestions for doing so in the paper. In particular, I think the idea of rapid collective action–a coordinated group or swarm attack–should be studied as a potential counter to an active shooter.
Mass shootings unfold quickly and are rarely foreseen by victims. Increasingly, training is provided to increase chances of surviving active shooter scenarios, usually emphasizing “Run, Hide, Fight.” Evidence from prior mass shootings suggests that casualties may be limited should the shooter encounter unarmed resistance prior to the arrival of law enforcement officers (LEOs). An agent-based model (ABM) explored the potential for limiting casualties should a small proportion of potential victims swarm a gunman, as occurred on a train from Amsterdam to Paris in 2015. Results suggest that even with a miniscule probability of overcoming a shooter, fighters may save lives but put themselves at increased risk. While not intended to prescribe a course of action, the model suggests the potential for a reduction in casualties in active shooter scenarios.
Keywords: agent-based modeling, ABM, active shooter, mass shooter, military, law enforcement, LEO, firearms, guns, violence, terrorism, security
Briggs, T. W. & Kennedy, W. G. (2016). Active shooter: An agent-based model of unarmed resistance. In Proceedings of the 2016 Winter Simulation Conference (WSC), 3521–3531. https://doi.org/10.1109/WSC.2016.7822381 (PDF)
A colleague recently asked how to get started with agent-based modeling (ABM).
It’s never been easier to learn ABM, whether you’re a social scientist, physical scientist, engineer, computer scientist, or from any discipline, really.
If you want to start right this minute, the very best thing to do is to head over to Uri Wilensky’s NetLogo website, download NetLogo (available for any OS) free of charge, and then work through the three learning tutorials available under “Learning NetLogo” in the User Manual.
The first tutorial is titled “Models” and, as its title suggests, introduces you to interacting with existing NetLogo models such as the Wolf-Sheep Predation model of an ecosystem.
The second tutorial is titled “Commands” and takes you a bit deeper in issuing commands to the NetLogo interface.
The third tutorial is titled “Procedures” and walks you through building a model from scratch – writing the necessary NetLogo code to implement a basic agent-based model.
After the three tutorials, the NetLogo website encourages reading through the guides available in the NetLogo documentation (Interface, Info Tab, Programming) and making use of the NetLogo Dictionary, a comprehensive index of NetLogo methods, procedures, and keywords.
What’s great about NetLogo is that it is fairly intuitive and “programming” or “coding” in NetLogo is very quickly learned, making a first agent-based model possible in a very short time.
If you prefer using a textbook as a guide, my recommendation is Uri Wilensky and Bill Rand’s Introduction to Agent-Based Modeling (find in a library), which uses NetLogo and includes companion code and models to run through all of the essentials of agent-based modeling.
Please see my review of Wilensky and Rand’s Introduction to Agent-Based Modeling for more detail on the book – which is excellent – and what it covers.
If you want to get started with ABM, download NetLogo today.
A short 2009 video describing NetLogo and some capabilities:
Uri Wilensky and William Rand’s An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Systems with NetLogo (find in a library) is the single best book I’ve encountered for anyone interested in agent-based modeling (ABM) in any discipline and at any level (K-12, undergraduate, graduate, professional).
At nearly 500 full-color pages, Wilensky and Rand’s book does an excellent job progressively walking through the decision to use agent-based modeling, creating simple ABMs, extending preexisting ABMs, creating more complicated ABMs, analyzing ABMs, and conducting verification, validation, and replication.
One of the greatest strengths of Wilensky and Rand’s approach is that IABM (Introduction to Agent-Based Modeling) is that it is a hands-on, exploratory book intended for use with the NetLogo multi-agent modeling environment, which is freely available for download. Each chapter of IABM includes many illustrative examples, all implemented and executed in NetLogo. Moreover, the example models and code are not just available to readers (again, free of charge), but are conveniently bundled in the current release of NetLogo. In other words, rather than just read about the models, the reader is encouraged to run the models his or herself. The Chinese proverb says it best:
Tell me and I’ll forget;
show me and I may remember;
involve me and I’ll understand.
Beyond just running the models described in the book, each chapter concludes with a substantial number of exercises or “Explorations,” usually numbering 20 to 30. Each Exploration is a potentially deep opportunity to learn more about ABM by getting involved rather than just reading, as the Chinese proverb suggests.
Wilensky and Rand do a very nice job of using illustrative models from a variety of disciplines; one example might come from the social sciences and the next example from ecology. This is helpful since each reader may come from a different background or have different experience or interests.
The book requires no special background in mathematics or computer science, which is a huge plus in terms of accessibility to a broader audience.
The authors suggest that it could be used as a textbook for an undergraduate course on complex systems or a computer science course on ABM, or even as a supplement to science, social science, or engineering classes. Graduate students who wish to use ABM in their research – regardless of discipline – would likely find IABM one of the best possible places to start. Even experienced researchers with no agent-based modeling experience would benefit from IABM as an introduction to the method.
While the book is aimed at high-level undergraduates and graduate students, it is sufficient to successfully create very detailed and scientifically valuable agent-based models in NetLogo. The authors reserve a final chapter for “advanced” applications potentially of greater interest to individuals interested in specific sorts of ABM: computationally intensive models, participatory or stakeholder-driven modeling, robotics, spatial and geographic information systems (GIS), and network science / social network analysis. They select just a handful of NetLogo’s more advanced capabilities to describe in this chapter, but include helpful references enabling interested readers to learn more.
I can’t find anything about IABM to criticize, though reading it cover to cover (as I did) is certainly an investment of time, albeit a worthwhile one for the reader wishing to learn and use agent-based modeling.
One of the best ways to explore the science of complexity and how complexity theory can be applied to the numerous real-world phenomena we experience and study is through agent-based modeling. Uri Wilensky and Bill Rand have written an excellent book to help anyone do just that, and I recommend An Introduction to Agent-Based Modeling: Modeling Natural, Social, and Engineered Complex Systems with NetLogo (find in a library) to anyone wishing to get started with agent-based modeling.
Wilensky and Rand make ABM accessible and, importantly, thoroughly enjoyable to learn.
The book’s companion website is http://www.intro-to-abm.com/.
This is a short post on a minor but consequential pitfall of social network analyses of film actors.
One thing that has always bothered me about social network analysis of so-called “actor networks” using data from IMDB is the very simple fact that these analyses are based on the assumption that because two actors appear in the same film, they know each other.
This is simply not true.
Modern filmmaking techniques and the high cost of actor set time incentivizes filmmakers not to have expensive actors on set at the same time unless absolutely necessary. Instead, stand-ins are often used in place of star actors–especially in dialogue scenes–and footage is later edited to put the two star actors together in the finished product.
So, in theory, two actors can appear in the same film and even in the same scenes but never actually be on set together. Extrapolating, two actors could appear in the same film and never actually meet.
I’ve been waiting to find a solid example and finally found one.
Robert Rodriguez (@Rodriguez), the writer-director-producer best known for his films Sin City, From Dusk Til Dawn, Once Upon a Time in Mexico, and Spy Kids, was interviewed on the Tim Ferriss Show and described exactly this situation occurring during Sin City. Rodriguez describes Sin City as one of the most rapidly-executed projects he ever worked on, from initial concept and collaboration with Frank Miller to actually shooting the film in a matter of months. In fact, Rodriguez describes shooting scenes for Sin City with actor Mickey Rourke, in which Rodriguez or another crew member would stand in for the villain who at that time hadn’t been cast. Rutger Hauer was later cast and the complementary footage was shot for the scenes. According to Rodriguez, Rourke and Hauer claim they never met, despite appearing together in a Sin City scene in which Rourke’s character appears to have his hands on Hauer’s throat.
The lesson is what every good data scientist and computational modeler should always keep in mind: justify all assumptions and always include or at least consult subject-matter experts who know the system and data being studied!