Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Add mate distance pruning and stopping once shortest mate proved [sea…
…rch]
Mate distance pruning is pretty standard. We check for only one
bound out of laziness, which is good enough and doesn't clutter the
code too much.
The stopping rule using the new `mateStop' flag for detecting when
the shortest mate is found needs more study. It works remarkably
well: only the null move seems to break it, but that can be caused
by the null move preventing the shortest mate to be found in the
first place. Without the null move it is still not 100% perfect,
but close: it fails only in a few (<0.5%) of the mate in 5 ("dm 5")
positions, but on none of the "dm -4 .. +4" positions. It is not
at all obvious how it could work in the first place, but it does.
It appears to be a subtle interaction with mate distance pruning
and fail-soft alpha-beta. To be continued, maybe it can be repaired
for all cases. For now, it is a lot better than the old stopping
rule which was just wrong.- Loading branch information
Showing
9 changed files
with
15,701 additions
and
14 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters