# qtm-optimal corner-3-cycles



## Stefan (Jan 20, 2008)

I used Herbert Kociemba's new qtm-optimal solver to analyze corner-3-cycles. Always using UFR as the first of the three corners, there are 21 choices for the second and 18 for the third, resulting in 378 cases. Here are some statistics:

8 qtm: 90 cases
10 qtm: 108 cases
12 qtm: 156 cases
14 qtm: 18 cases
16 qtm: 6 cases

378 cases
10.63 average

This would allow you to shoot from a fixed corner to any two corners with 5.3 quarter turns per corner. Using just L-layer setup moves I think the number of algs to learn would drop to around 100, which sounds feasible. Using inverses and cube rotations would reduce the number further.

And yes I know corner-3-cycles can be done intuitively with commutators but it'd be better to just know them. I'm always thinking about not thinking.


----------



## malcolm (Jan 21, 2008)

One solution to reduce algs to 27 is find a layer which has just two corners on it, there are 3*3=9 orientations, and 3 for the one on the top = 27. You need one setup to move them into the correct position, apply X, then Y is intuitive - just move the next corner where the first one was. This is somewhere between an alg and a commutator, because you learn X for every case, which will only be 3 moves for most of them.


----------



## cmhardw (Jan 21, 2008)

Daniel Beyer has already optimized algs for all corner 3 cycle cases shooting from one fixed corner. All cases can be done in 12 HTM or less if I remember correctly.

Also, the number of algs to learn is really not that large if you consider them as types of commutators rather than as all distinct cases with an alg to solve them.

For example the alg: R' F U2 F' R F R' U2 R F'
and the alg: F' D L2 D' F D F' L2 F D'

I consider to be basically the exact same case since they use the same type of commutator on the same initial corner, they are just done on different faces. And if you want to be nit-picky yes I realize that this alg is really a cyclic shift of a commutator and not quite a true commutator by itself.

I haven't fully optimized my corner algs yet, but I'm almost done thanks to Daniel. But just so you know Daniel has already optimzed algs for all those cases you're referring to.

Chris


----------



## mrCage (Jan 28, 2008)

StefanPochmann said:


> I used Herbert Kociemba's new qtm-optimal solver to analyze corner-3-cycles. Always using UFR as the first of the three corners, there are 21 choices for the second and 18 for the third, resulting in 378 cases. Here are some statistics:
> 
> 8 qtm: 90 cases
> 10 qtm: 108 cases
> ...



Hi 

What's wrong with doing/seeing corners as commutators? To be honest there is really only ONE LL corner 3-cycle i do not instantly (with practice) see easily as a commutator. It is the following:

R'FU2F'RFR'U2RF'.

Oh well, for bld it would be different ;-) One would just memorise -0+, --- or whatever for the orientations !!

- Per


----------



## Lucas Garron (Jan 29, 2008)

mrCage said:


> What's wrong with doing/seeing corners as commutators? To be honest there is really only ONE LL corner 3-cycle i do not instantly (with practice) see easily as a commutator. It is the following:
> 
> R'FU2F'RFR'U2RF'.
> 
> ...


Come on! Real men memo and women memo stickers!

Also, seen this? x (RUR'U')(RUR'U')(RUR'U') B' (RUR'U')(RUR'U')(RUR'U') B x'
(You can write it as a comm if you want...)


----------



## mrCage (Jan 29, 2008)

Lucas Garron said:


> mrCage said:
> 
> 
> > What's wrong with doing/seeing corners as commutators? To be honest there is really only ONE LL corner 3-cycle i do not instantly (with practice) see easily as a commutator. It is the following:
> ...


 
I think yours is too long  To me it would at least be more beautiful to write it as x ([R,U]*3 B' [U,R]*3 B) x' - since [U,R]*3 = [R,U]*3

This one is nicer : [R U F2 D2 F2 U' R', U']. On the other hand yours will generalise to megaminx 
"Wrap-around" sequences do not translate from cube to MM 

- Per


----------



## Lucas Garron (Jan 30, 2008)

mrCage said:


> Lucas Garron said:
> 
> 
> > mrCage said:
> ...


Oho! But that is not all!
x [[R, U]*3, B'] x'
That's 3 moves of notation (and don't you try to count cube rotations!). 
Also x [[R, U]*3, F'] x', etc., and the most compact (F can be B):

[[R,U]3,F]

(Ha! Beat ten characters that will evaluate here!


----------



## mrCage (Jan 30, 2008)

Hi 

I'm not quoting - in order to save the environment 
And yes that notation is the most compact, unless i invent something that is not yet supported anyway 
I still don't like the algorithm - for solving purposes ... 

- Per


----------



## cmhardw (Jan 30, 2008)

haha ok this discussion is getting a little silly ;-)

Also, maybe you both do this too, but I just visualize the double conjugate alg R' F U2 F' R F R' U2 R F' as really this commutator [F' R F R', U2] only with a cyclic shift done such that you start on the 3rd to last move. The commutator [F' R F R', U2] I think is a pretty straight forward "direct insert" case into the U layer.

Also, for the record, I do actually use the alg R' F U2 F' R F R' U2 R F' and rotations of this alg onto other faces like F' D L2 D' F D F' L2 F D' in my actual blindfold solving for corners. I didn't discover this alg on my own Daniel Beyer showed it to me, so again many thanks to him for helping improve my blindsolving.

Also, I'm about 25% done optimizing my corner commutators for all cube sizes. Daniel Beyer has already optimized all corner cases for his solving, but I'm being stubborn and trying to do the work on my own - and using his help when I can't find an alg I like for a case ;-)

So now when I see a letter pair, I don't just visualize the corner sticker cycles but I also think of the alg. I literally consider the letter pair word as the name for that alg. So to me R' F U2 F' R F R' U2 R F' isn't just *any* alg, it's RN or "Ron", as in van Bruchem. ;-)

Chris


----------



## mrCage (Jan 30, 2008)

Hi 
I thought it was a "one-pass" job to find optimal algs with CubeExp as it can process several "scrambles" as a "single input". Doing them one by one is tedious. Doing it all manually the hardcore way should be fun. But since qtm is not a FM metric i will not do it 

- Per

PS! Chris, did you also work out all the 1x1x1 cases ? Hehe ... What's cube size gotta do with the corner perms anyway ??


----------



## cmhardw (Jan 30, 2008)

> PS! Chris, did you also work out all the 1x1x1 cases ? Hehe ... What's cube size gotta do with the corner perms anyway ??



haha Per I guess that's a good point. I do handle parity in the corner permutation in a different way for 2x2, 3x3, 4x4, and 5x5, but other than that everything I do is exactly the same for corners and I just wasn't thinking ;-)

I do have to admit though, I really do like this commutator for 1x1x1:
x y z y' x' z'

;-)

Chris


----------



## Johannes91 (Jan 30, 2008)

Lucas Garron said:


> [[R,U]3,F]
> 
> (Ha! Beat ten characters that will evaluate here!


Ten, what a rookie! I could do it in, let's say *two* characters, if I wanted.


----------



## Mike Hughey (Jan 30, 2008)

Johannes, I think you have a slight advantage in that particular competition.


----------



## cuBerBruce (Jan 31, 2008)

Lucas Garron said:


> mrCage said:
> 
> 
> > Lucas Garron said:
> ...



I will also note that all these will also evaluate on my Windows CubeApp that I mentioned on another forum.

See:
http://games.groups.yahoo.com/group/speedsolvingrubikscube/message/39811
and
http://games.groups.yahoo.com/group/speedsolvingrubikscube/message/39812


----------



## dbeyer (Jan 31, 2008)

Several things Per:
A) I did all 376 cases by hand from one buffer 
B) Learning the big "376" is really just learning 5-6 different cases and being able to reflect them across the cube.
C) From the information that Stephan gave:
There are actually 6 cases that are 12 HTM (the 6 16-QTM cases)

Quote:
8 qtm: 90 cases
10 qtm: 108 cases
12 qtm: 156 cases
14 qtm: 18 cases
16 qtm: 6 cases
---
8-qtm is obviously 8 htm
9-HTM has a HTM cancelation, but there is still 12 or 14 quarter moves.
10-qtm ranges from 8-10 htm D' L'U2L D' L'U2L D2, There are some more optimal HTM cases that lead to worse QTM cases, no 10-HTM case is 12 HTM (at least not the data that I've gathered, which wasn't looking for optimal QTM) I would take an 8-HTM case with 10-QTM over a 10-HTM with 10-QTM anyday.
12 qtm ranges from 8-12 htm

16 qtm: 6 cases this is actually the 6 cases that are 12 HTM
R2 U F2 U' F2 U' R2 U F2 U F2 U' (12f) //BV - Angry Beavers
U F2 U' F2 U' R2 U F2 U F2 U' R2 (12f) //VB - Volley Ball
B2 U' L2 U L2 U B2 U' L2 U' L2 U (12f) //BW - Bowser
U' L2 U L2 U B2 U' L2 U' L2 U B2 (12f) //WB - Webslinger
R2 D B2 D' B2 U' B2 U B2 U R2 U' (12f) //VW - Buggy
U R2 U' B2 U' B2 U B2 D B2 D' R2 (12f) //WV - Wyvern
There are the algs for me personally. Cycling from the URB


----------



## dbeyer (Jan 31, 2008)

None the less, it was really a big research project. Due to my dedication to it, I lost sight of cubing, and then really lost the desire to test it and fully apply it. I was able to use what I had learned from it at the VA open, and I was able to pass my knowlege onto Chris the night before the competition and to a handful of others. Since I've learned of commutators, I've sworn by them. They are the way to win in execution.


----------



## mrCage (Jan 31, 2008)

Johannes91 said:


> Lucas Garron said:
> 
> 
> > [[R,U]3,F]
> ...


 
Hi Johannes !!

Give me evidence. Give me the link with the mere 2 character doing that alg. It's not hard to make it more compact than 10 chars, the problem would be to have it shown in that applet with that notation 

-Per


----------



## Johannes91 (Jan 31, 2008)

mrCage said:


> Johannes91 said:
> 
> 
> > I could do it in, let's say *two* characters, if I wanted.
> ...


#\



mrCage said:


> It's not hard to make it more compact than 10 chars, the problem would be to have it shown in that applet with that notation


It's not an applet. I hate Java.


----------



## dbeyer (Feb 1, 2008)

To have compact notation leads to a larger library of variables which must be used. Seriously, what you wrote was quite ridiculous Johannes. Perhaps you should tell us what that actually means. Without using other notations.


----------



## Johannes91 (Feb 1, 2008)

dbeyer said:


> Perhaps you should tell us what that actually means.


Nothing, it's quite arbitrary. The point was just that I could beat Lucas' ten characters because it's my site. You guys have no sense of humor.



Lucas Garron said:


> [[R,U]3,F]
> 
> (Ha! Beat ten characters that will evaluate here!


----------



## Stefan (Feb 1, 2008)

Johannes91 said:


> It's not an applet. I hate Java.


He just said applet, not Java applet. On the other hand, you didn't say your Java comment refers to any of this, could just be a random remark.



Johannes91 said:


> The point was just that I could beat Lucas' ten characters because it's my site.


Bah, don't explain a joke, takes the fun out of it (also, I thought it was obvious even before you posted your two chars).


----------



## mrCage (Feb 1, 2008)

Johannes91 said:


> mrCage said:
> 
> 
> > Johannes91 said:
> ...



Meh!! I have a sense of humour but that one was just silly. You just code that case into your "jslet". You can even make it 0 characters Less work for you also ...

On the serious side. Adding conjugate notation would be useful.
For instance F' R' D' R D F = F' [R',D'] F = [F':R',D'] or however you wanted the syntax to be

-Per


----------



## Johannes91 (Feb 1, 2008)

StefanPochmann said:


> Johannes91 said:
> 
> 
> > It's not an applet. I hate Java.
> ...


I stand corrected; I'm too used to using the word "applet" to refer exclusively to Java applets. According to the Wikipedia article, I had more or less misunderstood the meaning of the word.



mrCage said:


> On the serious side. Adding conjugate notation would be useful.
> For instance F' R' D' R D F = F' [R',D'] F = [F':R',D'] or however you wanted the syntax to be


I wrote it because I got tired of seeing algs like the following:

L z' (R U) [L' (U)] [(M') (U2)] (F) [R l] [U' l'2] U2
R'2 D'w - Rw R'- (f) R2 D'w D L'w (f') - L2

Understanding, memorizing, and finding my own way to execute them is much easier without all the sugar. For that purpose, adding some kind of conjugate notation wouldn't be useful unless people are actually using it.

And in any case, I'd rather start from scratch using a proper parser combinator library instead of trying to improve that script.


----------



## cuBerBruce (Feb 1, 2008)

mrCage said:


> On the serious side. Adding conjugate notation would be useful.
> For instance F' R' D' R D F = F' [R',D'] F = [F':R',D'] or however you wanted the syntax to be



The standard way of denoting conjugation is with exponentiation or the ^ operator. For instance, GAP supports conjugation using the ^ operator. g^h means h'gh. So Per's example (F' [R',D'] F) could be written as [R',D']^F. It is not ambiguous with exponentiation for repetition, because for repetition, the exponent is a number (or represents a number).

I've been thinking of implementing conjugation in my CubeApp. I'm wondering how to treat relative precedence of implied multiplication vs. exponenentiation, so should I accept (R2 d' M d2 d' R2 ^ B L) to mean (R2 d' M d2 d' R2)^(B L) ?

I can see this syntax may be somewhat confusing for cubers who would think of the above sequence as:
setup: L' B'
alg: R2 d' M d2 d' R2
(undo setup)

That is, the standard mathematical notation uses the "undo setup" moves instead of the "setup" moves, and places them after the alg instead of before. Per's suggestion would probably correspond to the way cubers think, but as far as I know, it's not a standard notation.


----------



## mrCage (Feb 1, 2008)

cuBerBruce said:


> I've been thinking of implementing conjugation in my CubeApp. I'm wondering how to treat relative precedence of implied multiplication vs. exponenentiation, so should I accept (R2 d' M d2 d' R2 ^ B L) to mean (R2 d' M d2 d' R2)^(B L) ?


 
Well that seems correct, however ((sequence)^a)^b is different from (sequence)^(ab) 

- Per

(edit)
My intuition told me that g^h should mean hgh' *not h'gh*. Oh well ...
(/edit)


----------



## cuBerBruce (Feb 2, 2008)

mrCage said:


> My intuition told me that g^h should mean hgh' *not h'gh*. Oh well ...



You're not alone, Per.

In my previous post, my notation for conjugation was based upon David Joyner's book Adventures in Group Theory (see http://web.ew.usna.edu/~wdj/book/node180.html), as well as checking how GAP interprets the ^ operator with permutations. Apparently, there is not unanimous agreement in what the phrase "g conjugated by h" means or what g^h means. In fact, not even the commutator notation seems to have unanimous agreement as to what it means. See this Wikipedia page for comments about both (Group Theory section of the page):
http://en.wikipedia.org/wiki/Commutator

And the following web page by Joyner seems to give even a different meaning to g^h:

see http://web.usna.navy.mil/~wdj/sm485_5.txt

I'll have to research this some more before I implement something in my CubeApp.


----------

