The goal was to create a modern, fast, extendable, reliable and easy to understand framework for simulating all kinds of Public Goods Games. The Public Goods Game within the software is fully customizable via csv config files and allows unattended batch runs. It also allows to write custom extensions for specific parts of the software. To allow this, we splitted the Game into several classes and interfaces:
Each of these classes has an interface and defines the methods which have to be implemented by their respective child classes. These child classes have a single designated purpose. The mutator for example has 2 Child classes. One of them for the random mutation (RandomMutator) and the other one for mutations withing a specific threshold of the old genome.
During the development of the software, we kept an eye on the performance to ensure we get the maximal throughput. In genetical programming or game development even tiny copy-operations can cause a major performance loss, because this little operations gets called millions of times due the big loop, which holds the game together.
About the project
The project was developed in cooperation with the Hintze lab of Michigan State University. We worked closley with professor Arend Hintze to gain a deeper understanding of the requirements and challenges involving game theory.
David Richter, Falk Hübner, M. Rosenthal
Prof. Dr. Jochen Staudacher, Kempten University & Prof. Dr. Arend Hintze, Michigan State University (Project management)
SS 2019, Faculty of Computer Science