forked from clementgallet/FiveStage444
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
33 lines (26 loc) · 1.68 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
TODO:
- Cancel moves between stages.
- Doc the code !
- Compute distance tables (unique and sym)
- From Kociemba
-- Filter last move possibilities (is it efficient ?)
-- Store specifically which moves decrease the distance when the distance to the subgroup is small
- From Chen Shuang (min2phase)
-- Use multithreading (again) for table generation
DONE:
+ Check if using int tables instead of byte tables is faster -> Storing is much faster with bytes.
+ Pruning tables for stage 3 are not efficient right now, use a full pruning table (without the parity maybe, for a factor of 2)
+ Eventually don't use the CubeState class anymore during the solve between stages, but generate all coordinates at the beginning and more move tables
+ Get rid of all the PruningTable classes, incorporate into Tables.java -> Almost done !
+ Eventually get rid of all the CubeStagex classes, and use directly the coordinates
+ Check for tables integrity -> Used Arrays.deepHashCode()
+ Do not consider solutions that contain a strict prefix that is also a solution (how in practice ?) -> done
+ Try anti-symmetries (works for stage 5, might work for stage 4) -> Not working on centers.
+ Try a custom binary search -> slower.
+ Add temporary raw2sym tables during initialisation -> tables would be too big... giving up.
+ Find a better way to get the edge coord of stage 4 -> done
+ Solve the inverse cube -> not working
+ Use symmetry reduction. With this, it would be possible to get stage 1 and 4 full pruning tables (see http://kociemba.org/cube.htm) -> done
+ Use backward search when generating pruning tables -> done
+ Use tables when getting values from pruning tables -> done
+ Pack 5 values into one byte instead of 4 -> done