Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Algorithm for Generating my own Tablebases

Author: Tony Werten

Date: 07:01:51 08/01/01

Go up one level in this thread


On August 01, 2001 at 09:00:39, Erik Evenson wrote:

>Thanks again for the responses to my previous posts.  I got replies that gave me
>links to code that read Nalimov tablebases.  My main interest is in creating my
>own version of the tablebases (perhaps just the 3-mans first), just to
>understand how they are created.
>
>My plan to do this is (please tell me where I have gone astray...):

After A I think.


>
>A) Start with, say, KQK endgame.
>
>B) Generate the 64x63x62 possible positions.

Nope. You're forgetting the mirroring. BTW make 2 entries for every position.
Black to move and white to move.

>
>C) Eliminate the checkmated positions.


I advise to keep these in since they are the most important. Set everything to 0
and the chackmates to one.


>
>D) Eliminate the positions where the King is in check and the opposition is to
>move (expected to be a large number).

Eliminate nothing. A plain array is the easiest way to find the positions.

>
>E) For each position, generate mainlines to mate using minmax with no pruning
>but with full transpositional table.

Nope. Wrong way around. Find every mate, find the positions that could lead to
this position that still have the zero mark and mark them mate in 1. Now find
all the mate in 1 etc.

cheers,

Tony

>
>F) Store results in a compressed form that allows my engine to probe with a call
>like bestMove=getMoveFromTablebase(KQK);
>
>G) Repeat for next endgame type.
>
>Comments?  Thanks in advance -- I'm having way too much fun building this
>engine...



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.