tnarg wrote:Mmmm lots of hard stuff in there. I think I'm going to just index the king postion (ie 462 for pawnless games and 1806 for pawn games) and then index every possable postion for the piece after that*. Once/if I got that work I can start trying to be clever and I would need to be because using 4 bytes per postion (2 colours to move*2 bytes) it works out to be 9.6TB for all 3v3 and 2v4 tables.
Thanks for all the info its been usfull but I need to start simple and get somthing working.
* so for a KQRKNB my full index would be 462*62*61*60*59 in size KQRKNN would be 1/2 the size and KNNNKB would be 1/6 the size.
regarding the indexing: it is always a trade off between computing time spent and space saved (more complex algorithms take longer to compute and consume less harddrive space). what you have to consider though is that after generation you can compress your tb and broken positions are very well compressible. So it is really arguable whether or not features like "no pieces may stand on the same square" or "side to move king may not be left in undefendable check" make sense. I would rather just stick to the Index of the 2 Kings (462 for pawnless endgames) and n-like men.
Anyway, the more important aspects to decide on are which format you are going to use (dtm,dtc,dtz-50, bitbases) and what algorithm you are going to use for the generation. The final storing of the tables is not so much of a problem. The real challenge is the ram bottleneck during generation.