ハッシュの効果測定
ハッシュの効果を測る実験をしてみたのでメモ。
1)ハッシュを一切使わない
2)手の情報のみ使う(move orderingの改善のみ)
3)手も値も使う(値がヒットしたらその下をサーチしない)
の3とおりで、同じ局面同じ深さで探索させ、ノード数を調べてみた。
読み技8 進歩3
dep=7 8 dep=7 8
手も値も 37,042 52,548 602,862 4,092,572
手のみで 42,278 68,352 803,928 6,452,839
なしなし 52,123 89,225 1,184,658 8,009,961
局面は「読みの技法」の第8問と進歩本(2)問題集第3問。序盤1問と終盤1問、ということで適当に選んだ。(本持ってない人は、Aリーグパッケージの中に盤面データあります)深さは7と8で振ってみた。
なお進歩3の方は常に0096FUだったが、読み技8は答えが2826HI/3736FU/6979KIとばらけたので注意。
ボナ412使用。なしなしのときは、hash_store()とhash_store_pv()を空にする。手のみのときはhash_storeをhash_store_pvに化かす。ありありのときはボナそのまま。
ざっくり、手のみだと1.3-1.6倍くらい、なしなしだと1.5-2.0倍くらい(ありありに比べてのノード数で)、といった感じでしょうか。
しかしこういうとき、ボナのソースが公開なのは非常にありがたいですね。何をやったのかかなり具体的に正確に伝えられる。追試もしようと思えばできるし。
あと余談ですが、「ボナv4でevaluate()が70%」という話があったので、追試してみました。局面はさっきの2つ。すると40%でした。局面によって違うのかな。環境はCore2Duo, Vista, cygwin 1.7.0, gcc3.4.4, bona v4.1.2, TLP offです。gprofで測りました。
最近のコメント