Current project: Rubik's cube solving agent
Many years ago, when I first started learning to code (I learned C from a textbook using geany on a Linux machine my brother gave me), I tried and failed to write a Rubik's cube solver (the brute force way, mind you). Did I realize how hard that was? No, I did not, and after I gave up I don't remember ever attempting to use C again. In fact, I never thought I would attempt to solve the same problem again.
Fast forward to yesteryear when I discovered these fascinating math subjects called group theory and abstract algebra and I learned that apparently you can make a Rubik's cube multiplication table. Suddenly, Rubik's cubes (3x3x3 cubes being subgroups of the S48 group) are fascinating to me again and I have a very interesting problem which is that it took a super computer to find every possible Rubik's cube state and the shortest paths to the solved state for every one of them and then to discover that the diameter of the graph of Rubik's cubes is 20 which is now called God's number.
Well, 20 doesn't sound like a lot but remember there are 43 quintillion states and that is a lot. It takes supercomputers to get that far. But we do have tricks for simplifying problems such that computers can do more with the resources they have and those are called models. Now, are models perfect? Absolutely not. By definition they are simplifications. But models are useful (and fun). And we have found a way to model almost anything such that we can make heuristics which are fairly accurate and faster than simulating the entire universe. We have managed to replicate exactly two phenomena in the brain using computers: learning and spatial awareness.
Neural networks can learn, and the parallels between training a neural network and teaching a person something new are uncanny. Perhaps I will make another post about that sometime. Pedagogy is another special interest of mine. The other thing we can do is replicate spatial awareness. I can't find the video for the life of me, but I know I watched a YouTube video by a neuroscience student who used structures in the brain to design a deep learning model that would replicate a simple experiment that was originally designed for rats. It required that the model could relate temporal and spatial variables. It was great because he visualized the activity in both the brain and the model and you could see the similarity. My point is, his resulting model was almost identical to modern transformers used in LLMs today (not that LLMs should be worshipped the way they are but that's a rant for another day), so I would think that it is safe to say we can replicate spatial and temporal awareness.
Now most people think of Rubik's cubes as spatial problems. That is one of my questions. If you take the group of rotations of a cube, S4, you might think it is quite simple. There are only 24 ways to rotate a cube after all and each can be annotated with 2 or less "simple" rotations around the X, Y, or Z axis. But trying to draw the graph of all 24 elements with just the simple rotations as edges (1/8 of the multiplication table) is extremely hard to do. There are 72 edges and 18 interconnected "circles" (cycles of length four that are traversed with the same simple rotation). So is it a 3-dimensional space? Is it an 18-dimensional space? Does it even have dimensions? What's the best way to visualize it? I think it should be possible to train a transformer-based model in that space, have it learn how to navigate it, and then take a peek inside its brain to find the answer.
But since cube rotation is a solved algebra, I think the Rubik's cube is a better place to apply this idea. I'm making this summary/abstract a little late, but I wanted to put my thoughts down somewhere in writing, like a dev log. I have a horrible time documenting things and finishing side projects, and I want to be able to both share what I learn and finish this darn thing so I can say I have done it. For now, I'll pin this post and continue in another.


















