Skip to content

Reinforcement learning the Tic Tac Toe game with a DQN agent.

Notifications You must be signed in to change notification settings

codastic/tic-tac-toe-rl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep Q-learning the Tic Tac Toe game

This project contains an implementation of the game Tic Tac Toe with several automated agents:

  • RandomAgent plays fully random.
  • MinMaxAgent plays perfectly. Best expected outcome against this agent therefore is a draw. If the agent has multiple best next agents it chooses one of them randomly. This is actually important to explore multiple paths of the game state.
  • DQNAgent is able to learn while playing against any other agent via reinforcment learning. For more information continue reading.

Jupyter Notebook

The results of training can be found in the Jupyter notebook training.ipynb.

DQN Agent

The DQN agent utilizes the features:

  • One-hot encoded input layer (3 * 9 cells)
  • One-hot encoded output layer (9 actions)
  • Single hidden layer with 243 neurons
  • Exploration with decaying epsilon value
  • Training with replay memory
  • Double DQN to stabilize weights
  • Dueling DQN

The trained weights can be found in dqnagent-first and dqnagent-second. The DQN agent has been trained separately as a first and a second player. To play with the agent without training again you can just load the provided model weights:

agent = DQNAgent(0, is_learning=False)
agent.model = keras.models.load_model('dqnagent-first')

Dependencies

This project in running on Python 3 with the dependencies specified in requirements.txt.

About

Reinforcement learning the Tic Tac Toe game with a DQN agent.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published