Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Endgame code instead of Tablebases

Author: Will Singleton

Date: 10:13:33 04/16/99

Go up one level in this thread



On April 16, 1999 at 11:37:38, KarinsDad wrote:

>I think it would be easy to have special code for endgames. There would just
>have to be ALOT of special cases, so the creation of the more complex algorithms
>may be difficult (depending on whether you could build complex ending
>calculations based on simple ending code).
>
>One could have a 32 bit value for all of the pieces and the evaluation routine
>could check to see if at any point in the search whether that value is in the
>subset of special endgame ones. If so, it could use a series of special endgame
>code for those endgame pieces. For example:
>
>p = 1
>n = 16
>b = 128
>r = 1024
>q = 8192
>
>Since the kings are not needed (they are always on the board), this structure
>allows up to 8 pawns, 7 knights, 7 bishops, 7 rooks, and 7 queens for each side
>in a 32 bit structure (however, the down side is that you have to count up the
>number of each type of piece for each side, but if you are calculating the
>"tree" on the stack, then this would at least be a delta calculation).
>
>In the case of KR vs. K, this value would have to be checked against 1024 for
>one color and 6815744 (1024 * 64K or 1024 shifted 16 bits to the left) for the
>other color. Those would be the only two legitimate KR vs. K values.
>
>The special endgame code could be placed into multiple DLLs that only get
>uploaded into memory if the search engine comes across one of the special cases.
>This would be similar to the current tablebases, however, if it was done
>properly, the more complex endings would be set up to use code from multiple
>less complex endings in order to calculate the proper set of moves. In other
>words, unlike the tablebases which are exhaustively searched for the best moves,
>this system would use a building block type of approach to calculate the best
>move.
>

This sounds like a pretty straightforward approach, but I don't understand the
need for DLL's.  Why not just call a procedure for each case?


>Additionally, each simple endgame DLL could have a list of all possible
>positions with the corresponding list of results (i.e. 1-0, 1/2-1/2, or 0-1) for
>each of them. This would enable the search engine (similar to how tablebases are
>used today) to instantly determine if the position is a win, a draw, or a loss.
>It would only use the algorithm to figure out HOW to play.
>

How does this differ from tablebases?

Will



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.