• 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!

HARCS (JARCS Replacement) - Cube Solver

bren077s

Member
Joined
Dec 17, 2015
Messages
53
E and S moves should already work, i will definitely add the full-solve movecount histogram, and the rest of the upgrades are in progress
I setup a movegroup that used E, and it never happened to use E in the solves I tested. It is possible that the solves I tested simply never used E because it was sub optimal. Good to know they work.

Edit: Made the script better and added in move analysis
For those of you who are interested. I created a small python script(requires python, numpy, and matplotlib to run) that takes in one of @mDiPalma's export files and creates histograms of each substep and the entire solve. The red dotted line is the average. Now, it also shows what moves are used during each step and during the entire solve(should be nice to see what methods are best for 1 handed). You will need to download the file and change the extension from .txt to .py


It is run using the command: 'python SolveAnalyzer.py "exported filename"'
ex: python SolveAnalyzer.py roux_solves.txt
Here is an example of its output on 100,000 Roux solves:
Roux_Move_Count.png
Roux_Move_Distribution.png

Hey @mDiPalma, I was working on setting this up for ZZ-CT using the algs on http://gyroninja.net/zzct/zzct.html#page.
I keep running into issues when I analyze and I was wondering if their is an easy way to convert from the hex cube state to an algorithm so I can look at what cases are failing. Currently TSLE seems to be working all of the time, but sometimes TTLL fails. Here is the output:
Code:
 Errors:
        Attempt 1 on step 5 at state:
                241356789abc/222222222222/42315678/44444444/123
        Attempt 56 on step 5 at state:
                142356789abc/222222222222/21435678/44444444/123
        Attempt 64 on step 5 at state:
                124356789abc/222222222222/34215678/44444444/123
        Attempt 86 on step 5 at state:
                134256789abc/222222222222/41325678/44444444/123
Any advice?
 

Attachments

Neuro

Member
Joined
Dec 23, 2016
Messages
487
Hey is it possible to leave out one of two pieces? I want to be able to solve Roux SB but it can exclude either corner (DFR DBR) Thanks!
 

bren077s

Member
Joined
Dec 17, 2015
Messages
53
Currently HARCS only supports doing things in the exact same order every time. For testing with HARCS, you would have to pick one of the corners and always leave that same corner out.
 

Sk0bel

Member
Joined
Sep 14, 2015
Messages
4
Hi @mDiPalma,

Your program is just wonderful !

Unfortunately, I have some issues with it. Actually, in my custom.txt file, I'm using eps and cos commands to permute and disorient few pieces. It works like a charm when I use a command like : "apply R' D2 R2 B2 U' B2 D2 F2 L2 R2 D2 F L2 D L B' L D' R # all". But one problem comes when, instead of using a generated scramble, I write something like : "apply random # all" or even "random all" ; at the third step of my custom method (the step where eps and cos appear) and after that one, I get an error :
upload_2017-7-16_17-11-5.png

The seconds problem I get is when I'm using the "analyze" command. I'm getting no data and errors appear :
upload_2017-7-16_17-10-19.png

I hope it's going to be fixed :)

Thanks again for the program !
 

Sk0bel

Member
Joined
Sep 14, 2015
Messages
4
Can I see the text of your input file?
No, sorry, I want to keep it secret.

You can nonetheless try out with the RiceSquare file you did.
custom_txt.PNG
You'll note that the analyze command isn't working at all.
RiceSquare_Analyze.PNG
So does the random command when you see what happens after typing "view"...
RiceSquare_random.PNG
RiceSquare_random_ALG.PNG

I really hope you'll notice that..

Make HARCS as great as possible !
 

Arc

Member
Joined
Jan 27, 2017
Messages
60
Location
Washington
A feature that seems very hard to implement and not that useful but nonetheless pretty neat is forcing separation of oriented pieces. That is, putting them in their own layer.
 

bren077s

Member
Joined
Dec 17, 2015
Messages
53
Your search depth is way too small for f2l-1e. as it says, no solution found within search depth. That being said, you will probably run out of memory before increasing your search depth enough. You probably need to break f2l-1e into more substeps.
 

bren077s

Member
Joined
Dec 17, 2015
Messages
53
whenever you get errors like that, it generally means that you do not have a high enough move count(prunedepth+searchdepth) for a step or you do not have the right move group. I think you need to increase you move count for eo2x2x3 and potentially f2l as well.
 

Micki

Member
Joined
Jan 12, 2016
Messages
22
whenever you get errors like that, it generally means that you do not have a high enough move count(prunedepth+searchdepth) for a step or you do not have the right move group. I think you need to increase you move count for eo2x2x3 and potentially f2l as well.
Ok so first I tried changing the movecounts in f2l to 8 in both and eo2x2x3 to 7 in both, that didn't work, then i tried changing the movegroup to a custom one allowing the same moves and that didn't work either. Then finally i changed the custom group to allow u moves also and for some reason it worked even though u moves aren't necessary for that step. But thanks
 

bren077s

Member
Joined
Dec 17, 2015
Messages
53
I have not look through the mthod, but it could be related to which center are solved/ doing eo
 

mDiPalma

Member
Joined
Jul 12, 2011
Messages
1,536
It's been a while since I published an update to this program. I've added a few things that I think are pretty cool. Here is a link. I will git commit tomorrow morning.

You can now generate algorithms between two states (defined in your input file) automatically. Include this line in your input file: "algsearch step1 step2" with the optional term "--NO-ISO" to discount isomorphs. Then you can call "algsearch 2" in HARCS to generate 2 algorithms for each unique state between the prescribed steps.

Here is an example of me generating the 2 <RUD> algorithms for each of the 22 PLLs in around 40 seconds.




Another interesting feature of this command is that it gives frequency-weighted movecounts (which is more accurate than just averaging the moves for each alg).

(One cool trick with this command is a way to calculate the number of cases between two states. You can define two steps in your input file with a searchdepth and prunedepth of 1. Then just run "algsearch 1" and it will calculate the number of unique states between these cases. It won't currently discount symmetries and it only can detect U-layer isomorphs, but it's pretty convenient nonetheless.)


Note: Because there can be many states between arbitrary steps, this command may take a significant amount of time to execute.

Also, to allow for the user to view the statistic results before a potentially large number of errors appear (and to allow for usage of the trick I described previously), the user must push RETURN/ENTER one additional time after the analysis completes and the statistics are shown before the program resumes.

Type "hacks 20" to search for short Linear FMC solutions for the loaded method on an applied scramble.

Basically, it will solve the first step 20 times. Then for each of these solutions, it will solve the second step 20 times. This process repeats until the cube is solved for all branches (branch factor for algorithmic steps is 1, however). Then it will look through all the possible solutions and pick out the shortest one. It posts some pretty interesting statistics afterwards.

Here is an example of me finding a quick 25 htm Petrus solution to a random scramble in around 5 seconds. I've actually gotten a few sub-20s with ZZ in this program.



Note: If you use this to cheat in FMC or other unofficial events, you can't receive Communion, and you won't be saved when you die. Just FYI.

-added setting to select browser visualization (ACN or my XMDI)
-permit "load custom" instead of "load custom.txt"
-custom solved states for "analyze" and "hacks"
-fixed several bugs
-added public domain license

A brief word to those who have corresponded with me with regards to bugs they've found. If I've responded to you directly, the bug is resolved. If not, the issue is still present. For clarity, there are 2 classes of bugs I've noticed: 1) bugs in optimality, and 2) bugs in rotations.

Bugs with regards to optimality are my primary concern. These are present in movegroups that involve rotations (see 2) and in CP-solving functionality. They happen because of the way HARCS uses multimaps to relate cubestates to move sequences and the way it iterates over them under different circumstances. I will try to resolve these in the next version.

Bugs with regards to rotations are not a priority at all for me. There are some issues associated with the way HARCS handles edge orientation that manifest as bugs for movegroups heavy in cube rotations (like when your step ends up in a fundamentally different orientation than what it starts in). Even Cube Explorer doesn't gaurantee optimality for sliced movegroups (try to find one of HARCS' LSE solutions in Cube Explorer - it probably won't find it). These bugs are not a major concern for me mostly because they are issues of ergonomics, which are not of actual interest for a piece of software like HARCS. I mean, if you look at @bren077s 's movegroup histograms you will notice that HARCS naturally prefers D moves over U moves, among other things (simply due to the way it iterates over candidate move sequences). This software is designed to find stepwise optimal solutions to help users learn blockbuilding and other techniques. If you want your solutions/algorithms in some obscure, rotation-heavy movegroup, try to jam it through something like AlgExplorer or use some converter.
 
Last edited:
Thread starter Similar threads Forum Replies Date
A Software Area 10
Similar threads
JARCS doesn't work anymore?
Top