# Commutator generation, 5cycles and more

#### Roman

##### Member
tl; dr: I generated a lot of speed-optimized 3cycles for wings and x-centers, you're welcome to use them.

I was playing around with commutator algs recently when I found this:
Urb->Brd->Rdb: [r', 4Uw' l 4Uw].
Wondering how many other curious things I have never noticed, I decided to write a generator. In this post I will present some interesting results. Here are raw generated lists for x-centers and wings: https://github.com/Roman-/comms/tree/master/oneMovePartA_raw

First notable thing: commutator algs can solve not only 3cycles, but also 5cycles and 2cycle pairs, although they're slightly less intuitive.

2cycle pairs are cool: they're usually [A, B], where A is an 'interchange' move, and B changes just two pieces on the layer A. Examples:
Bdl-Ful & Dfl-Ubl: [l, U2 f2 U2]
LDb-LUf & LBu-LFd: [L, U' D' r2 D U]
BLd-UFl & UBr-URf: [U, F' R' d R F]

Centers 5cycles often have this pattern: whilist 3cycles are usually [A,BCB'], 5cycles are [A,BCB]. Examples:
Urb-Dbr-Bru-Fru-Blu: [r', u' R' u']
Urb-Dlb-Fru-Bur-Dbr: [r, b L' b]
Ul-Dl-Bl-Fl-Br: [l, E R2 E]

Eventually I found two pure algs for Urb->Brd->Rdb:
[r', D' b D] // = [r', 4Uw' l 4Uw]
[b, D r' D']
Unfortunately, these kind of algorithms are impractical. [F' d F, r] is one more example of the comm of this nature, it's pretty interesting how they work though, I didn't know about them before.

Setup moves

Not all 3cycles cases can be solved with pure commutators, so I also tried obtaining a list of all possible 3cycle commutators [A, B] with 3 moves part B and one move part A, with up to 3 setup moves stm. Turned out there are too many of them (~18millions for x-centers, a lot more for t-centers), and they don't even include such good algs as [U' Rw' U [M', U r U']] because (U' Rw' U) is 4 moves stm.

The practical aspect of it

Certainly I have to somehow filter the results to be able to find good algs. But what are the criteria?
Descard slice setups? But then I'll miss cool nine-movers like [l [l d' l', U2]]. Lower number of setups down to 1 or 2? Well, the for UF-UB-DF I haven't found any center-safe alg faster than [U' R' U [M2, U R U']]. Disallow F and B? [Rw' F [l2, U' r U]] is good. Disallow f and b? But [b', r B r'] can be executed fast if you do x' rotation before.
As you see, finding practical algs is more difficult task than it seems, but that's exactly what I'm aimed to do eventually.

What's next?

My current goal for this project is: for every 3cycle case, output a list of all commutators sorted from fastest (and/or shortest) to the most impractical. For this, I have to come up with a good speed/convinience estimation criteria I mentioned earlier. Then, questions like "what alg would you use for this 3cycle case?" will stop making sense because they're all there sorted and it's not possible to come up with a good alg that's not among the first few lines of the list (unless it has a non-commutator structure).
If you have any ideas for the good algs criteria, please discuss it there. If we succeed to implement it, such algorithms collection will be a tremendous help to anyone looking for a good alg for a specific 3cycle case.

Cheers!

Obviously I forbidded consecutive moves to be the same layer turns (like l2 l'). But on my first launch, I noticed it generates things like [S', r2 b' S'] which is essentially equal to [S', r2] (this swaps Ur-Dr and Ld-Rd). I realized that [A,BCA] = [A,BC], and, generally,
[A, B C] = [A, B] if A is parallel to C. Indeed,
if A||C, then (C A' C') = (C C' A') = (A'). Hence,
[A, B C] = A BC A' C'B' = A B (C A' C') B' = A B (A') B' = [A, B].

Also, [A, A' B] = A A' B A' B' A = B A' B' A = [B, A']. These are the majority of generated scrambles with [one move, four moves]. Example: Dlb-Rdb-Rbu: [R, R' u' l u] = [u' l u, R'].

Last edited:

#### Cale S

##### Member
[L, U' D' r2 D U] can also be done with a z rotation to (Rw2 B2 Rw2 U')2, which is 2 moves shorter and very fast to execute

#### Iamdrewbrees

##### Member
Any way you could get it to work with cube explorer or something in a way that short non-commutative solutions would show up? A fair amount of the worst commutator cases have good algorithmic alternatives

##### Member
So, I was searching for a comm for UBL-URB-FLD, but find none...
Maybe you should just try to use a fixed buffer and cover all the cases from there, you should be able to reduce the repetitive cases if you use the fixed buffer...

For example, I found out that for any 3 corner commutators you only need one of a 27 pool of different cases using BH corner commutators. (from 8 to 12 HTM)

You're close to a good set of algs, i found this in BH speedsolve algs:
(URB FLD UBL) U R D2 R' U' R D2 R' (8 HTM) Drop and Catch

#### Roman

##### Member
So, I was searching for a comm for UBL-URB-FLD, but find none...
Maybe you should just try to use a fixed buffer and cover all the cases from there, you should be able to reduce the repetitive cases if you use the fixed buffer...

For example, I found out that for any 3 corner commutators you only need one of a 27 pool of different cases using BH corner commutators. (from 8 to 12 HTM)

You're close to a good set of algs, i found this in BH speedsolve algs:
(URB FLD UBL) U R D2 R' U' R D2 R' (8 HTM) Drop and Catch
I haven't covered corners algs yet, but you can try find one here: https://bestsiteever.ru/tables/

##### Member
Hey Roman,
I got bit confused, you're cool with what you're doing, just as a suggestion, try to have them sorted by cubies...
all ULB first, then UBR then UFL... etc...
just a suggestion...

#### Roman

##### Member
Part 2
As mentioned earlier, my final goal for this project was: for each 3cycle case, generate a list of the most convinient algorithms. So far I've done it for wings and x-centers, so here they are:
• wings(UFl, DFr, UBr, URf buffers): click
• x-centers (U-layer buffers): click
• x-centers (D-layer buffers): click
I also did it for edges and corners but haven't formalized the tables yet. Definitely will publish it when I have some free time.
Looking through these lists, I was amazed how many good algs are there that I never knew about. If I will ever start practicing BLD seriously again, I would begin with changing my algs according to the generated tables.

#### Iamdrewbrees

##### Member
Part 2
As mentioned earlier, my final goal for this project was: for each 3cycle case, generate a list of the most convinient algorithms. So far I've done it for wings and x-centers, so here they are:
• wings(UFl, DFr, UBr, URf buffers): click
• x-centers (U-layer buffers): click
• x-centers (D-layer buffers): click
I also did it for edges and corners but haven't formalized the tables yet. Definitely will publish it when I have some free time.
Looking through these lists, I was amazed how many good algs are there that I never knew about. If I will ever start practicing BLD seriously again, I would begin with changing my algs according to the generated tables.
No UFr?

#### pinser

##### Member
Part 2
As mentioned earlier, my final goal for this project was: for each 3cycle case, generate a list of the most convinient algorithms. So far I've done it for wings and x-centers, so here they are:
• wings(UFl, DFr, UBr, URf buffers): click
• x-centers (U-layer buffers): click
• x-centers (D-layer buffers): click
I also did it for edges and corners but haven't formalized the tables yet. Definitely will publish it when I have some free time.
Looking through these lists, I was amazed how many good algs are there that I never knew about. If I will ever start practicing BLD seriously again, I would begin with changing my algs according to the generated tables.
This is amazing, thanks so much!

#### Hari

##### Member
This is so cool Roman. Thanks for making this. The minute I too get some time to dedicate back to big BLD, I'm revising my lists with these. Think it could make a serious improvement in my execution.