いまどきの将棋ソフトを使っていると、「HASH 50%」などと表示されている。これはHASH利用率と呼ばれる。この数字が大きくなってくると探索の効率が悪くなる。要するに潤沢にメモリがある場合に比べると弱くなる。これは、どれくらいの値までであるなら適切なのか?HASH利用率が99%にならない限りHASHには余裕があるものなのか?HASHはどういう仕組みになっているのか?HASH利用率が50%の状況で、ハッシュ衝突はしているのか?など、わりとソフトを長年使っていても知らない人が多いのでここに原理から詳しく説明した決定版的な記事を書く。
「Stockfish」カテゴリーアーカイブ
23
StockfishではONE_PLYは何故1になったのですか?
ONE_PLYというのは、1手を表す値のことです。固定小数になっていて、1手(ONE_PLY) = 64だと、0.5手を意味する値は 32 となります。
置換表の128GB制限を取っ払う冴えない方法
Countermove(応手)とは何ですか?
Stockfishがもたらさなかったもの
昨年ぐらいからStockfishの改良点を取り込んでもほとんど強くならないというのが続いている。いまや、Stockfishによって将棋ソフトにもたらされるレーティング向上は年間R30にも満たないように思う。
Windowsのプロセッサーグループの件
やねうら王のMovePickerのバグについて
電王トーナメントの開催日も迫る中、やねうら王のMovePickerにバグが発見されました。
Stockfish DD – search 探索部
Stockfish完全解析もいよいよ今回で最終回。今回は探索部です。探索部は指し手生成や指し手オーダリング部(move picker)などの上に成り立つので、ボトムアップ式に解説してきた結果、一番大切なところが一番最後になりました。
Stockfish DD – material,endgame,etc..
今回はmaterial.hとmaterial.cppの解説をします。と言っても、この二つ、将棋では使わないからあまり関係ないです。ソースコードには簡単なコメントしかつけていません。
Stockfish DD – evaluate 評価関数
今回は評価関数です。Stockfishの評価関数evaluate()は、手番側から見た評価値を返すので、後手番であれば符号を反転して返す、みたいな処理が必要です。