Implementation of an RL based AI for playing L.A.M.A.
L.A.M.A. is a board game. It fits all the criteria I would look for. It is small to carry, easy to understand, quick to play and most importantly, a good mix of strategy and randomness. You can play it sober and not sober and have fun.
Basic proficiency in Python
We expect about 100 hours of work spread over ten weeks.
|Week 1||Play L.A.M.A. with us, and with your project group, and with friends to familiarise yourself with it. Then, enable logging for all state changes in the web game. As of now, no information is stored.|
|Week 2||Write a naive AI. Instead of expecting a player response, the game should be able to query a response from this AI submodule. We fill the naive AI with heuristics about the best strategy. Performance of the naive AI serves as benchmark for later experiments.|
|Week 4||Implement an interface that allows us to run games with all players as AI. The current web interface with its laughable GUI is not required at all for this. Rather, this interface or framework should allow us to program multiple runs of the game with varying set of parameters. In other words, set up an experimentation lab.|
|Week 5||Try out Q-Learning examples on the web. There is not sufficient time for us to understand all the mathematics behind RL techniques, but we can understand how to use these as a skill. You can deep dive into the book in references, at your own convenience.|
|Week 6-7||Implement Q-learning for our AI|
|Week 8||Measure performance against benchmark. This will also involve hyperparameter search and analysing performance across the hyperparameter grid.|
|Week 10||Documentation Week. You write blogs about your experience, shoot a video etc.|