top of page

Stockfishのskill levelについて:GPSfishを用いた調査

最近の将棋ソフトは強すぎるので、人間プレーヤと対局するためには棋力を調整しなくてはいけないのですが、その方法としてソフト側から提供されているものとして

(1)持ち時間制御(全てのソフト)

(2)思考深度調整(やねうら王, 技巧, Bonanzaなど)

(3)思考ノード数制限(やねうら王、Bonanzaなど)

(4)Skill level (以下レベル設定と呼ぶ。Apery, GPSfish, Novice, Usapyon2など)

この内(1)~(3)についてはそれぞれある程度検証済みですが、上位ソフトを級位レベルまで棋力を落とすのは容易ではなく、極端に小さなノード数、浅い思考深度に設定する必要があって自然な指し手という観点からは問題があります。そこで、今回は(4)に注目してどの程度棋力を自然に落とすことができるのか調べてみました。Novice miniについては以前調査を行ったことがありましたが、今回はもう少し詳しいデータを集めることにしました。レベル設定という機能はチェスソフトのStockfishに由来するもので、最近の将棋ソフトはStockfishのコードをそのまま用いている場合が多いため、多くのソフトその機能を用いることができます。レベル設定のメカニズムとしては、Novice開発者による説明がわかりやすいので前回に引き続きそのまま引用させてもらうと

「簡単に言うと、Skill Level が20以外に設定されていると、MultiPv4が設定され、SkillLevelに応じて、採用する手と第一候補手に対する手の評価値の幅を決めている感じです。(内部で乱数使ったりもしていますが)」

今回の調査で用いたソフトはGPSfishでShogiGUIに付属しているバージョンを用いました。こちらを用いた理由としては今どきのソフトと比べると人間の棋力、棋風に近く、ShogiGUIに付属しているので使用している方も多いのではないかというものです。また、弱くするのが目的なのでソフトの指し時間は一手一秒、スレッド数1に制限しました。私のパソコンではこの設定で一手20万ノード程度読みます。

さて、今回はレベル 0から20 (上の説明のように、レベル20は棋力制限なし、19以下だと棋力を落とす工夫がなされる)まで、各レベル100局程度他のソフト(主にQhapaq_WCSC28にノード制限を加えたもの)と対局させ、大まかなレーティングを計算してみました。結果は以下のようになりました。

対局数が各レベルで100程度と小さいため、レーティングには50程度の統計誤差が見込めることにご留意ください。いくつか目につく特徴をまとめると

(1)レベル20とそのすぐ下19の差はかなり大きい。ソフトレートで300近い。

(2)レベル 6から19はほとんど棋力の変化が見られない。(レベル10~18はこの理由のため調査しなかった)

(3)レベル6以下は比較的はっきりとした棋力差が現れレベルを一つ落とすとおおよそレート100~200程度の差が現れる。

私の棋力はアマチュア五級程度と思いますが、数局対戦してみた感想としては、レベル 0は比較的容易に勝てる、レベル1は容易でないが、勝てないことはない。棋風は比較的自然、棋力調整としては思考深度やノード数のようにきめ細かくはできないが、比較的自然な弱さを実現している、といったところでしょうか。レベル6~19の棋力がほとんど同じなのは不思議ですが、一つの可能性としてはチェス用の設定をそのまま使っているからなのではと推測します。将棋ソフト開発者におかれましてはより自然に弱くしていくパラメータへの再設定を研究していただけないかと希望いたします。

特集記事
最新記事
アーカイブ
タグから検索
まだタグはありません。
ソーシャルメディア
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page