テラショック定跡を公開後、比較的巨大で価値のあるはずの定跡なので、その定跡ツリーを可視化しようとする人たちが現れて、何やら外部ツールとか作ってくださっていたりするんですけど、私には今ひとつ有用性が理解できないのです。
というのも指し手が樹形図状に示されていたところで、アマ初段ぐらいの人は5手~10手ぐらいが限界だと思うので、盤面が欲しい気がします。でも盤面つきの樹形図だと、このような巨大な定跡を相手にすると視認性が悪く、膨大で見づらくなってしまいます。
じゃあ、結局、ShogiGUIの検討モードか何かで、マウスで駒を動かしたらその局面からの複数の候補手のそれぞれの数手先までの手順を表示してくれるだけで良いのではというところに行き着くのですが、それっていまのやねうら王でできるよね?あれ?できない?
そうです。できないのです。
定跡ファイルには、その局面の候補手とそれに対する相手の候補手しか格納されていないので、その候補手で1手進めて再度定跡にヒットするかどうかを繰り返さないと候補手の数手先の手順は得られないのです。
思えば、やねうら王で採用している「(将棋ソフト用の)標準定跡フォーマット」を私が考案したのは2016年の2月。
それまで使っていたSQLiteによる定跡DBが何らかのバグにより、3度目にDBファイル丸ごと吹っ飛んだからで、「むしゃくしゃしてやった。反省はしてない。」ぐらいの感じで、それほどよく考えて作成したわけではなく、勢いに任せて作りました。
しかし、その後、やねうら王ライブラリ勢がSDT(将棋電王トーナメント)やWCSC(世界コンピュータ将棋選手権)で上位を占めるようになると、恐ろしい速度でこの定跡フォーマットも普及していきました。
まあ、そんなわけで、この定跡フォーマットを作った本人としてはすっかり忘れていたのですが、やねうら王では、候補手のそのあとの手順が出力されないのです。最近テラショック定跡を掘っていて、うまく掘れているか確認するために将棋所を起動したときに気づきました。なんだこれ。むちゃくちゃ使いにくいぞと。そりゃ定跡ビュアーも作りたくなるわけですわ。
そこで、やねうら王V4.84で、BookPvMovesというオプションを追加しました。この手数分だけ定跡の手順が表示されます。デフォルトは8なのでその候補手を含め8手目までその後の手順が表示されます。この値、いくらでも大きくすることはできますが、定跡のprobe(ある局面に対して定跡がヒットするかを調べること)を繰り返す動作なので大きな数にすると遅いかも知れません。
とりあえず、これを将棋の定跡研究などに生かしていただければと。ちなみに、やねうら王のほうは、まだ残り作業が少しあるので、その一連の修正をしてから、次のバージョンの実行ファイル一式をやねうら王のGitHubのほうからダウンロードできるように致します。もうしばらくお待ちください。
『創世記』にあるように6日かけてGitHubのやねうら王を更新して7日目に休む予定ですけど?
— やねうら王 (@yaneuraou) May 23, 2019
樹形図(https://github.com/tibigame/yaneuraouBookView)の作者としてあれの利点を語っておくと、
・数手先の分岐まで広く見られる。
・掘りの浅い枝を見出しやすい。
・評価値によって色に差をつけているので良さそうな枝、ダメな枝を色で知覚できる。
あたりですかね。
初期局面からある程度離れて手が狭くなってくると
全ての枝を出す方式でもそれなりに機能してきます。
やねうら王のエンジンでテラショック定跡の候補手を出力するとき、
・掘りの深さ自体はテラショック定跡ではdepthとして出力されるので読み筋がどれだけ掘れているかはそれを以て判断できます。
・MultiPVで出力するので評価値順に並んでいます(なので駄目そうな枝であるかはそれでわかるような..)
ただまあ、数手先の分岐は見れたほうが嬉しい状況というのはあるのかも知れませんね…。エンジン側から出力すること自体はできるのですが、それをグラフィカルに表示してくれるGUIがないもんで画餅ですけども。MyShogiのほうで対応するかも知れないですけど、枝状のもの自前で描画するのわりと骨が折れますしね…。