Author: bob o
Date: 03:21:00 04/13/02
First, I am not a proficient software programmer; I last did a programming project freshman year of college, and reading tbgen.cpp blew me away and maybe the answer is in there somewhere. Anyhow, I had an idea for modifying tablebase files, please correct me if my assumptions are wrong. As I understand it, the file contains all the positions, whether it's a win/loss/draw, how many moves till mate/conversion, and the best move. Instead of all that, why not this setup: Identify all the possible moves that are possible with the pieces left on the board. Then organize all the positions into groups by the best objective move (you can use the current files for this). Next, try to find some sort of rules or patterns that you can summarize, perhaps using wildcards. And during the game, generate all the moves that are possible, and search in them for what rules apply***. For example, let's say that there is the KQK endgame. The white queen is on a1, the white king is on b1, and the black king is on h1, h2, h3..h8 (anywhere on the h-file that is a legal position), then assume that the tablebase says the best move is Kc2. (I haven't checked this out for sure, but just assume that it is for sake of simplicity). Then you can have something like this: wq=a1 wk=b1 bk=h* best_move=Kc2 and the wildcard would compress 8 positions into 1. You could take the file that is generated by grouping by best move, compress it using wildcards, and compress it again with some modified form of datacomp. Possible pros: 1. can use currently available files 2. possible large savings in file sizes making 6-man and 7-man TB's feasible (assuming they can be generated) Possible cons: 1. must test to see if this scheme would save space 2. I don't know how to incorporate DTC/DTM into the wildcard statement- different positions may have different DTM's 3. someone would have to write the software to do this 4. possible large amount of data processing on-the-fly during the game (I think this is the biggest drawback, but maybe someone can come up with a clever way to minimize this) Please forgive me if this question seems really ridiculous or if that is how things are done already. I just tried reading the tbgen.cpp file, and I was really lost- I'm an industrial engineer, not a computer engineer. Hopefully, one of the experts here will understand what I am talking about, and maybe come up with a better idea. Just an idea, possibly someone wiser than I can make improvements on it and make it work. Maybe it's a really bad idea, but sometimes the only bad question is the unasked question... ***Side question: is this already how it's done? If not, would it be more efficient? Or do you just look for the position in the database? Thanks for your advice/opinions! Bob
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.