ソフトによる定跡選択とその調査法
技巧の自己対戦によるレーティング調査をやっていたところ、インターフェースとの相性により最初の10手くらいが同じになってしまうという現象に出くわしました。これでは、対局記録としてレーティング評価に使うのはどうかなと考え、ツィートや某掲示板でそのバグについて報告いたしました。その報告が効いたのかどうかは定かではありませんが、数日後、そのバグは新しいバージョンで作者の出村氏によりふさがれておりました。お忙しいとは思うのですがバグに直ちに対応していただいた出村氏に大変感謝しております。
さて、そのような出来事があったため、各ソフトが序盤でどのような定跡を選択いるのかしらべていたところ、最後まで時間をかけて対局させなくても簡単にチェックできることを思いつきました。知っておられる方も多くおられると思いますし、もっと簡単な方法もあると思うのですが、以下の通りです。将棋所やShogiGUIなどで一手0.1秒などの超短時間対戦、ただし、30~40手で引き分けになるように設定しておき、調べたいだけの対局数で反復対局させます。定跡の選択は確率の問題なので超短時間対戦で十分だと思いますし、また最初の数十手を調べるだけでどの戦型が選ばれているのかがわかるので最後までやらせる必要もありません。対局時間は全て引分けで終わるはずで数分で終わります。棋譜の確認をいちいち棋譜を開いて調べるのは面倒ですが、激指を使うとそのような機能があって、各戦型がどれくらい現れたか一瞬で調べてくれます。(ほかのソフトでも調べられると思いますが、もしご存知でしたら教えたいただけると助かります)。以下、技巧とApery の場合を調べると、(100局で調べた例ですが)、以下のようになりました。(棋譜はここからダウンロードできます)。
技巧:
Narrow book off, Tiny book off: 矢倉:37 振飛車:15 相掛り:13 角換:8
Narrow book on, Tiny book off: 矢倉:41 相掛:13 振飛:10 角換:7
Narrow book on, Tiny book on: 矢倉:31 角換:12 振飛:10 相掛:9 横歩:2
Apery: (同じ定跡ファイルを使うSilent Majorityなども同様だと思われる)
book.bin: 相掛:32 角換:24 横歩:7 振飛:5
bookall.bin: 振飛:20 横歩:18 相掛:6 矢倉:4
他のソフトや任意の二つのソフトの間の対局でどのような定跡が選択されるのかも同様に簡単に調べられます。
Aperyが公開された直後floodgateはAperyだらけのApery自己対戦の場となり、相掛や横歩取りの将棋が増えました。また、今は技巧の時代に変わったので矢倉戦が増えています。
個人的に思うのは、定跡ファイルをいじることが簡単にできれば、自分の好きな陣形、例えば四間飛車ばかりを指す技巧やApery・Silent Majorityを簡単に作れるはずですが、素人にはなかなか敷居が高そうなのが残念です。そう思って某掲示板をみていると、やねうら王作者の磯崎氏が共通フォーマットにして素人でも定跡ファイルを作れるようにしたらどうかという記事を書いておられることを見かけました。
激指には羽生、大山、升田などの名棋士たちの棋風の将棋を指すという機能がついているのですが、おそらく定跡ファイルの選択でそのような設定が可能になっているのだと思います。やねうら王氏の提案がソフト作者の間で共有されれば、名棋士たちの定跡から始まる技巧・Apery・やねうら王などがユーザー側で作られて、様々な棋風を持つソフトを作れるようになると思います。そうなるとソフト対局の観戦がずっと楽しくなるのではないでしょうか。