This is a Reinforcement Learning (RL) challenge, so we will generate our own training data using the environment we provide.
We present here an implementation in Python (NumPy) that allows you to explore how RL can be applied to the problem. See the starter notebook in the Data section for details, where you will be walked through some of the basic mechanics of the environment and given an RL-based solution for the problem that you can take as a baseline.
Environment representation of the Rubik's Cube at a randomly scrambled position
Starter notebook is available here (Colab version)