将棋AIで定跡を作れるか試してみた
UPD : 2016.12.16 : この記事の情報は古いのでより新しい情報をご覧ください
最近はやねうら王nano, nano-plus
github.com
が登場しており、自分のようにまじめに開発する気はそこまでないけどいじってみたい人には非常にうれしい状況です。
ということで定跡っぽいものを生成できないか試すことにしました
やりかた
細かいことを説明するのは面倒なので雑に言います
- 下準備としてfloodgateから100局くらいそれっぽいのを持ってくる
- 定跡としてよさそうなところを定跡として、その各局面をやねうら王nanoに評価させる。(具体的には初手から30手までで数回以上出現した局面を抽出
- 指定局面から定跡をたどったりたどらなかったりしつついろんな局面を読む
- 新しく得られた局面とその評価値を定跡に書き込む, を繰り返す
今回の状況設定
- nanoさんには各局面で8手読んでもらう
- よく出現する局面は12手くらいまで読んでもらうように調節する
- 初期局面を新矢倉24手組とする(つまり6手より先は完全に未知)
- 30000局面くらいを調べてもらう
結果
DropBoxにあげました。
この結果は今回生成した定跡(のような何か)の一部をピックアップしたものです。変化は評価値が僅差のものを恣意的に選んで打ち込みました。初手6八角は気力が途切れていたので打ち込んでいません(評価は-90くらいだと主張しています)。
追記(2/28 11:45)
肝心の評価値が分かりづらいので概要をここに書きます。
初手1六歩で +15点, 3七桂で-32点, 3七銀で-69点となっています。それ以外はこれ以下です
所感
- 定跡もどきは生成できた。うれしい。でも果たしてこの定跡はどの程度よさそうなのかがわからない。
- 主な結果について
- : この結果のままでいくと基本矢倉先手不利ということになってしまうけどほんまか?(特に定跡でよくある形がそこまでよくない結果に.)
- : 初手1六歩はまだまだサンプルが少ない雰囲気があるのでもう少し上下する可能性はありそう。
- 手元にあるBonanza6.0でこの局面を適当に調べさせるとまずは6四角がサジェストされる。定跡生成中にこの手もよく検討されていたが、現在の評価は-100点くらいに落ちてしまっている。
- 定跡の終わりについて : 定跡の終わりになるにしたがってその評価への信頼がなくなってくるので根元で最適といわれている変化でも最後のほうは割と怪しい手を指していそう。
- 調べた局面数について : 30000局面とか書いてるけど途中でアルゴリズムをガンガン変えているのでいろいろ怪しい。
- 今後その1 : 今はnano-plusに乗り換えてもう一度はじめから作ってもらってます。今回は探索深さを12手以上に設定してみました。この結果から、読む手数が増えた時に定跡と比較してどう異なるのかを見たいと考えています。例えばnanoが作った変化を確認するのにどの程度の時間がかかったのか、とか、そんな手は読まずに新たな方向へ旅立っている、とか。
- 今後その2 : ある程度いい感じのアルゴリズムに仕上がったと感じたらApery級のAIで同じようなことを試してみたい。
- ソースファイル : ローカルにgitで管理しているのですが、よく見るとコミットに人に見せちゃいけないものが入っていたので公開したくなくなりました。気が向いたらごにょごにょ直しますが、今のところ気は向いていません。
- ツッコミ募集!!! : 私は将棋倶楽部24で15級とかそんなもんの初級者です。正直何も分かりません。この変化入れるとどうなるの?とか普通に考えるとここでこの変化へいかないのはおかしい、などの意見があれば是非いただきたいです。誰か詳しい方は教えてください!
2/28 11:39 追記
ひとつ思い出したので追記します。初手からの探索も実は少しやっていたのですが、よくわからない方向へ旅立ってしまうのと、相掛り方面で5手爆弾に見事に引っかかってしまい、評価が悪く相掛りはまったく調べられなくなっていたりしました。読む深さがどうしても小さいためこういう問題はよく発生しているのではないかなと思います。