Author: gerold daniels
Date: 17:00:12 03/25/05
Go up one level in this thread
On March 25, 2005 at 09:50:57, Dieter Buerssner wrote: >On March 25, 2005 at 08:51:52, Anson T J wrote: > >>Does anyone know how they are accessed at such high speeds? Some of the files >>are very large, how does the engine know exactly where to look inside the TB for >>the position of interest without searching the whole database? > >The position (in the sense of offest, "the 215th byte") in the database is >calculated from the chess position. A very simplified example, take KR vs. K. >We enumerate the squares on the board from 0 (a1) to 63 (h7). The formula for >the position in the database can be: > >offset = square(white K)*64*64 + square(black K)*64 + square(white R) > >You should see, that every position gives a different offset. You may also see, >that some offsets don't have any legal position. For example the above formula >reserves offset 0 for all 3 men on a1. Offset 1 would be wK and bK on a1 and wR >on a2 - again no valid position. > >This can be avoided by a more sophisticated formula. Also, the symmetry of the >position can be take into account, to reduce the number of stored positions. >Other things, like the fact that there never will be 2 kings on neighboring >squares can be used. But the principle will be the same -> feed the position >into some sort of formula and calculate a unique (and not too huge) offset from >it. > >At the calculated offset in the database file, you will find the game >theoretical result of this position. It could be draw, mate in 5, etc. All such >results will be translated to one value of a byte (0 - 256). > >Additionally, the whole database can be compressed. > >Regards, >Dieter i don,t understand that part. if the database is compressed how do can you access it. gerold.
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.