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
1620006
commit 88141d7
Showing
9 changed files
with
475 additions
and
189 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,80 @@ | ||
【Gikou_JobanAperyEval】 | ||
将棋ソフト「技巧」の非公式版です。 | ||
|
||
・序盤はAperyの評価関数を使い、中盤~終盤は技巧の評価関数を使うようにした、実験的なプログラムです。 | ||
・探索部はオリジナルの技巧のままです。 | ||
・別途、Aperyの評価関数バイナリ(KK_synthesized.bin、KKP_synthesized.bin、KPP_synthesized.bin)が必要になります。 | ||
オリジナルの技巧の評価関数バイナリ等も必要です。 | ||
・どの段階で評価関数をAperyから技巧へ切り替えるかについて、将棋所の「エンジン設定」画面等から「進行度」で指定することができます。(下記参照) | ||
・評価関数を切り替えた際に、置換表のクリア等は行っていません。 | ||
そのため、「Evaluate()では技巧の評価値を算出するが、探索では置換表に残っているAperyの評価値も使われる」といったことも起こると思います。 | ||
これによる棋力への影響は不明です。 | ||
・別のプログラム「Gikou_AperyEvalMix」では、Evaluate()が呼ばれるたびに両ソフトの評価値を算出したうえで | ||
それらを混ぜ合わせて最終的な評価値を算出していますのでnpsが大きく低下しますが、 | ||
当プログラムではEvaluate()ではどちらか一方の評価値を算出するだけですので、「Gikou_AperyEvalMix」よりは高速です。 | ||
・Aperyの評価値の算出について、差分計算は実装しましたが、高速化の余地は多々残っていると思います。 | ||
・USI拡張コマンドとして、「evalコマンド」を実装しました。(下記参照) | ||
・mizarさんの「USI ["go nodes <x>", "go depth <x>"], Option ["LimitDepth"] の実装」をマージしました。 | ||
・当プログラムの作成にあたり、Apery及びやねうら王のソースコードを参考にさせて頂きました。 | ||
|
||
|
||
■USI options | ||
将棋所の「エンジン設定」画面などで設定する項目として | ||
以下の2種類のオプションを追加しました。 | ||
|
||
・Z01_AperyEvalFolder Apery評価関数バイナリのフォルダ :(例)./Apery_20160307 | ||
・Z02_ChangeEvalProgress 評価関数切替(Apery→技巧)の進行度(%) :-1%~100%の範囲で設定します。(例)40 | ||
|
||
【評価関数切替(Apery→技巧)の進行度(%)の設定例】 | ||
(例1)33 | ||
進行度0%~33%(≒序盤)はAperyの評価関数が使用され、進行度33%~100%(≒中盤~終盤)は技巧の評価関数が使用されます。 | ||
(例2)66 | ||
進行度0%~66%(≒序盤~中盤)はAperyの評価関数が使用され、進行度66%~100%(≒終盤)は技巧の評価関数が使用されます。 | ||
(例3)100 | ||
常にAperyの評価関数が使用されます。 | ||
(例4)0 | ||
常に技巧の評価関数が使用されます。 | ||
(例5)-1 | ||
「-1」は特殊な設定値で、使用される評価関数(技巧・Apery)が1手ごとに切り替えられます。 | ||
|
||
※「進行度」自体は技巧の仕組みで算出されます。 | ||
|
||
|
||
■USI拡張コマンド「eval」 | ||
事前に任意の局面を設定したうえで「eval」コマンドを実行すると、 | ||
当ソフトで算出した評価値、技巧とAperyの評価値とその内訳などを標準出力へ出力します。 | ||
なお、評価値として「手番側から見た評価値」を出力しています。 | ||
|
||
【実行例】 | ||
setoption name Z04_AperyEvalFolder value ./Apery_20160307 | ||
isready | ||
position sfen l6nl/5+P1gk/2np1S3/p1p4Pp/3P2Sp1/1PPb2P1P/P5GS1/R8/LN4bKL w RGgsn5p 1 | ||
eval | ||
|
||
---------- Eval | ||
Eval = -53 ←算出した評価値 | ||
----- | ||
Gikou = -53.27 ←技巧の評価値 | ||
Apery = -307.99 ←Aperyの評価値 | ||
----- | ||
SideToMove = White(Gote) ←手番 | ||
Progress = 88.87% ←進行度 | ||
ChangeEval = 40.00% ←評価関数切替(Apery→技巧)の進行度 | ||
EvalKind = Gikou ←使用された評価関数(Apery/技巧) | ||
---------- 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 ←技巧の「飛び駒(飛車・角・香車の利き)」に関する評価値 | ||
---------- Apery | ||
Sum = -307.99 ←Aperyの評価値(再掲) | ||
----- | ||
Material = -800.00 ←Aperyの駒割り | ||
KK = +30.87 ←AperyのKK (King-King) | ||
KKP = +61.77 ←AperyのKKP(King-King-Piece) | ||
KPP = +399.38 ←Aperyの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.