第18回世界コンピュータ将棋選手権 1次予選 6回戦

5回戦での切れ負けを受けて、またまた時間監視を見直してみました。
まず、4回戦の前の「中盤により時間を使うようにした」修正を元に戻しました。
その他、反復深化が何回か連続して同じ最善手を返した場合に、次の反復深化に行かないようにしているのですが、そのしきい値を下げ、
さらに、1秒将棋に入るタイミングも少し早めにしました。


6回戦の相手は「禿鼠」。
今参加者一覧を見直してみると、開発者グループ名は「如水」となっていて、戦国武将を連想させます。
作者の方々が挨拶に来られたとき、プログラムの仕様について少しお話しました。
ym将棋の方の探索は、単純な全幅探索+反復深化で、特殊な技法で使っているのはNull-move pruningくらいですが、探索の深さを聞かれて
「深さ7までいくときもあるが、5くらいが限度」と答えると、「すごいですね」と驚かれました。
こっちがびっくりです。
禿鼠の方は、ym将棋よりさらに浅い探索のようです。
ただ、ym将棋にはない静止探索が入っていて、「重くないですか?」と聞いてみると、末端ノード全部に静止探索をかけているのではないとのこと。
(詳しく説明していただいたのですが、企業秘密かもしれないので、ここには書かないことにします)


対局の方は、9手目に先手ym将棋が▲76歩と角道を開けた瞬間、△88角成と角交換してきました。
ym将棋は13手目、またまたまた▲77桂と跳ねてしまいました。


観戦そっちのけで話しに夢中になっている間、後手禿鼠は着々と囲いを組み上げています。後手陣は左美濃囲い(で合ってるでしょうか)のようです。
26手目あたりから、禿鼠の妙な指し手が続きました。
図は26手目、△36歩まで。

後手の持駒:なし
  9 8 7 6 5 4 3 2 1
                                                        • +
v香v桂v銀 ・ ・v金 ・v桂v香
・v飛 ・ ・v金 ・v銀v玉 ・
v歩 ・v歩v歩 ・ ・v角v歩v歩
・v歩 ・ ・v歩v歩 ・ ・ ・
・ ・ ・ ・ ・ ・ ・ ・ ・
・ ・ 歩 ・ 角 歩v歩 歩 ・
歩 歩 桂 歩 歩 ・ 歩 ・ 歩
・ 金 ・ 銀 ・ 銀 ・ 飛 ・
香 玉 ・ ・ ・ 金 ・ 桂 香
                                                        • +
先手の持駒:なし 先手:ymshogi 後手:BALD_RAT

この歩は完全にタダ、だと思います。ym将棋は即決で▲36同歩と取りました。
その後、△55歩と角を攻めにきたので▲47角と逃げると、今度は△45歩と突いてきます。
これもタダだと思うのですが、ym将棋は50秒も悩んでやっと▲45同歩。
初めの方の反復で、なぜか▲35歩の方がいい手だと思っていて、その後しばらく▲45同歩とのあいだで最善手が揺れてしまったため、確定に時間がかかったようです。
なぜ▲35歩を高く評価したのかは謎です。


少し進んで、ym将棋が▲34歩と角の頭を攻めます。
図は35手目、▲34歩まで。

後手の持駒:なし
  9 8 7 6 5 4 3 2 1
                                                        • +
v香v桂 ・ ・ ・v金 ・v桂v香
・v飛 ・v銀v金 ・v銀v玉 ・
v歩 ・v歩v歩 ・ ・v角v歩v歩
・ ・ ・ ・ ・ ・ 歩 ・ ・
・v歩 ・ ・v歩 歩 ・ ・ ・
・ ・ 歩 ・ ・ ・ ・ 歩 ・
歩 歩 桂 歩 歩 角 ・ ・ 歩
・ 金 ・ 銀 ・ 銀 ・ 飛 ・
香 玉 ・ ・ ・ 金 ・ 桂 香
                                                        • +
先手の持駒:歩二 後手番 先手:ymshogi 後手:BALD_RAT

禿鼠は、ここで長考に入りました。
開発者の方とディスプレイの前で、「ここは角が逃げますよね。どこに逃げますかね」というような話をしていました。
そして、1分21秒の後、返ってきた指し手は、何と△56歩。
あっさり角を見捨ててしまいました。えっという感じです。
確かこの辺りで作者さんたちは状況確認のため、自分の席に戻られたと思います(もうちょっと前だったかもしれません)。私も一緒についていきました。


ym将棋は即決で▲33歩成と角を取り(ちゃんと成ってくれたのは嬉しかった)、△33同銀と取られましたが、ほとんどタダで角を手に入れたので、評価値も+2300くらいに急上昇です。
さらにさっきの56の歩も▲56同角と取ってしまいます。(56同歩でもよかったのですが、評価値のわずかな差で角で取っていました)
禿鼠の開発者の方々は、角を見捨てた原因についていろいろお話をしていました。
囲いの形も評価の対象になっているようで、ある程度の駒損なら囲いの形を優先することもあるようなのですが、
「さすがに角を捨てるのは、バグだろう」という結論になったようです。


その後56の角は、△55歩打と攻められていったん47に引いた後、25へ進出しました。
さらに数手進んで48手目、禿鼠が△24歩と角の頭に突いてきます。
図は48手目、△24歩まで。

後手の持駒:歩
  9 8 7 6 5 4 3 2 1
                                                        • +
v香v桂 ・ ・ ・v金 ・v桂v香
・v飛 ・ ・v金 ・ ・v玉 ・
v歩 ・v歩v歩v銀 ・v銀 ・v歩
・ ・ ・ ・ ・ ・ ・v歩 ・
・v歩 ・ 桂 ・ 歩 ・ 角 ・
・ ・ 歩 ・ ・ ・ ・ 歩 ・
歩 歩 ・ 歩 銀 ・ ・ ・ 歩
・ 金 ・ 銀 ・ ・ ・ 飛 ・
香 玉 ・ ・ ・ 金 ・ 桂 香
                                                        • +
先手の持駒:角 歩四 先手:ymshogi 後手:BALD_RAT

禿鼠のディスプレイの前で観戦していた私は、「角が逃げると思うんですけど…」と話していましたが、35秒後にym将棋が返したのは、▲71角打でした。
一応飛車取りですが、禿鼠の方と「飛車が逃げればいいのでは?」と首をひねっていました。
実際禿鼠は△83飛と逃げ、何も起こらないかと思ったのですが、その後▲53桂と銀を取り△同金▲同角成と進んだのを見て、やっと意味が分かりました。
これで桂と金銀の交換になり、さらに馬を作っています。むろんその後で25の角は取られるのですが、自分の作ったプログラムながら、思わず感動してしまいました。


むろん最初からそこまで読んでいたわけではなく、
▲71角打の時点では、5手読みで▲71角打△72飛▲52角成△同金▲53角成という読み筋で、評価値は+4000を超えています。
これだと、先手は金と銀、後手は角を取っているので、多少先手が駒得のようですが、その後、△53同金▲同桂成で、さらに先手が金を、後手が角を取れそうです。
金金銀と角角の交換だと、どっちが得なんでしょうか。やっぱり静止探索は欲しいところです。
▲53桂の時点では、6手読みで▲53桂△25歩▲41桂成△32角打▲51成桂△同金という読み筋で、評価値は+3000程度。
先手は銀と金、後手は角と桂を手にします。これも同じくらいな気がしますがどうでしょうか。実戦の変化と同じですが、実戦では馬を作っている分有利でしょう。


実戦ではこの後、▲72銀打と再び飛車を取りに行きます。
図は55手目、▲72銀打まで。

後手の持駒:角 桂 歩
  9 8 7 6 5 4 3 2 1
                                                        • +
v香v桂 ・ ・ ・v金 ・v桂v香
・ ・ 銀 ・ ・ ・ ・v玉 ・
v歩v飛v歩v歩 馬 ・v銀 ・v歩
・ ・ ・ ・ ・ ・ ・ ・ ・
・v歩 ・ ・ ・ 歩 ・v歩 ・
・ ・ 歩 ・ ・ ・ ・ 歩 ・
歩 歩 ・ 歩 銀 ・ ・ ・ 歩
・ 金 ・ 銀 ・ ・ ・ 飛 ・
香 玉 ・ ・ ・ 金 ・ 桂 香
                                                        • +
先手の持駒:金 歩四 後手番 先手:ymshogi 後手:BALD_RAT

△84飛と逃げるだろうと予測していたのですが、禿鼠は△55角打と、先手の飛車を狙ってきました。
しかしこれは、▲46金打で角が死んでしまいます。やむなく禿鼠は△46同角と金を道連れにし、▲同金で角を手放してしまいました。
開発者の方々も「せっかく角を取ったのに」と嘆声が。


この後、△82飛と銀を取りに行くものの、ym将棋はしつこく▲71馬。
禿鼠はここで飛車を見捨て、△96桂打。次に△88桂成で、金を取って王手だから、飛車を捨ててもよいと判断したのでしょうか。
実戦でもそのように進みますが、△88桂成は▲同玉で何も起こらず、飛桂と金の交換になってしまいます。


以後、ym将棋は今取った飛車を打ちこんで、龍を作る展開になりましたが。。
図は76手目、△31玉まで。

後手の持駒:歩二
  9 8 7 6 5 4 3 2 1
                                                        • +
v香v桂 ・ ・ ・ ・v玉v桂v香
・ 馬 銀 ・ ・v金 ・ ・ ・
v歩 ・v歩v歩 龍 ・v銀 ・v歩
・ ・ ・ ・ ・ ・ 桂 ・ ・
・ ・ ・ ・v金 歩 銀v歩 ・
・ ・ 歩 ・v金 ・ ・ 歩 ・
歩 玉 ・ 歩 ・ ・ ・ ・ 歩
・ ・ ・ 銀 ・ ・ ・ 飛 ・
香 ・ ・ ・ ・ 金 ・ 桂 香
                                                        • +
先手の持駒:角 歩五 先手:ymshogi 後手:BALD_RAT

ここで▲42龍と、金を取って龍を捨ててしまいました。
読み筋は△42同銀▲同桂成の後、△22玉となぜか逃げる手を読んでいます。△42同玉を評価しないのは謎です。
ディスプレイの前では、「これは詰みがあるのかな?」などと話をしていましたが、そんなことはありませんでした。
しかも実戦では△42同銀の後、▲22金打としています。
これは△同玉と取れないので、△41玉の1手なのですが、禿鼠はこれを1分28秒かけて返してきました。
開発者のリーダーらしき年配の方が、
「1手しかないんだから、すぐ返せばいいんじゃないのか」と話しています。
若手の方は、「いえ、逃げた後、どうすればいいのかを読んでるので…」と答えてましたが、
「読んだって、どうせ1手しかないんだから、読んだって答えは一緒じゃないのか?」と。


この辺り、盤上に駒はたくさんあるものの、私は内心ひやひやしていました。
△41玉の後▲32角と打って、ym将棋の持ち駒が歩だけになってしまったからです。
その後も寄せ方がどうもまずいようで、後手の王様は51→42→53→64と、どんどん広い方へ逃げて行ってしまいました。64まで来た時点で、私は半分勝ちをあきらめていました。
相手の方も「先手は攻め駒がないから、逆転のチャンスはあるかもねえ」とのこと。
「詰め将棋はありますか?」とも聞かれました。
ym将棋には詰め将棋は入れてないので、通常探索だけで、5手詰みくらいなら見つけられると答えると、
「それなら望みはあるかもしれない」とのこと。
禿鼠には9手詰みのルーチンが入っているそうです。(ただ、9手読めない場合もあるようでした)


ということで、先手は持ち駒がなくなり、後手は飛車と桂を手にしているので、逆転の可能性も濃くなってきました。
ym将棋は中盤で持ち時間を大量に使うので、71手目を指した時点で、ym将棋は16分46秒を消費、禿鼠は11分10秒で、大差がついています。
従って、ym将棋は相手を詰ませなければ、勝ち目はありません。
ところが、その後から禿鼠は突然長考するようになり、1手ごとに1分半近く消費して、88手目を指したとき、禿鼠は22分54秒を消費していました。
ym将棋は19分48秒で、いつのまにか逆転しています。
90手目でもまた1分半近く考えているので、「時間は大丈夫なんですか?」と聞いてみました。
思考開始時点で、消費時間が23分を過ぎていると、読みを短くするそうで、この手は開始時点で22分54秒だったから、次から短くなるということでした。
そして92手目。
すでに残り40秒となった禿鼠は、時間制御がうまく働かなかったのか、やはり長考に入り、そのまま無情にも時間切れとなりました。


2局連続で時間のかかる対局でした。
今度は勝ちを拾いましたが、文字通り「詰めが甘い」ことを痛感しました。
ただ、時間配分はうまくいったようなので、最後の7回戦もこのままでいくことに。