Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How to evaluate endgames when one side has no pawns?

Author: Robert Hyatt

Date: 18:35:14 11/05/98

Go up one level in this thread


On November 05, 1998 at 18:31:21, Roberto Waldteufel wrote:

>
>On November 05, 1998 at 09:47:34, Andrew Dados wrote:
>
>>     Suppose somewhere deep in the search I get reduction to B vs 2P ending...
>>what value
>>should I assign to it? Side with Bishop can't win - so draw for side with 2P at
>>minimum...
>
>
>Be careful with this. In the vast majority of cases this is true: a lone minor
>piece cannot deliver mate to a bare king on an open board even with the
>opponent's cooperation, but give the opponent even as much as a single pawn and
>a mate becomes possible because the pawn can block the king's last escape
>square, eg BK h8, BP h7, WK g6 and now either a White knight on f7 or a White
>bishop on any of a1,b2.....g7 would be mate. If you prematurely categorise the
>position as "at least a draw for the pawn" you could miss such a mate in the
>search. Since a full width search can throw up some weird positions, you never
>know when one of these odd exceptions might occur. It's probably too rare to
>matter very much, but you should be aware of the fallability of the underlying
>logic. It's the exceptions to the rules that can cause problems, and
>unfortunately most "chess knowledge rules" have exceptions which are sometimes
>not easily predicted. It might be safer to only apply the "minimum draw" rule at
>the tips, so you can still outsearch the exceptions. Otherwise, if you want to
>use the draw score for a cutoff in the main search, you could try to extend the
>rule to cover the exceptional cases, eg if the king of the side with the pawns
>is not on the edge of the board, or not, or if the two kings are widely
>separated, then I think it is safe to say it's at least a draw even in the main
>search.
>
>Best wishes, Roberto
>
>>If I assign  2 *P value then my program will sac Knight for Pawn in
>>B+P vs N+2P...rarely sensible .    What should my eval return in B vs P and B vs
>>2P ?
>>
>>  Andrew  .....(I better get those tablebases working :)



this doesn't cause a problem *if* you do it in the Evaluate() procedure, because
that is done at endpoints after you have already found any possible mates.  If
you try to do this at interior nodes you had *better* be right...  because you
will screw up.  I did this in crafty until we got the KNNKP database done, and
I missed mates here and there.  I moved the test to the evaluate() procedure,
out of the interior nodes, and the problem went away...



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.