When different chess engines play against each other, they don’t always have the same outcome. Why not?

1.08K viewsOther

This has bugged me for a bit. If chess engines are meant to always play the best moves, then how come two chess engines playing against each other doesn’t always have the same winner?

In: Other

22 Answers

Anonymous 0 Comments

There can be intentional randomization, and unintentional randomization.

A program that has to do a lot of anything will generally try to calculate multiple things at the same time – for example, evaluating the outcome of many possible moves. When things happen in parallel in computers, one may finish before the other (for example, because the operating system “borrowed” the CPU core doing one of the calculations for briefly doing something else).

A program could account for it, but it’s often not important, and spending time/resources on accounting for it would be a bad tradeoff.

As a result, moves may end up on the candidate list in a different order, and since the chess engine typically only has limited time, this means it’ll evaluate slightly different moves.

(This is pretty common, and many programs will output slightly different things randomly due to such variations. A program or algorithm that will always produce the same result is called *deterministic*, one that doesn’t is called *non-deterministic*. Sometimes this matters, but often it doesn’t, so non-deterministic is good enough.)

You are viewing 1 out of 22 answers, click here to view all answers.