In this assignment, you will implement various RL algorithms that learn the game of Catch. For exact description, refer to the assignment description on Brightspace.
Before running the code, make sure you properly install the dependencies:
python3 -m pip install -r requirements.txt
The code has been tested with Python 3.11.
Now, you should be able to simply run the main.py as any other script.
In order to allow us for easy grading, we implemented a simple test that checks wheter your requirements.txt file is complete and that your code runs without errors. You can run this test by executing the following command:
source test.sh
Here are a couple of hints and resources that might help you with in this assignment:
-
To help you out with technical writing, check out these papers for inspiration. Reading real scientific papers can help you out with using correct nomenclature and ensuring a clear structure. In particular, you can draw inspiration as to how complex concepts and formulas are introduced and explained.
a. Technical Report on implementing RL algorithms in CartPole environment - https://arxiv.org/pdf/2006.04938.pdf
b. Paper summarising usage of RL in Chess - https://page.mi.fu-berlin.de/block/concibe2008.pdf
-
If you have duplicate code in multiple places, it’s probably a bad sign. Maybe you should try it to group that functionality in a seperate function?
-
The agent should be able to learn using different types of algorithms. Maybe there is a way to make these algorithms easily swappable?
-
Type hinting is not required, but it can help your partner understand your code - https://mypy.readthedocs.io/en/stable/cheat_sheet_py3.html
-
Git workshop by Cover - https://studysupport.svcover.nl/?a=1
-
YouTube Git tutorial - https://www.youtube.com/watch?v=RGOj5yH7evk
-
OOP in Python - https://www.youtube.com/watch?v=JeznW_7DlB0
-
How to document Python? - https://www.datacamp.com/tutorial/docstrings-python4
If you are struggling with one part of the assignment, you're probably not alone. That's why we want to create a small FAQ throughout the next couple of weeks. In case of a question, raise an issue in the original, template repository: https://github.com/Deep-Reinforcement-Learning-RUG/catch-assignment. We will answer your questions there, so that there are no duplicate questions.