独自のGUIを開発するため、レイアウトに自由度があります。ただ1行の読み筋を出すのではなく、複数の読み筋やその評価値を表示して、より面白い表示を試みました。
動画だとこんな感じで動きます。
iPad用将棋AI、どうにか完成。 pic.twitter.com/1VhGfPpuYB
— select766 (@select766) 2022年5月1日
次のような事項を表示したいと思いました。
- 自分の候補手だけでなく、相手の応手も複数候補表示する
- 候補手それぞれの勝率だけでなく、その局面の複雑さを表示する
- 探索が進むことで候補手が入れ替わる様子を表示する
これを実現する実装は次のようにしました。
- 相手の応手の表示
- 自分の候補手を上位3つ、それぞれに対し、相手の応手3つを表示するようにした
- 十手以上先の候補まで表示するようなソフトも多いが、表示が頻繁に切り替わる状況では読み取れない割に場所を取るため、3手先までとした
- 局面の複雑さの表示
- 候補手の入れ替わり
- MCTSにおける指し手の決定は、候補手ごとの探索回数が最大のものとなる(勝率最大とは限らない)
- 探索回数を棒グラフで表示することで、2番目以降の候補手が伸びていって入れ替わるという視覚化ができるはず
- 総探索回数が1000, 10000, 100000...に達するたびに横軸のスケールを変えて画面内に収まるようにした。スケールがわかるよう、グラフの色を青、緑、オレンジ、赤と変化させるようにした
- 実装してみたものの、思考時間10秒程度ではわかりやすい入れ替わりは見られなかった
動かしてみた感触
- 棒グラフにより、2番目以降の指し手がどの程度有望なのかが一目でわかる。
- 候補の時系列変化については、思考時間10秒程度ではわかりづらかった。盤上に矢印等で指し手を表示すると、よりわかりやすいかもしれない。
どうにかiPad単独で動く将棋ソフトが実現できました。次回は記事になっていない小さなトピックをまとめた記事を書いて大会前の総括にしたいと思います。