Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Search and eval in the endgame

Author: Richard Pijl

Date: 11:24:51 01/04/04

Go up one level in this thread


On January 04, 2004 at 14:03:08, Tord Romstad wrote:

>After playing through countless games by my own and other amateur engines in
>various
>tournaments the last half year, I have noticed that a very big percentage of the
>games are
>decided in the endgame, where most engines (my own is no exception) are so
>clueless
>that it is painful to watch.  I've decided to try to improve my engine's play in
>this phase
>of the game, but unfortunately I've found that it is by no means easy.

I've seen many obviously (for humans) drawn endgames go to a win for the endgame
specialists, and even lost endgames are sometimes turned into a win. Adding
better endgame capabilities certainly pays off.

>First of all, I have difficulties making my search efficient in the endgame.
>Most of the
>pruning tricks that work in the middlegame don't work very well in the endgame.
>I've
>tried knowledge-based forward pruning, several variants of futility pruning,
>multi-ProbCut, multi-cut, and my usual techniques of extending and reducing
>moves
>depending on how they affect the components of the evaluation funciton.  Another
>idea I have experimented with is to include passed pawn pushes in the qsearch in
>pawn endgames.

Try adding more specific evaluation first. That will help building smaller
search trees too. First step would be to recognize specific drawn endgames, like
krpkrn (under certain conditions of course :).
Second would be evaluation of pawnraces, also the complex cases. You'll see wins
many plies of search earlier! It will take quite a while before getting that one
right though.
Baron searches relatively deep compared to some other engines in the endgame.
This has only little to do with pruning. Baron only uses (double) nullmove. When
one side has a knight or less it doesn't do nullmove at all ...
Richard.

>
>So far, I haven't found a single idea which works.  My search in the endgame is
>a
>brute-force MTD(f) search with recursive null move pruning with a low reduction
>factor (R=2 or 1 at most nodes).  This is terribly inefficient, and I hope to
>find
>something better.  Chess Genius seems to do something really clever and
>effective,
>but I haven't been able to figure out what it is.  Does anybody else have some
>tricks
>to share?
>
>Endgame evaluation is also tricky, because the evaluation should be very
>different
>depending on the type of endgame.  I am tempted to write several different
>evaluation
>functions (one for pawn endgames, one for rook endgames, one for bishop vs
>knight
>endgames, one for endgames with unequal coloured bishops, and so on), but I am
>afraid this would cause too big jumps when exchanges occur, make my static
>exchange
>evaluator too unreliable, and perhaps have other unfortunate side effects.  Is
>the idea
>still worth a try?
>
>Tord



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.