This project aims to train artificial agents that can play the famous game of Tic-Tac-Toe. The whole training process can be found in the training_full_code.ipynb notebook, where we explored different approaches such as learning from experts and self-play learning for both Q-learning and DQN.
We measured the performances of our agents using 2 measures: the fraction of games won against a random player (1->optimal, 0->bad) and the fraction of games won against an optimal player, since the optimal policy for Tic-Tac-Toe can be explicity implemented (0->optimal, -1->bad). below are shown the performances during training for both Q-learning and DQN:
where n* represents the slope of the decreasing exploration rate. for more information, please check the full project report.
The best way to test the agent is to play against it. To do this, clone the repo, install the dependencies in the requirements.txt file, and run the interactive_play.py script!