ローカル置換表
#オセロAI では探索結果を #ハッシュテーブル に保存しておき、適宜探索中に参照することで合流が発生した場合やmove orderingに役立てている。 一般的には複数スレッドで置換表を共有するため、置換表のロック・アンロックが遅く、問題となることがある。
Egaroucidでは2024/08にPRをいただき、終盤13マス空きから6マス空きまではローカル置換表のみを用いることで、高速化に成功した。
それまでは13マス空きから10マス空きまでグローバル置換表を使っていたが、これと比べて以下の特徴があった
10マス空きから6マス空きまで置換表が使えるので、訪問ノード数を減らせた
とは言え、10マス空きから6マス空きまででメモリ参照が増えたのでその分探索は遅くなった。ただし、ノード数の削減効果の方が恩恵が大きかった。
13マス空きから10マス空きまでは別スレッドで同じ局面を読んでしまう可能性は出てくるが、まあ13マス空きは十分に高速なので、そのデメリットはそこまで大きくない