IMHO is not a question that programs are not perfect. The crucial point is that the search depth before an engine does a move is finite (and cannot be possible otherwise).bob wrote: We have an error bar because we are taking a statistical sample from the set of all possible games. Each chess position is different, and requires a different search depth and/or evaluation to choose the right move. Programs are not perfect. So you need a sample large enough to be sure that you didn't just luck into positoins you could play well, or positions where you play poorly.
The two fundamental points are these IMHO
1) An engine must stop the search at afinite depth and this depth, for a given position, could be not enough to find the best move.
There is nothing you can do about the above, in some position as example a position with an hanging queen, a depth of 1 is enough to find the best move, but in other positions you may need 20, 50, 100 to teorethical find the best move, so engine is relistically forced to stop the search before reaching the needed depth to spot the best move.
But this is not enough, there is another anavoidable intrinsic point.
2) The opponent, for the very basic fact that searches _AFTER_ you have made the move needs a ply LESS then you to reach your prior search depth. I don't know it it is clear, I write again in a diffrent way.
Suppose a match of an engine against itself at fixed depth search, say 20.
Suppose you have searched unitil depth 20 and then you make your move bm. Your move bm is the best move you could find up to depth 20, the corresponding pondering move you find let's say is pm.
Now you opponent has to reply. If the opponent searches at fixed depth 19 then your opponent (that has the same engine of you) will find as his best move EXACTLY pm, aka the move you were pondering on.
But, and this is the crucial point, your opponent can search up to depth 20, not 19, and so he _could_ find a better confutation of bm, because although both engine seacrh at fixed depth 20 the fact that your opponent searches _AFTER_ you have made the move gives him an INTRINSIC and unavoidable ply more then you.
So the above, unavoidable and intrinsic two points are the ones that create what we call noise and are the main reason why we need thousand of games to spot the stronger between two engines.
All the other conditions: timing issues, varying depth search, books, etc.. only exacerbate the problem, but the problem of noise is intrinsics and would exsist even without all the worstening conditions.
I don't know if I have been clear enough, please tell me if something is not well expressed.