Author: Tord Romstad
Date: 10:41:13 03/11/04
Go up one level in this thread
On March 10, 2004 at 12:49:49, Jonathan Kreuzer wrote: >I'm think I understand you, and indeed not searching very far in winning lines >sounds like a good idea to me. (I've thought about this and other eval-based >'pruning', but never implemented any. Actually I'd consider null-move >eval-dependent pruning, but null-move is all I do.) > >However it seems to me like you could do this in some form and still find mates >very quickly. I suppose it must be possible, but so far I haven't found it to be worth the effort. As long as my engine finds the win, I don't care much about how soon it is able to announce mate. >So on fail-high moves, you'd want them to fail high as fast as possible, hence >dropping extensions, etc. for the winning side. > >However for the PV, if a human thinks a move is winning, he/she will probably >search even deeper along that line. When you've found a mate is when you have no >worries about a very deep refutation of the winning line. Actually now that I >think of it, I guess the reason for Gothmogs slowness declaring mate here is, >though searching the stronger initial move more deeply would find mate sooner, >it searchs non-mating follow up moves more deeply? I was initially confused by >the "make sure there isn't a very deep refutation of the (apparently) winning >line" because in this position using the time to declare mate once the crushing >move is found is the quickest way to do this, but in other positions it probably >isn't. So now that I've completely forgotten what either of us were talking >about, I'm done thinking about search, it's too confusing =) I am no less confused -- I no longer understand how my search works. :-) There is, however, one other factor which probably contributes to making my engine slow at announcing mates, which I forgot to mention in my previous post: When I start iteration n, I assume that the new root score will be within a window of +- 3 pawns of the root score from iteration n-1. Many of my pruning rules depend on the correctness of this assumption. When it turns out that the score is outside the window, I have to clear the hash table and restart iteration n with most of my pruning disabled. This is very expensive. In practice, this isn't such a big problem, because it usually only happens when the game is won or lost. >PS. Though I haven't done much of it myself, I do think evaluation-directed >search (or knowledge-directed search) is the best way to go, and Gothmog is one >of the more interesting engines out there. Thanks for the compliments. Personally I think that knowledge-directed search has a great theoretical potential, but that it is hard to do right, and that it might not be the way to go for a relatively weak engine like mine. I use this approach mostly because it is what I consider most fun at the moment. Tord
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.