forked from gikou-official/Gikou
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a3355f0
commit e7f258e
Showing
9 changed files
with
507 additions
and
416 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
【Gikou_YaneuraOuClassicEvalMix】 | ||
将棋ソフト「技巧」の非公式版です。 | ||
|
||
・技巧の評価関数バイナリに加えてやねうら王classicの評価関数バイナリを読込み、両ソフトでの評価値を計算したうえで | ||
任意の割合で混ぜ合わせて最終的な評価値を算出するようにした、実験的なプログラムです。 | ||
・別途、やねうら王classicの評価関数バイナリ(kkp32ap.bin、kpp16ap.bin)が必要になります。 | ||
オリジナルの技巧の評価関数バイナリ等も必要です。 | ||
・当ソフトで使用するのは、やねうら王2016 Midの評価関数バイナリ(KK_synthesized.bin、KKP_synthesized.bin、KPP_synthesized.bin)ではなく | ||
やねうら王classicの評価関数バイナリであることにご注意ください。 | ||
やねうら王2016 Midの評価関数バイナリはApery(WCSC26)の評価関数バイナリと同じ形式ですので、 | ||
そちらを使用する場合は当ソフト【Gikou_YaneuraOuClassicEvalMix】ではなく【Gikou_AperyEvalMix】の方をご使用ください。 | ||
・npsが大きく低下するため、オリジナルの技巧に比べると棋力は下がります。 | ||
・ただ、当ソフト同士を自己対戦させてみると、「やねうら王classicの評価値を混ぜる割合を0%(技巧の評価値が100%)」としたものより、 | ||
適度にやねうら王classicの評価値を混ぜ合わせた方が強くなる場合もあるようです。 | ||
・評価値の差分計算は実装しましたが、高速化の余地は多々残っていると思います。 | ||
・USI拡張コマンドとして、「evalコマンド」を実装しました。(下記参照) | ||
・mizarさんの「USI ["go nodes <x>", "go depth <x>"], Option ["LimitDepth"] の実装」をマージしました。 | ||
・当プログラムの作成にあたり、Apery及びやねうら王のソースコードを参考にさせて頂きました。 | ||
|
||
|
||
■USI options | ||
将棋所の「エンジン設定」画面などで設定する項目として | ||
以下の4種類のオプションを追加しました。 | ||
|
||
・Z11_YaneuraOuClassicEvalJoban やねうら王classicの評価値の割合(序盤、%) :0%~100%の範囲で設定します。(例)50 | ||
・Z12_YaneuraOuClassicEvalChuban やねうら王classicの評価値の割合(中盤、%) :0%~100%の範囲で設定します。(例)50 | ||
・Z13_YaneuraOuClassicEvalShuban やねうら王classicの評価値の割合(終盤、%) :0%~100%の範囲で設定します。(例)50 | ||
・Z14_YaneuraOuClassicEvalFolder やねうら王classic評価関数バイナリのフォルダ:(例)./YaneuraOuClassicEval | ||
|
||
【やねうら王classicの評価値の割合の設定例】 | ||
(例1)序盤0%、中盤0%、終盤0% | ||
算出される評価値は、技巧の評価値と一致します。 | ||
(例2)序盤100%、中盤100%、終盤100% | ||
算出される評価値は、やねうら王classicの評価値と一致します。 | ||
(例3)序盤50%、中盤50%、終盤50% | ||
算出される評価値は、技巧の評価値とやねうら王classicの評価値の平均値と一致します。 | ||
(例4)序盤100%、中盤50%、終盤0% | ||
序盤の評価値はやねうら王classicに近く、徐々に技巧の割合が増えていき、終盤の評価値は技巧の評価値と近くなります。 | ||
(例5)序盤30%、中盤50%、終盤20% | ||
序盤から中盤にかけてやねうら王classicの割合が30%から50%へと増えていき、 | ||
中盤から終盤にかけてやねうら王classicの割合が50%から20%へと減っていきます。 | ||
|
||
※当ソフトでは、「進行度」に応じて評価値を混ぜる割合を内分しています。 | ||
そもそもオリジナルの技巧で、序盤、中盤、終盤の評価値を持っており、進行度に応じて内分する仕組みが実装されています。 | ||
当ソフトではその仕組みを流用させて頂いています。 | ||
|
||
|
||
■USI拡張コマンド「eval」 | ||
事前に任意の局面を設定したうえで「eval」コマンドを実行すると、 | ||
当ソフトで算出した評価値、技巧とやねうら王classicの評価値とその内訳などを標準出力へ出力します。 | ||
なお、評価値として「手番側から見た評価値」を出力しています。 | ||
|
||
【実行例】 | ||
setoption name Z14_YaneuraOuClassicEvalFolder value ./YaneuraOuClassicEval | ||
isready | ||
position sfen l6nl/5+P1gk/2np1S3/p1p4Pp/3P2Sp1/1PPb2P1P/P5GS1/R8/LN4bKL w RGgsn5p 1 | ||
eval | ||
|
||
---------- Eval | ||
Eval = -438 ←算出した評価値(技巧とやねうら王classicを混ぜ合わせ済み) | ||
----- | ||
Gikou = -53.27 ←技巧の評価値 | ||
YaneuraOu = -823.04 ←やねうら王classicの評価値 | ||
----- | ||
SideToMove = White(Gote) ←手番 | ||
Progress(%) = 88.87% ←進行度 | ||
Gikou(%) = 50.00% ←技巧の評価値を混ぜる割合 | ||
YaneuraOu(%)= 50.00% ←やねうら王classicの評価値を混ぜる割合 | ||
---------- 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 ←技巧の「飛び駒(飛車・角・香車の利き)」に関する評価値 | ||
---------- YaneuraOuClassic | ||
Sum = -823.04 ←やねうら王classicの評価値(再掲) | ||
----- | ||
Material = -734.88 ←やねうら王classicの駒割り | ||
KK = +3.27 ←やねうら王classicのKK (King-King) | ||
KKP = +38.30 ←やねうら王classicのKKP(King-King-Piece) | ||
KPP = -129.76 ←やねうら王classicのKPP(King-Piece-Piece) | ||
---------- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.