4 ms·
So far as I can tell, the A+B strategy described therein is exactly the principle that Stockfish -- and more or less every other chess engine -- was built on pr
by usgroup 2y ago
So far as I can tell, the A+B strategy described therein is exactly the principle that Stockfish -- and more or less every other chess engine -- was built on prior to AlphaZero, after which the top engines moved to NN derived evaluation criteria for what is still a pruning tree search.
- Sesse__ 2y agoAlphaZero/LC0 uses a very different kind of search, enough, which is not based on pruning to the same extent. (I guess you must count LC0 as a top engine?)
- janalsncm 2y agoStockfish uses a neural net optimized for CPU called NNUE for static evaluation. They have not used a heuristic evaluator for some time now. In fact it is removed from the code base.
- Sesse__ 2y agoI have no idea why you bring that up? NNUE has no bearing on the search.
- usgroup 2y agoYou might be thinking about how the evaluation is trained (MCTS) rather than how it’s applied in a chess game?
- canucker2016 2y agofrom https://lczero.org/dev/wiki/technical-explanation-of-leela-chess-zero/ https://lczero.org/dev/wiki/technical-explanation-of-leela-c...: Leela uses PUCT (Predictor + Upper Confidence Bound tree search). We evaluate new nodes by doing a playout: start from the root node (the current position), pick a move to explore, and repeat down the tree until we reach a game position that has not been examined yet (or a position that ends the game, called a terminal node). We expand the tree with that new position (assuming non-terminal node) and use the neural network to create a first estimate of the value for the position as well as the policy for continuing moves. In Leela, a policy for a node is a list of moves and a probability for each move. The probability specifies the odds that an automatic player that executes the policy will make that move. After this node is added to the tree, backup that new value to all nodes visited during this playout. This slowly improves the value estimation of different paths through the game tree. When a move is actually played on the board, the chosen move is made the new root of the tree. The old root and the other children of that root node are erased. This is the same search specified by the AGZ paper, PUCT (Predictor + Upper Confidence Bound tree search). Many people call this MCTS (Monte-Carlo Tree Search), because it is very similar to the search algorithm the Go programs started using in 2006. But the PUCT used in AGZ and Lc0 replaces rollouts (sampling playouts to a terminal game state) with a neural network that estimates what a rollout would do.
- usgroup 2y agoIt is not what Stockfish does though. From the Wiki page: Stockfish implements an advanced alpha–beta search and uses bitboards. Compared to other engines, it is characterized by its great search depth, due in part to more aggressive pruning and late move reductions.[13] As of September 2024, Stockfish 17 (4-threaded) achieved an Elo rating of 3642 +16 −16 on the CCRL 40/15 benchmark.[14] See also: Stockfish historically used only a classical hand-crafted function to evaluate board positions, but with the introduction of the efficiently updatable neural network (NNUE) in August 2020, it adopted a hybrid evaluation system that primarily used the neural network and occasionally relied on the hand-crafted evaluation. In July 2023, Stockfish removed the hand-crafted evaluation and transitioned to a fully neural network-based approach. https://en.wikipedia.org/wiki/Stockfish_(chess) https://en.wikipedia.org/wiki/Stockfish_(chess)
- janalsncm 2y agoWhat do you mean by A+B?