将棋方程式を発見した!(6)

yaneurao2008-04-28



今回は、局面の静止評価について考える。
静止評価とは、探索の終端ノードで局面の評価値を計算することである。


コンピュータ将棋でも、静止評価の手法と言うのは手探り状態が続いている。
コンピュータ将棋始まって以来、あまり大きな進歩を遂げていない部分である。(と思う)


そもそも完璧な静止評価が出来るなら1手だけ先を調べて静止評価して評価値が最大になるものを返せば神のような完璧な指し手になるだろう。しかしそんなことは不可能だ。


結局のところ、そんな完璧な静止評価は出来ない。あくまで近似である。でも、近似と言うなら、本当の値に近い値のほうが良い。


よって、その静止評価したいノードから探索の深さ=無限大にしてmin-maxで探索した時の結果に忠実なほうが好ましい。


これが静止評価する時に一番大切なことである。


静止評価するときのコツとして、少しでも局面を「落ち着かせた」ほうが正しく評価出来ると言われている。逆に激しい局面では正しく評価出来ないと言われている。


私は、そのような書き方は誤解を招くと思う。
そもそも「静かな局面」をどう定義するのかが明確ではない。


「静止評価したいノードから探索の深さ=無限大にしてmin-maxで探索した時の結果に忠実な」評価が静的に行える局面を「静かな局面」と定義すべきである。こう定義すれば「静かな局面」について、ある程度数値化出来る。


「激しい局面」は、min-maxで探索した時の結果を忠実に反映していない局面なので、コンピュータが評価を誤りやすい局面だと言える。


また、「局面を落ち着かせる」方法だが、これは探索の延長によって行なう。
要するに、もう少し先まで調べると言うことだ。


仮定1) 探索をうまく延長すれば、静かな局面が現れるはずだ。


と言う仮定をしている。この仮定が成り立つかどうかは評価関数次第だが、通常のコンピュータ将棋においてはおおむね成り立つと考えて良い。


さて、通例、コンピュータ将棋の静止探索の議論において、「激しい局面」の代表格として挙げられるのは、駒が当たりになっている局面である。


駒の取合いが終わるまで探索を延長する。これは、すべての取れる駒がなくなるまで延長して(minmaxで)探索する「捕獲探索」(All-captures Quiescence Search)と呼ばれる。チェスで昔からある手法だ。


コンピュータ将棋で評価しにくいのは「駒の働き」である。特に駒がとられかけの場合、とられるならば大きく形勢を損ねてしまうし、取られないなら優勢を維持出来るかも知れない。


このように「取られかけの駒」の評価をなるべく正確に数値化するためには、駒が取られるのか取られないのかをはっきりさせたほうが良く、捕獲探索は当たりになっている駒を無くすと言う意味において「取られかけの駒」の評価を少し正確に行える効果があると期待できる。


しかし、今回の説明を理解していれば、それがあまり適切な延長ではないことは自明である。


どう応じても取られてしまう飛車を「飛車が詰んでいる」などと形容することがあるが、このように飛車が詰んでいることを先読みなしで静的に評価することは不可能である。これはわずか3手の詰将棋であっても先読みなしに静的に詰み/不詰みを決定出来ないと言うのと同じ理由によるものである。


そのくせ飛車が詰む/詰まないの結論次第でその局面の評価値が大きく変動してしまう。そこで評価値を大きく誤ってしまわないためにも延長して詳細を調べる必要がある。これが探索の延長の根底にあるべき考え方である。


この意味において、捕獲探索のおかしい点は、


1) 駒を取る手以外を生成していない。大駒が取られるかどうかが最大の関心事なのだから、「大駒が取られるのを逃れる手」や「大駒に利きを付ける手」なども生成すべき。
2) 駒の取合いがないからと言って静的に評価しやすい局面とは限らない。
3) 終盤において「歩」などの価値の低い駒の取合いは関心事ではないのでそんな取合いを評価しても仕方がない。


の3点である。


本日の図は、駒は当たっていないが飛車が詰んでいて先手が取ろうと思えば3手後には間違いなく取られる。*1 この図のような局面は「静かな局面」ではないし、これを「静かな局面」と分類してしまうような「静かな局面」の定義の仕方はおかしいのである。

*1:この形で「飛車」が詰んでいるかどうかを判定するには「飛車」を「王」に見立てて詰将棋を行なえば良いだけだが、実際はもっと長い手数をかけて取られてしまう場合もあるのでそう簡単ではない。