# Generate an algorithm to get from one state to another.

#### Jeff Dunham

##### Member
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.

#### Nilsibert

##### Member
Cube explorer lets you ignore orientation and/or permutation of pieces you wish to ignore

• CuberStache and Benjamin Warry

#### Tavin25

##### Member
Well it's hard to say but I would suggest you go to playstore/appstore and type in cube solver and then you should get some options and try some of those. But in my opinion i would suggest you learn to do it.

#### KAINOS

##### Member
HARCS is primarily a cube solver (which utilizes human method) but it also works decently as a alg generator

#### PingPongCuber

##### Member
Grubik's has an optimal solver, so I guess it could work. Maybe not if you are trying to get to another unsolved state, but a solved cube should have all of the aspects that you are looking to get out of the algorithm, so I think it should work.
https://www.grubiks.com/solvers/rubiks-cube-3x3x3/
(On second thought, I don't know if it is optimal, but it is at least pretty close)
Hope this helps!

#### Bruce MacKenzie

##### Member
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:

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

Last edited:

#### xyzzy

##### Member
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
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.

#### Jeff Dunham

##### Member
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
Thank you. The mathematical approach is precisely what I wanted.

#### Bruce MacKenzie

##### Member
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.
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.

#### xyzzy

##### Member
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.
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.)

Then again, with OP's reply above, I am also now confused about what they really (?) want…