WCSC35(第35回世界コンピュータ将棋選手権)の二次予選において、dlshogi VS nshogiが、dlshogi思考時間0秒のまま勝ちきってしまった。言うまでもなく、二次予選において詰みまで思考時間0秒で指して勝利した将棋は、本大会初である。今回は、このことについて詳しく書く。
将棋界隈では、「将棋というゲームが解明されてしまったのではないか!?」と言われている。多くの将棋系YouTuberが、本対局を取り上げている。そのなかでも下記の3つの動画は特に面白く解説としてもわかりやすいものになっているので是非ご覧いただきたい。
初手~最終手まで消費時間0秒で完勝!最新将棋AIが詰みまで研究して将棋の結論に近づいていると話題に…(元奨励会員アユムの将棋実況)
https://www.youtube.com/watch?v=3aAlP1mz82I
【ついに開幕】将棋AIの世界大会で「最後の詰みまで研究」という事件が発生(将棋情報 そら)
https://www.youtube.com/watch?v=7hAxuYgtagI
【将棋の未来】AIの勝局がプロ実戦と完全一致していた!?(棋士中村太地将棋はじめch)
https://www.youtube.com/watch?v=D-RHkfW5FtE
dlshogi自体は、その開発者の山岡さんによると、「定跡に250万局面を登録していましたが、今大会では、330万局面を登録していました。」とのことである。
第35回世界コンピュータ将棋選手権 結果報告(TadaoYamaokaの開発日記)
https://tadaoyamaoka.hatenablog.com/entry/2025/05/06/133746
HEROZで社内のデータセンターのGPUが空いている時は、定跡を掘るのに使っているそうなのだが、1年間で80万局面しか掘れていない。定跡生成時に1局面に、大会と同じ思考時間で探索できるぐらいのノード数(局面数)を探索しているらしいので、このペースは仕方がないとも言える。
やねうら王のほうは、本大会では220万局面用意した。(NNUE系のエンジンを用いて、1局面につき1スレッド2億ノード)
なので、330万局面というのが、どの程度の網羅度なのかはよく理解できるが、そんなに網羅はできていない。角換わりで掘れていないところはまだたくさんあるようだ。実際、決勝日にdlshogi VS やねうら王で、やねうら王側は後手であったが、dlshogiは千日手局面に持ち込まれてしまう。山岡さんは「(本局に関しては)定跡では、やねうら王に完敗です。」と仰っていた。(ただし、その後、やねうら王側が無理な打開をしたらしく、敗北している。)
やねうら王の定跡の自動生成手法では、垂直(手数方向)に掘っていく。こう掘ったほうが、直前で思考していた結果(置換表の結果)が活きるので、同じ思考時間にしては良い指し手を指せるからである。そして、評価値の絶対値が400を超えた時点でその枝を掘るのは打ち切る。
この絶対値が400を超えたところで打ち切るというのは、水匠のたややんさんの定跡の自動生成手法がそうなっていたのでそれを踏襲した形である。
ちなみに、たややんさんの定跡の自動生成スクリプトでは、水匠のbestmoveのみを掘っていく形となっていた。そのため、比較的狭い変化しか掘れていないが、そのかわり、評価値が400を超えた時点で勝ち、-400を下回った時点で負けとして扱うため、定跡の末端の局面には勝ちと負けしか存在しないような定跡DBとなる。そして、先手必勝が証明されるまで定跡を掘るようである。定跡DBには、水匠のbestmoveしか指し手が登録されていないが、その代わり、(非常に完成度の高い)先手必勝定跡ができあがるという仕組みである。これは単純な仕組みだが、よく工夫されているし、完成度の高い定跡が生成されることが知られている。
ただし、この定跡DB上は、先手必勝が証明されているため、後手番では何もなすことができないという欠点がある。そのため、この手法では後手番の定跡を得ることが難しく、たややんさんも腐心されているようである。
そこで、私は、この400を超えたところから例えば、そのあと対局を続けて勝ちまでの手数を算出し、それを評価値400に加点すればどうかと考えた。その局面の勝ちやすさは、評価値400を超えてから勝ちまでの手数で近似できるのではないかと考えたわけである。
水匠定跡のことを詳しく書くとこの記事が終わらなくなってしまうので、話を元に戻して続ける。
WCSC35の決勝日に山岡さんから直接聞いた話を総合すると、dlshogiでは、定跡を掘るのを評価値で打ち切っていないようである。つまりは、有力なところは場合によっては詰みまで掘れるようである。
そんな掘り方をすると、たまたまたくさん掘ったところに高い評価値がついて、本来勝ちやすいほうの指し手にはそれより低い評価値がついていることがあるのではないかと思ったのだが、そのあとよくよく考えてみると、そうでもないようである。
と言うのも、df-pnという有名な詰将棋アルゴリズムにproof number(証明数)という概念が出てくるのだが、これと同じなのではないかと思った。
どういうことかと言うと、proof numberとは、その局面の詰みを証明するために、詰みを証明しないといけない子局面の数を意味しているのだが、これが大きな数だと、その局面の詰みを証明するのは難しいということである。df-pnとは、詰ませる側は、proof numberの小さなところを優先的に調べていき、詰まされる側は、disproof number(詰まなさを表す証明数)の小さなところを優先的に調べていくようなアルゴリズムである。
定跡も、ある局面で2つの有力な指し手があるとして、それぞれを同じ局面数だけ定跡を調べた結果、片方の評価値が(その定跡の手順で)400、もう片方の指し手が100だったとする。そうすると前者のほうが(変化が少なく)簡単に必勝に持っていけるということではある。別の言い方をすると(df-pnで言うところの)proof numberが小さいから、少ない局面数を調べるだけで必勝が証明できそうということである。
なので、バランス良く調べていくなら、(評価値400で打ち切るというようなことはせずに)詰みまで調べていき、その手順の評価値が高いほうの指し手をその局面の定跡とするのは、一定の合理性があるということである。逆に、それが後手番(必敗の側)であっても、自分から見た評価値が高い指し手は、必敗を証明するのが難しいはずであるから(df-pnで言うところのdisproof numberが大きい)、こうなっていれば、評価値を高い指し手を選ぶことは合理的なのである。
そんなわけで、評価値400で打ち切らないほうが良いということが思考実験によりわかった。やねうら王もWCSC35以降で、定跡生成のときの、この制限を取り払うことにした。
話がずいぶん脱線したが、本局に関しては、次の仕掛けの局面からの変化である。

これは現代の角換わりでもっとも出てくる仕掛けの局面と言えるかも知れない。この局面はやねうら王の定跡でも先手勝勢は証明できている。仕掛けた時点で先手勝勢である。
dlshogiのほうは、やねうら王の定跡より精度が高いし(強いソフトで長い時間を用いて生成しているから)、定跡の収録局面数も多いので、定跡のこの局面にはすでに必勝に近いスコアがついているかも知れない。
角換わりの定跡を掘っていると、色んな手待ちの指し手が出てきて、無駄に変化だけは多いのだが、そのなかで仕掛けが成立する形というのはそんなに数多くないようである。(これについて詳しいことはまた別の記事で書く)
それで、「仕掛けた局面」というのは、いったん桂馬を跳ねるだとか、突き捨てを入れるだとかした局面のことであるが、仕掛ける側は普通は駒損するので、駒損の代償を相手玉に迫るスピードなどに求めるわけである。仕掛けられた側は、これを耐えきれば勝利である。
つまりは、仕掛けた局面以降は、普通は、双方、後戻りはできないのである。
このことはある程度将棋が強い人の間では常識なのであろうが、私は(わかってはいたものの)あまり実感を伴っていなかった。
実際、上記の仕掛けの局面から、定跡を掘っていくと手待ちのような局面には合流しないようである。なので、(組み合わせ爆発は生じず)どんどん深くまで掘れて、先手必勝ぐらいまでで良ければ(強いソフトを用いておそらく10万局面ぐらいも掘れば)結論が出せるようである。(まあ、大量のGPUを投与して年間80万局面しか掘れない状況において、10万局面掘るのがどれだけ大変かと言う話はあるが…)
そんなわけで角換わりの仕掛けた局面は、このようにして、大規模定跡の自動生成手法によって必勝手順まで順次解明されていくと思う。
それで本譜の手順はわりと変化が狭く、また、floodgateやプロの実戦例でも100手目ぐらいまではあるようで、dlshogiはそこから数手掘れているにすぎない。そして、数手掘った局面で、dlshogiにはdf-pnアルゴリズムを用いた詰将棋ルーチンがあるので長手数の詰将棋になったということのようである。
WCSC35のときに山岡さんに聞いた話では、dlshogiの定跡は詰みが見つかった局面では(登録しても無駄だから)定跡に登録するのを打ち切っているそうで(そりゃそう)、つまりは、本局に関しては詰みまでが定跡だったわけではなく、即詰みがある局面までが定跡で、そこからはdf-pnによって即詰みに討ち取ったようである。
ちなみに、やねうら王も(dlshogi互換エンジンであるふかうら王では)df-pnを実装しているので、その局面になれば同様に即詰みに討ち取れる。また、やねうら王の定跡でも、本譜の手順はdlshogiには少し及ばないものの、かなりのところまで定跡DBに登録されている。
ともかく、これが本局の真相である。
やねうら王では、WCSC35の決勝日の時点では220万局面の定跡を持っていた。これ自体は、やねうら王の支援者向けに今月15日に発行したやねうら王News Letterで配布したので、興味のある方は、そちらも確認して欲しい。
その後、やねうら王プロジェクトでは、(Xeon 2698 dual×6に)9950XのPCを4台追加して、定跡を生成しており、現在は270万局面ほど掘れている。これは来月のやねうら王News Letterで配布する予定である。
あと、今回WCSC35で優勝した水匠10の評価関数ファイルは、近日中に発行する、やねうら王News Letter(FANBOX 4000円/月、GitHub Sponsors $25/month以上のプラン)にて配布する。
興味のある方は、是非、支援をお願いしたい次第である。(9950X PCをあと6台ぐらい買って定跡をどんどん掘って、角換わりの有名な仕掛けの局面をすべて必勝手順まで解明したいと思っている。)