Obviously one is better than the other and AlphaZero uses machine learning and all, but what is the real reason for their different style of play? Given a position, both evaluate the next best move but can AlphaZero, being an AI, be mischievous and try to bluff Stockfish or something like that?

1 Answer 1


Chess engines consist of two prongs of code: search and eval. Search is the algorithm that tells the engine which moves to look at, "searching" through the game tree to find the most promising continuation. Eval is the code that says, given this position and without making any moves, how good is this position for us?

Stockfish uses Alpha-Beta pruning for search, and a handwritten evaluation function for eval. The Alpha-Beta pruning function involves lots of tricks to prune off unnecessary branches and includes a lot of human knowledge as well, e.g. "if the eval says our position is bad, our best chance is a direct attack on opponent's king, so search moves that give check more thoroughly". The handwritten evaluation function encompasses human knowledge such as "rooks are better on open files".

AlphaZero uses Monte Carlo Tree Search for search, which is fundamentally different from Alpha-Beta, and a NN evaluation function. In other words every time AlphaZero searches a position, it queries its NN for an evaluation of it. Both of these are different from Stockfish's approach, and not necessarily better.

The different playstyles come from the fact that their search & eval functions are different. Presumably NNs dislike cramped positions, for example. As for bluffing, it doesn't work against engines. They just keep looking for the best moves.

  • so a0 can't bluff. what i really meant was that if a0 "knows" about stockfish's evaluation technique can it use it against it? for example in that famous match where a0 sac'd 4 pawns was it just the difference of search and eval functions or a0 was "responding" to the playstyle of stockfish? Can you also point towards some resource where all this is explained more clearly , using examples and all .thanx Jun 29, 2020 at 13:31
  • 3
    @shashankshekharsingh AlphaZero doesn't know anything about Stockfish's evaluation technique. That's why it's a "zero" engine - it doesn't know anything except the rules + whatever it learns by playing against itself. See the AlphaZero paper.
    – Allure
    Jun 29, 2020 at 13:32
  • 2
    @shashankshekharsingh: it doesn't "respond" to a "style". Like all chess engines it just tries to find the best move in a given position. It has no idea who the opponent is or what happened in the game so far, just the current position. Jun 29, 2020 at 13:37
  • @RemcoGerlich is it absolutely certain in case of a0. do we know for certain how a0 finds the best position in terms of what it "learns" Jun 29, 2020 at 15:28
  • 2
    @shashankshekharsingh yes, read the paper, or Google for results such as this one: chess.com/article/view/whats-inside-alphazeros-brain
    – Allure
    Jun 29, 2020 at 21:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.