Jeff Dunham
Member
- Joined
- Sep 22, 2019
- Messages
- 25
What is the best program to use to get a cube from one unsolved state to another? Like an f2l case to complete OLL (just one example), but not necessarily a solved cube.
Doing the math, if you have a cube state A which you want to take to B:What is the best program to use to get a cube from one unsolved state to another? Like an f2l case to complete OLL (just one example), but not necessarily a solved cube.
You're right, but OP was asking the wrong question in the thread title. It sounds a lot more like Nilsibert's or KAINOS's answers are what they needed.Doing the math, if you have a cube state A which you want to take to B:
S * A = B
S * A * A'= B * A'
S = B * A'
So you need to solve both the starting state and the goal state. You then apply the generator for the goal state to the inverse of the starting state. An optimal solution of this product will be an optimal turn sequence to take A to B. You could do this with any optimal solver.
For example I just derived a turn sequence which along with its inverse will convert "Anaconda" to "Cube in Cube" and back.
R U' B L F' R' U F L' F' L U2 D B U' Converter
L U B' U' L' R B R' B' F D R D' F' Anaconda
F' R F' U' R F' U' B U' F U B' U' R' U' F R' F Cube in Cube
Doing the math, if you have a cube state A which you want to take to B:
S * A = B
S * A * A'= B * A'
S = B * A'
So you need to solve both the starting state and the goal state. You then apply the generator for the goal state to the inverse of the starting state. An optimal solution of this product will be an optimal turn sequence to take A to B. You could do this with any optimal solver.
For example I just derived a turn sequence which along with its inverse will convert "Anaconda" to "Cube in Cube" and back.
R U' B L F' R' U F L' F' L U2 D B U' Converter
L U B' U' L' R B R' B' F D R D' F' Anaconda
F' R F' U' R F' U' B U' F U B' U' R' U' F R' F Cube in Cube
Yes, when you are solving in stages you're dealing in cosets. One needs to take an arbitrary element of coset A to any member of coset B, say. One needs an optimal solver set up for the particular goal coset. Kociemba's Cube Explorer may be set up for problems such as that. I don't know. I've never used it.You're right, but OP was asking the wrong question in the thread title. It sounds a lot more like Nilsibert's or KAINOS's answers are what they needed.
Yup, Cube Explorer can handle that pretty much by default. A restriction is that edge orientation must correspond to the first phase of Thistlethwaite's algorithm (or the ZZ speedsolving method, but I guess you'd be more familiar with Thistlethwaite) and the corner orientation must correspond to Kociemba phase 1 / Thistlethwaite phase 2, so it can't handle arbitrary subgroups/cosets. (Which is rarely useful when generating algs for speedsolving, and it's also not of much theoretical interest, so that's not a big deal.)Yes, when you are solving in stages you're dealing in cosets. One needs to take an arbitrary element of coset A to any member of coset B, say. One needs an optimal solver set up for the particular goal coset. Kociemba's Cube Explorer may be set up for problems such as that. I don't know. I've never used it.
Can someone explain this to me?S * A = B
S * A * A'= B * A'
S = B * A'
When you have two formulas that have equal value (in this case, "S A" and "B" are assumed to be equal, and we want to find S in terms of A and B), you can apply any operation to both sides of the equation and it would still hold. If you've done any algebra in school, this concept should be fairly familiar (e.g. adding 4 to both sides of "x − 4 = 0" to conclude that x = 4).Can someone explain this to me?
I understand the idea, but are the values S, A, and B?When you have two formulas that have equal value (in this case, "S A" and "B" are assumed to be equal, and we want to find S in terms of A and B), you can apply any operation to both sides of the equation and it would still hold. If you've done any algebra in school, this concept should be fairly familiar (e.g. adding 4 to both sides of "x − 4 = 0" to conclude that x = 4).
Going from the first line to the second line, the operation being done is to right-multiply by A' (the inverse of A). This results in the equation S A A' = B A'. (Note that in group theory, you can't just switch the order in which you multiply things. These things aren't numbers. It's like how U R2 and R2 U affect the cube differently.)
Since we have A A' = identity (the "do nothing" state; this is what it means for A' to be the inverse of A), we can left-multiply this by S to get S A A' = S. Now we can combine this with the previous equation to get S = S A A' = B A'. This is an expression of S in terms of A and B, which is exactly what we wanted.
We define cube state as how a cube looks (its unique color pattern). You may know it as a scramble.I understand the idea, but are the values S, A, and B?
Yes, the * is the multiplication symbol, but S and A are algorithms (which can be thought of as cube states). A cube state is a permutation. A permutation in mathematics can be represented by a permutation matrix. Matrix multiplication is NOT commutative.\( {}^3 \) In addition, in a matrix product, the order of operations is the opposite of regular multiplication. That is, we multiply from right-to-left. That is, the right-most matrix is considered to be the first "event" in the the product that takes place.Doing the math, if you have a cube state A which you want to take to [cube state] B:
S * A = B
S, A and B in general are elements of a mathematical group. In the present context, they stand for states of the cube. A cube state may be represented by a sequence of turns which give the state when applied to a solved cube. A product A * B is found by applying a turn sequence which gives state B from a solved cube to a solved cube followed by a turn sequence which gives state A when applied to a solved cube.I understand the idea, but are the values S, A, and B?
When you have two formulas that have equal value (in this case, "S A" and "B" are assumed to be equal, and we want to find S in terms of A and B), you can apply any operation to both sides of the equation and it would still hold. If you've done any algebra in school, this concept should be fairly familiar (e.g. adding 4 to both sides of "x − 4 = 0" to conclude that x = 4).
Going from the first line to the second line, the operation being done is to right-multiply by A' (the inverse of A). This results in the equation S A A' = B A'. (Note that in group theory, you can't just switch the order in which you multiply things. These things aren't numbers. It's like how U R2 and R2 U affect the cube differently.)
Since we have A A' = identity (the "do nothing" state; this is what it means for A' to be the inverse of A), we can left-multiply this by S to get S A A' = S. Now we can combine this with the previous equation to get S = S A A' = B A'. This is an expression of S in terms of A and B, which is exactly what we wanted.
So, to sum it up, because of this expression:We define cube state as how a cube looks (its unique color pattern). You may know it as a scramble.
Of course, you know that the word "scramble" is also a verb\( {}^1 \) (not just a noun as I just defined it--because I equated it to "cube state" in the above statement). In cubing, what takes action is a move sequence (algorithm/maneuver, or whatever you want to call it).
Therefore, a cube state and the algorithm \( {}^2 \) which generates it can be thought of as being the same.
Going to the equation Bruce wrote,
Yes, the * is the multiplication symbol, but S and A are algorithms (which can be thought of as cube states). A cube state is a permutation. A permutation in mathematics can be represented by a permutation matrix. Matrix multiplication is NOT commutative.\( {}^3 \) In addition, in a matrix product, the order of operations is the opposite of regular multiplication. That is, we multiply from right-to-left. That is, the right-most matrix is considered to be the first "event" in the the product that takes place.
Therefore, when Bruce said "if you have a cube state A", this means that you start with that cube state's generating move sequence:
A
Then you a do something (execute a second move sequence, let's call it S):
S * A
We will call the result cube state B, which we can also think of as a move sequence which generates the cube state generated by applying algorithm A followed by algorithm S.
S * A = B
As you can see, we are forever going back and forth between interchanging the concept of "cube state" with a move sequence which creates/generates that cube state, as we write these equations.
May I also add that, just like in high school math, \( \frac1x\cdot x\;=\;1 \), for \( x\neq0 \), the 1 here is the multiplicative identity for numbers.
There is also an identity matrix for matrix multiplication. That's why Bruce could cancel \(A * {A}^{-1} \).\( {}^4 \) The two algorithms (cube states) did not cancel to "1", but rather the identity matrix. (Which we can think of as a redundant move sequence or no change in state.)
Footnotes:
- As you know, the verb definition of scramble in cubing is to bring the cube's cube state away from the desired cube state with an algorithm/move sequence/maneuver.
- We should say "any algorithm", since there are numerous algorithms which can create the same cube state.
- The order DOES matter with matrix multiplication. You may recall from high school Algebra 2 that you can write a 1x3 matrix to the left of a 3x1 matrix and then multiply them, but the reverse is not true. But more importantly, permutation matrices are all square matrices of equal dimensions, and thus we can change their order and still multiply them, but the result will almost always be different).
- The prime symbol (') in cubing is equivalent to the \( {}^{-1} \) symbol in mathematics.
Which you can solve for S, giving you this equation:S * A = B
If you do the reverse of A's scramble to a solved cubed, followed by B, the moves will equal S, right?S = B * A'
So, does this allow you to not care about the orientation of certain pieces? If so, can you expand upon that, if not, do you know a way?But more importantly, permutation matrices are all square matrices of equal dimensions, and thus we can change their order and still multiply them, but the result will almost always be different).
In the context of the original post one is using an optimal solver. Once one has applied the turn sequence B to the inverse of A an optimal solution of the product state will be the shortest sequence to convert A to B.Also, If I am correct, it seem like the resulting algorithm will be a bit long, as most scramble sequences are 20 moves long. I have two questions: Does this find the most effecient way, and, is there any way to find the most efferent scramble sequence?
That's correct.So, to sum it up, because of this expression:
Which you can solve for S, giving you this equation:
If you do the reverse of A's scramble to a solved cubed, followed by B, the moves will equal S, right?
I'm not sure what you mean here. If you have access to a solver which can create sub 21 generating move sequences for cube state A, that same solver should be able to find a sub 21 generating move sequence for ABCDEFG....Also, If I am correct, it seem like the resulting algorithm will be a bit long, as most scramble sequences are 20 moves long.
If you have access to a 3x3x3 solver which can find the shortest algorithm possible (by it also ignoring how the centers facelets are twisted on the supercube), yes.Does this find the most effecient way
I think I know what you're getting at here, and yes, you are on to something cool, but no, it's not relevant to this cube theory topic. With this topic, you have a well-defined (and unique -- meaning only one way) to find a "converter" (as Bruce called it) sequence S to take you from cube state A to cube state B. Again, as long as you have access to a computer solver, you will be able to find the shortest possible S, no matter what A' and B are, separately.and, is there any way to find the most efferent scramble sequence?
As you may see by this point (having investigated the above), this is irrelevant to optimizing the move sequence S, because that is a clearly defined end-goal sequence to find. You can combine not just two, but an infinite number of algorithms together to create that specific S. What you are hinting at is the characteristics of, say, two sequences A' and B (but we can generalize them to X and Y if we want, because A' and B was just a means to obtain the cube state S from Bruce's equation. The moves you want to choose to create state S is entirely up to you and is independent of how you first happened to determine cube state S).So, does this allow you to not care about the orientation of certain pieces? If so, can you expand upon that, if not, do you know a way?
Cube State A' | Cube State B |
-90 | -90 |
0 | +90 |
+90 | 0 |
If you are talking about sequence S, no. How could this be? Maybe if you were limited to (which you are NOT, since you have access to an optimal solver) to find a sequence T, which, if repeated, say, twice, will give you S. Then if there are pieces in two-cycles in T--whose orientation is maintained--then you could "ignore" those pieces in this situation--where, again, you are assuming to repeat sequence T twice to get your S. (This is because a 2-cycle repeated twice will cancel it out = doesn't matter.) But again, this is redundant, inefficient, and strange. Why not just have the single sequence S, and find the (or the few or few dozen) move-optimal generating move sequences to it?One last thing: Is there a way to just care about certain pieces, and not others (which could be represented as grey)?
You need to state what exactly you're trying to accomplish because your questions don't make enough sense by themselves to be answered.So, does this allow you to not care about the orientation of certain pieces? If so, can you expand upon that, if not, do you know a way?
One last thing: Is there a way to just care about certain pieces, and not others (which could be represented as grey)?