Hi Jerry!
I think this thread is really good that Jesús started
http://www.talkchess.com/forum/viewtopi ... 58&t=44889
Your question was this:
Pio wrote:
If I had a working chess engine I would confirm a change only if I had run lots of games in really fast time-controls/few-nodes for lots of different really fast time-controls/few-nodes to see if the change could be an improvement for long time controls. To see if the change might be good on long time controls you could for example just extrapolate your findings from the many different short time tests by using a plausible function and do a maximum likelihood estimation for the parameters of that function. That would give you an indication if the change will scale and work on long time controls.
I wonder whether you can fit a function to predict long TC performance. What type of function would you use?
I ask because I do something similar. I generally run 2-4000 games at 5' + 0.1', if the result is positive/close or I think the change is logical should be good, I run 2-4000 games at 10' +0.2'. If it is still good I test at 30' + 0.5'. And then I sum the results up, giving more weight to the longer time controls. So each change I commit gets about 8000 games at varying time controls.
Jerry
I would try out this formula:
Rating(depth) = C1 + C2 * log(depth + C3)
Now why would I use the constants C1, C2 and C3 as the undetermined constants and why do I use the log-function?
The C1 constant is there because if the log part of the equation is zero you still want to have some rating.
The C2 constant is there to determine how well your program scales that has to do with branching factor and also what type of logarithmic function you have chosen.
The logarithmic function is there because you could see a tree of depth m*n as a tree of depth n where all the nodes are represented by an m-ply search or as a tree of depth m where all the nodes are represented by an n-ply search.
It does not matter what type of logaritmic (you will probably use the log2-function or the natural logarithm function ln) function you use since it will just be a constant that will be encapsuled in the C2 constant
The C3 constant is there because you will have to have some term to correct for the extreme case when depth go to zero. C3 should be positive so that the logarithm will not go to -infinity. If you use some sort of pruning the last couple of pruningDepth number of plies, I think you should correct your formula to Rating(depth - pruningDepth) = C1 + C2 * log((depth - pruningDepth) + C3) but then the formula will only be valid for depth - pruningDepth > 0. The original formula will still be valid for depth > pruningDepth since the pruningDepth will be incorporated in the C3 term.
Of course you will get a better fit the more constants you use. The best is to find a function with as few unknowns as possible that fits the real data as close as possible. You could use least square fitting if it is easier or you could use maximum likeliehood estimation. I think you are absolutely right to weight the long games a little bit more since if you do not evaluate or search anything it will just be random moves and the result of the games will be like flipping a coin.
I do not have any data to support What I have written and everything is just a guess. You will see if the guess fits the real data.
Good luck!