-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How does cube6.h and pre-moving work? #5
Comments
Some of the questions (like the one about BPMX) will take me a bit of time to remember how it works, so I'll either answer those in a followup response, or commit some code comments. Pre-moves Another optimal first move would be to prepend cube6 It's easy (in software) to get from one scramble to any of its symmetric equivalents. If Except the pruning table itself already accounts for some symmetry. This is done to keep the table as small as possible, and to reduce the number of lookups required. This pruning table has 16-way symmetry (it doesn't include inverses, and the U/D axis is "special".) Therefore, out of the 96 potential lookups, only The solver::queue_search |
Thank you, that makes much more sense. I would greatly appreciate a commit with code comments. |
Hello, this is not an actual issue but rather a question about the codebase. During search, it makes sense that the inverse is chosen if there are less available moves from that state. However I don't understand the logic behind how pre-moving works, the
cube6
data structure, nor the details of howsolver::search
works. For example, what does this do, and what is the point ofsolver::queue_search
?Additionally, why does the BPMX use
sol > max_depth + 2
in particular? It's a bit difficult to visualize how it works just from reading.The text was updated successfully, but these errors were encountered: