-
Notifications
You must be signed in to change notification settings - Fork 0
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
Low depth gives blunder #38
Comments
I do use quiescence search, but I will add your game as a test and get back to you. Right now I've implemented NegaScout which makes the engine spend more time where it (hopefully) belongs. At least I've seen an improvement in how it plays. The position is quite complex:
At depth 7 it reconsiders and plays d1e2 instead, which is not bad. However, that's after 39 seconds. I still have some work to do.
|
yes, and the move Ne5 is crucial, it involves delicate captures. while letting v1.4.1 play more 5m+3s games against other engines, i encountered one 'disconnection', see your log and the CuteChess one : Woodpusher-v1.4.1-PR37-connection-stalls-vs-Rocinante.zip i thought i made a screenshot, the CuteChess log doesn't show what the GUI displayed : "connection stalls". |
Oh well, i just saw that 'feature list' in the README .. what about move ordering ? Is it important ? Anyway, when NOT ALL leaves in the variation tree are evaluated, will first-do-captures-and-checks help us quicker find a 'sound' bestmove, or more often ? I once did a rebuild of the TSCP engine in Python and Nim, just to learn some, and it can't reach depth 7 when many pieces are on the board .. it has a simple alpha-beta pruning and some PSQ tables. I guess other functions must be added to archive higher depth in same time - although i wonder how to avoid stripping valuable variations .. you know what i mean - it's an ART :-) 6-was-9.mp4 |
Another "connection stalls" .. Here the logs : Woodpusher-v1.4.1-PR37-connection-stalls-vs-GK.zip |
Yeah! It is apparent I need to rewrite the UCI interface. I tried to make it more synchronous to avoid those illegal moves, but now it says it is still busy when it receives a new command immediately after it send its Thank you!
|
so, the logs were useful ! among chess engine programmers it seems rather common to use two threads : one for the calculation / evaluation and one to detect and handle commands, e.g. otherwise it's hard to react instantly when |
OK! I think I nailed it. There were two problems:
Releasing v1.4.2 soon. |
i don't understand your second point : those "connection stalled" positions can not transpose into any opening position in the book, they're too far into the game !? |
While testing v1.4.1 (i didn't encounter any illegal move yet!) the following position arose, Woodpusher playing White :
Here 18.Ne5 was played, which was a blunder : after 18...Rxe5 (the 'normal' Nxe5 was even better) 19.dxe5? Nc3! White's Queen is attacked and also the King by Qxg2# ! Woodpusher decided Ne5 after 6.3s at depth 6. Indeed, it would have taken too long in this 5m+3s game to reach depth 7, but then the engine would have found Re1 bestmove. For a human these kind of tactics are not difficult to spot, but only reaching depth 6 isn't enough, this position is a good example i think.
You should find some method to increase the search depth, probably by improving pruning somehow. And do you use Quiescence Search ? That might have avoided this blunder.
The text was updated successfully, but these errors were encountered: