Sokoban game AI for UCI CS271 course project
The Sokoban environment is implemented in C++ to ensure that the game can run quickly, and we can perform search efficiently.
In order to build the environment you will need:
- A modern C++ compiler capable of C++17 or above and OpenMP.
- Python 3.7 or above
- Cython
Run make
in the root directory in order to create the environment and the python wrapper.
In order to run the search algorithms, you will need the following libraries.
- Python 3.7 or above
- Numpy
- Scipy
- fastdist
- PyTorch
- CUDA (Optional but makes DQN much faster)
- TorchSpread (Optional for training networks)
Run source environment.sh
in the main directory in order to be able to use all of the python features from anywhere.
Run python run.py -h
in order to get a help menu for the solver code.
Activate each of these using the -s
options for run.py
- Manhattan Greedy Selection
- Euclidean Greedy Selection
- Manhattan Hungarian Selection
- Euclidean Hungarian Selection
- Small Q-Learning Network (CPU)
- Large Q-Learning Network (GPU & Batch A* Search)