Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Help with Static Exchange Evaluator

Author: Vincent Diepeveen

Date: 17:32:04 07/19/99

Go up one level in this thread


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.


>>>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
>>
>>NO doubt 1.e4,e5 2.Qg4,Nf6 Qxd7+
>>to name a bad check.
>>
>>Of course we wanna prevent bad checks.
>
>
>Qxd7 is trivial to prove bad if it is just tossing a queen.  But there are
>_lots_ of other checks that are bad, yet they are not obviously bad.  And
>extensions make the tree big.  And then following checks in the q-search make
>it even bigger.
>
>When you can prove to me that my 'simplified q-search' is bad, I'll change.
>However, I am doing ok by using it so far... and this lets me work on the
>search itself, without worrying about the q-search which is always full of
>errors anyway...
>
>
>>
>>
>>>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.
>>
>>Well hopefully you don't try all capturing moves either in qsearch,
>>is kind of wasting nodes too:
>
>
>Nope... haven't done that in years...  Cray Blitz used SEE to control the
>q-search 20 years ago in fact...
>
>
>>
>>d4,d5 e4,dxe4 qh5 qxd4 qxh7 qxb2 qxh8 qxa1 qxg8 qxb1 etc.
>>
>>>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 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.