So my attempt to do CFOP up to completed F2L seems to be a fail ... Clearly I'm doing something wrong as I get nothing generated similar to when I left off the # from the scramble which resulted in a solution on a solved cube.
Can you please add RUL as a moveset? Whenever I try to do 1x2x3 I get a lot of D2s. Is it also possible to be able to decide whether you allow specific moves? eg. allow D and D' but not D2?
So my attempt to do CFOP up to completed F2L seems to be a fail ... Clearly I'm doing something wrong as I get nothing generated similar to when I left off the # from the scramble which resulted in a solution on a solved cube.
HARCS can find stepwise optimal solutions to custom user-defined methods. The sole requirement of these methods is that their steps consist exclusively of orienting and positioning pieces in the conventional sense (reducing to a certain CP-state is not currently supported).
How difficult would it be to sidestep this requirement? For example, telling the program to pretend that the orange/blue edge is red/white and orange/green is red/yellow, then solve the cube like normal.
How difficult would it be to sidestep this requirement? For example, telling the program to pretend that the orange/blue edge is red/white and orange/green is red/yellow, then solve the cube like normal.
Solve the cube like normal...how?...up until when?
If you mean continue solving until the penultimate step, fix the wrong edges at the last step, then fix the centers....
The only way I can see that working is defining an alternate solved state for segments of the solve, which would be possible. But then you would be ALWAYS solving to a particular mostly-solved first layer. Is that what you mean? If you want the freedom to have ANY two edges in those slots, it would take a significant effort to put that functionality into HARCS.
My custom method(link in sig) involves solving the first layer with those two specific "wrong" edges in place for the first step. The rest can be accomplished with HARCS as is.
But what if the next step also has an optimal solution starting with something non-<U> and the program doesn't see it?
I think it would be a logical step to include a feature that allows to define cubestates relative to face adjustments (it's also the way those methods are used by humans anyway).
The problem is that HARCS is not designed to be an algorithm-finder, so that it could NOT find a sequence to solve that CMLL case with those depths. I've put in a way to import custom algorithm sets (using the command "algset CMLL.txt"). This is compatible with the "Udisplacement" command from above. This is explained better in the readme. Here is an example of it working with your previous input file [link to alg.cubing.net] :
Can you please add RUL as a moveset? Whenever I try to do 1x2x3 I get a lot of D2s. Is it also possible to be able to decide whether you allow specific moves? eg. allow D and D' but not D2?
You can now use a custom movegroup by typing "movegroup <URL>", or whatever you want. However, these will not be as fast as the built-in movegroups, most of the time. See the example below for usage.
Allowing D and D' but not D2 would be challenging to implement because the solutions generated are combinations of 2 smaller solutions. If subsolution a ends with a D and the inverse of subsolution b starts with a D, then we will have a combined D2 which is hard to avoid.
With some help from @Teoidus , I added the ability to solve CP, as shown in this example below of the Missing Link to ZZ-d [link to alg.cubing.net] . You can see, from the input file, that it implements a custom movegroup of <RU>, as well as using the command "2genreduction" to solve CP during the left block. It also takes the 2gll algorithms from the built-in ZBLL.txt. This is all explained in the readme.
My custom method(link in sig) involves solving the first layer with those two specific "wrong" edges in place for the first step. The rest can be accomplished with HARCS as is.
You can now use a custom movegroup by typing "movegroup <URL>", or whatever you want. However, these will not be as fast as the built-in movegroups, most of the time. See the example below for usage.
Allowing D and D' but not D2 would be challenging to implement because the solutions generated are combinations of 2 smaller solutions. If subsolution a ends with a D and the inverse of subsolution b starts with a D, then we will have a combined D2 which is hard to avoid.
it runs fully client side. one issue with JARCS was that it required a server
so I was thinking of using this in kSim and giving users the ability to click stickers, but I've noticed that while I've been making this you've already put out a new version.
I've made a bunch of changes to the code. since you don't have version control I can't easily see what changes happen between versions. If you did I could probably more easily update my code.
one problem i see is that the algorithm sets from cmll.txt and zbll.txt (& custom) don't seem to work, but you're definitely aware. it might also be helpful to see some visual feedback that the code is running, for example, when it's pruning.
i can try to read up and get the next version onto github.
I noticed that it is slower than JARCS and provides less substeps to play with. But still, it's one of the best pre-configurated solvers nowadays I think.
Great work
EDIT: Also, "petrus" command loads until 3x2x2 and stops there... any idea why?
it runs fully client side. one issue with JARCS was that it required a server
so I was thinking of using this in kSim and giving users the ability to click stickers, but I've noticed that while I've been making this you've already put out a new version.
I've made a bunch of changes to the code. since you don't have version control I can't easily see what changes happen between versions. If you did I could probably more easily update my code.
Hey sorry if this question is super obvious but I just discovered this (it is AMAZING btw), and I'm wondering what the terms prune depth and search depth mean. Because atm I just enter random numbers when defining a custom method and sometimes it works, other times it does not.
Hey sorry if this question is super obvious but I just discovered this (it is AMAZING btw), and I'm wondering what the terms prune depth and search depth mean. Because atm I just enter random numbers when defining a custom method and sometimes it works, other times it does not.
I type "custom" and as it is loading, the program crashes for no apparent reason... If I set the prunedepth and searchdepth to 7 and 7, this doesn't happen.