Clock optimal solver

As there're only 18 possible moves in WCA notation (instead of all 30 moves of the clock puzzle), we can easily solve the clock by brute-force search + Gaussian Elimination.
The average solution length of the optimal solver is about 10.8 moves, which is 2 moves less than randomly generated moves (14 * (1 - 1/12) = 12.83). 
Do you have code for that? Perhaps it would make sense to put that code in a main method in this class?