Author: Tord Romstad
Date: 11:03:08 01/04/04
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. 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. 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.