Inspiration

We wanted to write a program that solves a Rubik's Cube.

What it does

The program takes in a random pattern of a Rubik's Cube and finds the minimum number of steps needed to turn it into a perfect Rubik's Cube.

How we built it

We built the program using common lisp with the pure functional programming style.

Challenges we ran into

The time complexity and space complexity are very high without using a heuristic. Writing a heuristic is challenging and a lot of people took years to figure out a good heuristic. Richard Korf, a professor at UCLA, figured out a good heuristic for this particular problem at this paper. Unfortunately, a pattern database takes a few days to compute.

Accomplishments that we're proud of

Solved a Rubik's cube for some specific patterns.

What we learned

A* searching algorithm, heuristic, functional programming in lisp.

What's next for rubiks-cube-solver

Finish up the pattern database heuristic. Write a beautiful UI.

Built With

  • common-lisp
Share this project:

Updates