第20回世界コンピュータ将棋選手権 1次予選 3回戦
3回戦の相手は「椿原将棋」。
椿原将棋はグループで開発されていて、PC-8001(6001だったかな?)の時代からBASICで組んでいるとのお話にびっくり。
今回、20回出場で表彰された柿木将棋より歴史は古い、とおっしゃってました。
自分もBASICを使っていたので、LAN対戦はどうしているのだろうと思って聞いてみたら、今はVisual BASICを使っているということで
「Excelでも組める」とのこと。
VBでの出場は(たぶん)他になく、オリジナリティ満載です。
マシンはノートPCでしたが、Core i5を積んでいるとのことで、ym将棋のマシン(Core 2 Duo)より数段速そうです。
この対局は開始直後に椿原将棋のエラーで中断してしまい、審判長(香山さん)の判断で指し直しとなりました。
後手はきれいな美濃囲いに囲ったものの、王が82と71を行ったり来たりする状態。
ym将棋はちゃんと囲えず、9筋の歩を突いて▲95歩△同歩となった場面です。
後手:tsubaki 後手の持駒:歩 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歩 ・ ・ | 五 |
・ ・ ・ ・ 歩 歩 ・ 歩 ・ | 六 |
・ 歩 角 ・ ・ ・ 歩 銀 歩 | 七 |
・ ・ ・ ・ 金 飛 ・ ・ ・ | 八 |
香 桂 銀 金 玉 ・ ・ 桂 香 | 九 |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
ここでym将棋は▲16歩。
その場では、▲95同香△同香▲同角でいいのじゃないか、と思っていたのですが、ログを見直してみると、▲95同香に対して△94歩打という手があって、それを嫌ったようです。
戻って▲95歩を指した局面では、読み筋が▲95歩△95歩▲16歩△96歩▲55角などとなっています。
プログラム的には予定通りではありますが、▲16歩と指すのなら、▲95歩△95歩を入れる必要はないわけです。
これはどうもおかしいと思って、対局後に調べてみると、水平線効果のチェックに2つの不具合があることが分かりました。
ym将棋では、探索で最善手順が見つかった後、水平線効果の可能性があるかチェックを行い、可能性があれば探索延長などの対応を取ります。
最初のチェックでは、「駒に取りをかける手(王手含む)→取りをかけられた駒が逃げる手」「駒を取る手→その駒を取り返す手」といった、水平線効果が発生しやすいパターンに当てはまるかを判定します。
ここで、▲95同香△同香はこのパターンに当てはまるので探索延長を行い、評価値が良くなることはないので水平線効果と判断され、指し手から取り除かれてしまいます。
しかし、もし▲95同香が駒得をする手*1だったら、水平線効果のチェックをせず、その手の良否は探索に委ねることにしています。
この判定は前日に入れたのですが、本来なら▲95同香はSEEでは歩得なので、水平線効果のチェックをしてはいけないのですが、その判定が間違っていて、チェックに回してしまっていました。
そして、探索延長しても評価が良くならないということで、水平線効果と判定し、▲95同香を読みから外してしまいました。
これが1つ目の不具合です。
1回戦、2回戦で変な手を指していたのも、どうやら同じ理由のようです。
この不具合は比較的簡単に修正できたので、3回戦の終了後に修正を行い、実行ファイルの入れ替えが4回戦に間に合わなかったので、5回戦から修正版を投入しています。
ちなみに、修正後のプログラムで上記の▲95歩を指した局面を読ませてみると、やはり▲95歩と指します。
ただ読み筋は変わっていて、▲95歩△36歩▲36歩△45歩▲68角△46歩となっていました。
ここに2つ目の不具合が隠れているのですが、それは別のところで書きます。
本局に戻り、▲16歩の後、椿原将棋の△43歩に対して、ym将棋は何と▲15歩。
△15同歩▲同香となって、意味もなく歩を捨ててしまいました。
さらに△14歩と打たれ、香も殺されます。
バグの影響(ということは対局後に分かったのですが)とはいえ、こちらは茫然と見ているしかありません。
以降、評価値はずっと悪いままで、ym将棋も多少見せ場は作るものの、じりじりと追い詰められて以下の局面に。
後手:tsubaki 後手の持駒:銀二 桂二 歩八 9 8 7 6 5 4 3 2 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
v香v桂 ・ ・ ・ ・ 杏 ・ ・ | 一 |
・ ・ ・ ・ ・ ・ ・ ・ ・ | 二 |
・v歩v玉 ・ ・ ・v桂v歩 ・ | 三 |
・ ・v歩v歩 ・v歩 ・ ・ ・ | 四 |
歩 ・ ・ ・v金 ・ ・ ・ ・ | 五 |
銀 銀 ・ ・v馬 歩 ・ 歩 ・ | 六 |
・ 歩 ・ ・ ・ ・ ・ ・ 玉 | 七 |
・ ・ ・ ・ 金 ・v龍 ・ ・ | 八 |
・v龍v角v金 ・ ・ 金 ・ 香 | 九 |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
先手玉は詰み直前ですが、ここで38の後手龍を取らなかったことで、椿原将棋の方が驚いておられました。
ym将棋の読みとしては、▲38同金と取ると、その後△16銀から詰む、と読んでいて、他の手を探しています。
ここで残り時間3分20秒のところ、1分45秒使って指したのが▲28香。
これで詰まないという確信があったのではなくて、αβ探索では手が見つけられなかったので、モンテカルロ探索で指しています。
次の△39竜で負けを読み切りました。
以下、投了図です。
後手:tsubaki 後手の持駒:金 銀二 桂二 香 歩九 9 8 7 6 5 4 3 2 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
v香v桂 ・ ・ ・ ・ 杏 ・ ・ | 一 |
・ ・ ・ ・ ・ ・ ・ ・ ・ | 二 |
・v歩v玉 ・ ・ ・v桂v歩 ・ | 三 |
・ ・v歩v歩 ・v歩 ・ ・ ・ | 四 |
歩 ・ ・ ・v金 ・ ・v龍 玉 | 五 |
銀 銀 ・ ・v馬 歩 ・ ・ ・ | 六 |
・ 歩 ・ ・ ・ ・ ・ ・ ・ | 七 |
・ ・ ・ ・ 金 ・ ・ ・ 歩 | 八 |
・v龍v角v金 ・ ・ ・ ・ ・ | 九 |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
終盤、椿原将棋は89竜を作ったのに、それを活用しないで、かえって79角とか69金とか、竜の筋を止めるような手ばかり指していたので、聞いてみると
「自分の王、相手の王両方から離れた位置にある駒を動かす手は読んでいない」
ということなのでした。
128手目に△79角を打ちこまれてから、ym将棋はずっと△46角成を予想していたので、予測読みが外れまくっていました。。
もし△46角成を指されていたら、もっと早く負けたかもしれませんが、勝ちが決まってからの指し手は直線的で見事でした。
*1:SEEで判断