A repository for the project on using symmetry-aware deep learning architectures to solve the Rubik's cube.
To reproduce the results, download data from Google Drive and save it to a data
folder.
The data for the sampled dataset collected by Herbert Kociemba are available at http://kociemba.org/math/optman/100000optcubes.zip
The generated plots can be found at Google Drive.
Create a Python environment, e.g., with venv
, and activate it:
python -m venv venv
source venv/bin/activate
Install required libraries:
pip install -r requirements.txt
The project is structured the following way.
- cube data structures are implemented in folder
classes/
- data generation and symmetry-equivalence compression is implemented in folder
generate/
, Python scriptutils/compressions.py
, and Jupyter notebooksgenerate.ipynb
andweisfeiler-lehman_compressions.ipynb
- PyTorch models and training runners are defined in
pytorch_classes/
- all scripts run on the cluster are in folder
scripts/
- analysis of the training and search results can be found in
analyzeResults.ipynb
,summarize_accuracies.ipynb
, andsummarize_search.ipynb
Jupyter notebooks - explainability experiments can be found in Jupyter notebook
explainer.ipynb