Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Help with Static Exchange Evaluator

Author: Robert Hyatt

Date: 19:19:28 07/19/99

Go up one level in this thread


On July 19, 1999 at 20:32:04, Vincent Diepeveen wrote:

>On July 19, 1999 at 18:25:52, Robert Hyatt wrote:
>
>>On July 19, 1999 at 16:02:37, Vincent Diepeveen wrote:
>>
>>>On July 19, 1999 at 10:48:52, Robert Hyatt wrote:
>>>
>>>>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.
>>>
>>>What are you talking about,
>>>i don't do checks in common positions of course!
>>>
>>>I do only useful checks.
>>>
>>
>>right... and I only buy stocks that go _up_ too.  :)  If you knew which
>>checks were 'useful' and which were not, you could solve the game from the
>>root position.
>
>I would like to talk about how well my implementation
>of checks in qsearch is, but let's not do that today.
>
>Let's talk about stocks, if i wouldn't be broke i would buy a lot of
>AMD stocks to keep them a year or 5 or something.
>
>Done some calculations about how big AMD is now (2 billion dollar).
>How big intel is (200 billion), how close processors are (xeon to
>k7), how slow all suns are,
>and that when AMD only gets a small % out of that, that
>the stocks already give a big profit in the long run.
>
>Greetings,
>Vincent
>
>P.S.
>i still wonder why you're doing so many captures in
>your qsearch. a static exchange evaluation is way faster than
>that!
>
>So if there's any reason to not do SEE, then why not do some checks too?
>Note that i would turn off recapture extensions then and do less check
>extensions, as you already see a lot in qsearch then. NO way that you
>miss a lot in qsearch. You miss near to nothing in qsearch then.
>
>



the point is this... for every position you find where a q-check is the best
move, I can create one where a capture is _not_ the best move...  yet you have
two choices captures or checks.  Pins are very common moves that are often
better than direct captures.

The q-search is _highly_ selective already.  And by any definition I can
think of, highly selective is just another way of saying highly error-prone.
I choose to limit it drastically and include _more_ stuff in the basic
search which is not nearly so error-prone since it isn't selective.



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.