Skills: Matrix Calculations, OOP, Scrum, GitHub, Java programming
What is your project about?
For this project, hypothetically, we are a non-profit organization examining the effects of a lack of commitment and its impact on cascading failures within real-world social and economic network systems.
We investigated cascading failure behavior by modeling network systems that play the Prisoner’s Dilemma Game (PDG) and replicating the experiments reported by Wang et al. We verified the paper’s analysis, concluding that:
- Defection strategies for temporal high payoff can result in large, detrimental cascading failures or even the collapse of the entire network, and that
- The optimal strategy for surviving catastrophic failures is cooperation. Through this project, we show that short-term defection strategies can destabilize large networked systems, resulting in cascading failures. Moreover, we expect to demonstrate that a cooperative approach provides resilience against such failures, ensuring long-term network stability and reducing the risk of total system collapse.
What are the core aspects of your project?
– Agent Class: models an agent with properties such as cooperator status, alive status, and an array of connections, providing methods to update these properties and a function to generate a string representation of the agent’s state.
– Driver Class: simulates a multi-agent system on a lattice grid, where agents interact based on strategies, evaluate payoffs, and adapt their strategies or “die” based on life point thresholds, leveraging matrix calculations for interactions and connectivity in the system.
– Matrices Classes: provides utility methods for creating, manipulating, and performing operations on 2D matrices of double values, including matrix creation with pre-filled values, matrix printing, multiplication, pointwise multiplication, and scalar multiplication.
– Single Run: Displays a graph of the state of each node in the lattice after each round. Blue nodes are cooperators. Red nodes are defectors. White nodes are dead.
What are the goals/vision for this project?
The goal for this project was to complete the project using Java in an OOP fashion. We used matrices to help us calculate and solve many of the formulas given by the research paper. Our visualizations were inspired by the visualizations offered in the research paper.
What does your project do? What was your client hoping to get out of it?
– We created this project for a hypothetical non-profit examining how the lack of commitment spreads over a network. A cascading failure simulation based on the PDG model can reveal how individual decisions to withdraw cooperation influence broader community dynamics. This insight allows the organization to identify key influencers or nodes that can stabilize commitment within the network. It also enables targeted interventions to foster resilience and prevent the spread of disengagement, ultimately supporting the nonprofit’s mission to sustain collaboration and trust.
What are the project requirements? How did you address the requirements?
The main requirement for this project was to code in Java and code in an OOP way. In order to meet these requirements, our team made sure to lengthen the design process of our project for a couple of days so we had the perfect structure to complete this project.
Future work. If you were to continue this project, what would be the next steps?
The next step would be to simulate with a larger number of nodes.
Show and describe your process to design and develop your project.
We first got our ideas out on the whiteboard. Then, we solidified our ideas on paper. Afterwards, we put our ideas into code.
Talk about your challenges and achievements.
The challenge we had was interpreting the paper’s results.
Acknowledgements and References
We would like to thank Professor Fernanda Eliott and her CSC324: Software Design and Development course at Grinnell College for guiding our project and providing feedback.
Wen-Xu Wang, Ying-Cheng Lai, Dieter Armbruster; Cascading failures and the emergence of cooperation in evolutionary-game based models of social and economical networks. Chaos 1 September 2011; 21 (3): 033112.


