うらおやねうら王V4.85でテラショック定跡の生成がユーザーの皆さんでできるようになりました。うら王V4.85でテラショック定跡の生成がユーザーの皆さんでできるようになりました。V4.85は、やねうら王のGitHubのReleasesのところからダウンロードしてください。moves..”と書かれてる形式)で用意します自己対局させたものでもいいですし、他のソフトと対局させたものでも良いです。将棋所などで対局させる場合、KIF形式で書き出して、それをsfen形式に変換するソフト(Blunder.Converterなど)を用いて変換して使ってください。(これは従来から存在していたコマンドで、今回追加したものではありません。)これでbook2019.dbというファイルができます。100000のように探索するノード数で制限することができるので(depth指定と併用する)、終盤に時間がかかりすぎるときにうまく使えば効率的に思考できます。user_book1.dbこれでbook2019.dbをminimaxのようなことをしてuser_book1.dbが生成されます。このuser_book1.dbをやねうら王の実行ファイルの配置されている配下のbookフォルダにコピーして、やねうら王のエンジンオプションのBookFileオプションでuser_book1.dbを指定して使ってください。build_tree”を行うとき、先手側、後手側のcontempt(千日手を受け入れるスコア)を個別に指定できます。150先手の千日手スコア-50、後手の千日手スコア-150になります。3.を行ってテラショック定跡を作ります。2.に時間がかかりますので、ここをある程度下げて80手目ぐらいまで生成して、実際に定跡を使うのは60手目ぐらいまで(やねうら王のエンジンオプションのBookMovesで60を指定する)にするなど各自工夫してみてください。3.のビルド自体にも時間がかかるようになってきますが。1.の自己対局させる時間が惜しいと思うかも知れません。2.を実行したいと思うかも知れません。いう機能もすでに用意しています。-300展開する枝の評価値の下限を先手/後手個別に指定できます。上の例ですと、先手なら-200以上の評価値の枝のみを延長して、後手ならば-300以上の評価値の枝のみを延長します。read_sfen.txtにはこの延長を行う開始局面を複数指定できます。(わからなければ、”startpos”とだけ書いたテキストを用意すれば、平手の開始局面からになるのでそれで問題ないはずです。3.でビルドするときに、千日手の局面の判定は、定跡で二度目に同じ局面に到達したときに千日手として扱われます。white_contemptの値は利きません。定跡がそこまで到達していない場合、千日手スコア(0)がその局面の評価値として使われてしまうので、これは好ましい動作ではありません。そこで千日手スコアの局面だけを二度目に同一局面が出現するところまで、さらに掘りたいはずです。このコマンドも用意してあります。node(末端の局面)の候補手だけを延長対象とします。(MultiPVで思考させ複数の指し手が登録されている場合、このextend_rangeの範囲内の候補手で進めた局面だけが延長されます。nodeでextend_treeの引き分けのスコア(-1,0,+1)の局面だけを延長します。0と指定すれば良いです。2.を自動的に繰り返してくれれば課題局面から自動的に定跡が掘れて便利だと気づくかも知れません。そのコマンドもすでに用意してあります。extend_treeとthinkを合体させたコマンド。think_sfen.txtのところは、思考対象局面を書き出す一時ファイル。書いておけば、平手の初期局面が課題局面になるので、そこから自動的に定跡が掘られていきます。loopの回数だけ繰り返されます。(気の遠くなるような時間を要します。2.を行うという動作を繰り返して欲しいと思うかも知れません。このコマンドも用意してあります。7.のコマンドにentend_rangeが指定できます。1まとめテラショック定跡生成部を一般ユーザーが使えるようになりました。夜中のうちにコンピューターに課題局面の研究をさせておいたり、自分だけの振り飛車定跡を作ったりと色々と応用が利くはずです。2.のdepthを上げると思考時間を要しますが、depthをある程度妥協して、その代わりたくさんの局面を掘るだとか、深い手数まで掘るだとか、色々工夫することで自分だけの洗練された巨大定跡を生成することも夢ではありません。何か良い条件がわかればコメント欄にお願いします。11:00]えむいーさんが手順をわかりやすく記事にされたので、参考にどうぞー。:もちろん、そういう使い方もできます。振り飛車用の評価関数を用いなくとも、自動でエンドレスに掘るときに開始局面自体を指定できるので振り飛車の基本形あたりを指定して、そこからMultiPVとかで掘っていくこともできます。merge)ことはできますが、それはあまり意味がないような...。:エンドレスで定跡を掘る際にデフォルトだと一定時間?でブックの保存をやってくれますが、この間隔を伸ばすコマンド等はありますか?ブックの容量が大きくなると保存の時間も長くなるので、出来るだけバックアップの間隔を空けたいのですが・・・。コマンド説明の項目に記載があり、見落としてたら申し訳ないです。:保存間隔を変更することはできませんが保存中も探索自体はノンストップで進むため、計算資源のロスにはなりません。保存は、前回の保存終了から15分経過時点で開始なので、ファイルが大きくなり保存時間が伸びても、それによって保存されなくなるというような事態にはなりません。:あと、一度中断したのですがそのままスタートさせるとゼロから更新されてしまいます。thinkコマンドは、中断した場合でも15分ごとに定跡ファイルが保存されているはずなので、そのファイルを指定して再開すれば続きからになるのではないかと...。αぐらいに設定してみるといいと思います。うら王の標準定跡ファイルフォーマットを見ればわかるかと...。:テラショック定跡を使って教師局面を作れば特定の定跡型に特化した評価関数の学習ができそうな気がしましたが、教師生成コマンドで定跡中の局面を書き出した場合、テラショックに搭載されている評価値と読み筋はそのまま教師に書き出されるのでしょうか。0に置き換わったりするのでしょうか。:自分で試してみた(gensfen→convert_plain)ところ、そもそも定跡に登録されている局面は書き出されませんでした。これはそういう仕様なのでしょうか。...の様に用いられ、バイナリ形式の教師局面をテキスト形式に変換します。いった手順で調べていました。:書かれている意味をきちんと理解してる自信はないですけども、gensfenが、開始局面を教師局面として書き出さないの自体は仕様ですね。:仕様でしたか、承知しました。thinkコマンドで、途中で終了したときどのように再開すればよいですか。:あ、そうなんですね。返信ありがとうございます。:定跡ファイルを開けるのですが、すぐ閉じられてしまいます。:アプリケーションみたいなものだと思います。:定跡ファイルはただのテキストファイルなので(内容の確認のために)開くだけでしたらメモ帳からでも開いてくだされ...。:定跡ファイルの拡張子は.dbですけど中身はテキストファイルですけど...。関連付け」でググってくだされ...。:それは、あやねるのほうで追加するかもです。:できたら将棋所でも使えるようお願いします。user_book1.dbを実行したのですが、何故か正常に出力されません。:(コマンドを入力するとすぐに変換が終わり、内容のない定跡ファイルが書き出されます。:book2019.dbの局面は、平手の開始局面から数珠つなぎに辿れる必要があるのでその制限に引っかかっているのでは。:マージするだけでしたら、普通にマージ用のコマンドでやればいいように思いますけども。:とりあえずできなかったので、kifファイル名ををnameryというツールで連番にしてエクセルからのバッチファイルで回せるようにしたので今回の件は大丈夫です。files.txtとかやって、ファイル名一覧を取得して、それをテキストエディタの正規表現置換でつなげたほうが楽なような...。:ありがとうございます。最後に一つ、テラショック定跡を延長させるにはどうすれば良いでしょうか?大会中ですが、よろしくお願いします。...使って延長してました。使い方は、docs/解説.txtにあります。:はい、そういうシェルスクリプトを書いて、それをJenkinsでひたすら回しておりますです。:私の環境ではそんなことは起きたことがないです。:通常のやねうら王形式の定跡からテラショック定跡にした際に-28000という評価値が混入してしまいます。最新版のやねうら王をビルドして試してみても改善しませんでした。検討や対局での利用には全く問題ないのですが評価値が大きすぎる怪しい値すぎて気になる方がちょくちょくいらっしゃるようです。700テラショック定跡にも-28000は混入しているようですので、こちらの定跡ファイル固有の問題ではなさそうかなと。:-28000って、千日手スコア(劣等局面)ではないですかね...。駒をただであげちゃう変化ですね。その変化、結局、採用しないから、問題ないような気がするのですけども。:なるほど!無知で申し訳ないです。疑問が解決しました、ありがとうございます。結局のところ採用しないから問題ない、というのは同感です。序盤で28000という数字にびっくりしてしまう方は、一定数いそうな気がします。(私のように劣等局面のスコアのことを知らない人だとか。:やねうら王で作成した定跡は公開するときGPL3を引き継がなければならないのでしょうか?ライセンス関係が良く分かりません。:gcc/clangでコンパイルしたものがGPLに感染しないのと同じ理屈で、定跡ファイルはGPLには感染しないと考えられます。:バグ?のご報告です。うら王の700テラショック定跡をextend_treeで延長し、テラショック化しようとしましたが、テラショック化の時に、ファイルが生成されません。:ちょっと調べてみました。readsfen.txtに↓これを書きました。6i7huser_book2.dbはメールで送っていただいたファイルをそのまま使いました。-99999を実行しました。7i6hこうなっていました。↓これが再現できません。局面が延長されてませんでした。(手動で延長する前はもっとたくさんありました。)readsfen.txtも貼り付けてもらえないでしょうか。10行以上あるのでしたら、メールででも。あと、局面が末端で合流する場合は、片側の経路は出力されないです..今回の場合、それに該当するような気がします。私の書き方が悪く、伝わりきっていなかったようです。私の報告したバグと思われるものは、6手目で、後手が3c3d、9c9d指した局面で、先手のそれに対する指し手が登録されておらず、この7手目の局面は思考対象になるはずが、されていない、という事です。うら王上では、write_sfenにある6手目の後手の指し手に対して、7手目の先手の応手が全て登録されていることになっています。MultiPv個となるはずです。状況は再現されいると思われます。(改めて、私の説明力不足をお詫びします。この文章で分からない所等があれば、お尋ね頂ければ幸いです。:今日、このあと調べますので、しばしお待ちを...。6i7hこの局面は、定跡DB上にある、以下のsfenが該当します。488ここに9c9dは登録されているので、9c9dの指し手は延長されますが、その応手である9g9fまで延長されていないということですよね?であれば、これは仕様です。7は登録されていないので、この局面での指し手は存在しないことになります。この局面からは延長できないです。それで1の仕様となっている合理的な理由なのですが、どうせ延長したあと、この局面に対して思考させるはずで、それときに次の局面への指し手が得られますし、そのときに得られるPVはいまより1手先での思考なので1手深くまで読んでいることに相当し、そちらのほうが質が高い(実戦で実現可能性の高い)指し手のはずで、現時点で得られている応手(9g9f)とは異なる可能性があって、9g9fを指した局面にまで現時点で延長してしまうと、この9g9fを指した局面でこのあと思考させても、無駄になる可能性があります。いますぐにそこまで延長させることで、得られるメリットがほとんどないのに、デメリットだけが存在する感じなので延長していない仕様となっています。:変なところにレスしてました。:私のほうで同じ条件で試してみたのですが、普通に書き出せているようです。user_book1.dbをbook/に格納しているのでしたら、user_book1.dbと指定しているところ、book/user_book1.dbと書かないといけませんけども、それが原因ではなく?あとは、batファイルか何かでそのコマンドを実行するとエラーが表示されていてもわからなくなるので、普通にまず実行ファイルをダブルクリックで実行したあとにコマンドを入力してみて、それで何のエラーが出ているかを確認していただけますでしょうか。7は登録されていないので、この局面での指し手は存在しないことになります。この局面からは延長できないです。これが登録されていない、というのがおかしいと思われます。488この定跡を延長して7手目の指し手を思考させれば、8c8d,9c9d,5c5d,8b5b,3c3dに対する応手全てが登録(思考対象と)されるはずです。あるのに、9c9d,3c3dは登録されないのに、5c5d,8b5b,3c3dは登録されています。これはおかしい気がします。:初期局面から辿れない局面が枝刈りされる&別手順で同一局面に突っ込む場合、一つにまとまるからではないかなと。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。