やねうら王miniの探索部いまから書く件

世界コンピュータ将棋選手権のライブラリ登録申請日の締め切りが今日までだ。

いまから探索部を書けるだけ書いて申請する。8時間ぐらいで書けるのかどうかは知らん。

実は、一度申請したのだけど、GitHubのURL自体を登録することは出来なくて、スナップショット的なものを渡さないといけないらしい。評価関数バイナリ、以前のやねうら王のものと形式が違うのでその変換コードを書いて変換したのだけど、これがきちんと変換できているかだとか、この新しい形式に不備がないかだとかは、実際に探索部を書いてテストをしないとよくわからない。

そこで、そのテストが終わってからライブラリ申請をしようと思っていたら今日になってしまった。いやはや。

そんなわけでいまからリアルタイムで実況しながら探索部を書いていく。この記事の末尾に追加していく。

11:15

とは言え、やねうら王miniをライブラリとして使う(かも)と表明しているのは、きふわらべ(の作者)だけである。それに対して、Aperyチルドレン多すぎ。しかもAperyチルドレンの場合、いまのAperyより弱いということは考えられないので、大激戦である。

それに対して、やねうら王miniライブラリを採用する(かも知れない)きふわらべは、C++を知らない(こらから勉強する)&打ち歩詰めの判定すらまともに出来なかったプログラミング能力の持ち主なので、ソフトの棋力面ではまったく期待はできない。

たぶん、やねうら王miniライブラリのマイナスの宣伝にしかならない。「やねうら王miniライブラリ駄目じゃん」「Aperyチルドレンつえーーー」こうなるのが目に見えてる。やねうら王miniは超高速1手詰め判定や、利きも持っているし、高速な王手の指し手生成ルーチンもあるし、それらを使う/使わないということに対して柔軟にコンフィギュレーションできるし、汎用的な将棋ライブラリとして見たときにAperyよりは格段に上であるのだが、それを使う唯一の存在がきふわらべ…。きっと、夜道を歩いててレイプ魔に襲われた女性はこんな気持ちなんだろうな…。

ともかく、気を取り直して、探索部をいまから書く。きふわらべがやねうら王miniを使おうが使うまいが、使えようが使えまいが知ったことではないが、書くものは書く。

15:00

https://github.com/yaneurao/YaneuraOu/blob/1664e1d144e4a7bd37178c57a724a9a85430d0d7/source/engine/nano-engine/nano_search.cpp

やねうら王nano用の探索部は書けた(気がする)が、指し手おかしすぎ。原因究明するために読み筋きちんと表示させようと思ったら、置換表かき集めてきて読み筋として表示するためのヘルパー関数やら何やらが必要なのであった。(いまから作る)

18:00

https://github.com/yaneurao/YaneuraOu/blob/d442dc806f180a6a103c07586aafc9f9c4f0936d/source/engine/nano-engine/nano_search.cpp

だいぶ書いたのだが、指し手がおかしいのまだなおらん。評価関数バイナリ自体はきちんと読み込めているようなのだが(やねうら王2015と比較して同じ評価値が返る)、盤面の更新のときに駒番号を振った駒をきちんと移動させないといけないのだが、そこが出来ていないような気がする。

こりゃ大変だ…。やねうら王nanoの探索部(枝刈りはαβ以外は無い)+読み筋表示までは、3時間ほどで書けたのに、それ以外の部分が色々時間がとられる。お腹すいた。あと1,2時間で動いてくれないと俺は餓死する。

20:00

評価関数バイナリをクレクレと言う声が聞こえてきたのでとりあえず貼り付けておきます。(大きなファイルなのであとで消します)

評価関数バイナリ
※ → CSAのライブラリのダウンロードページからダウンロードできるようになりましたのでそちらからどうぞ。http://www.computer-shogi.org/library/

それで、結局、評価関数は正しく読み込めていて、undo_move()のときに捕獲した駒を駒箱に戻すときの駒番号を間違えてたようで、これ修正したところ、うまく動いているっぽいです。チルダ記号(“~”)一つ間違えただけで結果がこんなにおかしくなるだなんて、プログラミング怖すぎ!

それで現状、nanoはシングルスレッドでかつαβ探索のみの枝刈りなしなので持ち時間3分だと深さ5ぐらいまでしか読めないです。さすがにこれではいくら評価関数が優秀でもBonanzaには勝てないです。はい。R1300~1600ぐらいなんですかね。少ししかやってないのでよくわかりません。

それにしても評価値がブレすぎなので、何かもうひとつ、ふたつバグがある気がします。お腹すいたのでご飯食べてきます。とりあえず、23時になったらCSAライブラリの登録申請のメール書きます。

22:00

https://github.com/yaneurao/YaneuraOu/blob/0a3d563cec7036979073351413def3e8b0496ac8/source/engine/nano-engine/nano_search.cpp

もういいや。αβ以外の枝刈りなしだとさすがに全く強くならない。と金作られる筋とか5手では読めない。(他に何かバグがあるのかも..?)

とりあえず、やねうら王nanoはこのぐらいにして、あとはやねうら王miniのほうの探索部は、このブログで解説記事を書きながらぼちぼち作っていきます。

CSAのライブラリ申請をしておきますので、評価関数バイナリはそちらからダウンロードしてもらうといいのかな…。

やねうら王miniの探索部いまから書く件” への9件のコメント

  1. なんかサイトが重いですねぇ。ウチとの相性でしょうか。
    午前5時くらいにプログラミングしなきゃと思って初めて、バグにはまって気が付いたらこんな時間。
    俺は一体何をやっていたんだ~~。
    ということが先ほどありました。
    今更コンソールプログラムやろうとしてる自分っていったい。
    と思ったところで興ざめしたのが今日のハイライトです。
    関係ないですね。
    探索部を書くということは一応将棋所に登録すれば動くところまで作るという解釈でいいのでしょうか。
    こりゃ、ずいぶん進みましたね。

    • > なんかサイトが重いですねぇ。

      この記事見るために誰かがF5アタックしているだとか..

      > 探索部を書くということは一応将棋所に登録すれば動くところまで作る

      はい、そうです。まあそれは(やねうら王miniがライブラリとして完成しているなら)1から書いても10時間もあれば出来るのではないかと…。やねうら王miniがまだ色々書きかけのところがあるので、今回10時間で収まるかどうかはわかりませんが…。

  2. >きふわらべがやねうら王miniを使おうが使うまいが、使えようが使えまいが知ったことではないが、書くものは書く。

    もうとっくに出来上がっていて、それでピアノやら囲碁やら、、、と思っていた私が甘いのでしょうか?

wain にコメントする コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です