peterhughes Site Admin
Joined: 27 Feb 2005 Posts: 95
|
Posted: Mon Apr 18, 2005 9:14 pm Post subject: Moving Quiesence |
|
|
I've suspected a bug somewhere in the null move forward pruning for some time. I think at depths close to zero, SharpChess was not finding the correct moves. To try and prove this, I've ripped out the current quiescence code, from the all-in-one alphbeta function, and moved it into a separate quiesce function. I also suspected that the problem might have something to do with null move forward pruning. This is why I've been playing with null move so much lately.
I've been looking at Gerbil and Crafty chess engine code, which separates quiesecence into its own function, in fact just like most chess engines do.
After initial testing, using http://www.playwitharena.com/, against the first 80 positions of Encyclopedia Of MiddleGames epd file, with a time limit of 30 seconds per position, SharpChess now correctly solves 48 of the 80 positions. This is more than any previous version of SharpChess. Standard null move only solving 39, while verified only solved 36.
The average search depth for SharpChess in a 30 second move, has now dropped to around 5-6 ply. It's amazing that with this very low search depth, that the tests are now coming back as better. I guess the previous all-in-one alpa-beta/quiescence implemenation, must have had a serious bug, for a very long time.
There is now much experimentation to be do with the new code. I've have to run it through my Arena "Gauntlet" of 15 chess engines, and see if it is now winning any more games.
This new engine code wont be released until v2.3, at least. |
|