Author: Russell Reagan
Date: 12:37:12 04/06/03
I am trying to understand the details of how EGTB indexing works. I think I understand the basic idea of computing a godel number and using that as the index, but when it comes to improvements in the indexing scheme, I can't figure out how they work in practice. I'll give an example. Let's use the following position: [D]4k3/8/4K3/8/8/8/8/R7 w If we use a1=0, h1=7, a2=8, h8=63 for determining our indexes, then we have pieces on the following indexes: 44, 60, 0. And if we use 0 for white to move and 1 for black to move, then our index should be: WK,BK,WR,w 44,60, 0,0 Which comes out to: 101100 111100 000000 0 = 368128 So I assume that this is the index we use to lookup the result in the tablebase file. So the tablebase file will look something like this: For simplicity, let's use: 00=draw 10=white wins 01=black wins index result ====== ====== 368128 10 368129 10 ... The above is how I understand "simple" EGTB indexing to work. Ernst Heinz describes improvements to old indexing schemes in one of his papers that I read, but I don't understand how you can use certain knowledge to improve the indexing scheme. I understand that it can result in fewer combinations of positions, but not when you construct a godel number. For instance, this scheme would seem to require an index range of 64*64*64*2=524288. But you know that after you place the white king, the black king only has a maximum of 60 squares available (if white king is in a corner), so that should reduce to 64*60*62*2=476160, but I can't understand how this leads to an improvement because you still have the same size godel numbers, so the tablebase file shouldn't be smaller (as far as I can tell).
This page took 0.01 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.