Author: Michael Henderson
Date: 00:24:56 09/05/04
Go up one level in this thread
On September 03, 2004 at 18:37:26, Alessandro Scotti wrote: >A while ago, my engine played this little gem with Black: > >1. f3 e5 2. Nc3 Nc6 3. b3 Bc5 4. Ne4 Be7 5. Nc5 Bxc5 6. g4 Bxg1 > >With its last move, it missed a mate in one... now that's a bug! :-) However, it >turned out things were a little more complicated. Actually the engine found the >mate, however it wasn't stored in the hash table because the move Bxg1 was >explored more deeply... of course, it only takes one ply to detect an immediate >checkmate! So the search returned a mate score, but when the PV was fetched from >the hash table the move Bxg1 was found instead. >Of the many solutions I could find to this problem, eventually I picked one that >seemed quite promising, that is: a mate score, regardless of the depth it is >found, is more valuable than a non-mate and should always be stored in the hash >table. The way I do this is simple: mate scores are assigned a "virtual depth" >of say 10000 minus the distance to the mate in plies. This allows mates to >replace any other moves (for a common deeper is better hash policy) and faster >mates to replace even other mates. >When I implemented this one-line feature, it worked miracles and my engine would >quickly find many mates that were out of reach before. Now that I have fixed a >few bugs, the effect is not so easy to quantify, and I don't have a gain in each >and every position. >Especially, this seems to interact a lot with null move searches. In WAC141, >with my standard null-move policy I got a tremendous reduction in nodes, maybe >30-40% IIRC. If I use a slightly more aggressive policy, results are entirely >different and I got a noticeable slowdown, although not in the same order as the >above. >For the effort it takes to implement (maybe one minute), it could be worth >trying. BTW I'm using an MTD(f) search so a lot of stuff behaves very different >from PVS... your mileage may vary. >Any thoughs? How was 6...Bxg1 possibly stored as the best move at that node? Once you search all the moves, to whatever depth, the best move Qh4# is stored along with score returned. Is this something characteristic of MTD(f)?
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.