Rubix is a deep reinforcement learning Rubik's Cube solver written in Jax and Haiku.
The custom environment is developed in the style of the environments in Jumanji.
Disclaimer: Since starting this repo, InstaDeep has brought out Jumanji 0.2.0 which contains a RubiksCube environment.
This repo currently supports DQN, QR-DQN and a discretized PPO agent. The implementations of the DQN-based agents are inspired from the DQN Zoo implementations.
TBA
All dependencies can be installed using:
pip install -r requirements/requirements.txt
The specific model can then be trained by running the train file.
Below is an example with the DQN agent on a 5x5 Rubik's Cube;
python train.py --agent=DQN --cube_dim=5
This repo is still in the early stages - below are some things I am currently working on
- Add more agents
- Set up a predict capacity (user input capacity)
- Report best results for each agent/cubesize