Skip to content

Gikou_NozomiEvalMix_20160821

Pre-release
Pre-release
Compare
Choose a tag to compare
@tttak tttak released this 21 Aug 13:33
· 2 commits to NozomiEvalMix since this 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の手番
----------