How would I come up with 2x2x2 Rubik's cube OLL algorithms that perform certain operations using GAP?

Here is an example of some OLL algorithms: https://jperm.net/algs/2x2/oll They leave the bottom half of the cube fixed, and they move the yellow squares onto the top of the cube. They are free to permute the grey squares however they like.

I have represented the 2x2x2 Rubik's cube as the following group in GAP:

U:=(513,523,524,514)*(153,351,352,253,254,452,451,154)^2;
D:=(613,614,624,623)*(163,164,461,462,264,263,362,361)^2;
F:=(163,153,154,164)*(513,514,451,461,614,613,361,351)^2;
B:=(253,263,264,254)*(523,352,362,623,624,462,452,524)^2;
L:=(351,361,362,352)*(513,153,163,613,623,263,253,523)^2;
R:=(451,452,462,461)*(514,524,254,264,624,614,164,154)^2;

f:=FreeGroup("U","D","F","B","L","R");
G:=Group([U,D,F,B,L,R]);
hom:=GroupHomomorphismByImages(f,G,[f.1,f.2,f.3,f.4,f.5,f.6],[U,D,F,B,L,R]);
SG:=Stabilizer(G,[613,614,624,623,163,164,461,462,264,263,362,361],OnTuples);

I was able to find large words by applying the PreImagesRepresentative to random elements of SG.

I implemented a brute force search for short words and I was able to find 2 of the OLL algorithms.

I found that Factorization will calculate the shortest word, I'm running that now but it seems to be taking a very long time.

What I would really like to do is calculate very short words that extend a specific action, like:

word:=RepresentativeAction(G, [523, 524, 513, 514, 613,614,624,623,163,164,461,462,264,263,362,361], [523, 524, 153, 154, 613,614,624,623,163,164,461,462,264,263,362,361], OnTuples);

or

word:=RepresentativeAction(SG, [523, 524, 513, 514], [523, 524, 153, 154], OnTuples);

I sampled from this randomly and found long words that achieve the OLL algorithms, but I can't work out how to find short words.

Any advice and suggestions would be welcome!

_______________________________________________
Forum mailing list
Forum@gap-system.org
https://mail.gap-system.org/mailman/listinfo/forum

Reply via email to