Skip to content
dav1312 edited this page Dec 6, 2022 · 14 revisions

General terms

Threads

Also known as "CPUs". The amount of CPU threads that the engine will use, usually the higher the better.

Hash

Also known as "memory". The amount of RAM that the engine will use, usually the higher the better.

Depth

Counter of iterative deepening loop. Regardless of the name, there is no simple connection to depth.

Selective Depth

Also known as "seldepth". Is the depth of the deepest principal variation line in the search.

Multiple PVs

Also known as "number of lines" or "multiple lines". The top N moves and their principal variations can be computed. This gives additional insight in the options of the position. However, in Stockfish, this weakens the quality of the best move computed, as resources are used to compute other moves.

Transposition Table

Also known as "TT". A database that stores results of previously performed searches.

Lazy Symmetric Multiprocessing

Also known as "Lazy SMP". The idea of executing the search function on N many threads and share the hash table. This allows for faster filling of the hash table, resulting in a faster and wider search.

Iterative deepening

The idea of performing consecutive searches at higher depths each time.

Null Move

Also known as "passing move". TODO

Principal Variation Search

Principal Variation

Also known as "PV". The sequence of moves that the engine considers best and therefore expects to be played.

Pruning

The idea of ignoring certain parts of the search tree in order to reduce the amount of time it takes to execute a search.

Null Move Pruning

Based on the assumption that, if we can reach beta by not making a move at lower depths, we will most likely be able to reach it anyway.

Futility Pruning

The idea that quiet moves don't tend to improve positions significantly, therefore we can safely prune quiet moves in positions where the current position is evaluated to be below alpha by a margin.

Late Move Pruning

Also known as "LMP". The idea that all quiet moves can be pruned after searching the first few given by the move ordering algorithm.

Late Move Reductions

Also known as "LMR". A way of proving if a move is lower than alpha quickly. This is done by searching moves that are expected to underperform at a lower depth.

Extensions

The idea of extending certain moves, usually by one ply, to try to find better moves faster.

Check Extensions

They can have two distinct forms: one of them extends when giving check, the other when evading it. The reason behind check extension is that we are in a forcing sequence, so that it is desirable to know its outcome with more certainty.

Move Ordering

In order to maximize the efficiency of alpha-beta search, we optimally want to try the best moves first.

Quiescence Search

Also known as "qSearch". Performed at the end of the main search, the purpose of this search is to only evaluate "quiet" positions, or positions where there are no winning tactical moves to be made.

Evaluation

Handcrafted Evaluation

Also known as "classic", "classical" or "HCE". TODO

Efficiently Updatable Neural Network

Also known as "NNUE". TODO

Clone this wiki locally