Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Help with Static Exchange Evaluator

Author: Robert Hyatt

Date: 07:48:52 07/19/99

Go up one level in this thread


On July 19, 1999 at 06:03:38, Vincent Diepeveen wrote:

>On July 19, 1999 at 00:48:56, Robert Hyatt wrote:
>
>>On July 18, 1999 at 17:27:12, William Bryant wrote:
>>
>>>I have created a SEE routine for my program (following the general plan of
>>>Swap()
>>>from Crafty) and now have a question about where it should be implemented.
>>>
>>>I initially implemented it in the move generator.  When generating captures, if
>>>the Captured_Piece - Capturing_Piece <0, I would uses a SEE score of < 0 to
>>>discard the move, never searching it.
>>>
>>>This created an overall speed up but leaves a number of questions.
>>>
>>>Some positions require a sacrifice to find the winning line.  These positions
>>>are never found because the sacrifice move is always discarded and never
>>>searched.
>>
>>
>>
>>this is totally unsafe.  In the full-width part of the search, you should be
>>able to look at these 'losers' at some point in the search, after the good
>>captures, killers, etc...  In the q-search you can afford to ignore them since
>>the q-search is already full of errors anyway...
>
>i disagree here. You can very cheap do checks in qsearch and see these
>tricks 4 ply earlier.
>
>Let us list the programs that do some checks in qsearch,
>and the ones that do not a single one
>
>The programs from which i suspect (if u grow older you
>grow wiser) doing checks in qsearch (alfabetical listed):
>Diep
>Fritz
>Genius
>Hiarcs
>The King (chessmaster 4000 etc)
>Lambchop
>Nimzo
>Rebel
>Virtual Chess
>Zarkovx
>
>The programs from which is suspect not doing them:
>Crafty
>Ferret
>Junior
>
>
>He what a big coincidence, the programmers of the non-doing check in
>qsearch are more convinced about getting kicked silly by programs
>outsearching them.
>
>In fact crafty at 12 ply is in fact searching 8 ply
>tactical for some tricks which probably fall outside the
>horizon anyway, which is kind of weird.
>
>Ferret already gets a huge depth and has all kind of extensions
>seemingly; in a position where my DIEP searches 13 ply at the
>same hardware, both Ferret with way over half a million nodes got
>only 11 or 12 ply in paderborn in the middlegame against fritz
>fritz not doing better bye the way, as the paderborn version
>seemed having all kinds of extensions too, although fritz532
>searches deeper in that position!
>
>Junior already gets like 17 ply anyway tactical (positional 8 ply),
>and with R=2 it's unlikely that you miss something tactical then,
>even though when talking about checks it sees obviously 4 ply less.
>
>But crafty. Oh crafty. Crafty does a very limited recapture extension.
>mate threats are extended very slightly, so that last helps a little,
>but further it simply sees tactical 4 ply less when we're talking
>about a check threat.
>

My point is this.  Your checks are good for some tactical shots.  They are
awful for common positions.  Because you are running down stuff in the q-search
that is totally wasted.  And if you waste time here, you lose time elsewhere.

For every position you find where a check in the q-search helps, There are
hundreds of positions where it hurts just as much or more.  If my game results
were bad, I'd be looking at why.  But I do just fine at present.  I have older
versions of Crafty that _did_ do checks in the q-search (trivial to implement)
but they don't play better because of it, IMHO.

If you want to solve tactical problems, it is probably a good idea to do them.
If you want to win _games_ I am not so sure.  IE when you use my quad p6/200,
you are about 1/2 as fast as my quad xeon, yet when we play I don't see any
tactical oversights by my program, generally...  And the extra depth on the
positional moves I get helps significantly when there are no king-chasing
tactics...




>Of course when getting 12-13 ply, chance is not big you miss tactics
>anyway.
>
>>>
>>>Is this the tradeoff of this heuristic?
>>>
>>>Is there a better way to apply the SEE rather than to all capture moves as they
>>>are generated?
>>>
>>>Are there other heuristics that allow these discarded moves to be found in the
>>>right positions?
>>>
>>>Here is an example position:
>>>1rr3k1/4ppb1/2q1bnp1/1p2B1Q1/6P1/2p2P2/2P1B2R/2K4R w - -
>>>It is from a list of mating positions posted by Dan
>>>
>>>I can find the winning mate in 0:32 without the SEE,
>>>and never with the SEE.
>>>
>>>Thanks in advance.
>>>
>>>William
>>>wbryant@ix.netcom.com



This page took 0.01 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.