Stockfish DD – book 定跡部

定跡部として面白い処理が書いてあるので解説しておきます。

Stockfishの定跡選択は、その局面での定跡の指し手の出現頻度に比例した確率でランダムに指し手を選択するというものです。

将棋で言うと初手で26が20回、76歩が30回、プロの棋譜に出現していたとしたら、初手での指し手は、26歩が40%の確率、76歩が60%の確率になるように選択します。

これをあなたならどういう風に実装しますか?

Stockfishでは、いわゆるストリームアルゴリズムを用いてエレガントに実装してあります。詳しいことは、本記事の以下に貼り付けてあるソースコードの該当部分のコメントをご覧ください。

[amazonjs asin=”4320121716″ locale=”JP” tmpl=”Small” title=”オンラインアルゴリズムとストリームアルゴリズム (アルゴリズム・サイエンスシリーズ―数理技法編)”]

※ 上記の本には、もっと高度なオンラインアルゴリズムとストリームアルゴリズムがいろいろ紹介されています。興味のある方は是非どうぞ。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です