# 5x5x5, 6x6x6, 7x7x7 or NxNxN solvers

#### SteveCuber

##### Member
P.S. The below was ran prior to the latest additions being ran.
$git pull$ python3 setup.py build
$sudo python3 setup.py install #### SteveCuber ##### Member Hi dwalton76, I see you've been very busy upgrading the solver and getting the larger cube sizes down further. I noticed a few weeks back that some of the solver runs were taking longer than they had previously on my laptop. More recently, I've been getting error messages that seem to start after the program prints out "ida_search is missing". The solver began to abort on as low as a 4x4x4 cube (the 3x3x3 still worked). I decided to rename my existing solver directory and reinstall from github. I'm still seeing the same problem. On my Raspberry Pi 3 (which has not had connected to the internet for several weeks and has not received recent updates) can still solve a 4x4x4, but, on the 5x5x5 takes hours to run and does not find a solution. Below is an example from the 4x4x4. Do you have any ideas as to what I can do to fix the problem. Thank You, SteveCuber 2018-09-08 10:04:23,349 __init__.py INFO: F L D F 2018-09-08 10:04:23,350 __init__.py INFO: D L B D 2018-09-08 10:04:23,350 __init__.py INFO: F B L F 2018-09-08 10:04:23,350 __init__.py INFO: F R R B 2018-09-08 10:04:23,350 __init__.py INFO: 2018-09-08 10:04:23,351 __init__.py INFO: D F L D R U D R D R F R U B F L 2018-09-08 10:04:23,351 __init__.py INFO: B L U B R B F F R U R B L R F L 2018-09-08 10:04:23,351 __init__.py INFO: F R F U B D L U R D U B U R D U 2018-09-08 10:04:23,351 __init__.py INFO: F B D D B L U U B D L U L L R U 2018-09-08 10:04:23,351 __init__.py INFO: 2018-09-08 10:04:23,352 __init__.py INFO: L U F R 2018-09-08 10:04:23,352 __init__.py INFO: R F B L 2018-09-08 10:04:23,352 __init__.py INFO: D D U U 2018-09-08 10:04:23,352 __init__.py INFO: L B D B 2018-09-08 10:04:23,352 __init__.py INFO: 2018-09-08 10:04:23,353 __init__.py INFO: 2018-09-08 10:04:24,143 LookupTable.py INFO: 4x4x4-step31-reduce333-edges.hash-cost-only: end preload cost-only (230,228 bytes delta, 267,836 bytes total) 2018-09-08 10:04:24,387 LookupTable.py INFO: 4x4x4-step32-reduce333-centers: end preload cache dict (8,976 bytes delta, 276,812 bytes total) 2018-09-08 10:04:24,577 LookupTable.py INFO: 4x4x4-step30-reduce333: end preload cache string (101,112 bytes delta, 377,924 bytes total, 103,676,544 characters) 2018-09-08 10:04:24,578 RubiksCube444.py INFO: 4x4x4: Start of Phase1, 0 steps in 2018-09-08 10:04:24,578 LookupTable.py INFO: LookupTableIDA444ULFRBDCentersStage: recolor 2018-09-08 10:04:24,579 LookupTable.py INFO: ida_search is missing...compiling it now ida_search_555.c: In function ‘ida_heuristic_ULFRBD_centers_555’: ida_search_555.c:218:42: warning: ‘__builtin___sprintf_chk’ may write a terminating nul past the end of the destination [-Wformat-overflow=] sprintf(UL_centers_state_str , "%09lx", UL_centers_state); ^ In file included from /usr/include/stdio.h:862:0, from ida_search_555.c:3: /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 10 and 17 bytes into a destination of size 16 return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __bos (__s), __fmt, __va_arg_pack ()); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ida_search_555.c:235:42: warning: ‘__builtin___sprintf_chk’ may write a terminating nul past the end of the destination [-Wformat-overflow=] sprintf(UF_centers_state_str , "%09lx", UF_centers_state); ^ In file included from /usr/include/stdio.h:862:0, from ida_search_555.c:3: /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 10 and 17 bytes into a destination of size 16 return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __bos (__s), __fmt, __va_arg_pack ()); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ida_search_555.c:252:42: warning: ‘__builtin___sprintf_chk’ may write a terminating nul past the end of the destination [-Wformat-overflow=] sprintf(LF_centers_state_str , "%09lx", LF_centers_state); ^ In file included from /usr/include/stdio.h:862:0, from ida_search_555.c:3: /usr/include/x86_64-linux-gnu/bits/stdio2.h:33:10: note: ‘__builtin___sprintf_chk’ output between 10 and 17 bytes into a destination of size 16 return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ __bos (__s), __fmt, __va_arg_pack ()); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /tmp/ccdFnIK7.o: In function ida_heuristic': ida_search.c.text+0xc7b): undefined reference to ida_heuristic_step60_777' ida_search.c.text+0xccb): undefined reference to ida_heuristic_centers_444' ida_search.c.text+0xd34): undefined reference to ida_heuristic_UD_oblique_edges_stage_666' ida_search.c.text+0xd59): undefined reference to ida_heuristic_LR_inner_x_centers_and_oblique_edges_stage_666' ida_search.c.text+0xd6c): undefined reference to ida_heuristic_UD_oblique_edges_stage_777' ida_search.c.text+0xd7c): undefined reference to ida_heuristic_LR_oblique_edges_stage_777' ida_search.c.text+0xda1): undefined reference to ida_heuristic_step40_777' ida_search.c.text+0xdc9): undefined reference to ida_heuristic_step50_777' /tmp/ccdFnIK7.o: In function ida_search': ida_search.c.text+0x17b7): undefined reference to ida_heuristic_step60_777' ida_search.c.text+0x1a27): undefined reference to ida_heuristic_centers_444' ida_search.c.text+0x1aa0): undefined reference to ida_heuristic_UD_oblique_edges_stage_666' ida_search.c.text+0x1acd): undefined reference to ida_heuristic_LR_inner_x_centers_and_oblique_edges_stage_666' ida_search.c.text+0x1ae8): undefined reference to ida_heuristic_UD_oblique_edges_stage_777' ida_search.c.text+0x1b00): undefined reference to ida_heuristic_LR_oblique_edges_stage_777' ida_search.c.text+0x1b2d): undefined reference to ida_heuristic_step40_777' ida_search.c.text+0x1b5d): undefined reference to ida_heuristic_step50_777' /tmp/ccdFnIK7.o: In function ida_solve': ida_search.c.text+0x2169): undefined reference to ida_heuristic_step60_777' ida_search.c.text+0x224f): undefined reference to ida_heuristic_step50_777' ida_search.c.text+0x2287): undefined reference to ida_heuristic_step40_777' ida_search.c.text+0x22a2): undefined reference to ida_heuristic_LR_oblique_edges_stage_777' ida_search.c.text+0x22c2): undefined reference to ida_heuristic_UD_oblique_edges_stage_777' ida_search.c.text+0x22f7): undefined reference to ida_heuristic_LR_inner_x_centers_and_oblique_edges_stage_666' ida_search.c.text+0x2312): undefined reference to ida_heuristic_UD_oblique_edges_stage_666' ida_search.c.text+0x23c1): undefined reference to ida_heuristic_centers_444' /tmp/ccdFnIK7.o: In function ida_search_complete': ida_search.c.text+0x1015): undefined reference to ida_search_complete_UD_oblique_edges_stage_666' ida_search.c.text+0x1025): undefined reference to ida_search_complete_LR_inner_x_centers_and_oblique_edges_stage' ida_search.c.text+0x1035): undefined reference to ida_search_complete_UD_oblique_edges_stage_777' ida_search.c.text+0x1045): undefined reference to ida_search_complete_LR_oblique_edges_stage_777' ida_search.c.text+0x1055): undefined reference to ida_search_complete_step40_777' ida_search.c.text+0x1065): undefined reference to ida_search_complete_step50_777' ida_search.c.text+0x1075): undefined reference to ida_search_complete_centers_444' ida_search.c.text+0x1085): undefined reference to ida_search_complete_step60_777' /tmp/ccoD7PC6.o: In function ida_heuristic_ULFRBD_centers_555': ida_search_555.c.text+0x3b1): undefined reference to XXH32' ida_search_555.c.text+0x46b): undefined reference to XXH32' ida_search_555.c.text+0x52e): undefined reference to XXH32' collect2: error: ld returned 1 exit status Traceback (most recent call last): File "./usr/bin/rubiks-cube-solver.py", line 301, in <module> cube.solve() File "/usr/local/lib/python3.6/dist-packages/rubikscubennnsolver/__init__.py", line 3935, in solve self.group_centers_guts() File "/usr/local/lib/python3.6/dist-packages/rubikscubennnsolver/RubiksCube444.py", line 1119, in group_centers_guts self.lt_ULFRBD_centers_stage.solve() File "/usr/local/lib/python3.6/dist-packages/rubikscubennnsolver/LookupTable.py", line 1252, in solve subprocess.check_output("gcc -O3 -o ida_search ida_search_core.c ida_search.c rotate_xxx.c ida_search_555.c -lm".split()) File "/usr/lib/python3.6/subprocess.py", line 336, in check_output **kwargs).stdout File "/usr/lib/python3.6/subprocess.py", line 418, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['gcc', '-O3', '-o', 'ida_search', 'ida_search_core.c', 'ida_search.c', 'rotate_xxx.c', 'ida_search_555.c', '-lm']' returned non-zero exit status 1. #### SteveCuber ##### Member Hi dwalton76, One more thing. I thought that I may have caused problems on both my laptop and Raspberry Pi 3, so I made a microSD with a fresh Raspbian Stretch install and downloaded the 3x3x3 and the NxNxN-solver per github. A 4x4x4 case was ran with and without the --min-memory options were ran. There did not run to completion. Attached are the files. SteveCuber #### Attachments • 6.2 KB Views: 2 • 3.2 KB Views: 0 #### dwalton76 ##### Member Apologies for being slow to respond...was out of town then had some hurricane fun. Can you try the following and let me know if it fixes the failures? Code: $ git pull
$make clean$ make all

#### SteveCuber

##### Member
Apologies for being slow to respond...was out of town then had some hurricane fun. Can you try the following and let me know if it fixes the failures?

Code:
$git pull$ make clean
\$ make all
Hope you came out of the hurricane OK.

Thanks again for your efforts as well as the effort to put the code together in the first place!
I did the three lines above and ran 4x4x4, 5x5x5, 6x6x6 and 7x7x7. Only the 4x4x4 case gave a solution. Attached are the files.

I'm happy to run ideas that you have. If you are short on time let me know and I can reinstall Ubuntu and try again. Not much of a problem as my laptop had Ubuntu installed recently. There is not much installed beyond the NxNxN solver. Either way is fine with me.

#### Attachments

• 16.2 KB Views: 3
• 7.6 KB Views: 2
• 19.2 KB Views: 1
• 19.1 KB Views: 0

#### dwalton76

##### Member
Can you run this and send me the output:
Code:
./ida_search --kociemba .DBL.FxxxFFxxxDFxxxD.DUF..BRL.FLLLBDLLFLUFFLB.BRF..LFR.RLFLRLFFFBBLFFL.FBL..ULU.RxxxUBxxxULxxxU.URB..LDD.FFLFULFLLURFLFL.BUD..DRB.RLFLDDLFLFRFLFD.UFR. --type 5x5x5-LR-centers-stage

#### SteveCuber

##### Member
Can you run this and send me the output:
Code:
./ida_search --kociemba .DBL.FxxxFFxxxDFxxxD.DUF..BRL.FLLLBDLLFLUFFLB.BRF..LFR.RLFLRLFFFBBLFFL.FBL..ULU.RxxxUBxxxULxxxU.URB..LDD.FFLFULFLLURFLFL.BUD..DRB.RLFLDDLFLFRFLFD.UFR. --type 5x5x5-LR-centers-stage
Attached is the result.

#### Attachments

• 1.1 KB Views: 4

#### dwalton76

##### Member
ah, I forgot to push a commit. I've pushed it now, can you redo the "git pull, etc" steps and try it again.

#### SteveCuber

##### Member
Great news. 5x5x5 works. 6x6x6 is running

#### SteveCuber

##### Member
Mixed news. 6x6x6 passed, but, 7x7x7 does not solve. Attached is 7x7x7 file. Will continue testing and advise results.

#### Attachments

• 40.9 KB Views: 4

#### dwalton76

##### Member
What do you get for:
Code:
./ida_search --kociemba DLFFRRLFDUUDULRDUUDUDBDUUDUDBDUUDUFFDUUDUURBFRBFFUBLBBDBFLLLLLUDRRRRRFRRRRRRDRLLLLLBULLLLLUBLUUDRRDDUFLURBFBBFFLBFFBBBLFFBFFFBDBBFFFDBFBBBFFDDUDRRLRFLFFDULUDDUDBLUDDUDRDUDDUDLDUDDUDRFUDDUDUFFUUBDBLDFLDLFRRRRRRUULLLLLLULLLLLLURRRRRLRRRRRRDURFRUUBDDUULBFRBFFBBBDBFFBFFLFBBBBBRFBFFFBLBBBFBBULRRBRL --type 7x7x7-step60

#### SteveCuber

##### Member
What do you get for:
Code:
./ida_search --kociemba DLFFRRLFDUUDULRDUUDUDBDUUDUDBDUUDUFFDUUDUURBFRBFFUBLBBDBFLLLLLUDRRRRRFRRRRRRDRLLLLLBULLLLLUBLUUDRRDDUFLURBFBBFFLBFFBBBLFFBFFFBDBBFFFDBFBBBFFDDUDRRLRFLFFDULUDDUDBLUDDUDRDUDDUDLDUDDUDRFUDDUDUFFUUBDBLDFLDLFRRRRRRUULLLLLLULLLLLLURRRRRLRRRRRRDURFRUUBDDUULBFRBFFBBBDBFFBFFLFBBBBBRFBFFFBLBBBFBBULRRBRL --type 7x7x7-step60
Attached is file when the above was ran.

Also, have ran five cases of 3x3x3, 4x4x4, 5x5x5, and 6x6x6. They all were solved. Five of five cases for the 7x7x7 were unsolved. One of one case of 8x8x8 ran and was unsolved. Files for unsolved cases attached.

#### Attachments

• 1.2 KB Views: 3
• 41.2 KB Views: 0
• 41.6 KB Views: 0
• 41.5 KB Views: 1
• 41.4 KB Views: 0
• 41.4 KB Views: 0
• 42.6 KB Views: 0

#### dwalton76

##### Member
7x7x7 and larger should be working now (just pushed a fix)

#### SteveCuber

##### Member

Nothing but good news this time. All five cases of 7x7x7 are passing. All five cases of 8x8x8 are passing. Two of two 9x9x9 cases passing. Will be doing more testing later today.

#### SteveCuber

##### Member

Nothing but good news this time. All five cases of 7x7x7 are passing. All five cases of 8x8x8 are passing. Two of two 9x9x9 cases passing. Will be doing more testing later today.
dwalton76,

Planned testing is completed. Five cases of 7x7x7, 8x8x8, 9x9x9, 10x10x10, and 11x11x11 were done. All cases were solved.
Thanks for resolving this problem.

#### dwalton76

##### Member
FYI I have installed my solver on a pi3 and will use that for testing in the future. 4x4x4 takes ~10s, 5x5x5 takes ~180s, 6x6x6 and larger run out of RAM and do not produce a solution. Am going to work on making this run faster on pi3 but the solutions will be a little longer than "--normal" mode.

#### SteveCuber

##### Member
FYI I have installed my solver on a pi3 and will use that for testing in the future. 4x4x4 takes ~10s, 5x5x5 takes ~180s, 6x6x6 and larger run out of RAM and do not produce a solution. Am going to work on making this run faster on pi3 but the solutions will be a little longer than "--normal" mode.
Thanks! I look forward to seeing it.

#### SteveCuber

##### Member
Hi dwalton76,
I had previously made a cube tracker to determine cube color values for a 3x3x3. Decided to update my code instead of using the rubiks-cube-tracker.py code you have. I was thinking that as long as the output file that goes into the solver is the same format, then there should not be a problem. I have typed into the files the values of each of the six faces. My tracker code takes one file from each of the six faces and simply combines them. For the moment I'm cutting and pasting the result into the command line after "reset; ./usr/bin/rubiks-cube-solver.py --state" and pressing return. My hope was that this would validate the approach.
It hasn't turn out exactly that way. For the test case I created files for a cube that has had only two turns. The 5x5x5 case solved as expected. When I ran the attached "11x11x11InputToSolver" case the program did not run to completion. The cube was as expected when it was displayed early in the solve process. It ran until only edge and corner cubes were unsolved and gave a message ending with "raise Exception("L4E group but where?") Exception: L4E group but where?".
Can you see anything wrong with my "11x11x11InputToSolver" file? Would you be able to tell me if it runs on your system? Any help would be appreciated.

#### Attachments

• 1.4 KB Views: 3
• 767 bytes Views: 4

#### dwalton76

##### Member
@SteveCuber yep I can reproduce it with your 11x11x11 state file. Your state file looks legit, I think you just found a new bug. Looking...

#### Dylan Swarts

##### Member
I'm sorry that this is totally unrelated to the conversation, but I just spent a quarter of an hour or so reading through some messages on this thread and this is so fascinating. I know very little of what any of you say but I wish I did, are you programmers or coders? Or is coding a hobby?