6 ms·
Interesting that it's deterministic. I can get it to play the same game again and again. Why is this not the case with more advanced chess engines? Edit: Appar
by maxmcd 10y ago
Interesting that it's deterministic. I can get it to play the same game again and again. Why is this not the case with more advanced chess engines?
Edit: Apparently single-threaded stockfish is deterministic. Maybe my experience with non-deterministic chess engines just has to do with the handicapping related to providing easier levels of play.
- deleted 10y ago[deleted]
- antaviana 10y agoWhen you say that it is deterministic, do you win or do you lose the game? If you always win with the same game, then instead of AI, we are rather talking about AS (Artificial Stupidity).
- woliveirajr 10y agoNever checked but somehow got me surprised: aren't all chess engines deterministic? The same program, given the same input, should give the same output unless it is specifically programed to try to avoid it (and then we have PRNGs).
- maxmcd 10y agoA reply that was deleted mentioned that some engines use Monte Carlo simulations which are non-deterministic (?). My experience with chess engines being non-deterministic is that if I pick the same opening I don't always play the same game with the same engine. I really might just be off here, and that variance might be related to random artificial handicapping.
- tbrake 10y agoMost chess engine opening books weight their branches to pick certain moves x% of the time, and offer 0 or negative value to 'bad moves' never to pick. e.g. 1.e4, d4, c4 and Nf3 will get picked more often than 1. b3, c3, nc3 and f4, and 1. g3, e3 even less (or not at all).
- vishvananda 10y agoSome things that make chess engines non-deterministic: 1) Most chess engines use an opening book instead of calculating moves early in the game. These books are often programmed probabilistically, so it may have 4 reasonable responses to a given move and pick one randomly. 2) Many engines are programmed to "ponder", that is do optimistic calculations during the opponents turn. This means that the time taken by you to make the move could potentially affect the calculations performed by the engine.
- pavs 10y agoYou forgot two more things, they might not happen often enough because of the sheer number of possible positions in the early gameplay but it does make a difference in the game if you play the same position every time. - Opening Book learning. - Position Learning. Most decent chess engines have these features.
- jimsmart 10y agoUnless efforts are made for results to be deterministic, concurrent algorithms may complete their work / return their results in an ordering that is unstable (depending mostly on host OS and CPU management of time-slicing).
- lumberjack 10y agoStockfish isn't.
- Someone 10y agoMany chess engines are (also) made for humans to play against. Humans wouldn't want their opponent to play the exact same way every time. For a simple example, playing white, one wouldn't want the computer to always open 1. h4. So, either the computer has to pick an opening, or the human opponent has to pick one. Of course, that extends past the first move, so, assuming the computer to play deterministically, one would end up with the human opponent having to specify "let's play opening X, variant Y, as typically played by Z up to black's 15th move". It probably is easier to use a "set up a custom board" feature than to specify that. And it wouldn't even stop there. The human specifying that particular opening likely wants to study that opening, not just the single continuation that the computer thinks to be the best one. Also, as another poster said, a chess engine may use Monte Carlo simulation to pick a move, and that means using a random number generator.