Stockfish DD – rkiss

今回は擬似乱数生成器です。世間では「乱数と言えばMT(Mersenne twister : メルセンヌツイスター)乱数だろ」と思われているかも知れませんが、MT乱数は生成に結構コストがかかるので、ベストなソリューションとは言えません。かと言って、組み込み系の乱数は乱数の精度が今ひとつですのでそういう部分で偏りが出るのは困ります。(定跡選択で乱数を使うので、乱数に偏りがあると連続自己対戦の勝率に偏りが生じかねない)

Stockfishで採用されているのはRKISSという乱数で、この乱数の実装を見るためだけにでも、Stockfishのソースコードを読む価値はあると私は思います。

続きを読む

Stockfish DD – types.h

今回はStockfishのtypes.hの解説です。このファイルはBonanza6で言うとshogi.hに相当するもので、チェスで使う基本的な構造体の定義が一式書かれています。このファイルの内容を頭においてからソースコードを読み進めれば細部まで理解しやすいでしょう。

続きを読む