作成している将棋アプリに定跡検索と戦型予想を実装した。
定跡ボタン(ノートのアイコン)を押すと、現在の局面の定跡の候補手と、各手を指した後にどの戦型になるかの確率を表示する。
候補手は、出現率と勝率も合わせて表示する。
定跡の元データ
定跡の元データには、floodateの2018年以降のR3500以上のソフト間の棋譜を使用した。
ある程度レーティングの高いソフトの指し手を登録した方がよいのでレーティングでフィルタを行ったが、R3300は技巧2の棋譜が多いためそれよりも少し大きいR3500とした。
なお、floodgateのレーティングの分布は以下のようになっている。
戦型予想
floodgateの棋譜から、定跡の各手を指した後に、どの戦型になったかの統計情報を取得して、それを確率として表示する。
戦型の分類には、Mizarさんが公開されているjsonの定義ファイルを使用させてもらった。
相掛かりの上限手数が20手までだと該当棋譜が減るため、24手までに修正して使用した。
戦型の分類は、対局中にも行い、手を指した後の戦型を表示する。
まとめ
将棋アプリに定跡と戦型予測を実装した。
戦型予測は、他のアプリにはユニークな機能で、自分自身が欲しいと思っていた機能なので、このアプリを使う理由になってくれればよいと思っている。
また、戦型予測を使って、AIに指定した戦型になるように指させることができる。
相手が振り飛車の練習をしたいといった場合に便利になると思う。
次は、AIに指定した戦型を指させる機能を実装したい。