Explication
Un bit est une unité d'information qui ne peut contenir que 0 ou 1. Une bitbase de finales attribue un ou quelques bits à chaque position d'une famille limitée de finales. Comme les résultats sont précalculés, un programme peut les consulter sans réexplorer toutes les continuations depuis le début.
La forme la plus compacte emploie un bit par position, par exemple 1 pour gain et 0 pour non-gain. Deux bits permettent de distinguer davantage d'états, comme gain, nulle, perte ou position invalide. Chaque bit occupant très peu d'espace, des millions de résultats peuvent tenir dans une quantité de mémoire relativement faible.
Cette compacité a un coût. Une bitbase indique souvent le résultat associé à une position, mais peut ne pas stocker le meilleur coup ni une distance jusqu'à l'objectif. Un peut générer les coups légaux, consulter les positions qui en résultent et reconstruire un choix qui préserve le résultat.
Il ne faut pas la confondre avec un . Un bitboard représente un ensemble de cases dans une position; une bitbase organise de nombreuses positions complètes et stocke un résultat pour chacune. Elle n'est pas non plus nécessairement une tablebase riche, c'est-à-dire une collection précalculée de finales qui contient en plus des métriques comme la ou la .
Usage et contexte
Les bitbases sont particulièrement utiles pendant la recherche, lorsqu'une réponse compacte de gain, de nulle ou de perte peut suffire à arrêter l'exploration d'une branche.
Confusions fréquentes
Bitbase et bitboard
Une bitbase stocke les résultats de nombreuses positions; un bitboard décrit les cases d'une seule position.
Voir le termeBitbase et tablebase complète
Une bitbase privilégie la compacité et peut omettre des distances ou des coups que des formats plus riches permettent à un programme de déduire.
Sources
- 1.Endgame Tablebases, Chess Programming Wiki
- 2.bitbase.cpp, Stockfish
