モンテカルロ将棋

週1で更新するとか言って結局一か月放置なわけです。GPWにはお金がなくていけませんでした…というのは半分くらい嘘で、少し切り詰めれば行けたのですが、GPW杯に出せるプログラムもできていなかったので今回は見送ることにしました。

モンテカルロ将棋

話は変わって、卒論でモンテカルロ将棋をテーマにしています。現在の性能はというと、

将棋タウン棋力判定問題集*1 24/50
コンピュータ将棋の進歩2   10/48

こんな感じです。当然ですがUCTを使っています。ルートへのplayoutの割り当て回数は40,000回。まだパラメータによってかなり正解数が変わってしまう感じですが、モンテカルロ将棋にしては思ったほど悪くないのではないでしょうか?

渡辺竜王bonanzaの対局の中からいくつかの局面をモンテカルロ将棋に解かせてみました。長くなってしまったので落ちはなしで。

後手:渡辺明 竜王
後手の持駒:歩 
  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龍 ・ ・ ・ ・ ・ 金 桂 玉
                                                        • +
先手:Bonanza 先手の持駒:銀 香二 歩五  手数=88 ▽1五金 まで 遠見(MC) 40,000playouts / 66.7sec Best ▲2七香(0.324) Second ▲3七馬(0.294)


敗着とされている局面です。bonanzaは▲2四歩を選択、以下攻め合い負け。▲2七香△2六金▲同香△2七歩▲3八金打△2八歩成▲同馬ならまだ難しかったとされています*2モンテカルロ将棋でこのまま進めていくと▲3八金打のところを残念ながら▲3七銀打としてしまうのですが、▲3八金打も僅差で次善手に挙がっているので、改良次第では竜王の述べた順を指せるようになるかもしれません。

後手:渡辺明 竜王
後手の持駒:飛 歩 
  9 8 7 6 5 4 3 2 1
                                                        • +
馬v桂 ・ ・ ・ ・ ・v桂v玉
・ ・ ・ ・ ・ ・ ・v金v香
v歩 ・ ・ と ・v歩v角 と ・
・ ・v歩 ・v歩 ・v歩 ・v歩
・ ・ ・ ・ ・ ・ ・ 銀 ・
・ ・ 歩 ・ 歩 ・ 歩v金 ・
歩 ・ 桂 ・ ・ ・ ・v歩 歩
・ ・ ・ ・ ・ ・ ・ 銀 香
v龍 ・ ・ ・ ・ ・ 金 桂 玉
                                                        • +
先手:Bonanza 先手の持駒:金 銀二 香二 歩三  手数=95 ▲2三歩成 まで 後手番 遠見(MC) 40,000playouts / 39.8sec Best △2三金(0.661) Second △3九竜(0.596)


この局面で△3九竜を指せるか?という問題。残念ながら最善手にはあげられませんでしたが、playoutを80,000回に増やすと差が若干縮まるので、playout数をかなり増やせば△3九竜が指せるかもしれません。ちなみにplayout中の指し手選択のパラメータを少しいじってやると、簡単に△3九竜が指せます。モンテカルロ将棋では、シミュレーションの性質によって指し手がかなり変わってくるので、局面によって上手い具合に指し手の選択確率を変更できるようにすれば、かなり良い性能が得られるかもしれません。

後手:渡辺明 竜王
後手の持駒:飛 角 銀 歩 
  9 8 7 6 5 4 3 2 1
                                                        • +
・v桂 ・ ・ ・ ・ ・v桂v玉
・ ・ ・ ・ ・ ・ ・v角v香
v歩 ・ ・ と ・v歩 ・ ・ ・
・ ・v歩 ・v歩 ・v歩 ・v歩
・ ・ ・ ・ ・ ・ ・ 銀 ・
・ ・ 歩 ・ 歩 ・ 歩 ・ ・
歩 ・ 桂 ・ ・ ・ ・v金 歩
・ ・ ・ ・ ・ ・ ・ ・ 香
・ ・ ・ ・ ・ ・ ・ 桂 玉
                                                        • +
先手:Bonanza 先手の持駒:飛 金三 銀二 香二 歩五  手数=106 ▽2七同金 まで 遠見(MC) 40,000playouts / 14.2sec Best ▲2八金(0.236) Second ▲3九銀(0.223)


既に敗勢の局面ですが、かなり強いプログラムでもほぼ互角の評価をしてしまうようです*3。この局面は、先手持ち駒の多さ、王手がかからないことを評価関数に反映させることの難しさから正しい評価値が求めにくい局面ですが、モンテカルロ将棋では勝率2割程度でかなりの劣性〜敗勢の評価となっています。