Most engines have some randomization built in.
It happens that there are several moves evaluated the same, by picking at random among them causes already some variability.
Most engines have some randomization built in.
It happens that there are several moves evaluated the same, by picking at random among them causes already some variability.
Engines that are close to each other in rating (even Houdini vs. Stockfish) always draw. Because of this it is generally agreed that chess, when played perfectly, is not white to win but a draw.
In fact the draw rate in self-play for Chess is about 32%. Only at very high quality of play, using a balanced opening book, it starts to go up, sometimes as high as 70%.
If you allow engines to use multiple cores, or think in the opponent's time, there is some intrinsic randomness in their move choice. This because they become sensitve to tiny timing difference caused by the Operating System. (Other tasks occasionally stealing some CPU time.) Single-core engines that only think in their own time are much more determininstic, although these sometimes also pick a different move, if the time they get to think happens to be almost exactly equal to the time they needed to switch move.
Of course this can be prevented by programming in randomization explicitly. Most engines do not do this, however, and rely solely on the opening book for causing game diversity. (And the book is usually handled by the GUI, not by the engine, which only gets involved when the GUI runs out of book.)
It has been done. AlphaZero draw rate at 1 min/move 97.9%.
Figure 2 (b)
https://arxiv.org/pdf/2009.04374.pdf
What happens if you get 2 copies of the exact same chess engines with the exact same setting and conditions to play against each other? Do they play the same game everytime (that I presume white wins) or do they have a sort of randomizing feaure built in so the games get different?