Blog Post

Simulating Attrition: The Battlefields of Netlogo

Simulating Attrition: The Battlefields of Netlogo


Arguably one of the greatest military strategists and philosopher of war Carl von Clausewitz remarked in his 1832 masterpiece On War that "[a]ll war presupposes human weakness and seeks to exploit it." I have always found it haunting how much weight there is in one simple sentence. Though Clausewitz's work is heavily varied in interpretation, this quote speaks to humans at war both on an individual and collective level: of the lowly foot soldier's morale as the enemy relentlessly attacks his position, to an entire army lacking the will to fight on any longer. My specific interest on the topic concerns the practice of attrition in warfare. Attrition is most famously remembered as a Great War phenomena by which both opposing sides attempted to wear down the enemy by destroying more men and materiale than could be produced again and brought to the front lines. For instance, imagine a small scale trench battle in which side A is able to destroy 70% of Side B's artillery and 80% of their soldiers before Side B can rearm themselves. Though attrition does not, or has not in the past, necessarily determine the outcome of a battle or even war, it is an important battlefield phenomena to study. So, that is what I decided to do. I was interested in what a simulation would reveal about attritional warfare. 


My first step was to head over to NetLogo to see if there was possibly a model already created in their library that mimiced attrition in any form. NetLogo is a program whereby you can use existing, or create your own, Agent Based Model based on a variety of subjects and areas of study. After searching through the library I found the Wolf-Sheep Predation model as the most promising. (Please go mess around on the NetLogo sight; they're all quite fun.) Of course, the very first problem I realized was that the model was inherently geared towards virtually the total predation of a wolf population over sheep. So I decided to screw around even further. I went into the code and, keeping the sheep and wolves as opposing sides, as well as disabling the ability for sheep to eat grass for energy, I began to change the code to model a simplistic version of attrition. Though there is still much work to do, the current model I have adapted to represent attrition focuses on the main objective of getting the sheep to be able to hunt the wolves. Unfortunately, I am not able to upload the model due to technical difficulties, yet the one on the website, as well as my screenshots shall suffice. 


Updated Wolf-Sheep Predation Model


Obviously when dealing with models and simulations, I recognize the inherent misrepresentation. For instance, you can adjust the reproduction and death rates, as well as inital numbers, and that is about it. When either side kills an agent, they also gain energy. While this may be the case on the battlefield, specifically in terms of a unit, on an individual level it might not be this way. Get down to the level of a soldier: imagine being in a trench and having just killed an enemy soldier. As humans, our reactions are varied in such primitive and instinctual circumstances. To get a truer agent representation or reaction, one would need a better model. And this leads me to a final point about lack of knowledge in simulations. I feel that there is a focus on simulations as needing to be 100% factually accurate and predictive. That any variation, mistake, limitation has a negative impact on our understanding of the model's simulation. Yet not only do opposites reveal more of their counterparts, but lack of knowledge now does not mean lack of knoweldge ever. The simulation I tinkered with is incredibly simplified and lacking so much, yet look at what it already represents. A model or simulation is not just the code put into it, but the information taken out of it. 


For now, I will keep tinkering and messing around with the code, adding and subtracting. I will also update on my progress.


No comments