Interactive visualization of an agent-based model (ABM) studying how project teams adapt to the loss of overloaded team members.
This model is based on the research paper "The Downside of Heterogeneity: How Established Relations Counteract Systemic Adaptivity in Tasks Assignments" by Giona Casiraghi, Christian Zingg, and Frank Schweitzer published in the journal Entropy (2021, 23(12), 1677). Team members are represented as agents, each with their own task-solving capacity. These agents can either solve tasks or redistribute them to avoid exceeding their capacity. If that still happens, they drop out, leaving the remaining members to compensate for the lost workforce. The ABM showcases dangerous failure cascades in teams whose members exhibit significant heterogeneity in their task-solving capacity.
The code builds on Mesa, a Python framework for ABMs, to develop an interactive visualization. Sliders allow to change model parameters and immediately see how the dynamics and outcomes of team breakdowns are influenced.
This repository provides scripts for studying (1) average model dynamics across runs and (2) how each parameter influences the model dynamics.
Both scripts require all packages from requirements.txt
, which you can install by running pip install -r requirements.txt
.
-
To study average model dynamics, run:
jupyter notebook step_01_resilience_analysis.ipynb
-
To study the effect of model parameters in an interactive Mesa dashboard, run:
python step_02_dashboard.py
- Alternatively, you can run one of the other
step_02*
files, which preset parameter values leading to special outcomes like the collapse of the entire team.
- Alternatively, you can run one of the other
This repository uses pytest
to test the core functionality of the ABM, including the task assignment between agents, network generation, and statistics computation.
To execute the tests, run:
pytest
- The code in this repository is developed independently from the original code of the ABM used for the paper.
The new implementation uses Mesa to develop interactive visualizations of the ABM.
In contrast, the original ABM was implemented using base Python, and the plots were created in R with the
dplyr
andggplot2
libraries. Because the code in this repository utilizes different libraries, the generated plots look slightly different than those presented in the paper.