(棋力)ゼロから始める将棋ソフトを使った戦型探索(解説編、居飛車編)

2017年の升田賞は千田翔太六段が受賞しました。

将棋ファンには今更ではありますが、千田先生はコンピュータ将棋を用いた将棋研究の第一人者でもあります。受賞の原動力となった角換わり腰掛け銀4二玉・6二金・8一飛型は、2015年頃からコンピュータ同士の対戦で多用される(プロの棋譜でも65歩型の持久戦では見られたのですが、今ほどメジャーな形として扱われていなかった)ようになった戦型です。ソフトの棋譜から先見性を見出し、実戦で活用し一つの技術に昇華させるのは並大抵ことではなく、千田先生の代わりとなる人はそう居ないことは疑う余地はないです。

のですが......将棋ソフトを最も深く理解しているであろう将棋ソフト開発者勢としては

狙ってみたい、二匹目のどぜうを!!

と思ったりもするわけです。

とはいえ、今の時代、棋譜を並べてソフトで点数や指し手を解析するような研究は将棋ガチ勢の大半がやっていることでしょう。そこで、開発者ならではの技として、棋譜ではなく、評価関数自体を可視化することによる戦型探索に挑戦してみることにします。

 

【そもそも、4二玉・6二金・8一飛型をソフトはどう思ってるの?】

まずは予備実験として、msd賞受賞作品である4二玉・6二金・8一飛を解析してみます。現在のソフトの主流である、3駒系の評価関数では、玉の位置と駒二つの並びに点数をつけることで盤面の価値を測定しています。4二玉・6二金・8一飛の並びは玉、駒、駒の3つから成り立っているため、駒の並びそのものに点数が突いているはずです。

というわけで、elmo+100程度のレートを持つという評価関数を用いて、4二玉・6二金・8一飛の駒の並びの点数を求めてみましょう。

結果:32点

金底の歩の点数が60点前後であることから、極めて雑な(駒の並びの良さが評価値に比例する、他の駒との相互作用を無視する)近似をすれば、この構えは、将棋入門テキストに必ず含まれる超良形の半分くらいの価値があることになります。

上述の近似だけだと、少々説得力に欠けるので、比較実験として、昔の評価関数でも同じ解析を行ってみます。

2016年8月時点でのaperyの評価関数では28点、2016年6月時点でのqhapaq(大樹の枝野評価関数とほぼ同じレート)では8点となりました。2015年の電王トーナメントでのponanzaあたりから、4二玉・6二金・8一飛が多用され始めたことと(一応)一貫性が取れており、3駒(KPP)の高い形を新戦型として模索するという方法が(希望的観測では)可能と言えそうです。

 

【レッツ、評価値の高い駒の並びを探してmsd賞を狙おう】

というわけで、最新鋭のqhapaqの評価関数(開発者の意地で強いと言われる某評価関数より強いのを用意したはず)を用いて4二玉・6二金・8一飛並に点数の高い3駒の並びを模索し、千田先生の二匹目どじょうを目指しに行きたいと思います。

88や68の玉を相手にKPPの値を取得、ランキングにしていきます。序盤戦略ということで駒の位置を4段目以下とします。更に、KPPに相手の駒を含むものも加味してしまうと、29の相手の龍、39の金と相手の大駒を取れる形ばかりが出てきて目ムワなので、KPPの構成要素を自分の駒に固定します。

..........出てこない。4二玉・6二金・8一飛に匹敵する高得点の並びがっ!

 

32点以上の価値を持つ要素自体は沢山あります。金底の歩を始めとした、終盤の受けの手筋や馬や龍を使った受けは32点以上の価値を生み出しています。しかし、それは序盤戦術ではありません。

それならば、と、玉の位置69に変えて検索。すると......

 

おおっ、玉の位置が69、金の位置を59としたときのKPPには32点以上の並びがあるではないかっ!

このような書き方をすると、「点数が高い駒の並びから戦型を探すのはわかるけど、それなら棋譜を見て判断するのと差がないんじゃね?」と思われるかも知れません。

しかし、それは違います。69玉周りの囲いの点数が高くても、elmo+R100クラスのソフトは(私が知る限りでは)以下のような手はほぼ指しません。

f:id:qhapaq:20171005003626p:plain

(初手から、26歩、84歩、25歩、85歩、78金、32金、69玉)

この局面の評価値は-50〜0程度で先手が悪いという判断です。コンピュータの推奨手は38銀や24歩であり、何れも+50ちょいの評価値が出るため、並列化などで評価値にブレが出るとは言え、候補には上がってくれないのです。

しかし、この玉形の価値は戦いが進むことで発揮されます。69玉型は金駒をよせることで高い守備力を発揮できるので、この時点での評価値が悪くても将来性はあるのです。

ここから金を59、銀を48に動かし、必要に応じて48の銀を繰り出したり、79の銀を68に動かしたり......

 

さて、将棋ファンの方は即座にツッコミを入れられることでしょう。それ、中原囲いじゃねと

 

そのとおりです。数理パワーがあっても、棋力が足りないとこの手の罠に引っかかります。(なお、私は気づくのに数時間かかりました

 

さて、残念ながら中原囲いを使う作戦は既存戦型を大きく上回る勝率は達成できなかったようです(勝率は大体50%前後。先手のアドを加味するとやや悪い)。ただそれでも、上記局面から展開される棋譜はなかなかに面白く有意義なものだったと思いました。

 

・例:中原囲いからの浮き飛車

f:id:qhapaq:20171005005322p:plain

(初手から、26歩、84歩、25歩、85歩、78金、32金、69玉、86歩、同歩、同飛、87歩打、84飛、48銀、72銀、76歩、42玉、36歩、74歩、35歩、75歩、同歩、73銀、59金、14歩、26飛、64銀)

この局面での評価値はほぼプラスマイナス0。ここから飛車先を切ってから角交換をし、桂馬と角で33の地点に総攻撃を仕掛けて先手が優勢となりました。

 

この他にも駒組が飽和してから、銀を68、角を79に引いて嬉野流に組み替えるなど面白い棋譜が量産されるので、戦型マニアのフレンズは試してみては如何でしょう。もしかしたら、新しい戦型が見つかるかも知れません。

 

【まとめ 棋力は必要だった】

msd賞を狙おうとかいいながら、思いっきり過去のmsd賞受賞作品を再開発してしまいました。やはり戦型の大半は賢人たちによって試されているというわけです。

しかし、「ソフトは指さないけど実はいい形」というのを発見する上で、指し手や盤面全体の評価値だけでなく駒の並びの点数自体に注目してみるという戦略は意味がありそうです。

 

【次回、ゼロから始める将棋ソフトを使った戦型探索 振り飛車編】

駒の並びをベースにソフトは指さないけど実はいい形という戦略を用いるなら、居飛車よりも定跡なしでは殆ど指してもらえない振り飛車こそ、開拓の余地があるのではなかろうか(そして、ここまで工数を使った以上、簡単に負けを認めたくない)というわけで、次回は振り飛車での戦型探索を行ってみます。

先手中飛車を含めても、今のソフトの振り飛車の勝率はとても悪い(先手でも50%どころか45%も怪しい)ですが、果たしてコレを上回る戦型は見つかるのでしょうか。

 

# 今手元で回している新戦型は26-21で勝ち越していますが....果たしてコレは誤差なのでしょうか。