News for hackers. Stuff that matters.
Re:Programming a computer for playing chess (1950) [pdf] by usgroup on Tuesday October 29, 2024 @04:08AM (#41980738)
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.
Re:Programming a computer for playing chess (1950) [pdf] by Sesse__ on Tuesday October 29, 2024 @08:54AM (#41983361)
AlphaZero/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?)
Re:Programming a computer for playing chess (1950) [pdf] by usgroup on Tuesday October 29, 2024 @10:07AM (#41983980)
You might be thinking about how the evaluation is trained (MCTS) rather than how it’s applied in a chess game?
Re:Programming a computer for playing chess (1950) [pdf] by canucker2016 on Tuesday October 29, 2024 @11:51AM (#41985411)
from 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.
Re:Programming a computer for playing chess (1950) [pdf] by usgroup on Wednesday October 30, 2024 @07:35AM (#41993788)
It 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)

Re:Programming a computer for playing chess (1950) [pdf] by janalsncm on Tuesday October 29, 2024 @01:41PM (#41987277)
Stockfish 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.
Re:Programming a computer for playing chess (1950) [pdf] by Sesse__ on Tuesday October 29, 2024 @05:58PM (#41989851)
I have no idea why you bring that up? NNUE has no bearing on the search.
Re:Programming a computer for playing chess (1950) [pdf] by janalsncm on Tuesday October 29, 2024 @01:46PM (#41987348)
What do you mean by A+B?
Re:Programming a computer for playing chess (1950) [pdf] by pwnmonkey on Tuesday October 29, 2024 @09:13PM (#41991052)
Re:Programming a computer for playing chess (1950) [pdf] by usgroup on Wednesday October 30, 2024 @09:24AM (#41994511)
Shannon refers to two strategies which can be used together. A and B.