To describe a chess game state, you don’t need to mention every chess piece’s details. Essentially, a chess piece is just a symbol. Ignoring appearance detail helps us to grab the game gist. Till now, a popular way to represent a Rubik’s cube state is the facelets expanding graph, like this:
By this way, you can’t tell which facelets are adjacent each other straightway, also it’s hard to imagine what the cube will change into after a twist applied. That because it comes from the appearance, but not the essential. Furtherly, as my preivous blog wrote, Rubik’s Cube solver programs who construct cube state from facelet color is clumsy. Rubik’s Cube is a game about cubes’s rotation and permutation (but not painting color), matrix is the most proper math tool here.
However, the fact revealed by this method is not easy to see through, and that is just what I will tell you in this blog.
more >>Some days after the former post of StyleGAN Mapping Network Geometry Visualization, I realized that there are some canonical dimension reduction methods for data visualization, such as PCA, t-SNE. These ways may be more intuitive to show data characteristics. So I did some attempts on this.
more >>StyleGAN[1] [2] generator network has two parts: full-connected mapping network (named mapping
), and pyramid CNN synthesis network (named g
).
Mapping
is a transformation from dimension 512 to 512, and g
is a transformation from dimension 512 to 1024×1024×3.
The design of mapping
is intended to disentangle the manifold mapping from latent space to feature variation space.
I’m interested in how the shape of learned mapping in network warps exactly, so this is my experiment.
Canonical Rubik’s Cube solver algorithm1 constructs cube state from face colors and a lot of permutation rules. That may waste too many coding :) Face color is merely appearance, cubies’ orientation is essential. Since Rubik’s Cube seems already been used as the avatar of group theory (check this wikipedia entry), it’s better to clarify all details of the cube rotation group structure, and construct the whole Rubik’s Cube representations based on cubies’ orientation.
Regardless of Rubik’s Cube, orthogonal rotation in 3D space is usual and connected with interesting problems. E.g. how to quickly tell if 2 orthogonal Euler angles are the same rotation, purely by algebra without experiment? Quaternion calculus may be a short answer, but when you do that, irrational numbers are inevitable, and that seems wasting and precise problematic.
Programmers prefer easy implementation, which based on a set of simple representation and rules applied to them. No float numbers, no redundancy. All you need is a multiplication table, and the table is highly symmetric, so let’s begin from analyzing the R3 orthogonal rotation group structure.
more >>