• Welcome to the Speedsolving.com, home of the web's largest puzzle community!
    You are currently viewing our forum as a guest which gives you limited access to join discussions and access our other features.

    Registration is fast, simple and absolutely free so please, join our community of 35,000+ people from around the world today!

    If you are already a member, simply login to hide this message and begin participating in the community!

Announcing: New 4x4x4 Brute Force Solver

Status
Not open for further replies.
Joined
Sep 17, 2009
Messages
901
Likes
45
Location
New Orleans, LA
YouTube
4EverTrying
I just wanted to mention that I used the classic 3x3x3 setup R2 B2 U2 L U2 R' U2 R U2 F2 R F2 L' B2 R2, in Cube Explorer to find single dedge flip algorithms, and I found over a 100 more 23 single slice quarter turn solutions. I only searched through depth 18 (it took my PC 4 days to do that...I did let my PC rest every once in a while though), and thus I suspect that there are more 23q algorithms which can be created using this 3x3x3 setup, let alone with an optimal 4x4x4 solver in the single slice quarter turn metric.

If anyone has searched at a higher depth and has the 3x3x3 solutions, post them in a .txt file, and I will extract more 23qs and look again for any 21qs. Speaking of which, it's interesting to note that I found only 1 21q which was very close to being a single dedge flip algorithm: r' F l' F2 r F r' F2 D F' D l D' F D' l F2 r.

And two of the 23q's I found cancel to 22 block quarter turns
Rw' U2 B r' B' U2 F2 Lw' B2 r' B2 Lw B r F2 B' Rw (22,17)
Rw' U2 B r' B' U2 F2 Rw' U2 r' U2 Rw B r F2 B' Rw (22,17)
Which means that we could have just used the classic setup to find 22q algorithms all along!

Lastly, to Ed and Tom, I have added the (15,9) checkboard algorithm as well as the adjacent 4-cycle cases to the 4x4x4 parity algorithms page in the wiki, I have credited you guys, and I have updated the table which summarizes the move counts of 2-cycle and 4-cycle algorithms in 2 dedges.

For those who see that wiki page, you will notice that I added a lot more single dedge flip algorithms, including a bunch of 23qs, algorithms which just use two faces, and wide turn OLL parity algorithms which just use wide turns (that cannot be converted to single dedge flips simply by changing wide turns into inner slice turns).
 
Last edited:
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #282
I just wanted to mention that I used the classic 3x3x3 setup R2 B2 U2 L U2 R' U2 R U2 F2 R F2 L' B2 R2, in Cube Explorer to find single dedge flip algorithms, and I found over a 100 more 23 single slice quarter turn solutions. I only searched through depth 18 (it took my PC 4 days to do that...I did let my PC rest every once in a while though), and thus I suspect that there are more 23q algorithms which can be created using this 3x3x3 setup, let alone with an optimal 4x4x4 solver in the single slice quarter turn metric.

If anyone has searched at a higher depth and has the 3x3x3 solutions, post them in a .txt file, and I will extract more 23qs and look again for any 21qs. Speaking of which, it's interesting to note that I found only 1 21q which was very close to being a single dedge flip algorithm: r' F l' F2 r F r' F2 D F' D l D' F D' l F2 r.

And two of the 23q's I found cancel to 22 block quarter turns
Rw' U2 B r' B' U2 F2 Lw' B2 r' B2 Lw B r F2 B' Rw (22,17)
Rw' U2 B r' B' U2 F2 Rw' U2 r' U2 Rw B r F2 B' Rw (22,17)
Which means that we could have just used the classic setup to find 22q algorithms all along!

Lastly, to Ed and Tom, I have added the (15,9) checkboard algorithm as well as the adjacent 4-cycle cases to the 4x4x4 parity algorithms page in the wiki, I have credited you guys, and I have updated the table which summarizes the move counts of 2-cycle and 4-cycle algorithms in 2 dedges.

For those who see that wiki page, you will notice that I added a lot more single dedge flip algorithms, including a bunch of 23qs, algorithms which just use two faces, and wide turn OLL parity algorithms which just use wide turns (that cannot be converted to single dedge flips simply by changing wide turns into inner slice turns).
Thanks Chris. My program is currently in a state of disarray as I try to come up with a way to deal with the need for two separate move generators; one for the turns-from-solved database and the other for doing the regular solving. Once I work it out I'll repost a new version.
 
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #283
I just wanted to mention that I used the classic 3x3x3 setup R2 B2 U2 L U2 R' U2 R U2 F2 R F2 L' B2 R2, in Cube Explorer to find single dedge flip algorithms, and I found over a 100 more 23 single slice quarter turn solutions. I only searched through depth 18....
I loaded up the most stable version of the program with the 6-TFS and let it run through depth 15 and it came up with 39 solutions. Recall this is also the version of the program that has one orientation problem corrected but introduced a move generator issue that Bruce identified. Here are the 39 solutions it has for the single dedge flip:

Code:
Solutions To Scramble = U2 l2 U2 F2 l F2 l' F2 l2 U2 r U2 r' F2 l 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|####|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  U2 l2 U2 F2 l  F2 l' F2 l2 [inside 6-TFS] ---> U2 r  U2 r' F2 l   @ 0000300337566 nodes with 0005968964715 6-TFS probes          
Solution [002] =  D2 r2 F2 r  F2 r' F2 D2 r2 [inside 6-TFS] ---> D2 r' F2 l  D2 l'  @ 0001381196532 nodes with 0010588162793 6-TFS probes          
Solution [003] =  D2 l2 F2 l' F2 l  F2 D2 l2 [inside 6-TFS] ---> D2 l  F2 r' D2 r   @ 0001396652763 nodes with 0010654223745 6-TFS probes          
Solution [004] =  r  F2 r' F2 l  B2 r2 B2 D2 [inside 6-TFS] ---> l  B2 r' B2 l2 D2  @ 0001839230742 nodes with 0012545741289 6-TFS probes          
Solution [005] =  r  F2 l' U2 l  U2 r2 F2 r' [inside 6-TFS] ---> F2 r  F2 U2 r2 U2  @ 0001840185623 nodes with 0012549819208 6-TFS probes          
Solution [006] =  r  B2 r' U2 r  U2 l2 B2 r' [inside 6-TFS] ---> U2 l  U2 F2 l2 F2  @ 0001896342278 nodes with 0012789865309 6-TFS probes          
Solution [007] =  r  B2 l' B2 l  D2 l2 D2 B2 [inside 6-TFS] ---> r  D2 l' D2 r2 B2  @ 0001897764723 nodes with 0012795938608 6-TFS probes          
Solution [008] =  r' U2 r  U2 l' D2 r2 D2 B2 [inside 6-TFS] ---> l' D2 r  D2 l2 B2  @ 0001908685542 nodes with 0012842528039 6-TFS probes          
Solution [009] =  r' U2 l  F2 l' F2 r2 U2 r  [inside 6-TFS] ---> U2 r' U2 F2 r2 F2  @ 0001910308522 nodes with 0012849452455 6-TFS probes          
Solution [010] =  r' D2 r  F2 r' F2 l2 D2 r  [inside 6-TFS] ---> F2 l' F2 U2 l2 U2  @ 0001965639928 nodes with 0013085921084 6-TFS probes          
Solution [011] =  r' D2 l  D2 l' B2 l2 B2 D2 [inside 6-TFS] ---> r' B2 l  B2 r2 D2  @ 0001966585410 nodes with 0013089963744 6-TFS probes          
Solution [012] =  r2 U2 l  B2 l' B2 U2 l' U2 [inside 6-TFS] ---> r  B2 r' B2 U2 r2  @ 0002081378673 nodes with 0013580493163 6-TFS probes          
Solution [013] =  r2 U2 B2 r  B2 r' U2 l  U2 [inside 6-TFS] ---> B2 l  B2 l' U2 r2  @ 0002084039376 nodes with 0013591842724 6-TFS probes          
Solution [014] =  r2 D2 r' F2 r  F2 D2 r  D2 [inside 6-TFS] ---> l' F2 l  F2 D2 r2  @ 0002140408584 nodes with 0013832785446 6-TFS probes          
Solution [015] =  r2 D2 F2 l' F2 l  D2 r' D2 [inside 6-TFS] ---> F2 r' F2 r  D2 r2  @ 0002142488895 nodes with 0013841691582 6-TFS probes          
Solution [016] =  r2 F2 D2 r' D2 r  F2 l' F2 [inside 6-TFS] ---> D2 l' D2 l  F2 r2  @ 0002183460633 nodes with 0014016821256 6-TFS probes          
Solution [017] =  r2 F2 l' D2 l  D2 F2 l  F2 [inside 6-TFS] ---> r' D2 r  D2 F2 r2  @ 0002185835670 nodes with 0014026986531 6-TFS probes          
Solution [018] =  r2 B2 U2 l  U2 l' B2 r  B2 [inside 6-TFS] ---> U2 r  U2 r' B2 r2  @ 0002243572338 nodes with 0014273797377 6-TFS probes          
Solution [019] =  r2 B2 r  U2 r' U2 B2 r' B2 [inside 6-TFS] ---> l  U2 l' U2 B2 r2  @ 0002245309134 nodes with 0014281224987 6-TFS probes          
Solution [020] =  l  U2 r' F2 r  F2 l2 U2 l' [inside 6-TFS] ---> U2 l  U2 F2 l2 F2  @ 0002258402849 nodes with 0014337236730 6-TFS probes          
Solution [021] =  l  U2 l' U2 r  D2 l2 D2 B2 [inside 6-TFS] ---> r  D2 l' D2 r2 B2  @ 0002259333204 nodes with 0014341219561 6-TFS probes          
Solution [022] =  l  D2 r' D2 r  B2 r2 B2 D2 [inside 6-TFS] ---> l  B2 r' B2 l2 D2  @ 0002314069113 nodes with 0014575266774 6-TFS probes          
Solution [023] =  l  D2 l' F2 l  F2 r2 D2 l' [inside 6-TFS] ---> F2 r  F2 U2 r2 U2  @ 0002315242901 nodes with 0014580270190 6-TFS probes          
Solution [024] =  l' F2 r  U2 r' U2 l2 F2 l  [inside 6-TFS] ---> F2 l' F2 U2 l2 U2  @ 0002483211373 nodes with 0015298088015 6-TFS probes          
Solution [025] =  l' F2 l  F2 r' B2 l2 B2 D2 [inside 6-TFS] ---> r' B2 l  B2 r2 D2  @ 0002484471975 nodes with 0015303475169 6-TFS probes          
Solution [026] =  l' B2 r  B2 r' D2 r2 D2 B2 [inside 6-TFS] ---> l' D2 r  D2 l2 B2  @ 0002540144091 nodes with 0015541563808 6-TFS probes          
Solution [027] =  l' B2 l  U2 l' U2 r2 B2 l  [inside 6-TFS] ---> U2 r' U2 F2 r2 F2  @ 0002540943667 nodes with 0015544985276 6-TFS probes          
Solution [028] =  l2 U2 r' B2 r  B2 U2 r  U2 [inside 6-TFS] ---> l' B2 l  B2 U2 l2  @ 0002553295386 nodes with 0015597776118 6-TFS probes          
Solution [029] =  l2 U2 B2 l' B2 l  U2 r' U2 [inside 6-TFS] ---> B2 r' B2 r  U2 l2  @ 0002557330677 nodes with 0015615035891 6-TFS probes          
Solution [030] =  l2 D2 l  F2 l' F2 D2 l' D2 [inside 6-TFS] ---> r  F2 r' F2 D2 l2  @ 0002613328218 nodes with 0015854387055 6-TFS probes          
Solution [031] =  l2 D2 F2 r  F2 r' D2 l  D2 [inside 6-TFS] ---> F2 l  F2 l' D2 l2  @ 0002614558842 nodes with 0015859639704 6-TFS probes          
Solution [032] =  l2 F2 D2 l  D2 l' F2 r  F2 [inside 6-TFS] ---> D2 r  D2 r' F2 l2  @ 0002636231427 nodes with 0015952253373 6-TFS probes          
Solution [033] =  l2 F2 r  D2 r' D2 F2 r' F2 [inside 6-TFS] ---> l  D2 l' D2 F2 l2  @ 0002636591499 nodes with 0015953789571 6-TFS probes          
Solution [034] =  l2 B2 U2 r' U2 r  B2 l' B2 [inside 6-TFS] ---> U2 l' U2 l  B2 l2  @ 0002695098936 nodes with 0016203809119 6-TFS probes          
Solution [035] =  l2 B2 l' U2 l  U2 B2 l  B2 [inside 6-TFS] ---> r' U2 r  U2 B2 l2  @ 0002698233768 nodes with 0016217207196 6-TFS probes          
Solution [036] =  F2 r2 F2 U2 r  U2 r' U2 r2 [inside 6-TFS] ---> F2 l  F2 l' U2 r   @ 0003181802361 nodes with 0018284366998 6-TFS probes          
Solution [037] =  F2 l2 F2 U2 l' U2 l  U2 l2 [inside 6-TFS] ---> F2 r' F2 r  U2 l'  @ 0003201044637 nodes with 0018366592387 6-TFS probes          
Solution [038] =  B2 r2 U2 r' U2 r  U2 B2 r2 [inside 6-TFS] ---> B2 r  U2 l' B2 l   @ 0004299467040 nodes with 0023062332164 6-TFS probes          
Solution [039] =  B2 l2 U2 l  U2 l' U2 B2 l2 [inside 6-TFS] ---> B2 l' U2 r  B2 r'  @ 0004315638906 nodes with 0023131455903 6-TFS probes
 
Last edited:
Joined
Sep 17, 2009
Messages
901
Likes
45
Location
New Orleans, LA
YouTube
4EverTrying
I loaded up the most stable version of the program with the 6-TFS and let it run through depth 15 and it came up with 39 solutions. Recall this is also the version of the program that has one orientation problem corrected but introduced a move generator issue that Bruce identified. Here are the 39 solutions it has for the single dedge flip:
You are missing 209 algorithms.
There are 31 unique single dedge flip algorithms which begin with the move r, r', or r2, flip the UF dedge, and rotate the top center 180 degrees on the 4x4x4 supercube (inverses are also excluded).

I argue that there are actually 26, since the algs which end with B2 can be conjugated with B2 to create another 5 algs to have 26 + 5 = 31, where as these and the other 26 can be rotated, mirrored, inverted, to create duplicate solutions.

Similarly, when I mentioned that I found over 100 more 23q algorithms, they are unique in the same sense that the 26 algs of length (25,15) are unique, and I eliminated all algorithms which were equivalent to other algorithms when the wide turns that I put in them made them equal without performing a transformation
Your solver only found algs that were listed in the wiki (the 26), but the problem is, it only found 7 out of the 26.

I label them as they are in the wiki as well as how many copies of each your solver outputted, so that you can see which of the base algorithms you are missing.
Alg1(v1)(7)
r' U2 l F2 l' F2 r2 U2 r U2 r' U2 F2 r2 F2

Alg1(v4)(4)
r B2 r' U2 r U2 l2 B2 r' U2 l U2 F2 l2 F2

Alg2(v1)(4)
r B2 r' U2 l B2 l2 B2 U2 l U2 l' U2 l2 B2

Alg2(v4)(4)
r B2 l' B2 l D2 l2 D2 B2 r D2 l' D2 r2 B2

Alg2(v5)(4)
r' U2 r U2 l' D2 r2 D2 B2 l' D2 r D2 l2 B2

Alg3(v2)(8)
Rw2 B2 r U2 r' U2 B2 r' B2 l U2 l' U2 B2 Rw2

Alg3(v3)(8)
Rw2 F2 D2 r' D2 r F2 l' F2 D2 l' D2 l F2 Rw2
Clearly you have an algorithm for at least one transformation in Alg1, Alg2, and Alg3, but you have none for Alg4. Therefore your solver is not finding any algorithms in one of the 4 unique (25,15) paths.

Lastly, since your solver should find all possible optimal solutions, we should consider that your solver only found 7 out of 31 optimal algorithms, at least. (If you wish to find all "possible" solutions which flip the UF dedge on the 4x4x4 6-color cube, then we have (26+5)(8) = 248 algorithms your solver should find, not just 39 as you have).

For example, if I was to also include the other 5 algs, let's label them as:
r2 U2 r' U2 r U2 B2 r2 B2 r U2 l' B2 l B2 Alg.5(v1)
r2 D2 r F2 l' F2 U2 r2 D2 r' U2 r B2 r' B2 Alg.5(v2)
r2 U2 l' B2 r B2 D2 r2 D2 l U2 l' B2 l B2 Alg.5(v3)
r2 D2 l D2 r' B2 D2 l2 D2 l' B2 l B2 r' B2 Alg.5(v4)
r2 D2 l D2 r' B2 D2 l2 D2 r' U2 l U2 l' B2 Alg.5(v5)

I wrote a program to generate all of these algs from the 5 here (the "Alg.5" set above) in addition to the 26 in the wiki.

To be safe, I did all of the variations of the following (every possible permutation of compositions of Mirror[], Inverse[], and Rotation[]), and I deleted duplicates also with my program using a 2-dimensional list to store the algorithm as one argument and the relationship as another argument. Half of the relationships listed in this spoiler were deleted by the program along with their corresponding duplicate algorithm, as you will see in the code block below.
alg

Mirror[alg]
Inverse[alg]
Rotation[alg]

Mirror[Inverse[alg]]
Mirror[Rotation[alg]]

Inverse[Rotation[alg]]
Inverse[Mirror[alg]]

Rotation[Mirror[alg]]
Rotation[Inverse[alg]]

Mirror[Inverse[Rotation[alg]]]
Mirror[Rotation[Inverse[alg]]]

Inverse[Mirror[Rotation[alg]]]
Inverse[Rotation[Mirror[alg]]]

Rotation[Mirror[Inverse[alg]]]
Rotation[Inverse[Mirror[alg]]]
Therefore, if you intend your solver to generate all possible optimal solutions in the single slice half turn metric for any given case, then your program should output all of the following (no more, no less, and no duplicates) for the UF single dedge flip case (most likely your program would output them in a different order, but any 15 slice half turn algorithm your solver finds should be in this list).


Here are all 248 possible (25,15) solutions for the single dedge flip in UF. (I've seen two people attempt to make a complete list, but neither of them got the number right, nor have I ever seen these algorithms organized like this. Again, all of the following was generated with code, and the v1,v2, etc. stand for "versions"/transformations. I proved all of these transformations in this post.)
Code:
r' U2 l F2 l' F2 r2 U2 r U2 r' U2 F2 r2 F2    Alg.1(v1)
l U2 r' F2 r F2 l2 U2 l' U2 l U2 F2 l2 F2    Mirror[Alg.1(v1)]
F2 r2 F2 U2 r U2 r' U2 r2 F2 l F2 l' U2 r    Inverse[Alg.1(v1)]
l' F2 r U2 r' U2 l2 F2 l F2 l' F2 U2 l2 U2    Rotation[Alg.1(v1)]
F2 l2 F2 U2 l' U2 l U2 l2 F2 r' F2 r U2 l'    Mirror[Inverse[Alg.1(v1)]]
r F2 l' U2 l U2 r2 F2 r' F2 r F2 U2 r2 U2    Mirror[Rotation[Alg.1(v1)]]
U2 l2 U2 F2 l F2 l' F2 l2 U2 r U2 r' F2 l    Inverse[Rotation[Alg.1(v1)]]
U2 r2 U2 F2 r' F2 r F2 r2 U2 l' U2 l F2 r'    Mirror[Inverse[Rotation[Alg.1(v1)]]]
 
r' U2 r U2 l' U2 l2 F2 r F2 l' U2 F2 r2 F2    Alg.1(v2)
l U2 l' U2 r U2 r2 F2 l' F2 r U2 F2 l2 F2    Mirror[Alg.1(v2)]
F2 r2 F2 U2 l F2 r' F2 l2 U2 l U2 r' U2 r    Inverse[Alg.1(v2)]
l' F2 l F2 r' F2 r2 U2 l U2 r' F2 U2 l2 U2    Rotation[Alg.1(v2)]
F2 l2 F2 U2 r' F2 l F2 r2 U2 r' U2 l U2 l'    Mirror[Inverse[Alg.1(v2)]]
r F2 r' F2 l F2 l2 U2 r' U2 l F2 U2 r2 U2    Mirror[Rotation[Alg.1(v2)]]
U2 l2 U2 F2 r U2 l' U2 r2 F2 r F2 l' F2 l    Inverse[Rotation[Alg.1(v2)]]
U2 r2 U2 F2 l' U2 r U2 l2 F2 l' F2 r F2 r'    Mirror[Inverse[Rotation[Alg.1(v2)]]]
 
r B2 r' U2 r U2 r2 F2 r' D2 l D2 B2 r2 F2    Alg.1(v3)
l' B2 l U2 l' U2 l2 F2 l D2 r' D2 B2 l2 F2    Mirror[Alg.1(v3)]
F2 r2 B2 D2 l' D2 r F2 r2 U2 r' U2 r B2 r'    Inverse[Alg.1(v3)]
l D2 l' F2 l F2 l2 U2 l' B2 r B2 D2 l2 U2    Rotation[Alg.1(v3)]
F2 l2 B2 D2 r D2 l' F2 l2 U2 l U2 l' B2 l    Mirror[Inverse[Alg.1(v3)]]
r' D2 r F2 r' F2 r2 U2 r B2 l' B2 D2 r2 U2    Mirror[Rotation[Alg.1(v3)]]
U2 l2 D2 B2 r' B2 l U2 l2 F2 l' F2 l D2 l'    Inverse[Rotation[Alg.1(v3)]]
U2 r2 D2 B2 l B2 r' U2 r2 F2 r F2 r' D2 r    Mirror[Inverse[Rotation[Alg.1(v3)]]]
 
r B2 r' U2 r U2 l2 B2 r' U2 l U2 F2 l2 F2    Alg.1(v4)
l' B2 l U2 l' U2 r2 B2 l U2 r' U2 F2 r2 F2    Mirror[Alg.1(v4)]
F2 l2 F2 U2 l' U2 r B2 l2 U2 r' U2 r B2 r'    Inverse[Alg.1(v4)]
l D2 l' F2 l F2 r2 D2 l' F2 r F2 U2 r2 U2    Rotation[Alg.1(v4)]
F2 r2 F2 U2 r U2 l' B2 r2 U2 l U2 l' B2 l    Mirror[Inverse[Alg.1(v4)]]
r' D2 r F2 r' F2 l2 D2 r F2 l' F2 U2 l2 U2    Mirror[Rotation[Alg.1(v4)]]
U2 r2 U2 F2 r' F2 l D2 r2 F2 l' F2 l D2 l'    Inverse[Rotation[Alg.1(v4)]]
U2 l2 U2 F2 l F2 r' D2 l2 F2 r F2 r' D2 r    Mirror[Inverse[Rotation[Alg.1(v4)]]]
 
r B2 l' B2 l U2 r2 F2 l' F2 r U2 F2 l2 F2    Alg.1(v5)
l' B2 r B2 r' U2 l2 F2 r F2 l' U2 F2 r2 F2    Mirror[Alg.1(v5)]
F2 l2 F2 U2 r' F2 l F2 r2 U2 l' B2 l B2 r'    Inverse[Alg.1(v5)]
l D2 r' D2 r F2 l2 U2 r' U2 l F2 U2 r2 U2    Rotation[Alg.1(v5)]
F2 r2 F2 U2 l F2 r' F2 l2 U2 r B2 r' B2 l    Mirror[Inverse[Alg.1(v5)]]
r' D2 l D2 l' F2 r2 U2 l U2 r' F2 U2 l2 U2    Mirror[Rotation[Alg.1(v5)]]
U2 r2 U2 F2 l' U2 r U2 l2 F2 r' D2 r D2 l'    Inverse[Rotation[Alg.1(v5)]]
U2 l2 U2 F2 r U2 l' U2 r2 F2 l D2 l' D2 r    Mirror[Inverse[Rotation[Alg.1(v5)]]]
 
r B2 r' U2 l B2 l2 B2 U2 l U2 l' U2 l2 B2    Alg.2(v1)
l' B2 l U2 r' B2 r2 B2 U2 r' U2 r U2 r2 B2    Mirror[Alg.2(v1)]
B2 l2 U2 l U2 l' U2 B2 l2 B2 l' U2 r B2 r'    Inverse[Alg.2(v1)]
l D2 l' F2 r D2 r2 D2 F2 r F2 r' F2 r2 D2    Rotation[Alg.2(v1)]
B2 r2 U2 r' U2 r U2 B2 r2 B2 r U2 l' B2 l    Mirror[Inverse[Alg.2(v1)]]
r' D2 r F2 l' D2 l2 D2 F2 l' F2 l F2 l2 D2    Mirror[Rotation[Alg.2(v1)]]
D2 r2 F2 r F2 r' F2 D2 r2 D2 r' F2 l D2 l'    Inverse[Rotation[Alg.2(v1)]]
D2 l2 F2 l' F2 l F2 D2 l2 D2 l F2 r' D2 r    Mirror[Inverse[Rotation[Alg.2(v1)]]]
 
r B2 r' U2 r D2 r2 U2 F2 l F2 r' D2 r2 B2    Alg.2(v2)
l' B2 l U2 l' D2 l2 U2 F2 r' F2 l D2 l2 B2    Mirror[Alg.2(v2)]
B2 r2 D2 r F2 l' F2 U2 r2 D2 r' U2 r B2 r'    Inverse[Alg.2(v2)]
l D2 l' F2 l B2 l2 F2 U2 r U2 l' B2 l2 D2    Rotation[Alg.2(v2)]
B2 l2 D2 l' F2 r F2 U2 l2 D2 l U2 l' B2 l    Mirror[Inverse[Alg.2(v2)]]
r' D2 r F2 r' B2 r2 F2 U2 l' U2 r B2 r2 D2    Mirror[Rotation[Alg.2(v2)]]
D2 l2 B2 l U2 r' U2 F2 l2 B2 l' F2 l D2 l'    Inverse[Rotation[Alg.2(v2)]]
D2 r2 B2 r' U2 l U2 F2 r2 B2 r F2 r' D2 r    Mirror[Inverse[Rotation[Alg.2(v2)]]]
 
r B2 r' U2 r D2 l2 D2 B2 l B2 r' U2 l2 B2    Alg.2(v3)
l' B2 l U2 l' D2 r2 D2 B2 r' B2 l U2 r2 B2    Mirror[Alg.2(v3)]
B2 l2 U2 r B2 l' B2 D2 l2 D2 r' U2 r B2 r'    Inverse[Alg.2(v3)]
l D2 l' F2 l B2 r2 B2 D2 r D2 l' F2 r2 D2    Rotation[Alg.2(v3)]
B2 r2 U2 l' B2 r B2 D2 r2 D2 l U2 l' B2 l    Mirror[Inverse[Alg.2(v3)]]
r' D2 r F2 r' B2 l2 B2 D2 l' D2 r F2 l2 D2    Mirror[Rotation[Alg.2(v3)]]
D2 r2 F2 l D2 r' D2 B2 r2 B2 l' F2 l D2 l'    Inverse[Rotation[Alg.2(v3)]]
D2 l2 F2 r' D2 l D2 B2 l2 B2 r F2 r' D2 r    Mirror[Inverse[Rotation[Alg.2(v3)]]]
 
r B2 l' B2 l D2 l2 D2 B2 r D2 l' D2 r2 B2    Alg.2(v4)
l' B2 r B2 r' D2 r2 D2 B2 l' D2 r D2 l2 B2    Mirror[Alg.2(v4)]
B2 r2 D2 l D2 r' B2 D2 l2 D2 l' B2 l B2 r'    Inverse[Alg.2(v4)]
l D2 r' D2 r B2 r2 B2 D2 l B2 r' B2 l2 D2    Rotation[Alg.2(v4)]
B2 l2 D2 r' D2 l B2 D2 r2 D2 r B2 r' B2 l    Mirror[Inverse[Alg.2(v4)]]
r' D2 l D2 l' B2 l2 B2 D2 r' B2 l B2 r2 D2    Mirror[Rotation[Alg.2(v4)]]
D2 l2 B2 r B2 l' D2 B2 r2 B2 r' D2 r D2 l'    Inverse[Rotation[Alg.2(v4)]]
D2 r2 B2 l' B2 r D2 B2 l2 B2 l D2 l' D2 r    Mirror[Inverse[Rotation[Alg.2(v4)]]]
 
r' U2 r U2 l' D2 r2 D2 B2 l' D2 r D2 l2 B2    Alg.2(v5)
l U2 l' U2 r D2 l2 D2 B2 r D2 l' D2 r2 B2    Mirror[Alg.2(v5)]
B2 l2 D2 r' D2 l B2 D2 r2 D2 l U2 r' U2 r    Inverse[Alg.2(v5)]
l' F2 l F2 r' B2 l2 B2 D2 r' B2 l B2 r2 D2    Rotation[Alg.2(v5)]
B2 r2 D2 l D2 r' B2 D2 l2 D2 r' U2 l U2 l'    Mirror[Inverse[Alg.2(v5)]]
r F2 r' F2 l B2 r2 B2 D2 l B2 r' B2 l2 D2    Mirror[Rotation[Alg.2(v5)]]
D2 r2 B2 l' B2 r D2 B2 l2 B2 r F2 l' F2 l    Inverse[Rotation[Alg.2(v5)]]
D2 l2 B2 r B2 l' D2 B2 r2 B2 l' F2 r F2 r'    Mirror[Inverse[Rotation[Alg.2(v5)]]]
 
r2 B2 U2 l U2 r' U2 r U2 F2 r F2 l' B2 r2    Alg.3(v1)
l2 B2 U2 r' U2 l U2 l' U2 F2 l' F2 r B2 l2    Mirror[Alg.3(v1)]
r2 B2 l F2 r' F2 U2 r' U2 r U2 l' U2 B2 r2    Inverse[Alg.3(v1)]
l2 D2 F2 r F2 l' F2 l F2 U2 l U2 r' D2 l2    Rotation[Alg.3(v1)]
l2 B2 r' F2 l F2 U2 l U2 l' U2 r U2 B2 l2    Mirror[Inverse[Alg.3(v1)]]
r2 D2 F2 l' F2 r F2 r' F2 U2 r' U2 l D2 r2    Mirror[Rotation[Alg.3(v1)]]
l2 D2 r U2 l' U2 F2 l' F2 l F2 r' F2 D2 l2    Inverse[Rotation[Alg.3(v1)]]
r2 D2 l' U2 r U2 F2 r F2 r' F2 l F2 D2 r2    Mirror[Inverse[Rotation[Alg.3(v1)]]]
 
r2 B2 U2 l U2 l' B2 r B2 U2 r U2 r' B2 r2    Alg.3(v2)
l2 B2 U2 r' U2 r B2 l' B2 U2 l' U2 l B2 l2    Mirror[Alg.3(v2)]
r2 B2 r U2 r' U2 B2 r' B2 l U2 l' U2 B2 r2    Inverse[Alg.3(v2)]
l2 D2 F2 r F2 r' D2 l D2 F2 l F2 l' D2 l2    Rotation[Alg.3(v2)]
l2 B2 l' U2 l U2 B2 l B2 r' U2 r U2 B2 l2    Mirror[Inverse[Alg.3(v2)]]
r2 D2 F2 l' F2 l D2 r' D2 F2 r' F2 r D2 r2    Mirror[Rotation[Alg.3(v2)]]
l2 D2 l F2 l' F2 D2 l' D2 r F2 r' F2 D2 l2    Inverse[Rotation[Alg.3(v2)]]
r2 D2 r' F2 r F2 D2 r D2 l' F2 l F2 D2 r2    Mirror[Inverse[Rotation[Alg.3(v2)]]]
 
r2 F2 D2 r' D2 r F2 l' F2 D2 l' D2 l F2 r2    Alg.3(v3)
l2 F2 D2 l D2 l' F2 r F2 D2 r D2 r' F2 l2    Mirror[Alg.3(v3)]
r2 F2 l' D2 l D2 F2 l F2 r' D2 r D2 F2 r2    Inverse[Alg.3(v3)]
l2 U2 B2 l' B2 l U2 r' U2 B2 r' B2 r U2 l2    Rotation[Alg.3(v3)]
l2 F2 r D2 r' D2 F2 r' F2 l D2 l' D2 F2 l2    Mirror[Inverse[Alg.3(v3)]]
r2 U2 B2 r B2 r' U2 l U2 B2 l B2 l' U2 r2    Mirror[Rotation[Alg.3(v3)]]
l2 U2 r' B2 r B2 U2 r U2 l' B2 l B2 U2 l2    Inverse[Rotation[Alg.3(v3)]]
r2 U2 l B2 l' B2 U2 l' U2 r B2 r' B2 U2 r2    Mirror[Inverse[Rotation[Alg.3(v3)]]]
 
r2 F2 D2 r' D2 l D2 l' D2 B2 l' B2 r F2 r2    Alg.3(v4)
l2 F2 D2 l D2 r' D2 r D2 B2 r B2 l' F2 l2    Mirror[Alg.3(v4)]
r2 F2 r' B2 l B2 D2 l D2 l' D2 r D2 F2 r2    Inverse[Alg.3(v4)]
l2 U2 B2 l' B2 r B2 r' B2 D2 r' D2 l U2 l2    Rotation[Alg.3(v4)]
l2 F2 l B2 r' B2 D2 r' D2 r D2 l' D2 F2 l2    Mirror[Inverse[Alg.3(v4)]]
r2 U2 B2 r B2 l' B2 l B2 D2 l D2 r' U2 r2    Mirror[Rotation[Alg.3(v4)]]
l2 U2 l' D2 r D2 B2 r B2 r' B2 l B2 U2 l2    Inverse[Rotation[Alg.3(v4)]]
r2 U2 r D2 l' D2 B2 l' B2 l B2 r' B2 U2 r2    Mirror[Inverse[Rotation[Alg.3(v4)]]]
 
r2 B2 U2 r B2 r' B2 l U2 F2 r F2 l' B2 r2    Alg.3(v5)
l2 B2 U2 l' B2 l B2 r' U2 F2 l' F2 r B2 l2    Mirror[Alg.3(v5)]
r2 B2 l F2 r' F2 U2 l' B2 r B2 r' U2 B2 r2    Inverse[Alg.3(v5)]
l2 D2 F2 l D2 l' D2 r F2 U2 l U2 r' D2 l2    Rotation[Alg.3(v5)]
l2 B2 r' F2 l F2 U2 r B2 l' B2 l U2 B2 l2    Mirror[Inverse[Alg.3(v5)]]
r2 D2 F2 r' D2 r D2 l' F2 U2 r' U2 l D2 r2    Mirror[Rotation[Alg.3(v5)]]
l2 D2 r U2 l' U2 F2 r' D2 l D2 l' F2 D2 l2    Inverse[Rotation[Alg.3(v5)]]
r2 D2 l' U2 r U2 F2 l D2 r' D2 r F2 D2 r2    Mirror[Inverse[Rotation[Alg.3(v5)]]]
 
r2 F2 D2 l' F2 l F2 r' D2 B2 l' B2 r F2 r2    Alg.3(v6)
l2 F2 D2 r F2 r' F2 l D2 B2 r B2 l' F2 l2    Mirror[Alg.3(v6)]
r2 F2 r' B2 l B2 D2 r F2 l' F2 l D2 F2 r2    Inverse[Alg.3(v6)]
l2 U2 B2 r' U2 r U2 l' B2 D2 r' D2 l U2 l2    Rotation[Alg.3(v6)]
l2 F2 l B2 r' B2 D2 l' F2 r F2 r' D2 F2 l2    Mirror[Inverse[Alg.3(v6)]]
r2 U2 B2 l U2 l' U2 r B2 D2 l D2 r' U2 r2    Mirror[Rotation[Alg.3(v6)]]
l2 U2 l' D2 r D2 B2 l U2 r' U2 r B2 U2 l2    Inverse[Rotation[Alg.3(v6)]]
r2 U2 r D2 l' D2 B2 r' U2 l U2 l' B2 U2 r2    Mirror[Inverse[Rotation[Alg.3(v6)]]]
 
r2 B2 U2 r B2 l' D2 r D2 B2 l U2 r' B2 r2    Alg.3(v7)
l2 B2 U2 l' B2 r D2 l' D2 B2 r' U2 l B2 l2    Mirror[Alg.3(v7)]
r2 B2 r U2 l' B2 D2 r' D2 l B2 r' U2 B2 r2    Inverse[Alg.3(v7)]
l2 D2 F2 l D2 r' B2 l B2 D2 r F2 l' D2 l2    Rotation[Alg.3(v7)]
l2 B2 l' U2 r B2 D2 l D2 r' B2 l U2 B2 l2    Mirror[Inverse[Alg.3(v7)]]
r2 D2 F2 r' D2 l B2 r' B2 D2 l' F2 r D2 r2    Mirror[Rotation[Alg.3(v7)]]
l2 D2 l F2 r' D2 B2 l' B2 r D2 l' F2 D2 l2    Inverse[Rotation[Alg.3(v7)]]
r2 D2 r' F2 l D2 B2 r B2 l' D2 r F2 D2 r2    Mirror[Inverse[Rotation[Alg.3(v7)]]]
 
r2 F2 D2 l' F2 r U2 l' U2 F2 r' D2 l F2 r2    Alg.3(v8)
l2 F2 D2 r F2 l' U2 r U2 F2 l D2 r' F2 l2    Mirror[Alg.3(v8)]
r2 F2 l' D2 r F2 U2 l U2 r' F2 l D2 F2 r2    Inverse[Alg.3(v8)]
l2 U2 B2 r' U2 l F2 r' F2 U2 l' B2 r U2 l2    Rotation[Alg.3(v8)]
l2 F2 r D2 l' F2 U2 r' U2 l F2 r' D2 F2 l2    Mirror[Inverse[Alg.3(v8)]]
r2 U2 B2 l U2 r' F2 l F2 U2 r B2 l' U2 r2    Mirror[Rotation[Alg.3(v8)]]
l2 U2 r' B2 l U2 F2 r F2 l' U2 r B2 U2 l2    Inverse[Rotation[Alg.3(v8)]]
r2 U2 l B2 r' U2 F2 l' F2 r U2 l' B2 U2 r2    Mirror[Inverse[Rotation[Alg.3(v8)]]]
 
r2 B2 U2 l' U2 r U2 r' U2 B2 r' B2 l B2 r2    Alg.4(v1)
l2 B2 U2 r U2 l' U2 l U2 B2 l B2 r' B2 l2    Mirror[Alg.4(v1)]
r2 B2 l' B2 r B2 U2 r U2 r' U2 l U2 B2 r2    Inverse[Alg.4(v1)]
l2 D2 F2 r' F2 l F2 l' F2 D2 l' D2 r D2 l2    Rotation[Alg.4(v1)]
l2 B2 r B2 l' B2 U2 l' U2 l U2 r' U2 B2 l2    Mirror[Inverse[Alg.4(v1)]]
r2 D2 F2 l F2 r' F2 r F2 D2 r D2 l' D2 r2    Mirror[Rotation[Alg.4(v1)]]
l2 D2 r' D2 l D2 F2 l F2 l' F2 r F2 D2 l2    Inverse[Rotation[Alg.4(v1)]]
r2 D2 l D2 r' D2 F2 r' F2 r F2 l' F2 D2 r2    Mirror[Inverse[Rotation[Alg.4(v1)]]]
 
r2 B2 U2 l' U2 l F2 r' F2 U2 r' U2 r B2 r2    Alg.4(v2)
l2 B2 U2 r U2 r' F2 l F2 U2 l U2 l' B2 l2    Mirror[Alg.4(v2)]
r2 B2 r' U2 r U2 F2 r F2 l' U2 l U2 B2 r2    Inverse[Alg.4(v2)]
l2 D2 F2 r' F2 r U2 l' U2 F2 l' F2 l D2 l2    Rotation[Alg.4(v2)]
l2 B2 l U2 l' U2 F2 l' F2 r U2 r' U2 B2 l2    Mirror[Inverse[Alg.4(v2)]]
r2 D2 F2 l F2 l' U2 r U2 F2 r F2 r' D2 r2    Mirror[Rotation[Alg.4(v2)]]
l2 D2 l' F2 l F2 U2 l U2 r' F2 r F2 D2 l2    Inverse[Rotation[Alg.4(v2)]]
r2 D2 r F2 r' F2 U2 r' U2 l F2 l' F2 D2 r2    Mirror[Inverse[Rotation[Alg.4(v2)]]]
 
r2 F2 D2 r D2 r' B2 l B2 D2 l D2 l' F2 r2    Alg.4(v3)
l2 F2 D2 l' D2 l B2 r' B2 D2 r' D2 r F2 l2    Mirror[Alg.4(v3)]
r2 F2 l D2 l' D2 B2 l' B2 r D2 r' D2 F2 r2    Inverse[Alg.4(v3)]
l2 U2 B2 l B2 l' D2 r D2 B2 r B2 r' U2 l2    Rotation[Alg.4(v3)]
l2 F2 r' D2 r D2 B2 r B2 l' D2 l D2 F2 l2    Mirror[Inverse[Alg.4(v3)]]
r2 U2 B2 r' B2 r D2 l' D2 B2 l' B2 l U2 r2    Mirror[Rotation[Alg.4(v3)]]
l2 U2 r B2 r' B2 D2 r' D2 l B2 l' B2 U2 l2    Inverse[Rotation[Alg.4(v3)]]
r2 U2 l' B2 l B2 D2 l D2 r' B2 r B2 U2 r2    Mirror[Inverse[Rotation[Alg.4(v3)]]]
 
r2 F2 D2 r D2 l' D2 l D2 F2 l F2 r' F2 r2    Alg.4(v4)
l2 F2 D2 l' D2 r D2 r' D2 F2 r' F2 l F2 l2    Mirror[Alg.4(v4)]
r2 F2 r F2 l' F2 D2 l' D2 l D2 r' D2 F2 r2    Inverse[Alg.4(v4)]
l2 U2 B2 l B2 r' B2 r B2 U2 r U2 l' U2 l2    Rotation[Alg.4(v4)]
l2 F2 l' F2 r F2 D2 r D2 r' D2 l D2 F2 l2    Mirror[Inverse[Alg.4(v4)]]
r2 U2 B2 r' B2 l B2 l' B2 U2 l' U2 r U2 r2    Mirror[Rotation[Alg.4(v4)]]
l2 U2 l U2 r' U2 B2 r' B2 r B2 l' B2 U2 l2    Inverse[Rotation[Alg.4(v4)]]
r2 U2 r' U2 l U2 B2 l B2 l' B2 r B2 U2 r2    Mirror[Inverse[Rotation[Alg.4(v4)]]]
 
r2 B2 U2 r' F2 r F2 l' U2 B2 r' B2 l B2 r2    Alg.4(v5)
l2 B2 U2 l F2 l' F2 r U2 B2 l B2 r' B2 l2    Mirror[Alg.4(v5)]
r2 B2 l' B2 r B2 U2 l F2 r' F2 r U2 B2 r2    Inverse[Alg.4(v5)]
l2 D2 F2 l' U2 l U2 r' F2 D2 l' D2 r D2 l2    Rotation[Alg.4(v5)]
l2 B2 r B2 l' B2 U2 r' F2 l F2 l' U2 B2 l2    Mirror[Inverse[Alg.4(v5)]]
r2 D2 F2 r U2 r' U2 l F2 D2 r D2 l' D2 r2    Mirror[Rotation[Alg.4(v5)]]
l2 D2 r' D2 l D2 F2 r U2 l' U2 l F2 D2 l2    Inverse[Rotation[Alg.4(v5)]]
r2 D2 l D2 r' D2 F2 l' U2 r U2 r' F2 D2 r2    Mirror[Inverse[Rotation[Alg.4(v5)]]]
 
r2 B2 U2 r' F2 l D2 r' D2 F2 l' U2 r B2 r2    Alg.4(v6)
l2 B2 U2 l F2 r' D2 l D2 F2 r U2 l' B2 l2    Mirror[Alg.4(v6)]
r2 B2 r' U2 l F2 D2 r D2 l' F2 r U2 B2 r2    Inverse[Alg.4(v6)]
l2 D2 F2 l' U2 r B2 l' B2 U2 r' F2 l D2 l2    Rotation[Alg.4(v6)]
l2 B2 l U2 r' F2 D2 l' D2 r F2 l' U2 B2 l2    Mirror[Inverse[Alg.4(v6)]]
r2 D2 F2 r U2 l' B2 r B2 U2 l F2 r' D2 r2    Mirror[Rotation[Alg.4(v6)]]
l2 D2 l' F2 r U2 B2 l B2 r' U2 l F2 D2 l2    Inverse[Rotation[Alg.4(v6)]]
r2 D2 r F2 l' U2 B2 r' B2 l U2 r' F2 D2 r2    Mirror[Inverse[Rotation[Alg.4(v6)]]]
 
r2 F2 D2 l B2 r' U2 l U2 B2 r D2 l' F2 r2    Alg.4(v7)
l2 F2 D2 r' B2 l U2 r' U2 B2 l' D2 r F2 l2    Mirror[Alg.4(v7)]
r2 F2 l D2 r' B2 U2 l' U2 r B2 l' D2 F2 r2    Inverse[Alg.4(v7)]
l2 U2 B2 r D2 l' F2 r F2 D2 l B2 r' U2 l2    Rotation[Alg.4(v7)]
l2 F2 r' D2 l B2 U2 r U2 l' B2 r D2 F2 l2    Mirror[Inverse[Alg.4(v7)]]
r2 U2 B2 l' D2 r F2 l' F2 D2 r' B2 l U2 r2    Mirror[Rotation[Alg.4(v7)]]
l2 U2 r B2 l' D2 F2 r' F2 l D2 r' B2 U2 l2    Inverse[Rotation[Alg.4(v7)]]
r2 U2 l' B2 r D2 F2 l F2 r' D2 l B2 U2 r2    Mirror[Inverse[Rotation[Alg.4(v7)]]]
 
r2 F2 D2 l B2 l' B2 r D2 F2 l F2 r' F2 r2    Alg.4(v8)
l2 F2 D2 r' B2 r B2 l' D2 F2 r' F2 l F2 l2    Mirror[Alg.4(v8)]
r2 F2 r F2 l' F2 D2 r' B2 l B2 l' D2 F2 r2    Inverse[Alg.4(v8)]
l2 U2 B2 r D2 r' D2 l B2 U2 r U2 l' U2 l2    Rotation[Alg.4(v8)]
l2 F2 l' F2 r F2 D2 l B2 r' B2 r D2 F2 l2    Mirror[Inverse[Alg.4(v8)]]
r2 U2 B2 l' D2 l D2 r' B2 U2 l' U2 r U2 r2    Mirror[Rotation[Alg.4(v8)]]
l2 U2 l U2 r' U2 B2 l' D2 r D2 r' B2 U2 l2    Inverse[Rotation[Alg.4(v8)]]
r2 U2 r' U2 l U2 B2 r D2 l' D2 l B2 U2 r2    Mirror[Inverse[Rotation[Alg.4(v8)]]]
 
r2 U2 r' U2 r U2 B2 r2 B2 r U2 l' B2 l B2    Alg.5(v1)
l2 U2 l U2 l' U2 B2 l2 B2 l' U2 r B2 r' B2    Mirror[Alg.5(v1)]
B2 l' B2 l U2 r' B2 r2 B2 U2 r' U2 r U2 r2    Inverse[Alg.5(v1)]
l2 F2 l' F2 l F2 D2 l2 D2 l F2 r' D2 r D2    Rotation[Alg.5(v1)]
B2 r B2 r' U2 l B2 l2 B2 U2 l U2 l' U2 l2    Mirror[Inverse[Alg.5(v1)]]
r2 F2 r F2 r' F2 D2 r2 D2 r' F2 l D2 l' D2    Mirror[Rotation[Alg.5(v1)]]
D2 r' D2 r F2 l' D2 l2 D2 F2 l' F2 l F2 l2    Inverse[Rotation[Alg.5(v1)]]
D2 l D2 l' F2 r D2 r2 D2 F2 r F2 r' F2 r2    Mirror[Inverse[Rotation[Alg.5(v1)]]]
 
r2 D2 r F2 l' F2 U2 r2 D2 r' U2 r B2 r' B2    Alg.5(v2)
l2 D2 l' F2 r F2 U2 l2 D2 l U2 l' B2 l B2    Mirror[Alg.5(v2)]
B2 r B2 r' U2 r D2 r2 U2 F2 l F2 r' D2 r2    Inverse[Alg.5(v2)]
l2 B2 l U2 r' U2 F2 l2 B2 l' F2 l D2 l' D2    Rotation[Alg.5(v2)]
B2 l' B2 l U2 l' D2 l2 U2 F2 r' F2 l D2 l2    Mirror[Inverse[Alg.5(v2)]]
r2 B2 r' U2 l U2 F2 r2 B2 r F2 r' D2 r D2    Mirror[Rotation[Alg.5(v2)]]
D2 l D2 l' F2 l B2 l2 F2 U2 r U2 l' B2 l2    Inverse[Rotation[Alg.5(v2)]]
D2 r' D2 r F2 r' B2 r2 F2 U2 l' U2 r B2 r2    Mirror[Inverse[Rotation[Alg.5(v2)]]]
 
r2 U2 l' B2 r B2 D2 r2 D2 l U2 l' B2 l B2    Alg.5(v3)
l2 U2 r B2 l' B2 D2 l2 D2 r' U2 r B2 r' B2    Mirror[Alg.5(v3)]
B2 l' B2 l U2 l' D2 r2 D2 B2 r' B2 l U2 r2    Inverse[Alg.5(v3)]
l2 F2 r' D2 l D2 B2 l2 B2 r F2 r' D2 r D2    Rotation[Alg.5(v3)]
B2 r B2 r' U2 r D2 l2 D2 B2 l B2 r' U2 l2    Mirror[Inverse[Alg.5(v3)]]
r2 F2 l D2 r' D2 B2 r2 B2 l' F2 l D2 l' D2    Mirror[Rotation[Alg.5(v3)]]
D2 r' D2 r F2 r' B2 l2 B2 D2 l' D2 r F2 l2    Inverse[Rotation[Alg.5(v3)]]
D2 l D2 l' F2 l B2 r2 B2 D2 r D2 l' F2 r2    Mirror[Inverse[Rotation[Alg.5(v3)]]]
 
r2 D2 l D2 r' B2 D2 l2 D2 l' B2 l B2 r' B2    Alg.5(v4)
l2 D2 r' D2 l B2 D2 r2 D2 r B2 r' B2 l B2    Mirror[Alg.5(v4)]
B2 r B2 l' B2 l D2 l2 D2 B2 r D2 l' D2 r2    Inverse[Alg.5(v4)]
l2 B2 r B2 l' D2 B2 r2 B2 r' D2 r D2 l' D2    Rotation[Alg.5(v4)]
B2 l' B2 r B2 r' D2 r2 D2 B2 l' D2 r D2 l2    Mirror[Inverse[Alg.5(v4)]]
r2 B2 l' B2 r D2 B2 l2 B2 l D2 l' D2 r D2    Mirror[Rotation[Alg.5(v4)]]
D2 l D2 r' D2 r B2 r2 B2 D2 l B2 r' B2 l2    Inverse[Rotation[Alg.5(v4)]]
D2 r' D2 l D2 l' B2 l2 B2 D2 r' B2 l B2 r2    Mirror[Inverse[Rotation[Alg.5(v4)]]]
 
r2 D2 l D2 r' B2 D2 l2 D2 r' U2 l U2 l' B2    Alg.5(v5)
l2 D2 r' D2 l B2 D2 r2 D2 l U2 r' U2 r B2    Mirror[Alg.5(v5)]
B2 l U2 l' U2 r D2 l2 D2 B2 r D2 l' D2 r2    Inverse[Alg.5(v5)]
l2 B2 r B2 l' D2 B2 r2 B2 l' F2 r F2 r' D2    Rotation[Alg.5(v5)]
B2 r' U2 r U2 l' D2 r2 D2 B2 l' D2 r D2 l2    Mirror[Inverse[Alg.5(v5)]]
r2 B2 l' B2 r D2 B2 l2 B2 r F2 l' F2 l D2    Mirror[Rotation[Alg.5(v5)]]
D2 r F2 r' F2 l B2 r2 B2 D2 l B2 r' B2 l2    Inverse[Rotation[Alg.5(v5)]]
D2 l' F2 l F2 r' B2 l2 B2 D2 r' B2 l B2 r2    Mirror[Inverse[Rotation[Alg.5(v5)]]]
Lastly, to save anyone time who might want to actually check that all of these algs work, I wrote another program which checks that, and it said all algorithms work.
 
Last edited:
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #287
Version 2.0.2 is available now.



Features:

  1. Very fast 64-bit move generator. Over 44,000,000 nodes/second on a 3.1 GHz computer
  2. Slightly more intelligent move ordering than 2.0.0 will reduce the number of nodes examined
  3. 2 fast pruning heuristics reduce the size of the tree
  4. Now fully supports cube rotations in the scramble (x,y,z, x',y',z',x2,y2,z2)
  5. Recognizes solutions leading to any rotated cube state, fixing a major flaw in older versions

There is still no Turns From Solved databases in this release.

http://lightningcloudcomputing.com/OO_4x4x4_bitboard.zip
 
Joined
Feb 3, 2011
Messages
790
Likes
5
Location
Austria
WCA
2011KOGL01
YouTube
JakubeBLD
Which pruning heuristics are you using? I guess, you could improve those quite a lot. I just tested a 8 move scramble , your programm visited about 3.5 *10^9 nodes, cubebruce's program only 2.3 * 10^7. That's a factor of 150!
 
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #289
Which pruning heuristics are you using? I guess, you could improve those quite a lot. I just tested a 8 move scramble , your programm visited about 3.5 *10^9 nodes, cubebruce's program only 2.3 * 10^7. That's a factor of 150!
You are correct regarding the potential for improvement. This is a complete rewrite of the program. Recall the earlier versions would not be able to tell that a scramble such as U u d' D' was a cube already solved. It would actually have to rotate it back to solve it. Even worse, U u d' D' was a "4 turns-from-solved" database entry!

I only have two pruning heuristics in place.

1. If there is 1-turn left in your current search, such as you generated 4 of the 5 moves for depth 5, you must have 2 opposite sides of the cube solved if you hope to solve the cube in 1 more move. The bitboard version of my program makes it very easy to test this faster than a move can be generated, so this is a pruning condition.

2. If there are 2-turns left in your current search, if any side of the cube has 4 different colored centers, the cube can't be solved. So that is pruned away.

The major speed advance was creating a move generator that can make any move using only 6 lines of C code. Here is the code for making the move F'

Code:
BITBOARD_4x4x4_CUBE F_MINUS(BITBOARD_4x4x4_CUBE original_4x4x4_cube)
{
		BITBOARD_4x4x4_CUBE new_cube;

		/**************************************************************************/
		/* Rotating the front will change something on every face except the back */
		/**************************************************************************/
		new_cube._4x4x4_back = original_4x4x4_cube._4x4x4_back;

		/******************************************************************************************/
		/* Entire row of cubes moves from top -----> left -----> bottom -----> right -----> top   */
		/* new left = old top; new bottom = old left; new right = old bottom; new top = old right */ 
		/******************************************************************************************/
new_cube._4x4x4_left   = (original_4x4x4_cube._4x4x4_left & BITMASK_CUBE_FACE_NOT_COL_04)   | ((original_4x4x4_cube._4x4x4_top & BITMASK_CUBE_FACE_SQUARE_13) >> 12) | ((original_4x4x4_cube._4x4x4_top & BITMASK_CUBE_FACE_SQUARE_14) << 8) | ((original_4x4x4_cube._4x4x4_top & BITMASK_CUBE_FACE_SQUARE_15) << 28) | ((original_4x4x4_cube._4x4x4_top & BITMASK_CUBE_FACE_SQUARE_16) << 48);

new_cube._4x4x4_bottom = (original_4x4x4_cube._4x4x4_bottom & BITMASK_CUBE_FACE_NOT_ROW_01) | ((original_4x4x4_cube._4x4x4_left & BITMASK_CUBE_FACE_SQUARE_04) << 12) | ((original_4x4x4_cube._4x4x4_left & BITMASK_CUBE_FACE_SQUARE_08) << 24) | ((original_4x4x4_cube._4x4x4_left & BITMASK_CUBE_FACE_SQUARE_12) << 36) | ((original_4x4x4_cube._4x4x4_left & BITMASK_CUBE_FACE_SQUARE_16) << 48);

new_cube._4x4x4_right  = (original_4x4x4_cube._4x4x4_right & BITMASK_CUBE_FACE_NOT_COL_01)  | ((original_4x4x4_cube._4x4x4_bottom  & BITMASK_CUBE_FACE_SQUARE_01) >> 48) | ((original_4x4x4_cube._4x4x4_bottom  & BITMASK_CUBE_FACE_SQUARE_02) >> 28) | ((original_4x4x4_cube._4x4x4_bottom  & BITMASK_CUBE_FACE_SQUARE_03) >> 8) | ((original_4x4x4_cube._4x4x4_bottom  & BITMASK_CUBE_FACE_SQUARE_04) << 12);

new_cube._4x4x4_top    = (original_4x4x4_cube._4x4x4_top  & BITMASK_CUBE_FACE_NOT_ROW_04)   | ((original_4x4x4_cube._4x4x4_right & BITMASK_CUBE_FACE_SQUARE_01) >> 48) | ((original_4x4x4_cube._4x4x4_right & BITMASK_CUBE_FACE_SQUARE_05) >> 36) | ((original_4x4x4_cube._4x4x4_right & BITMASK_CUBE_FACE_SQUARE_09) >> 24) | ((original_4x4x4_cube._4x4x4_right & BITMASK_CUBE_FACE_SQUARE_13) >> 12);

		/*********************************************************************************/
		/*                                                                               */
		/* THESE CUBE LOCATIONS BECOME....              THESE CUBE LOCATIONS             */
		/*                                                                               */
		/*                                                                               */
		/*********************************/             /*********************************/
		/*  01   *  02   *  03   *   04  */             /*  04   *  08   *  12   *   16  */
		/*********************************/             /*********************************/
		/*  05   *  06   *  07   *   08  */             /*  03   *  07   *  11   *   15  */
		/*********************************/             /*********************************/
		/*  09   *  10   *  11   *   12  */             /*  02   *  06   *  10   *   14  */
		/*********************************/             /*********************************/
		/*  13   *  14   *  15   *   16  */             /*  01   *  05   *  09   *   13  */
		/*********************************/             /*********************************/
		/*                                                                               */
		/*                                                                               */
		/*********************************************************************************/

		new_cube._4x4x4_front = ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_04) << 12)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_08) << 24)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_12) << 36)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_16) << 48)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_03) >> 8)   | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_07) << 4)   | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_11) << 16)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_15) << 28)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_02) >> 28)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_06) >> 16)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_10) >> 4)   | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_14) << 8)   | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_01) >> 48)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_05) >> 36)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_09) >> 24)  | \
							    ((original_4x4x4_cube._4x4x4_front & BITMASK_CUBE_FACE_SQUARE_13) >> 12);

		return new_cube;
}


EDIT:

Currently debugging my TFS-03 implementation. Somehow my new bitboards are occasionally not found after probing the database and reporting a positive find. In each case the cube in question is in there. Once I get this worked out, I'll release a version with all 24 rotated states in RAM for up to 3 turns. It is under 35 MB and shouldn't tax anyone's computer resources.

 
Last edited:
Joined
Feb 3, 2011
Messages
790
Likes
5
Location
Austria
WCA
2011KOGL01
YouTube
JakubeBLD
I only have two pruning heuristics in place.

1. If there is 1-turn left in your current search, such as you generated 4 of the 5 moves for depth 5, you must have 2 opposite sides of the cube solved if you hope to solve the cube in 1 more move. The bitboard version of my program makes it very easy to test this faster than a move can be generated, so this is a pruning condition.

2. If there are 2-turns left in your current search, if any side of the cube has 4 different colored centers, the cube can't be solved. So that is pruned away.

That's a nice start. I did something similar, when I programmed my first cube solver (a 2x2x2 solver in 2012).

What you can do, to improve pruning is the following. You can pick one center and map containing all 6^4 different pattern and their number, which is necessary to solve this pattern. Now at each node you can check, if #moves_left >= #moves_nessasary_for_this_center. I'm not sure, how many moves you will save on average, but definitely more that 1-2, like you currently save. But you can easily improve this afterwards by taking the maximum of all 6 centers prune values, create a list of 2 adjacent centers, create a list for all corner positions, ...

The pruning approach is way more powerful than a fast move generator, because the branching factor is so big. For each move you save, your program will be a factor of ~16 faster.
 
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #291
That's a nice start. I did something similar, when I programmed my first cube solver (a 2x2x2 solver in 2012).

What you can do, to improve pruning is the following. You can pick one center and map containing all 6^4 different pattern and their number, which is necessary to solve this pattern. Now at each node you can check, if #moves_left >= #moves_nessasary_for_this_center. I'm not sure, how many moves you will save on average, but definitely more that 1-2, like you currently save. But you can easily improve this afterwards by taking the maximum of all 6 centers prune values, create a list of 2 adjacent centers, create a list for all corner positions, ...

The pruning approach is way more powerful than a fast move generator, because the branching factor is so big. For each move you save, your program will be a factor of ~16 faster.
Yes, but as a former chess programmer, I am addicted to increasing move generator speed :) I also wrote a checkers program with the least lines of code using 64-bit Magic Ghost squares. The move generator was only 37 lines of code total.

I understand the concept of pruning after Bruce enlightened me. That does not mean I can implement all that I have the grasp on: I have struggled getting the corner database to work flawlessly, but I will have that perfected now that I have a reference-less solved cube state analyzer. And, with my bitboard I can analyze data from all 24 centers with one line of code, so I can code some pretty complex relationships that take practically no time to evaluate.

The problem with using centers as a pruning basis is that you can have 4 different colored centers get solved with only 3 turns. u' r+ u2 from a solved cube creates a mottled center pattern on the front and back faces. So looking up any such solution is saving 3-ply worth of solving at best, not nearly the huge payoff you see with corner pruning.

I also solved every 1 center vs. 1 center, 2 vs. 2, and 3 vs. 3 position (sample below)

Code:
Solutions To center scenario U1:F1 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|####|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  u' R' [inside 6-TFS] ---> u  l  u' R  u  l'  @ 0000000000137 nodes with 0000000001754 6-TFS probes   
Solution [002] =  u' b' [inside 6-TFS] ---> u  F  u' b  u  F'  @ 0000000000155 nodes with 0000000001963 6-TFS probes   
Solution [003] =  d' b  [inside 6-TFS] ---> d  F' d' b' d  F   @ 0000000000238 nodes with 0000000002727 6-TFS probes   
Solution [004] =  r  u2 [inside 6-TFS] ---> r' U2 r  u2 r' U2  @ 0000000000447 nodes with 0000000004809 6-TFS probes   
Solution [005] =  r' b2 [inside 6-TFS] ---> r  F2 r' b2 r  F2  @ 0000000000498 nodes with 0000000005542 6-TFS probes   
Solution [006] =  l  F  [inside 6-TFS] ---> r' F' l' F  r  F'  @ 0000000000547 nodes with 0000000006177 6-TFS probes   
Solution [007] =  l' U  [inside 6-TFS] ---> r  U' l  U  r' U'  @ 0000000000559 nodes with 0000000006208 6-TFS probes   
Solution [008] =  f  u' [inside 6-TFS] ---> f' U' f  u  f' U   @ 0000000000788 nodes with 0000000008796 6-TFS probes   
Solution [009] =  b  u  [inside 6-TFS] ---> b' U  b  u' b' U'  @ 0000000000877 nodes with 0000000009978 6-TFS probes   
Solution [010] =  b  L' [inside 6-TFS] ---> b' l' b  L  b' l   @ 0000000000896 nodes with 0000000010165 6-TFS probes   
Solution [011] =  b' R' [inside 6-TFS] ---> b  l' b' R  b  l   @ 0000000000914 nodes with 0000000010364 6-TFS probes   



Solutions To center scenario U1:F2 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|####|####|   |OOOO|OOOO|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  U  b' [inside 6-TFS] ---> u' b  U' b' u  b   @ 0000000000029 nodes with 0000000000791 6-TFS probes   
Solution [002] =  U' b' [inside 6-TFS] ---> u' b  U  b' u  b   @ 0000000000062 nodes with 0000000001182 6-TFS probes   
Solution [003] =  U2 b' [inside 6-TFS] ---> u' b  U2 b' u  b   @ 0000000000095 nodes with 0000000001405 6-TFS probes   
Solution [004] =  d' b  [inside 6-TFS] ---> d  F2 d' b' d  F2  @ 0000000000238 nodes with 0000000002988 6-TFS probes   
Solution [005] =  r  b  [inside 6-TFS] ---> L  b' r' b  L' b'  @ 0000000000466 nodes with 0000000005343 6-TFS probes   
Solution [006] =  r  b' [inside 6-TFS] ---> R  b  r' b' R' b   @ 0000000000467 nodes with 0000000005359 6-TFS probes   
Solution [007] =  r' b2 [inside 6-TFS] ---> r  F  r' b2 r  F'  @ 0000000000498 nodes with 0000000005627 6-TFS probes   
Solution [008] =  l  u  [inside 6-TFS] ---> L' u' l' u  L  u'  @ 0000000000535 nodes with 0000000006063 6-TFS probes   
Solution [009] =  l  u' [inside 6-TFS] ---> R' u  l' u' R  u   @ 0000000000536 nodes with 0000000006064 6-TFS probes   
Solution [010] =  l' u2 [inside 6-TFS] ---> l  U' l' u2 l  U   @ 0000000000564 nodes with 0000000006387 6-TFS probes   
Solution [011] =  F  u' [inside 6-TFS] ---> b' u  F' u' b  u   @ 0000000000689 nodes with 0000000008019 6-TFS probes   
Solution [012] =  F' u' [inside 6-TFS] ---> b' u  F  u' b  u   @ 0000000000722 nodes with 0000000008326 6-TFS probes   
Solution [013] =  F' l  [inside 6-TFS] ---> F  r' F' l' F  r   @ 0000000000736 nodes with 0000000008377 6-TFS probes   
Solution [014] =  F2 u' [inside 6-TFS] ---> b' u  F2 u' b  u   @ 0000000000755 nodes with 0000000008585 6-TFS probes   
Solution [015] =  f' u  [inside 6-TFS] ---> f  U2 f' u' f  U2  @ 0000000000817 nodes with 0000000009323 6-TFS probes   



Solutions To center scenario U1:F3 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  U' b  [inside 6-TFS] ---> d' b' U  b  d  b'  @ 0000000000061 nodes with 0000000001245 6-TFS probes   
Solution [002] =  U2 b  [inside 6-TFS] ---> d' b' U2 b  d  b'  @ 0000000000094 nodes with 0000000001686 6-TFS probes   
Solution [003] =  u' b' [inside 6-TFS] ---> u  F2 u' b  u  F2  @ 0000000000155 nodes with 0000000002183 6-TFS probes   
Solution [004] =  r  d2 [inside 6-TFS] ---> r' U  r  d2 r' U'  @ 0000000000450 nodes with 0000000005161 6-TFS probes   
Solution [005] =  r' b2 [inside 6-TFS] ---> r  F' r' b2 r  F   @ 0000000000498 nodes with 0000000005778 6-TFS probes   
Solution [006] =  F  d' [inside 6-TFS] ---> b  d  F' d' b' d   @ 0000000000692 nodes with 0000000007930 6-TFS probes   
Solution [007] =  F' d' [inside 6-TFS] ---> b  d  F  d' b' d   @ 0000000000725 nodes with 0000000008170 6-TFS probes   
Solution [008] =  F2 d' [inside 6-TFS] ---> b  d  F2 d' b' d   @ 0000000000758 nodes with 0000000008544 6-TFS probes   
Solution [009] =  f  d  [inside 6-TFS] ---> f' U2 f  d' f' U2  @ 0000000000790 nodes with 0000000008775 6-TFS probes   



Solutions To center scenario U1:F4 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  U' l' [inside 6-TFS] ---> d2 l  U  l' d2 l   @ 0000000000050 nodes with 0000000001003 6-TFS probes   
Solution [002] =  U2 l' [inside 6-TFS] ---> d2 l  U2 l' d2 l   @ 0000000000083 nodes with 0000000001241 6-TFS probes   
Solution [003] =  u' b' [inside 6-TFS] ---> u  F' u' b  u  F   @ 0000000000155 nodes with 0000000002406 6-TFS probes   
Solution [004] =  d' b  [inside 6-TFS] ---> d  F  d' b' d  F'  @ 0000000000238 nodes with 0000000003195 6-TFS probes   
Solution [005] =  F  r' [inside 6-TFS] ---> b2 r  F' r' b2 r   @ 0000000000701 nodes with 0000000008078 6-TFS probes   
Solution [006] =  F' r' [inside 6-TFS] ---> b2 r  F  r' b2 r   @ 0000000000734 nodes with 0000000008558 6-TFS probes   
Solution [007] =  F2 r' [inside 6-TFS] ---> b2 r  F2 r' b2 r   @ 0000000000767 nodes with 0000000008962 6-TFS probes   
Solution [008] =  f' d' [inside 6-TFS] ---> f  U' f' d  f  U   @ 0000000000821 nodes with 0000000009723 6-TFS probes   
Solution [009] =  b' d  [inside 6-TFS] ---> b  U  b' d' b  U'  @ 0000000000907 nodes with 0000000010726 6-TFS probes   



Solutions To center scenario U2:F1 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|OOOO|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  U' l' [inside 6-TFS] ---> U  r  U' l  U  r'  @ 0000000000050 nodes with 0000000000855 6-TFS probes   
Solution [002] =  U' b  [inside 6-TFS] ---> u  b' U  b  u' b'  @ 0000000000061 nodes with 0000000000878 6-TFS probes   
Solution [003] =  U2 b  [inside 6-TFS] ---> u  b' U2 b  u' b'  @ 0000000000094 nodes with 0000000001324 6-TFS probes   
Solution [004] =  d  b' [inside 6-TFS] ---> d' F2 d  b  d' F2  @ 0000000000212 nodes with 0000000002686 6-TFS probes   
Solution [005] =  r  u2 [inside 6-TFS] ---> r' U  r  u2 r' U'  @ 0000000000447 nodes with 0000000004719 6-TFS probes   
Solution [006] =  r' u  [inside 6-TFS] ---> L  u' r  u  L' u'  @ 0000000000475 nodes with 0000000004972 6-TFS probes   
Solution [007] =  r' u' [inside 6-TFS] ---> R  u  r  u' R' u   @ 0000000000476 nodes with 0000000004973 6-TFS probes   
Solution [008] =  l  b2 [inside 6-TFS] ---> l' F' l  b2 l' F   @ 0000000000555 nodes with 0000000006223 6-TFS probes   
Solution [009] =  l' b  [inside 6-TFS] ---> L' b' l  b  L  b'  @ 0000000000580 nodes with 0000000006346 6-TFS probes   
Solution [010] =  l' b' [inside 6-TFS] ---> R' b  l  b' R  b   @ 0000000000581 nodes with 0000000006348 6-TFS probes   
Solution [011] =  F  u  [inside 6-TFS] ---> b  u' F' u  b' u'  @ 0000000000688 nodes with 0000000007781 6-TFS probes   
Solution [012] =  F  r' [inside 6-TFS] ---> F' l  F  r  F' l'  @ 0000000000701 nodes with 0000000007875 6-TFS probes   
Solution [013] =  F' u  [inside 6-TFS] ---> b  u' F  u  b' u'  @ 0000000000721 nodes with 0000000007999 6-TFS probes   
Solution [014] =  F2 u  [inside 6-TFS] ---> b  u' F2 u  b' u'  @ 0000000000754 nodes with 0000000008360 6-TFS probes   
Solution [015] =  f  u' [inside 6-TFS] ---> f' U2 f  u  f' U2  @ 0000000000788 nodes with 0000000008564 6-TFS probes   


Solutions To center scenario U1,U2 vs. F1,F2 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|####|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  r  U2 l  f2 [inside 6-TFS] ---> l' r  f2 r' U2 r'  @ 0000000350607 nodes with 0000004186385 6-TFS probes   
Solution [002] =  r' F2 r' d2 [inside 6-TFS] ---> l' r  d2 l  F2 r   @ 0000000388110 nodes with 0000004593014 6-TFS probes   
Solution [003] =  r' F2 l' d2 [inside 6-TFS] ---> l  r' d2 r  F2 r   @ 0000000388197 nodes with 0000004594245 6-TFS probes   
Solution [004] =  l  F2 r  d2 [inside 6-TFS] ---> l  r' d2 l' F2 l'  @ 0000000432900 nodes with 0000005080754 6-TFS probes   
Solution [005] =  l  F2 l  d2 [inside 6-TFS] ---> l' r  d2 r' F2 l'  @ 0000000432990 nodes with 0000005081694 6-TFS probes   
Solution [006] =  l' U2 r' f2 [inside 6-TFS] ---> l' r  f2 l  U2 l   @ 0000000442458 nodes with 0000005188763 6-TFS probes   
Solution [007] =  l' U2 l' f2 [inside 6-TFS] ---> l  r' f2 r  U2 l   @ 0000000442542 nodes with 0000005189630 6-TFS probes   



Solutions To center scenario U1,U2 vs. F1,F3 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  U  B2 D2 [inside 6-TFS] ---> r' D2 B2 U2 l' U   @ 0000000000915 nodes with 0000000021788 6-TFS probes   



Solutions To center scenario U1,U2 vs. F1,F4 

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  r' F2 r' b2 r  [inside 6-TFS] ---> F  l' b2 l  F  r   @ 0000010912588 nodes with 0000129027917 6-TFS probes   
Solution [002] =  r2 U2 B  r' u2 [inside 6-TFS] ---> r2 u2 r' B' U2 r2  @ 0000011193273 nodes with 0000132120602 6-TFS probes   
Solution [003] =  r2 D2 F  l' u2 [inside 6-TFS] ---> l2 u2 l' F' D2 r2  @ 0000011377932 nodes with 0000134158698 6-TFS probes   
Solution [004] =  r2 F  D2 l' u2 [inside 6-TFS] ---> l2 u2 l' D2 F' r2  @ 0000011517630 nodes with 0000135698665 6-TFS probes   
Solution [005] =  r2 B  U2 r' u2 [inside 6-TFS] ---> r2 u2 r' U2 B' r2  @ 0000011723256 nodes with 0000137952338 6-TFS probes   
Solution [006] =  l' U' l' d2 l  [inside 6-TFS] ---> U' r' d2 r  U2 l   @ 0000012415933 nodes with 0000145594847 6-TFS probes   
Solution [007] =  l' U2 r' d2 r  [inside 6-TFS] ---> U  l' d2 l  U  l   @ 0000012439528 nodes with 0000145859045 6-TFS probes   
Solution [008] =  l2 U2 B  l' d2 [inside 6-TFS] ---> l2 d2 l' B' U2 l2  @ 0000013051503 nodes with 0000152569832 6-TFS probes   
Solution [009] =  l2 D2 F  r' d2 [inside 6-TFS] ---> r2 d2 r' F' D2 l2  @ 0000013235988 nodes with 0000154600406 6-TFS probes   
Solution [010] =  l2 F  D2 r' d2 [inside 6-TFS] ---> r2 d2 r' D2 F' l2  @ 0000013311858 nodes with 0000155433022 6-TFS probes   
Solution [011] =  l2 B  U2 l' d2 [inside 6-TFS] ---> l2 d2 l' U2 B' l2  @ 0000013517658 nodes with 0000157693431 6-TFS probes   

Solutions To center scenario U1,U2,U4 vs. F1,F3,F4

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|OOOO|####|   |OOOO|####|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  r  U  r  u2 d2 r' U  [inside 6-TFS] ---> l  d2 u2 l' U2 r'  @ 0007748320882 nodes with 0092433507512 6-TFS probes   
Solution [002] =  r  U  l  U2 D2 r' U  [inside 6-TFS] ---> l  D2 U2 r' U2 r'  @ 0007750238098 nodes with 0092454645263 6-TFS probes   
Solution [003] =  r  U  l  u2 d2 l' U  [inside 6-TFS] ---> r  d2 u2 r' U2 r'  @ 0007750306765 nodes with 0092455403602 6-TFS probes   
Solution [004] =  r' D' B2 U2 r' U2 B2 [inside 6-TFS] ---> D  r' D  l' D' r2  @ 0008461746369 nodes with 0100272867872 6-TFS probes   
Solution [005] =  r2 d2 r' U2 r  u2 r' [inside 6-TFS] ---> l  d2 u2 l' U2 r'  @ 0008942772851 nodes with 0105558169573 6-TFS probes   
Solution [006] =  r2 d2 r' U2 r  u2 l  [inside 6-TFS] ---> r' d2 u2 l' U2 r'  @ 0008942772853 nodes with 0105558169576 6-TFS probes   
Solution [007] =  r2 d2 r' U2 l  u2 d2 [inside 6-TFS] ---> l' r  u2 r' U2 r'  @ 0008942775354 nodes with 0105558196986 6-TFS probes   
Solution [008] =  r2 f2 r  F2 r' f2 b2 [inside 6-TFS] ---> l' r  b2 l  F2 r   @ 0009205862415 nodes with 0108449443029 6-TFS probes   
Solution [009] =  r2 f2 r  F2 l' b2 r' [inside 6-TFS] ---> l  b2 f2 r  F2 r   @ 0009205864838 nodes with 0108449469630 6-TFS probes   
Solution [010] =  r2 f2 r  F2 l' b2 l  [inside 6-TFS] ---> r' b2 f2 r  F2 r   @ 0009205864840 nodes with 0108449469647 6-TFS probes   
Solution [011] =  l  F  r  F2 B2 l' F  [inside 6-TFS] ---> r  B2 F2 l' F2 l'  @ 0009579688126 nodes with 0112556889349 6-TFS probes   
Solution [012] =  l  F  r  f2 b2 r' F  [inside 6-TFS] ---> l  b2 f2 l' F2 l'  @ 0009579756550 nodes with 0112557647153 6-TFS probes   
Solution [013] =  l  F  l  F2 B2 r' F  [inside 6-TFS] ---> l  B2 F2 r' F2 l'  @ 0009581610010 nodes with 0112578041353 6-TFS probes   
Solution [014] =  l  F  l  f2 b2 l' F  [inside 6-TFS] ---> r  b2 f2 r' F2 l'  @ 0009581678602 nodes with 0112578792734 6-TFS probes   
Solution [015] =  l' B' D2 F2 l' F2 D2 [inside 6-TFS] ---> B  l' B  r' B' l2  @ 0010232788488 nodes with 0119732515519 6-TFS probes   
Solution [016] =  l2 u2 l  U2 r' d2 r  [inside 6-TFS] ---> l' d2 u2 l  U2 l   @ 0010362393376 nodes with 0121156572968 6-TFS probes   
Solution [017] =  l2 u2 l  U2 r' d2 l' [inside 6-TFS] ---> r  d2 u2 l  U2 l   @ 0010362393380 nodes with 0121156572984 6-TFS probes   
Solution [018] =  l2 u2 l  U2 l' u2 d2 [inside 6-TFS] ---> l  r' d2 r  U2 l   @ 0010362395718 nodes with 0121156598200 6-TFS probes   
Solution [019] =  l2 b2 l' F2 r  f2 b2 [inside 6-TFS] ---> l  r' f2 l' F2 l'  @ 0010678918506 nodes with 0124634137741 6-TFS probes   
Solution [020] =  l2 b2 l' F2 l  f2 r  [inside 6-TFS] ---> l' b2 f2 r' F2 l'  @ 0010678920925 nodes with 0124634164709 6-TFS probes   
Solution [021] =  l2 b2 l' F2 l  f2 l' [inside 6-TFS] ---> r  b2 f2 r' F2 l'  @ 0010678920929 nodes with 0124634164772 6-TFS probes   



Solutions To center scenario U1,U2,U4 vs. F2,F3,F4

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|OOOO|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|OOOO|####|   |OOOO|####|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  r  U2 l  U2 D2 r' U' [inside 6-TFS] ---> l  D2 U2 r' U' r'  @ 0007791392579 nodes with 0092906774080 6-TFS probes   
Solution [002] =  r  U2 l  u2 d2 l' U' [inside 6-TFS] ---> r  d2 u2 r' U' r'  @ 0007791461246 nodes with 0092907524073 6-TFS probes   
Solution [003] =  r' F2 l' F2 B2 r  F  [inside 6-TFS] ---> l' B2 F2 r  F  r   @ 0008627385268 nodes with 0102091592643 6-TFS probes   
Solution [004] =  r' F2 l' f2 b2 l  F  [inside 6-TFS] ---> r' b2 f2 r  F  r   @ 0008627453863 nodes with 0102092347556 6-TFS probes   
Solution [005] =  l  F2 l  F2 B2 r' F' [inside 6-TFS] ---> l  B2 F2 r' F' l'  @ 0009622764491 nodes with 0113028715803 6-TFS probes   
Solution [006] =  l  F2 l  f2 b2 l' F' [inside 6-TFS] ---> r  b2 f2 r' F' l'  @ 0009622833083 nodes with 0113029470363 6-TFS probes   
Solution [007] =  l' U2 l' U2 D2 r  U  [inside 6-TFS] ---> l' D2 U2 r  U  l   @ 0009834392044 nodes with 0115353500633 6-TFS probes   
Solution [008] =  l' U2 l' u2 d2 l  U  [inside 6-TFS] ---> r' d2 u2 r  U  l   @ 0009834460714 nodes with 0115354246542 6-TFS probes   



Solutions To center scenario U1,U3,U4 vs. F1,F2,F3

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|####|####|   |OOOO|####|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|####|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  r  U2 r  u2 d2 r' U  [inside 6-TFS] ---> l  d2 u2 l' U  r'  @ 0007789475362 nodes with 0092884032655 6-TFS probes   
Solution [002] =  r' F2 r' F2 B2 l  F' [inside 6-TFS] ---> r' B2 F2 l  F' r   @ 0008625527216 nodes with 0102070935901 6-TFS probes   
Solution [003] =  r' F2 r' f2 b2 r  F' [inside 6-TFS] ---> l' b2 f2 l  F' r   @ 0008625595637 nodes with 0102071690459 6-TFS probes   
Solution [004] =  l  F2 r  F2 B2 l' F  [inside 6-TFS] ---> r  B2 F2 l' F  l'  @ 0009620842606 nodes with 0113006284791 6-TFS probes   
Solution [005] =  l  F2 r  f2 b2 r' F  [inside 6-TFS] ---> l  b2 f2 l' F  l'  @ 0009620911030 nodes with 0113007039053 6-TFS probes   
Solution [006] =  l' U2 r' U2 D2 l  U' [inside 6-TFS] ---> r' D2 U2 l  U' l   @ 0009832470167 nodes with 0115331787797 6-TFS probes   
Solution [007] =  l' U2 r' u2 d2 r  U' [inside 6-TFS] ---> l' d2 u2 l  U' l   @ 0009832538657 nodes with 0115332533174 6-TFS probes   



Solutions To center scenario U1,U3,U4 vs. F1,F2,F4

TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|####|####|   |OOOO|####|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|OOOO|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  r' F  r' F2 B2 l  F  [inside 6-TFS] ---> r' B2 F2 l  F2 r   @ 0008584372735 nodes with 0101618757955 6-TFS probes   
Solution [002] =  r' F  r' f2 b2 r  F  [inside 6-TFS] ---> l' b2 f2 l  F2 r   @ 0008584441156 nodes with 0101619506595 6-TFS probes   
Solution [003] =  r' F  l' F2 B2 r  F  [inside 6-TFS] ---> l' B2 F2 r  F2 r   @ 0008586230788 nodes with 0101639179490 6-TFS probes   
Solution [004] =  r' F  l' f2 b2 l  F  [inside 6-TFS] ---> r' b2 f2 r  F2 r   @ 0008586299383 nodes with 0101639934276 6-TFS probes   
Solution [005] =  r2 d2 r' U2 r  u2 d2 [inside 6-TFS] ---> l  r' u2 l' U2 r'  @ 0008942772843 nodes with 0105556944118 6-TFS probes   
Solution [006] =  r2 d2 r' U2 l  u2 r  [inside 6-TFS] ---> l' d2 u2 r' U2 r'  @ 0008942775361 nodes with 0105556971400 6-TFS probes   
Solution [007] =  r2 d2 r' U2 l  u2 l' [inside 6-TFS] ---> r  d2 u2 r' U2 r'  @ 0008942775365 nodes with 0105556971415 6-TFS probes   
Solution [008] =  r2 f2 r  F2 r' b2 r  [inside 6-TFS] ---> l' b2 f2 l  F2 r   @ 0009205862488 nodes with 0108447356789 6-TFS probes   
Solution [009] =  r2 f2 r  F2 r' b2 l' [inside 6-TFS] ---> r  b2 f2 l  F2 r   @ 0009205862492 nodes with 0108447356806 6-TFS probes   
Solution [010] =  r2 f2 r  F2 l' f2 b2 [inside 6-TFS] ---> l  r' b2 r  F2 r   @ 0009205864764 nodes with 0108447381423 6-TFS probes   
Solution [011] =  l  D' B2 U2 l  U2 B2 [inside 6-TFS] ---> D  l  D  r  D' l2  @ 0009508172139 nodes with 0111768760110 6-TFS probes   
Solution [012] =  l' U  r' U2 D2 l  U  [inside 6-TFS] ---> r' D2 U2 l  U2 l   @ 0009791315686 nodes with 0114879974891 6-TFS probes   
Solution [013] =  l' U  r' u2 d2 r  U  [inside 6-TFS] ---> l' d2 u2 l  U2 l   @ 0009791384176 nodes with 0114880727942 6-TFS probes   
Solution [014] =  l' U  l' U2 D2 r  U  [inside 6-TFS] ---> l' D2 U2 r  U2 l   @ 0009793237564 nodes with 0114901055904 6-TFS probes   
Solution [015] =  l' U  l' u2 d2 l  U  [inside 6-TFS] ---> r' d2 u2 r  U2 l   @ 0009793306234 nodes with 0114901813611 6-TFS probes   
Solution [016] =  l2 u2 l  U2 r' u2 d2 [inside 6-TFS] ---> l' r  d2 l  U2 l   @ 0010362393288 nodes with 0121154498648 6-TFS probes   
Solution [017] =  l2 u2 l  U2 l' d2 r' [inside 6-TFS] ---> l  d2 u2 r  U2 l   @ 0010362395807 nodes with 0121154525043 6-TFS probes   
Solution [018] =  l2 u2 l  U2 l' d2 l  [inside 6-TFS] ---> r' d2 u2 r  U2 l   @ 0010362395809 nodes with 0121154525044 6-TFS probes   
Solution [019] =  l2 b2 l' F2 r  f2 r' [inside 6-TFS] ---> l  b2 f2 l' F2 l'  @ 0010678918496 nodes with 0124632168079 6-TFS probes   
Solution [020] =  l2 b2 l' F2 r  f2 l  [inside 6-TFS] ---> r' b2 f2 l' F2 l'  @ 0010678918498 nodes with 0124632168081 6-TFS probes   
Solution [021] =  l2 b2 l' F2 l  f2 b2 [inside 6-TFS] ---> l' r  f2 r' F2 l'  @ 0010678920936 nodes with 0124632195186 6-TFS probes
 
Last edited:
Joined
Dec 18, 2007
Messages
7,830
Likes
33
Location
a <script> tag near you
WCA
2006GOTT01
YouTube
qqwref2
Yes, but as a former chess programmer, I am addicted to increasing move generator speed :)
That's certainly useful to do, but don't forget, the number of states that must be considered in a 4x4x4 solver is much higher than the number of states a chess or checkers program would ever need to look at ;) I bet chess and checkers solvers use their own kind of pruning too, although of course algorithms like alpha-beta pruning won't work on a single-player permutation 'game' like this.


There are a lot of interesting sequences in the output dump there. I don't have time to look at them all, but going through some of the 2-center cases I notice some do a similar thing - I wonder how many really unique optimal ways there are to do these things.
 
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #293
That's certainly useful to do, but don't forget, the number of states that must be considered in a 4x4x4 solver is much higher than the number of states a chess or checkers program would ever need to look at ;) I bet chess and checkers solvers use their own kind of pruning too, although of course algorithms like alpha-beta pruning won't work on a single-player permutation 'game' like this.


There are a lot of interesting sequences in the output dump there. I don't have time to look at them all, but going through some of the 2-center cases I notice some do a similar thing - I wonder how many really unique optimal ways there are to do these things.
Bear in mind that the output is from the much older, and partially defective program. While the solutions are good, they are far from a complete set. Recall that version of the program "sat still"and wanted to be solved in its original position. So there are many 6-turn solutions that could not even be probed, because they were missing from the database. I am in the process of correcting this now. I am loading all 24 possible cube starting positions into RAM, and then solving them, 1 turn at a time, verifying explicitly that none are duplicates. This is harder than it sounds and a few obstacles are still impeding my latest attempts to make this work as efficiently as possible.

I should have a 2-turn or 3-turn implementation available in a day or two.
 
Joined
Sep 17, 2009
Messages
901
Likes
45
Location
New Orleans, LA
YouTube
4EverTrying
Bear in mind that the output is from the much older, and partially defective program. While the solutions are good, they are far from a complete set.
I wrote a permutation solver/generator, and I used a random number generator to find solutions, as computing all possible permutations would require dozens of gigabytes of RAM. Out of curiosity, did you use a random number generator for any portion of your chess programs?
 
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #295
I wrote a permutation solver/generator, and I used a random number generator to find solutions, as computing all possible permutations would require dozens of gigabytes of RAM. Out of curiosity, did you use a random number generator for any portion of your chess programs?
EDIT: My TFS-03 database is now confirmed for all 24 rotated states as requiring a total of 34.84 Megabytes of RAM. Yes, MB and not GB, but it is only for 3-moves into the future. The good news is, I can chop 3-ply off of the tree at any level in the search. Testing it now...

Well my program played on an 80-square board with 2 new types of chess pieces, and looked like this:



So it wasn't pure chess. Large random numbers were used in a static fashion for hash table lookups. It's strange how better randomness can improve the rate at which you can find things in large tables.

Download Link
 
Last edited:
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #296
EDIT (appending):
I tried the following scramble on OO4x4x4 version 1.2.3 and 1.2.8:

L l r' F f b' R r l' F2 f2 b2 L l U u d' R2 r2 l2

My solver solved this in around 1 second to finish a depth 8 search (yes, corners pruning really helps on this one). OO4x4x4 (using 5-TFS) took a few minutes to search up to a "depths 6-11" and still did not find the solution. Even though this position can be solved back to the original cube orientation in 11 moves, it might be that OO4x4x4 didn't find it due to its restricting to no more than 3 consecutive turns on an axis. The rule that you shouldn't need more than 3 turns in a row on the same axis is based upon an assumption that the orientation of the cube shouldn't matter. OO4x4x4 is using this rule, but it still apparently considering the orientation of the cube to matter.
I have to thank you for coming up with a clear case to document what was wrong with my old solver. The current version of my program, 2.0.4, handles this without any strain. In fact, it "over-handles" it.

http://lightningcloudcomputing.com/OO_4x4x4_204.zip



I have no corner pruning yet, but I do use the 1-, 2-, and 3-Turn-From-Solved database in 2 separate ways (which might be causing some of the "over-solves" in solutions 0001-0027, 0029-0043, and 0045 and 0046 (there are more even). The optimal solution is 8-plies, so I would expect OO_4x4x4 to hit it at ply 5 with the 3-TFS database. It didn't. Yet at ply 8 we see a flurry of TFS activity, all 3 databases showcasing solutions, and a "native" depth 8 solution first appearing in solution 0028.

My current thinking is that the following logic is flawed:

A. If there are 3 ply remaining in the search, if a database probe of 3-TFS misses, and 2-TFS misses, and 1-TFS misses, the cube cannot be solved in 3 more moves, so prune it.
B. If there are 2 ply remaining in the search, if a database probe of 2-TFS misses, and 1-TFS misses, the cube cannot be solved in 2 more moves, so prune it.
C. If there is 1 ply remaining in the search, if a database probe of 1-TFS misses, the cube cannot be solved in 1 more move, so prune it.

This is the only set of pruning being carried out by the program before engaging the move generator.

After engaging the move generator, if depth == 0, I check to see if the cube is solved, or in 1-TFS, 2-TFS, and 3-TFS. That is what is being displayed when you see [inside TFS].

So if A,B, and C, are correct above, could that mean the Jakube Move Generator is self-auditing moves that should be sent forth? I am really scratching my head over this one.
 
Last edited:
Joined
Dec 18, 2007
Messages
7,830
Likes
33
Location
a <script> tag near you
WCA
2006GOTT01
YouTube
qqwref2
My current thinking is that the following logic is flawed:

A. If there are 3 ply remaining in the search, if a database probe of 3-TFS misses, and 2-TFS misses, and 1-TFS misses, the cube cannot be solved in 3 more moves, so prune it.
B. If there are 2 ply remaining in the search, if a database probe of 2-TFS misses, and 1-TFS misses, the cube cannot be solved in 2 more moves, so prune it.
C. If there is 1 ply remaining in the search, if a database probe of 1-TFS misses, the cube cannot be solved in 1 more move, so prune it.
What does it mean to have "3 ply remaining"? You don't know how long the solution is. I hope you are not reasoning as follows:
- Suppose current searching depth is 5.
- We have done 2 moves. 3 moves are thus "remaining". This position of course cannot be solved in 3 more moves, so prune it.

If that is indeed what you meant by A, B, and C above, then I see the problem. That reasoning is only correct if your current depth is (at least) the length of the optimal solution. A 2-move solution is only in the 3-TFS database if there is a 5-move optimal solution, but you are not looking for a 5-move solution, you are looking for a (5+3)-move solution - the position shouldn't even show up in your databases until you get 5 moves deep. So instead of finding those (5+3)-move solutions, your program prunes everything until it gets to a searching depth of 8, the same as the optimal solution. Then and only then will it let itself find solutions - and it finds everything from 8+0 to 8+3 moves, as you see above.


And, if that is indeed what you are doing, I suggest the following change in the searching algorithm, in pseudocode:
Code:
OLD:
let database_depth = 3
loop on search_depth = 1, 2, 3, ... until we find a solution
 loop through tree of positions of length up to search_depth
  if search_depth - position_depth is 3 and position not in 3-TFS, 2-TFS, 1-TFS: prune
  if search_depth - position_depth is 2 and position not in 2-TFS, 1-TFS: prune
  if search_depth - position_depth is 1 and position not in 1-TFS: prune
  if search_depth = position_depth and position in 3-TFS, 2-TFS, 1-TFS, 0-TFS: print solution

NEW:
let database_depth = 3
loop on search_depth = 1, 2, 3, ... until we find a solution
 loop through tree of positions of length up to (search_depth - database_depth)
  [add new pruning which is not based on TFS databases here]
  if search_depth - database_depth = position_depth and position in 3-TFS, 2-TFS, 1-TFS, 0-TFS: print solution
                                                                    // solution will almost always be found in the 3-TFS
 
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #298
What does it mean to have "3 ply remaining"? You don't know how long the solution is. I hope you are not reasoning as follows...

If that is indeed what you meant by A, B, and C above, then I see the problem.
I see the problem too. I am an idiot :)

And, although I like the search depth, my guess is that my corner pruning database is not working.



EDIT: On second thought, I think I will keep this mistake hanging around for a while.

 
Last edited:
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #299
What does it mean to have "3 ply remaining"? You don't know how long the solution is. I hope you are not reasoning as follows...

If that is indeed what you meant by A, B, and C above, then I see the problem.
By the way, thanks for shedding light on the subject. That is pretty much exactly what I was doing. It explains the "race to the front door," then the preponderance of solutions all at once. I have implemented your suggestion, which amounts to back-end pruning. Bruce's corner database is for forward pruning. I have disabled all of the forward pruning sections in my code, and now I get this humble, ordinary (but correct) version of a brute force solver:



I got this position from the old "stationary" 6-TFS database run where I solved all permutations of centers. Although clearly faulty, it produced this set of data in seconds:

Code:
TOP                     FRONT                   RIGHT
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|OOOO|OOOO|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|####|####|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------
|####|####|####|####|   |OOOO|OOOO|OOOO|OOOO|   |XXXX|XXXX|XXXX|XXXX|
---------------------   ---------------------   ---------------------


BOTTOM                  BACK                    LEFT
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------
|~~~~|~~~~|~~~~|~~~~|   |&&&&|&&&&|&&&&|&&&&|   |^^^^|^^^^|^^^^|^^^^|
---------------------   ---------------------   ---------------------



Solution [001] =  r  U  l  d2 [inside 6-TFS] ---> l' r  d2 r' U' r'  @ 0000000348741 nodes with 0000004171213 6-TFS probes   
Solution [002] =  r' F' r' b2 [inside 6-TFS] ---> l' r  b2 l  F  r   @ 0000000387201 nodes with 0000004592087 6-TFS probes   
Solution [003] =  r' F' l' b2 [inside 6-TFS] ---> l  r' b2 r  F  r   @ 0000000387285 nodes with 0000004592754 6-TFS probes   
Solution [004] =  l  F  r  b2 [inside 6-TFS] ---> l  r' b2 l' F' l'  @ 0000000431064 nodes with 0000005075019 6-TFS probes   
Solution [005] =  l  F  l  b2 [inside 6-TFS] ---> l' r  b2 r' F' l'  @ 0000000431151 nodes with 0000005075484 6-TFS probes   
Solution [006] =  l' U' r' d2 [inside 6-TFS] ---> l' r  d2 l  U  l   @ 0000000441516 nodes with 0000005190336 6-TFS probes   
Solution [007] =  l' U' l' d2 [inside 6-TFS] ---> l  r' d2 r  U  l   @ 0000000441603 nodes with 0000005191422 6-TFS probes
It has missed some solutions due to the 6-TFS not being correct, having generated moves from its locked starting arrangement, as if glued to the desk.

I seem to be suffering from the ignominy of having defective versions of my program vastly outperforming the solid, reliable version of it.

If somebody could verify that there are only 16 solutions to the 2-center position above, I would appreciate it. Since it took over half an hour to sluggishly get to less than 1/3rd of the moves at that depth, I am not going to wait around and see if any more pop up.
 
Last edited:
Joined
Mar 2, 2014
Messages
566
Likes
9
Location
Doylestown, PA
Thread starter #300
I released 3 different "flavors" of version 2.0.5 today: Heavy Pruning, Light Pruning, No Pruning. They are all available from the same download. Just launch whichever app you want to play with

http://lightningcloudcomputing.com/OO_4x4x4_205.zip

Version 2.0.5 Heavy Pruning
Uses a forward pruning technique heavily borrowed from the concept of the History Heuristic in chess. Each move accumulates a "history score" that increases if there are more cubes per side in the current ply as a result of the move having been made. There is a "period of observation" where the totals are computed, then a "period of action" when pruning takes place. If moves continue to have decreasing history scores they are pruned aggressively. The result is shown below: A single solution is found in a relatively short period of time. The nodes/second is low because the program does not reach terminal nodes nearly as often (so they are not counted).



Version 2.0.5 Light Pruning

Uses the same forward pruning technique but with a much longer "period of observation" and a much less aggressive criteria for pruning during the "period of action" when pruning takes place. It will generally find at least half of all available solutions, in about 1/10th the time of the "No Pruning" version.


Version 2.0.5 No Pruning
If you want every possible solution, and are prepared to wait, this is the version for you. It won't miss a single solution, but the time-to-depth is agonizing.

 
Last edited:
Status
Not open for further replies.
Top