wgarvin wrote:bob wrote:Since we probe Nalimov compressed files randomly, on disks, I don't see why the same idea would not work for bitbases, and thought that was already done. Only issue is the computational cost of the decompression. If you take a typical EGTB that has only 1 byte values, you should be able to compress a 1.5 bit value (w/l/d) and get maybe 5 of those in a byte. So doing some ugly rounding, our 7.5 gigs of 3-4-5 piece Nalimov tables turns into maybe 1.5g of bitbase data? In theory this might compress better, I am not sure. 1gb is certainly doable. And I was thinking that current bitbase implementations were already doing this, but I am not sure.
Certainly one can easily derive a full set of bitbase values from the Nalimov files, rather than having to generate them...
You could start with Nalimov 5-men and derive bitbases from them, I don't think there's any problems with the 50-move rule in those. If I were doing it myself I'd want to write my own DTZ50 generator first (which is probably why I've been thinking about it for at least 10 years and still havent done it...) Once you have the bitbases, the interesting research project would be to figure out how to represent them more cheaply.
By "less entropy", I meant that the DTM / DTC / DTZ50 databases consist of entries like "Win in 21", "Win in 17", "Win in 41", "Win in 20", "Win in 19", "Draw", "Draw", "Lose in 4", "Win in 36", "Draw" ....
And the matching bitbase would contain: W,W,W,W,W,D,D,L,W,D, ...
So its probably easier to compress.
Especially if you can get that 1.5 bits down to 1 bit for some of them: "Win" and "Everything else" then use some smaller secondary lookup to figure out the everything else. Secondary lookups on disk are too slow, but if the whole thing fits in RAM it would be fine.
Darkthought had 4-man bitbases in about 15 MB, *uncompressed*. Of course a full set of 5-man bitbases would be much bigger, but if you had a good compressed representation supporting random access, setting aside a big chunk of ram to cache them (like 500+ MB) might be reasonable.