探索アルゴリズムのscout法とnull window searchの有効性がよくわかりません。
scout法はalpha beta法にnull window searchを使用している探索と理解していますが、null windowの[α, β]を[α, α+1]と設定することで探索の効率が上がることがよくわかりません。
以下の2つの図では、先手と後手の深さ2のゲーム木で、上側の図が通常のαβ法、下側の図がnull windowを使用したαβ法です。
上側の図(通常のαβ法)では、先手Aでの最初の窓は[α, β]=[1, 10]であり、後手B(評価値5)を読んだとき、αが1から5に更新されます。そして次に後手C(評価値6)を読んだときに、6 > α=5であるためαは6に更新され、先手Aからの探索の結果としては[α, β]=[1, 10]⇒[6, 10]と更新されます。
一方、下側の図(null window)では、先手Aでの窓が[α, β]=[1, 2]となると思います。このとき後手B(評価値5)を読んだ際に、α < 5であるため、αは1から5に更新され、同時に β < α となるため、βカットが起きます。これだと、本来後手Cで更新できるはずのα=6が更新されず、間違った評価値が返されると思いました。
null window searchでは通常のβをα+1に減少させることで、βカットが発生しやすくなると考えていますが、上の例の様に枝刈りは起きても正しい評価値が返されないことが多いと思います。
そもそも[α, α+1]の窓を使うと、評価値v <= aのときは後手でαカットされ、v >= βのときは先手でβカットされるため、探索する意味があるのでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。