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

5回戦の相手は「なり金将棋」。
なり金将棋さんのモニターでずっと観戦させていただきましたが、こんなに長い対局になるとは思わず、終わってからは2局分の疲労が押し寄せました。
(自分は指してないのに疲れてしまうのが面白いところです)


なり金将棋さんはメインマシンの調子が悪いということで、ノートPCでの対戦でした。
対局が90手以上進んだところで、次の局面に。

後手:ymshogi
後手の持駒:歩三 
  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歩 銀 ・
香 ・ ・ ・ ・ 角 ・ 桂 香
                                                        • +
先手:narikin 先手の持駒:角 歩二  手数=95 ▲2八銀 まで 後手番


ここでym将棋は痛恨の無限駒捨てに走ってしまいます。
△39歩成▲同銀△38歩打▲28銀△39歩成…というループに入り、頭を抱えていたところ、突然対局が中断。
モニターの右下には「ローカル エリア ネットワークに接続しました」のポップアップメッセージが。


慌ててym将棋のモニターを見ると、2度目の△38歩を指して、相手の指し手を待っています。
ネットワーク関係のメッセージは特に出ていないようです。
事務局の方もにわかに慌ただしくなってきて、なり金将棋さんの島のハブが一度切れて、サーバとの間の通信が瞬断したらしいことが分かりました。


復旧後、審判からは途中局面からの再開の指示が。
将棋所を使っている方は分かると思いますが、対局中は「中断」ができません。従って、終わるときはサーバからの指示が必要です。
しかし、このときはサーバからの切断ができないということでした。
このときym将棋は予測読み(ponder)中で、将棋所を強制終了(×閉じ)することも考えましたが、ふと思いついて、デバッグウィンドウを開き、コマンド送信で「stop」コマンドを送ってみました。
すると、エンジン側では思考を終了し、サーバからは「LOGOUT:completed」が送られてきました。


通信ログを保存しなかったのではっきりしたことは言えませんが、おそらく、サーバからは最初に「#CHUDAN」が来ていたのだと思われます。
しかし、エンジンが予測読み中だったので、stopはしなかった。
手動でstopを送ったところで、すでに「#CHUDAN」が来ているということで、サーバに「LOGOUT」を送ったのではないでしょうか。
なおエンジンには、stopを投入した直後「gameover lose」が来ていました。


とにかくログアウトができたので、再度ログインしてみると、さすがは将棋所。見事に、中断局面での対局待ち状態になりました。
しかしなり金将棋さんの方はうまくいかず、結局最初からやり直しということになりました。


指し直し局は、あまり駒もぶつからず淡々と進みました。
ym将棋の評価値は一進一退でしたが、すこし優勢と判断したのが次の局面。

後手:ymshogi
後手の持駒:桂 歩 
  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角 歩
歩 歩 ・ ・ 歩 歩 ・ ・ ・
香 ・ 金 ・ 玉 銀 ・ 歩 香
・ 桂 ・ ・ 金 ・ ・ ・ ・
                                                        • +
先手:narikin 先手の持駒:角 桂  手数=71 ▲5五飛 まで 後手番


ここでym将棋が△44角と引いて、なり金将棋は55の飛車の行き場所に困ったかもしれません。
ym将棋の読み筋は△44角▲25飛△66角▲49王△24銀でしたが、実戦では▲65飛△64歩をはさんだ後▲25飛。
その後の△54桂が渋かった。

後手:ymshogi
後手の持駒:歩 
  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歩 ・ ・
・ ・ 歩 ・ ・ ・ ・ 飛 ・
・ ・ 銀 歩 ・ ・ 歩 ・ 歩
歩 歩 ・ ・ 歩 歩 ・ ・ ・
香 ・ 金 ・ 玉 銀 ・ 歩 香
・ 桂 ・ ・ 金 ・ ・ ・ ・
                                                        • +
先手:narikin 先手の持駒:角 桂  手数=76 ▽5四桂 まで


見たときは、これは何? という感じでしたが、CSA山田さんによると、控えて桂を打つ手筋とのこと。
言われてみると、次の△66桂が先手に厳しそうです。


この後は攻め合いとなって、しばらくすると次の局面に。

後手:ymshogi
後手の持駒:歩二 
  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と 桂 金 ・ 歩 ・ ・ ・
香 ・ ・ 金 ・ 銀 ・ 歩 香
・ ・ ・ 玉 ・ ・ ・ ・ ・
                                                        • +
先手:narikin 先手の持駒:角  手数=93 ▲7四歩 まで 後手番


至る所で駒がぶつかっていて、どちらが優勢なのかもよく分かりません。
ym将棋の評価値は後手優勢となっていましたが、一手でがらっと形勢が変わりかねないので、見ている方はひやひやです。


ここで△84銀から駒の清算が始まり、しばらくすると次の局面に。

後手:ymshogi
後手の持駒:飛 銀 桂 歩四 
  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金 金 ・ ・ ・ 歩 香
・ ・ ・ 玉 ・ ・ ・ ・ ・
                                                        • +
先手:narikin 先手の持駒:角二 銀  手数=110 ▽7八金 まで


こうなってみると、素人目にも後手優勢が見てとれます。
先手王は必死に逃げますが、ym将棋が何とか寄せきってくれました。


以下、投了図です。

後手:ymshogi
後手の持駒:桂 歩三 
  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銀 ・ 歩 香
・ ・ ・ ・ ・ ・ ・ ・ ・
                                                        • +
先手:narikin 先手の持駒:角二 金 銀二 歩二  手数=136 ▽2五飛 まで


指し直し局では(自分の見た感じでは)変な指し手もなく、バグ修正の効果が出たと喜んでいたのですが、後で調べてみると、1局目で無限駒捨てに走ったのが別な不具合と分かりました。
3回戦の記事にも少し書いたのですが、これも水平線効果のチェックに関係するバグです。
「駒を取る手→その駒を取り返す手」といったパターンの指し手に対してチェックをするのですが、このチェックはあくまで最善手順の指し手に対して行うので、最善手順に入っていない指し手には無力なのです。
どういうことかというと、たとえば冒頭の局面で△39歩成▲同銀のあと△38歩と打ってしまうのは、その後の読み筋が▲72成香△72同金となっていて、つまり打った歩を取る▲38同銀より、銀を取る▲72成香の方を最善手とみているため、△38歩▲72成香だと水平線効果のチェックをすり抜けてしまい、そのまま指してしまったということです。


死闘? を制し、これで2勝3敗となりました。
2次予選進出には、もう1つも負けられない戦いが続きます。