Explicação
Um bit é uma unidade de informação que pode conter apenas 0 ou 1. Uma bitbase de finais atribui um ou poucos bits a cada posição de uma família limitada de finais. Como os resultados são pré-calculados, um programa pode consultá-los sem analisar novamente todas as continuações desde o início.
A forma mais compacta usa um bit por posição, por exemplo 1 para vitória e 0 para não vitória. Com dois bits, é possível distinguir mais estados, como vitória, empate, derrota ou posição inválida. Como cada bit ocupa pouquíssimo espaço, milhões de resultados cabem em relativamente pouca memória.
Essa compactação tem um custo. Uma bitbase costuma informar qual resultado corresponde à posição, mas pode não armazenar o melhor lance nem a distância até o objetivo. Um pode gerar os lances legais, consultar as posições resultantes e reconstruir uma escolha que preserve o resultado.
Ela não deve ser confundida com um . Um bitboard representa um conjunto de casas dentro de uma posição; uma bitbase organiza muitas posições completas e armazena um resultado para cada uma. Ela também não equivale necessariamente a uma tablebase rica, ou seja, uma coleção pré-calculada de finais que também contém métricas como ou .
Uso e contexto
As bitbases são especialmente úteis dentro da busca, em que uma resposta compacta de vitória, empate ou derrota pode bastar para interromper a exploração de um ramo.
Confusões frequentes
Bitbase e bitboard
Uma bitbase armazena resultados de muitas posições; um bitboard descreve casas de uma única posição.
Ver termoBitbase e tablebase completa
Uma bitbase prioriza a compactação e pode omitir distâncias ou lances que formatos mais ricos permitem ao programa deduzir.
Fontes
- 1.Endgame Tablebases, Chess Programming Wiki
- 2.bitbase.cpp, Stockfish
