At one point I used 1/1000 in the search too. When I changed over the program got a bit faster, but it also got a bit weaker.
The key thing to understand is that chess programs compare positions better than they evaluate them. Since most of the positions you compare are very similar (most of the pieces are sitting on the same squares) even a tiny difference can distinguish one similar position from another and even do it correctly. Even though neither position may have a very accurate evaluation, your evaluations function is more likely than not to pick the best one of the two given a choice as it will likely have more of something "good" in one of them, or less of something "bad".
rjgibert wrote:I can't imagine what a centipawn means. What is the reason for using such a fine grained evaluation unit? Is there really any benefit? I understand mate-in-N evaluations and maybe what a decipawn means, but that is as far as I can go with my 2234 rating.
The only other thing I can relate to is a judgement call that position X appears to be better than position Y even though I might quantify them as having the same evaluation.
So my question is, do centipawns evaluations really help chess engines and why? What would you lose by using say 1/20th of a pawn as the finest grain for your evaluations as opposed to the finer grained evaluations? It appears to me that chess programmers are doing something akin to measuring something to the nearest hundredths, while having a standard deviation of as much as a quarter of a pawn.
In engineering, 1.234 +/- 0.1 is just silly. Why isn't it just as silly in computer chess?
And then there even are engines that use millipawns. What's that about?