User:Tholden/11-1100/Homework Part 1
This page showcases my work done in implementing the Non-Commutative Gaussian Elimination algorithm with direct application to solving a permutation puzzle. I would like it to be known that I had originally chosen the Megaminx puzzle and am still in the process of solving it. The algorithm is currently running on a Sun x4600 computational server using Matlab 2010b including eight Opteron 8212 processors with 32 GB of memory. However, the algorithm is not conducive to parallelization and so has yet to converge. As a test-case, I have solved the Rubik's cube, which I will also present here. In the event that the algorithm has not converged, I will submit the Rubik's cube for marking.
Theoretical Review of the Algorithm
The purpose of Non-Commutative Gaussian Elimination (NCGE) is to find the elements and order of a subgroup generated by a finite set of generators. The algorithm proceeds as follows:
Let . Define the pivot of to be the minimal such that . We prepare a table which is mostly empty
Feed in order. To feed a non-identity , find its pivotal position and let . \begin{enumerate} \item If box is empty, put in this box. \item If box is not-empty, feed into the table. \end{enumerate}