Author: KarinsDad
Date: 14:31:21 05/05/99
Go up one level in this thread
On May 05, 1999 at 16:47:52, Peter McKenzie wrote: >On May 05, 1999 at 11:32:15, KarinsDad wrote: > [snip] >> >>I am doing the opposite. I extend whenever anything interesting is going on >>(such as non-quiescence) almost as far as I can go. I then mark the >>non-quiescent children nodes as being searched so that they do not get >>re-searched (when I get to the next ply). > >I don't understand what you are saying. Whats this about marking non-quiescent >children nodes? Sounds like you might be talking about quiescence search not >extensions. Capture extensions and check extensions are effectively quiescence search. I are going to extend until I am in a quiescent state. However, once I search those children (and grandchildren, etc.), they are no longer interesting to me. Although I will temporarily keep them in the hash table (just in case another search finds the same nodes), they will be the first nodes (the grandchildren+, not the children) to be removed from my hash table once I run out of room in my hash table and I decide to clean it up. Hence, the very first set of non-quiescent child nodes (and not the grandchildren and great grandchildren) get marked so that a) I do not remove them from the hash tree first and b) so that if I come across that node when I am searching my next ply down, I know that I at least did a quiescence search on it. I may decide to search or not search more on it, based on that fact and it's score. The grandchildren and great grandchildren get marked as "to be removed" from the hash during a cleanup since they were used to calculate the quiescent score of the child, but other than that, they are not that interesting. So, yes, I was talking about quiescence search. However, I do not consider any difference between extending (my definition of it which is different than yours) due to non-quiescence or singular extensions or any other reason to extend further. > >I think we have a communication problem here. The common meaning of the word >'extend' is that you don't count the current node as increasing depth. So for >example, say we are doing a 5 ply search from the start position and we go down >the following line: > 1.f4 e6 2.h4 Qxh4+ >So you've gone down 4 ply, and therefore normally you'd have 1ply to go. But if >you extend a ply for checking moves you wouldn't count Qxh4+ and therefore would >have 2 ply still to search. Thats all there is to extensions, its just playing >with the depth counter. >Is that what you mean by extending? > No, I do not mean this. I mean that if I am searching at ply 4 and I find an interesting move (for whatever reason), I will extend the searching below that node (maybe as deep as ply 14 or more). However, I only extend certain types of moves. I extend non-quiescent moves such as checks and captures. I also extend singular response moves. I also extend singular extensions. However, I have several ideas on other reasons to extend. I have multiple search engines in my code and only one of them is concerned with how deep you currently are and how deep you are searching. Since several aspects of my design are different than more conventional programs, I often use terminology in regard to my own perspective and not that of other people (so it is easy for people to misunderstand me). When my partner and I designed our program, we read some of the literature, but purposely stayed away from anyone's code or techniques. Rather, we decided to try a lot of our own ideas first (although of course, some things cannot be avoided). But, in regard to terminology, I am always willing to rephrase so that we are all on the same page. KarinsDad :)
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.