Moderator: Andres Valverde
Daniel Shawul wrote:One (serious?) disadvantage is that this doesn't work on linux and mac OS.
I don't know what to do about this. Any suggestions are welcome.
The source code is ugly, so anything other than adding it to engine's code
is preferable.
Daniel Shawul wrote:Yes i used Nalimov TBs to create the bitbases , like every one else does.
I haven't thought this could be a problem before I post here.
It is possible to generate the *same* data from other free TB generatros , or
write a generator using retrograde analysis (which is very unlikely).
Anyway i have asked Eugene for permission , so if the answer is no it means
i have to use one of the above options.
Daniel
H.G.Muller wrote:I also wrote a program to generate table-bases in RAM, and it works efficiently enough to wonder why people precompute such table bases and store them on disk. For instance, it finds a mate-in-29 position in the KQKR endgame in 124 sec on a rather run-of-the-mill laptop. (It does not continue building the table-base once it has determined the score of the position you give it.) And I do not even use symmetry reduction in that case. For 5 pieces symmetry reduction would be essential not to exceed the memory capacity of my laptop: 65^5 = 1.19G, while 8-fold symmetry reduces this to 178 MB.
I did not implement the symmetry, because the presence of pawns breaks the symmetry anyway, and I consider end-games with pawns much more relevant than those with only pieces. Within the available memory it can do about 6-7 pawns, depending on the situation.
Nevertheless I am a bit disappointed in what the table bases can achieve. Transposition tables might be a much more practical way than table bases for good end-gaming. Although they store ~8 times as much information per position, the information in the transposition table is much more relevant. For instance, a king might be tied to the neighborhood of a defended passed pawn to prevent trivial win, enormously reducing the number of relevant positions compared to a table base that has that king roaming the board.
Daniel Shawul wrote:For example when you detect a pawn ending, you start generating KPK table?
When you say '4-piece', do you mean 4 pieces plus pawns or 4 pieces bare? As I wrote, the latter is no problem at all, KQKR is generated in just a few minutes, without using symmetry. With additional pawns it becomes quickly too hard, of course: the time it takes is simply proportional to the size of the tablebase. This is ~18M for a 4-piece-bare ending (without using symmetry), but even adding a single pawn that is more than halfway multiplies this by ~5.1, and it might take 15 min to construct that.
Daniel Shawul wrote:Hi All
I have written a dll to access scorpio bitbases. Anyone can
use 4 piece bitbases by just adding a few lines of code to load the
dll, and access it with an exported function. I chose the dll solution because
1) this doesn't add to the size of execuatble
2) no need to recompile engine code when updates are made like for
example new bitbases are added.
One (serious?) disadvantage is that this doesn't work on linux and mac OS.
I don't know what to do about this. Any suggestions are welcome.
The source code is ugly, so anything other than adding it to engine's code
is preferable.
I have modified TSCP to access the bitbases. So if any one wants to use it,
just drop me an email.
daniel
Return to Programming and Technical Discussions
Users browsing this forum: No registered users and 27 guests