解説
ビットとは0または1だけを保持できる情報単位である。エンドゲーム・ビットベースは、限られたエンドゲーム群の各局面に一つまたは少数のビットを割り当てる。結果が事前計算されているため、プログラムは全変化を再び最初から探索せずに参照できる。
最もコンパクトな形式では、勝ちを1、勝ち以外を0とするように、各局面へ1ビットを使う。2ビットなら、勝ち、引き分け、負け、無効局面など、より多くの状態を区別できる。各ビットが占める空間は非常に小さいため、比較的少ないメモリーに数百万件の結果を収められる。
そのコンパクトさには代償がある。ビットベースは局面の結果を答えても、最善手や目標までの距離を保存していないことがある。は合法手を生成し、移行先の局面を参照し、結果を保つ選択を再構成できる。
と混同してはならない。ビットボードは一つの局面内のマス集合を表し、ビットベースは多数の完全な局面を整理して各局面の結果を保存する。また、やのような指標も含む、事前計算済みエンドゲーム集である高機能なテーブルベースと必ずしも同じではない。
用法と背景
ビットベースは探索内部で特に有用であり、勝ち、引き分け、負けというコンパクトな回答だけで枝の探索を止められる場合がある。
よくある混同
ビットベースとビットボード
ビットベースは多数の局面の結果を保存し、ビットボードは一局面内のマスを表す。
用語を見るビットベースと完全なテーブルベース
ビットベースはコンパクトさを優先し、より豊富な形式ならプログラムが導出できる距離や手を省くことがある。
出典
- 1.Endgame Tablebases, Chess Programming Wiki
- 2.bitbase.cpp, Stockfish
