This repository holds the code that was developed during the European Master Team Project in the spring semester of 2022 (EMTP 22). The project was supervised by Dr. Christian Bartelt and Jannik Brinkmann. The project team was composed of students from the Babeș-Bolyai University in Cluj-Napoca, Romania, and the University of Mannheim, Germany.
In the game Turing Tumble, players construct mechanical computers that use the flow of marbles along a board to solve logic problems. As the board and its parts are Turing complete, which means that they can be used to express any mathematical function, an intelligent agent taught to solve a Turing Tumble challenge essentially learns how to write code according to a given specification.
Following this logic, we taught an agent how to write a simple programme according to a minimal specification, using an abstracted version of the Turing Tumble board as reinforcement learning training environment. This is related to the emerging field of programme synthesis, as is for example applied in GitHub’s CoPilot.
- Tudor Esan - B.Sc. Computer Science
- Raluca Diana Chis - M.Sc. Applied Computational Intelligence
- Roman Hess - M.Sc. Data Science
- Timur Carstensen - M.Sc. Data Science
- Julie Naegelen - M.Sc. Data Science
- Tobias Sesterhenn - M.Sc. Data Science
The project directory is organised in the following way:
Path | Role |
---|---|
docs/ |
Supporting material to document the project |
reinforcement_learning/ |
Everything related to Reinforcement Learning |
src/ |
Java sources |
ttsim/ |
Source Code of the Turing Tumble Simulator |
We used Weights & Biases to log the results of our training:
We used third-party software to implement the project. Namely:
- BugPlus - Dr. Christian Bartelt
- Turing Tumble Simulator - Jesse Crossen