Author: Cristian Zaslo
Date: 12:15:25 03/17/99
Go up one level in this thread
On March 17, 1999 at 08:50:20, Peter Kasinski wrote: >On March 17, 1999 at 04:31:02, Cristian Zaslo wrote: > >>On March 16, 1999 at 22:55:09, Robert Hyatt wrote: >> >>>On March 16, 1999 at 18:36:08, Peter Kasinski wrote: >>> >>>>On March 16, 1999 at 16:58:09, Robert Hyatt wrote: >>>> >>>>>On March 16, 1999 at 12:04:51, Dann Corbit wrote: >>>>> >>>>>>On March 16, 1999 at 02:50:20, Cristian Zaslo wrote: >>>>>> >>>>>>>Hi everybody ! >>>>>>>Will anyone be so kind and briefly explain me what sort of >>>>>>>advantages would (not) have a chess programmer to implement >>>>>>>a SEE in his code. >>>>>>>Much obliged to you, >>>>>>>Cristian >>>>>>Er.... >>>>>>What's a SEE? I've been programming 33 years and I have never heard of one. >>>>> >>>>> >>>>>Stands for "Static Exchange Evaluator". It is a procedure that analyzes all >>>>>captures on a single square and returns a value indicating who comes out >>>>>ahead. >>>>> >>>> >>>>>It can be used to order captures so that you try QxP where the pawn is free, >>>>>before you try QxR where the R is defended. It can also be used to discard >>>>>some captures in the q-search such as QxR where the R is defended and you are >>>>>guaranteed to lose material. >>>>> >>>>>Used correctly it is possible to cut the size of the tree being searched by >>>>>50% or more. >>>> >>>> >>>>Bob, I looked at Swap() in Crafty where this is implemented. >>>>Not using bitmaps I don't have a cheap way to determine what pieces attack a >>>>given square. Would it still be profitable for me to compute these attacks in >>>>order to use SEE? >>>> >>>>thank you, >>>>PK >>> >>>There are far more non-bitboard programs than bitboard programs. And SEE >>>works just fine. It will cost a little more probably, because there are >>>loops that don't exist in bitmaps, but I had such a function in Cray Blitz. >>> >>>The idea is to take the target square, and first find out what pawns are >>>attacking the square, then bishops, knights, rooks, queens and finally >>>kings. Then the 'minimax' code at the bottom of my Swap() can be taken >>>directly... >> >>So, am I right saying that SEE may be used to improve move ordering in the >>Q-Search but it cannot be used as a single way to determine whether a leaf >>node is or not a quiet one ? >> >>Thanks! > > > >But it leads to discarding some captures altogether. >To me this means that SEE is used to: > >a) improve move ordering >b) determine when you don't care if a leaf node is quiet or not because you >discard the variation as futile. > >yes? > >PK I agree with a) but regarding to b), what happens when a single man is required to defend several pieces same time. For example let’s assume that the position shown bellow is a leaf one and its value (PosVal) is slightly less than alpha. 3Kbkn1/8/8/1p6/1P6/8/8/6R1 w - - Also let’s assume that we shall search further only captures which bring up PosVal above alpha. But SEE will be saying: "reject Rxg8 is useless!" although actually it isn’t as we can trade a rook for a bishop and a knight. Have I misunderstood something or this sort of errors could sometimes appear? Cristian
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.