Gikou_NozomiEvalMix_20160821
Pre-release【Gikou_NozomiEvalMix】
将棋ソフト「技巧」の非公式版です。
・技巧の評価関数バイナリに加えてnozomiの評価関数バイナリを読込み、両ソフトでの評価値を計算したうえで
任意の割合で混ぜ合わせて最終的な評価値を算出するようにした、実験的なプログラムです。
・別途、nozomiの評価関数バイナリ(new_fv.bin)が必要になります。
オリジナルの技巧の評価関数バイナリ等も必要です。
・npsが大きく低下するため、オリジナルの技巧に比べると棋力は下がります。
・ただ、当ソフト同士を自己対戦させてみると、「nozomiの評価値を混ぜる割合を0%(技巧の評価値が100%)」としたものより、
適度にnozomiの評価値を混ぜ合わせた方が強くなる場合もあるようです。
・評価値の差分計算は実装しましたが、高速化の余地は多々残っていると思います。
・USI拡張コマンドとして、「evalコマンド」を実装しました。(下記参照)
・mizarさんの「USI ["go nodes ", "go depth "], Option ["LimitDepth"] の実装」をマージしました。
・当プログラムの作成にあたり、Apery、やねうら王、nozomiのソースコードを参考にさせて頂きました。
■USI options
将棋所の「エンジン設定」画面などで設定する項目として
以下の4種類のオプションを追加しました。
・Z11_NozomiEvalJoban nozomiの評価値の割合(序盤、%) :0%~100%の範囲で設定します。(例)50
・Z12_NozomiEvalChuban nozomiの評価値の割合(中盤、%) :0%~100%の範囲で設定します。(例)50
・Z13_NozomiEvalShuban nozomiの評価値の割合(終盤、%) :0%~100%の範囲で設定します。(例)50
・Z14_NozomiEvalFolder nozomi評価関数バイナリのフォルダ:(例)./NozomiEval
【nozomiの評価値の割合の設定例】
(例1)序盤0%、中盤0%、終盤0%
算出される評価値は、技巧の評価値と一致します。
(例2)序盤100%、中盤100%、終盤100%
算出される評価値は、nozomiの評価値と一致します。
(例3)序盤50%、中盤50%、終盤50%
算出される評価値は、技巧の評価値とnozomiの評価値の平均値と一致します。
(例4)序盤100%、中盤50%、終盤0%
序盤の評価値はnozomiに近く、徐々に技巧の割合が増えていき、終盤の評価値は技巧の評価値と近くなります。
(例5)序盤30%、中盤50%、終盤20%
序盤から中盤にかけてnozomiの割合が30%から50%へと増えていき、
中盤から終盤にかけてnozomiの割合が50%から20%へと減っていきます。
※当ソフトでは、「進行度」に応じて評価値を混ぜる割合を内分しています。
そもそもオリジナルの技巧で、序盤、中盤、終盤の評価値を持っており、進行度に応じて内分する仕組みが実装されています。
当ソフトではその仕組みを流用させて頂いています。
■USI拡張コマンド「eval」
事前に任意の局面を設定したうえで「eval」コマンドを実行すると、
当ソフトで算出した評価値、技巧とnozomiの評価値とその内訳などを標準出力へ出力します。
なお、評価値として「手番側から見た評価値」を出力しています。
【実行例】
setoption name Z14_NozomiEvalFolder value ./NozomiEval
isready
position sfen l6nl/5+P1gk/2np1S3/p1p4Pp/3P2Sp1/1PPb2P1P/P5GS1/R8/LN4bKL w RGgsn5p 1
eval
---------- Eval
Eval = -449 ←算出した評価値(技巧とnozomiを混ぜ合わせ済み)
-----
Gikou = -53.27 ←技巧の評価値
Nozomi = -846.37 ←nozomiの評価値
-----
SideToMove = White(Gote) ←手番
Progress(%) = 88.87% ←進行度
Gikou(%) = 50.00% ←技巧の評価値を混ぜる割合
Nozomi(%) = 50.00% ←nozomiの評価値を混ぜる割合
---------- Gikou
Sum = -53.27 ←技巧の評価値(再掲)
-----
KP = -1055.88 ←技巧のKP(King-Piece)(おそらく駒割りもこれに含まれる)
PP = +82.48 ←技巧のPP(Piece-Piece)
Controls = -122.32 ←技巧の「利き(各マスの利き)」に関する評価値
KingSafety = +618.37 ←技巧の「玉の安全度」に関する評価値
Sliders = +424.08 ←技巧の「飛び駒(飛車・角・香車の利き)」に関する評価値
---------- Nozomi
Sum = -846.37 ←nozomiの評価値(再掲)
-----
Material = -760.47 ←nozomiの駒割り
KKP = -0.00 ←nozomiのKKP(King-King-Piece)
KPP = -178.92 ←nozomiのKPP(King-Piece-Piece)
Turn = +93.02 ←nozomiの手番
----------