-
Notifications
You must be signed in to change notification settings - Fork 530
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
Lc0 missing mate in #1 in tight endgame #627
Comments
I have not kept up with all of the changes and not sure if this is even part of the issue here, but I wonder if this might be avoided in a rather naive way. I believe moves are scored based upon the number of visits they receive; only counting visits to our moves (check node ply is even or odd depending on if root is 0 or 1) for selection purposes might be worth a try. |
CP should fix this, right? |
To be clear I have no debugged this scenario, I am purely hypothesizing... but... |
PR629 fixes this as far as I can tell. Still testing whether its an elo gain or loss though... |
@oscardssmith yes CP fixes this, but it should not happen even without CP. More general the multi terminal hits, while inflating nps (these are not real NN nps) never showed any elo gain in my testing, also they ceased to be a mere optimization since we included out-of-order eval. Multi collisions, I did not test much, but these should actually help (also they do not get OOEd). I fully agree with Tilps that both concepts are kind of conflated in the current codebase and probably shouldn't. |
Does the suggestion to have different MakeTerminal values for training and playing make sense? |
@mooskagh Tested pull request #683 and that version quickly finds the right move, and does not get lost anymore. Debug:
|
@Videodr0me tested this position with your PR #700 and that fixes this for same net and same search amount of nodes. Nice work!
|
Close this then? |
I've posted this bug in the forum:
https://groups.google.com/forum/#!topic/lczero/O0OWPd3ujE4
The position is visible on lichess: https://lichess.org/8j8a0wQy
The blunder move is 47. Qa8-a7, while it should be 47. Bf1-g2
How to reproduce:
position startpos moves e2e4 c7c5 g1f3 d7d6 d2d4 c5d4 f3d4 g8f6 b1c3 a7a6 c1e3 e7e5 d4b3 f8e7 f2f3 c8e6 d1d2 h7h5 c3d5 f6d5 e4d5 e6f5 b3a5 b7b6 a5c4 b8d7 a2a4 e8g8 f1e2 a8c8 e1g1 h5h4 h2h3 f5g6 b2b4 d8c7 f1c1 c7b7 c2c3 f8e8 e2f1 c8b8 e3f2 f7f5 d2e1 b7c7 f2h4 e7h4 e1h4 f5f4 a4a5 b6b5 c4d2 d7f6 c3c4 b5c4 d2c4 b8b4 c4b6 c7e7 f1a6 e5e4 h4f4 f6h5 f4e3 e7e5 f3f4 h5f4 a6f1 f4d3 c1d1 e5b2 b6d7 b4b3 a5a6 d3e5 e3g5 b3h3 g5d2 b2b3 d7e5 b3g3 e5g4 g3g4 d2e1 h3h8 a6a7 e4e3 a7a8Q g4f4 g2g3 f4h6
What you see here, is that lc0 can see the right move Bf1-g2 at seldepth 13, but at the end goes for another blunder Rd1-d2?? which enables black to mate again with Qh1 #1.
There is clearly something wrong in evaluation of this position.
Characteristics: both sides are close to checkmate, so there is a very thin line to operate.
Expected behaviour: once the right move is found (only 2 plies deep!) it should keep with that move and not jump to a blunder move missing the mate in 1.
The text was updated successfully, but these errors were encountered: