ひよこカルロ将棋 vs れさぴょん

floodgateでR2000以上になろうと思えば、れさぴょんとGA将の2巨頭を倒さなければR2000への道は拓けません。

しかしどちらも強敵です。バグがそこそこなくなったひよこカルロ将棋v0.14とれさぴょんとの一戦から。

http://wdoor.c.u-tokyo.ac.jp/shogi/view/2011/10/30/wdoor+floodgate-900-0+hiyoko_carlo_v0.14_1c+lesserpyon_sakura_vps_test+20111030230003.csa


ひよこカルロ将棋、読みが深くなったせいか、盤面の右の片隅に眠っていた銀をうまく活用して、飛車を生けどりにします。このへんの手順、結構感動するものがありました。


しかしせっかくもらった飛車を82から打ち込んでしまいました。図は先手のひよこカルロ将棋の手番ですが、44桂で両取りがかかっており、龍を作ったものの、れさぴょんは香を2本持っており、ここに銀を加えれば、龍は死亡確実です。ああ、せっかく飛車を手にしたのにひよこカルロ将棋、逆転してしまいましたか?


どうするのかなーと思って見ていると44金、同歩に96桂!!


ひよこカルロ将棋、駄目です。どうせ打つなら86桂です。86桂なら王手になるので83金とされても74桂51玉(53玉だと75桂)に75龍と逃げて生還できます。96桂はiterationがこのとき7回ぐらいしか回っておらず、明らかに読みが足りていませんでした。

ひよこカルロ将棋に検討モードで時間をかけて検討させると、ここで86桂も表示します。もっと探索速度さえあればここは優勢を維持できるのになぁと思いながら見ていました。

そのあとまたひよこカルロ将棋の終盤のクソ粘り(お食事中の方すみません)が出て、ついには逆転してしまいます。



後手が61玉と指してほどなくして、ひよこカルロ将棋は+Mate:17の読み筋。どう応じても17手で詰みますからね!!という意味で、即詰みとか詰めろとかそんな次元などではなく、17手での死刑宣告です。

どう応じても17手で詰むって一瞬で読めるの?と少し驚きましたが変化が少ないのでコンピューター的には、まあどうってことはないのかも知れません。

この棋譜をご覧いただければおわかりになるかと思いますが、ひよこカルロ将棋側、成り駒を活用しています。たぶん10数手先まで読むと、この成り駒を活用するのが一番駒得になるという結果が出るのでしょうけれども、駒得だけの評価関数なのに「駒の効率」をちゃんと考えているかに見える指し手が出てくるのが不思議なところですね。


http://wdoor.c.u-tokyo.ac.jp/shogi/view/2011/10/30/wdoor+floodgate-900-0+hiyoko_carlo_v0.14_1c+gps_l+20111030233003.csa

そのあとgps_lにはもちろんボコボコにやられましたが、ひよこカルロ将棋がまだ自玉の詰みを読みきれていないような局面でgps将棋はノータイムで指してきています。ひよこカルロ将棋より詰みに気づいたのは9手ぐらい早かったように思います。これがdf-pn+の詰将棋ルーチンの威力なのでしょうか…。さすがです。

序盤で負けるのは致し方ないとしても終盤で読みの差を見せつけられるのは非常に悔しいので、ひよこはdf-pn+の詰将棋ルーチンをあとで書きます。

ひよこカルロ将棋はあとどれだけ強くなるのか

どうも思考時間の使い方が下手です。毎回決められた時間だけ割り振っていますが、2番目の指し手との差が大きいときは早めに切り上げるだとか、不安定なノードでは長い時間を割り当てるだとか、何かやりようはあると思います。

終盤のためにたくさん時間を残したいところではあるのですが、序盤で定跡を持っておらず、序盤の時間をあまり減らすとすぐに勝負形にすらさせてもらえずに終わってしまいます。駒得だけの評価関数ですと序盤を乗り切るのは読みの深さがなくては辛いのです。

かと言って序盤に多く割り当てても形勢互角以上になることはまずありえず(囲いすらまともに出来ないので)、ゆえに終盤で相手より持ち時間が少ないと逆転の目すらなくなってしまいます。

ゆえに序盤は少し不利ぐらいで乗り切り、終盤の腕力で逆転するのが一番理想的なのですが、そういう風に調整するのもなんだかなぁということであまり調整しておりません。

まあ、不安定なノードではもう少し時間は使ったほうがいいとは思います。うまくすることでR10か20ぐらい変わるのかも知れません。

その他、探索のほうは、私の力ではこれ以上はあまり改良のしようが難しく、BonanzaとかStockfishとかFruitのソースを読みながら使えそうな技法を試してはやめ、試してはやめとそんな感じです。

駒得の評価関数用にもうちょっとreductionの量などを調整することは可能ですが、そこを調整してもそんなに強さは変わらないでしょうし、今回はやりません。

高速化は探索部分をもう少し頑張って書きなおすと10%ぐらい速くなることはわかっているのですが、10%速くなったところでR10変わるか変わらないかでしょうから、これも今回はやりません。

ゆえに、あと残るは並列化だけです。並列化はBonanza方式で残り深さ3以上あって、生成されている指し手が4以上あればsplitという簡単実装で行こうと思っています。たぶん4コアでもそんなに強くならなくて、100ぐらい上がってくれればいいのですが。いや、序盤がひどいので、それすら上がらないのかも知れません。なんにせよ、結果が楽しみです。

いまのひよこカルロ将棋はfloodgateでおそらくR1800相当だと思うので、結局のところ今回のチャレンジではfloodgateの二週間レーティングでR1900行けば上出来かなというところです。

つまり、さらに改良すれば、駒得だけでもR2000は行く見込みがあります。それから、序盤はmctsでせめて互角か少し不利ぐらいの将棋が指せればR2100ぐらいが見えてくるのではないかと思うのですが、今回は時間の関係で私はそこまで出来ません。

ついにひよこカルロ将棋がgps_normalに勝ちました

「ひよこカルロ将棋は評価関数のおかしいソフトにしか勝てない」とか言われておりますが、ついにそれを覆す結果が出ました。

なんと、あのgps_normal(R2150)に1勝しました。

http://wdoor.c.u-tokyo.ac.jp/shogi/view/2011/10/31/wdoor+floodgate-900-0+hiyoko_carlo_v0.14_1c+gps_normal@0+20111031170002.csa


相手に馬を作らせてしまって序盤早々不利になっていますが、そのあと持ち前の終盤力でうまく手を作って逆転勝利しました。

現在のひよこカルロ将棋の戦績は以下の通りで、gps500,GA将、れさぴょんには負けていません。S01の人にはわざと負けてもらっているのだと思うので、そこはノーカウントとしても、まずまずの戦績です。(ちょっと出来すぎのように思いますが。)

ひよこカルロ将棋v0.14はfloodgateの二週間レーティングでR1967を記録しました。たぶん実際はR1800程度だと思います。それも相手が乱戦に応じてくれたときの話で、じっくり穴熊にでも囲われて、ゆっくり指されるとR1300ぐらいの人にも勝てないと思います。

いまのコンピューター将棋は「じっくり指す」というのが下手で、いけると思ったら何が何でもすぐに斬り込んでくる共通のクセのようなものがあり、ひよこカルロ将棋はそれにうまくフィットしているように思います。

ともかく、ここでひよこカルロ将棋v0.14は撤収しまして(←勝ち逃げ?)、aspiration searchを実装して思考時間を調整したv0.15を今晩floodgateに投入しようと思っております。

並列探索の実装まで間に合いそうにないので、間に合わなかった場合は明日も使います。

ひよこカルロ将棋は本当は強くなっていない?!

ひよこカルロ将棋と将棋所を使って私と対戦していたのですが、いくらなんでもこれは弱いなぁと思っていたのです。

そこで、並列化のためにソースを書きなおしていたら、細かなバグをたくさん見つけてしまいました。
futilityも再帰的反復深化もLMRもなんかバグっていた模様…。

よくそんなボロボロの体(?)でgps_normalに一発入ったなぁ…。ひよこカルロ将棋、無茶しやがって


というわけで、のちほど修正したバージョンをアップします。

それからひよこカルロ将棋の製作チャレンジはあと3日延長することにします。

予定としては、
・10月31日 並列化のためのソース大改造とバグ取り。
・11月 1日 aspiration search、思考時間の調整
・11月 2日 並列化
・11月 3日 たぶん他にも何かバグっていると思うので、そのバグ取り。
ということになります。


よろしくお願いします。