やねうら王 WCSC30 PR文書 やねうら王は、前回(WCSC29)、テラショック定跡という、定跡の末端局面に評価値をつけ、定跡ツリー全体をmin-max探索のようなことをして、定跡を生成する手法を採用した。 やねうら王の場合、この末端局面で評価値をつけるときにそこそこ深いdepthで探索させていたし(depth = 34以上)、末端局面までの手数(ply)もほぼ一定であったので、さほど問題は表面化しなかったのだが、部分的に深くまで定跡を掘る(plyがまばら)である場合や、末端局面での探索のdepthが浅い場合には次のような問題が起きることがわかってきた。 あまり定跡が掘れていないplyが浅い局面のほうがたまたま少しだけ高い評価値がついていることがあるので、定跡が深くまで掘れている局面よりは、浅いほうの局面に誘導するような定跡が生成されてしまうことがある。 例えば、後手の定跡について考えてみると、将棋では先手の勝率が55%(引き分けの対局は除く)程度なので、定跡を深く掘れば掘るほど末端局面で後手が不利な局面に到達しやすく、その結果、後手はplyの浅い、互角に近い局面のほうに誘導するような定跡となってしまう。 これは好ましいとは言えないので、末端の評価値に対してplyに応じた何らかの補正を行う必要がある。これについて以下のように定式化を行い、末端の評価値の補正をした上でmin-maxにより、定跡を生成することにした。 先手が勝ちの対局において、plyにおける期待勝率は、終局に向かって直線的に増加すると仮定できる。1局の平均的な手数が160として、ply ≦ 160とする。 先手から見た、先手勝ちの対局の平均期待勝率(ply) = 50% + ply/160*50% // (ply)は、plyの関数と言う意味 同様に後手からすると後手勝ちの対局の平均期待勝率(ply)(先手から見た期待勝率) = 50% - ply/160*50% とか書けて、仮に、先手の勝率期待値が55%だとすると、前者が55%、後者が45%で生起するので 平均期待勝率(ply) = (50% + ply/160*50%)*55% + (50% - ply/160*50%)*45% = 50% + ply/160*50%*10% = 50% + ply/160*5% つまり、終局までの手数をm、先手の期待勝率をrとすると、 平均期待勝率(ply) = 50% + min(ply,m)/m * ((r-50%)/2) となる。 これで末端局面の評価値を補正する。 勝率と評価値の変換式を用いて、  勝率 = 1 / (1 + exp(-評価値/600)) 評価値の補正値(ply) = (略) これで補正するので leaf_node_eval = 探索で得た評価値 - 評価値の補正値(ply)