Herbert Kociemba
Veteran
- Joined
- Nov 29, 2008
- Messages
- 302
No I actually never used it. 2x2x2 has so few states that symmetry reduction seemed overkill to me.
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
It might be overkill, but it's a good practice/learning for me.No I actually never used it. 2x2x2 has so few states that symmetry reduction seemed overkill to me.
A = Converter.scramble2cube("R F' U2")
solver = Solver()
for sym in range(6):
B = Symmetry.apply(A, sym)
solution = solver.solve(B)
print(solution)
# RESULTS:
U2 F R' (3 turns) # id
F2 R U' (3 turns) # CW rotation sym
R2 U F' (3 turns) # CCW rotation sym
U2 R' F (3 turns) # BL-FR mirror sym
F2 U' R (3 turns) # DB-UF mirror sym
R2 F' U (3 turns) # DL-UR mirror sym
The whole 2x2 sym table is just for fun, I did it because I wanted to do it, not because it's necessary in anyway. A full distance table is good enough on it's own, even with full blown distance values (without the mod 3 trick), as my first software iteration shows.Sound as if you make progress! Storing 5 values instead of 4 in a byte is just for fun I think. The saved memory is not very inpressive in absolute values (just some KB).
Sound as if you make progress! Storing 5 values instead of 4 in a byte is just for fun I think. The saved memory is not very inpressive in absolute values (just some KB).
I do not exactly understand the problem you have. But eventually you do not use "move" tables for the conjugation with the symmetries for the orientations. So you should have some twodimensional array a[0..3^6-1,0..5] where you have precomputed for each orientation o and each symmetry s your o'. This should be completely independent of the the permutations or you made something wrong with the way you defined the orientations.However, with sym coords I cannot avoid to “reconstruct” the cube. If I have the raw coordinates (x,o), I can ask for the sym coords ((y,s),o). For the next step, I have to “reconstruct” the cube, so I can apply the inverse of s to get the new orientation o’, and bring the cube to ((y,id),o’) state
I do not exactly understand the problem you have. But eventually you do not use "move" tables for the conjugation with the symmetries for the orientations. So you should have some twodimensional array a[0..3^6-1,0..5] where you have precomputed for each orientation o and each symmetry s your o'. This should be completely independent of the the permutations or you made something wrong with the way you defined the orientations.
So you should have some twodimensional array a[0..3^6-1,0..5] where you have precomputed for each orientation o and each symmetry s your o'. This should be completely independent of the the permutations or you made something wrong with the way you defined the orientations.
Why 4 corners in the back? The DLB corner is not part of the orientation vector in the way I think of it.Let's see the cube state after an F move. I have 4 corners that are still well oriented (there are four 0s in the orientation vector: all corners at the back positions).
I do not understand this. The U turn changes the orientation of the ULB and UBR corner, so only the DRB corner stays 0.Now, let's see a different scramble. I do a U F turn. The orientation vector is the same as before. Four 0s, all at the same positions as we see in the case of the F cube.
Since I only did the work for the standard corner orientation on 3x3x3 (where this works fine) there are two possibilies:
- The approach does not work with the new orientation system I suggested , then I also would be interested why not.
- You did not find the right approach yet, then I hope we can solve this together.
Why 4 corners in the back? The DLB corner is not part of the orientation vector in the way I think of it.
I do not understand this. The U turn changes the orientation of the ULB and UBR corner, so only the DRB corner stays 0.
Or are you talking about the "standard" corner orientation definition? Then the axis rotation you propose is forbidden. You may only apply the 16 symmetries which fix the UD-axis here.
You definitely have to use the new orientation system to make the conjugation work. Maybe for testing it is easier to use this alternative reference system you found yourself instead of the method with the circles i described.
Should be easy. At each corner position you just have to add some number mod 3.that converts from one orientation system to another (with a given permutation of course).
Should be easy. At each corner position you just have to add some number mod 3.