隠し機能 - mizar/YaneuraOu GitHub Wiki

やねうら王の隠し機能

定跡読み込み時に表示されるメッセージの意味

定跡DBに登録されていた局面で表示されるメッセージの意味についてです。

💡 エンジン側からは"info string XXX"という形で出力しているのですが、ShogiGUIではこの出力を無視するので、表示されていません。(将棋所だと表示されるはず。)

narrow book moves to 5 moves.

narrow bookが指定されていたので定跡DBに登録されていた
指し手を5手に減らした。

BookDepthLimit is lower than the depth of this node.

BookDepthLimitとして指定されていたdepthが、定跡DBに
登録されている思考時のdepthを下回っていたので定跡の指し手は
採用されなかった。

BookEvalDiff = 30 , moves to 3 moves.

BookEvalDiffが30(定跡DBの最善手との評価値が30に収まる
指し手のみ採用する)以内に収まる指し手が3手しかなかったので
3手に減らした。

BookEvalBlackLimit = 0 , moves to 2 moves.

BookEvalBlackLimit(先手番の、評価値の下限)が0に
設定されていたので、この評価値を持つ指し手は2手しか
なかったため、指し手は2手に減らした。

エンジン名の偽装

GUIで連続対局をさせる場合など、エンジン名として任意の名前をつけたいことがあります。

👉 思考エンジンのあるフォルダに"engine_name.txt"というファイルを用意しておけば、そこに書かれている1行目の内容をエンジン名、2行目をエンジン作者名としてGUIに返します。

起動時のコマンドの指定

YaneuraOu-nano.exe go btime 100 wtime 100 byoyomi 0

のようにUSIコマンドをコマンドライン引数として渡すことが出来ます。 指定したコマンドをすべて実行すると思考エンジンを終了します。

YaneuraOu-nano.exe posision xxx , go btime 100 wtime 100 byoyomi 0

のようにカンマで区切って複数のコマンドを渡すことができます。

YaneuraOu-nano.exe file cmd.txt

のようにしてコマンドとして実行したいコマンドをファイルから渡すことが出来ます。

⚠ この表記は、複数のコマンドを渡せるのでquitしたい場合は最後にquitも書くこと。

起動時のコマンドをファイルから与える

起動時に、同じフォルダに"startup.txt"というファイルがあれば、そこに書かれているコマンドすべてを先行して実行します。

💡 コマンドは1行ずつ実行されます。複数行書けます。

💡 コマンドライン引数で指定されたコマンドの実行 → "startup.txt"に書かれたコマンドの実行 という順番で実行されます。

起動時のメモ表示

起動時に同じフォルダに"startup_info.txt"というファイルがあれば、それを読み込み、表示します。

🖋 何かデバッグの時に必要な事項を表示しておくのに使えます。

💡 fコマンドのマクロを定義した時に、どのファイルがどのマクロかを忘れてしまうのでこれで出力すると便利です。

エンジンオプションのデフォルト値の変更

GUI側から送られてくる"usi"に対して返すオプションリストのオプションのデフォルト値を変更する機能です。

👉 思考エンジンのあるフォルダに"engine_options.txt"というファイルを配置して、ここにOptionを構築するための文字列を書きます。

💡 この"option"で始まる文字列は、"usi"に対して応答として返している文字列なので、コマンドプロンプト上でエンジンを実行して、"usi"とタイプして、返ってきた文字列一覧をコピペして編集すると良いです。

例1)
option name EvalDir type string default ../eval/YaneuraOu_2018
option name EvalShare type check default true
option name BookDir type string default ../book

また、エンジンオプション名 のあとにデフォルト値だけ書くこともできます。

例2)
EvalDir ../eval/YaneuraOu_2018
BookMoves 16

⚠ 後者の場合、BookMovesの最小値 = 最大値 = default値 = 16となります。最小値と最大値が同じ値なのでGUI側から値の変更はできません。GUI側から変更されたくない時や、変更できなくとも良い時にこの記法で書くと良いでしょう。

また、dlshogiの.iniファイルと同じく、オプション名=値という書き方もできます。

例3)
c_init=144

eval_options.txt

🌈 評価関数に応じてエンジンオプションのデフォルト値を変更する方法

評価関数ごとにエンジンオプションの設定値を変更したほうが棋力が向上する場合があります。

特に、dlshogiの場合、そのチューニング用のパラメーターがいくつもあり、dlshogi互換エンジンであるふかうら王の場合も、そのようないくつものパラメーターを評価関数を差し替えるごとに手で設定するのはナンセンスであると考えます。

そこで、エンジンオプションのEvalDirで指定したフォルダに"eval_options.txt"という名前の設定ファイルが配置されていれば、それを読み込んで、その設定値を反映させることにしました。

💡 "eval_options.txt"というファイルを"isready"コマンドが送られてきた時(評価関数を読み込む直前)に読み込みに行くようになっています。

👉 このファイルの書式は、"engine_options"と同様の書式で書くことができます。

例)
FV_SCALE 24

Aperyの定跡ファイルの読み込み

まふ定跡はAperyの定跡フォーマットで提供されています。

やねうら王は、Aperyの定跡フォーマットの読み込みにも対応しています。

BookDirオプション(デフォルトでは"book")で指定したフォルダの配下に"book.bin"(Aperyの定跡DBファイルの名前は、これだと決まっている)を配置します。

book/book.bin

そして、思考エンジン設定の定跡ファイル名(BookFile)として「book.bin(Apery用定跡DB)」を選択することでAperyの定跡が読み込めます。