終盤読み切りとMPCの誤差
#オセロAI では、中盤読み、終盤読み切り、終盤完全読みと、大まかに分けて3種類の探索フェーズがある。 中盤読みは、最終局面よりも前で探索を打ち切り、評価関数による値を最終結果として近似する探索
終盤読み切りは、最終局面まで読み切るが、あまりにも悪い手は前向きに枝刈りしてしまうもの
終盤完全読みは、最終局面まで厳密に読み切るもの。厳密な最善手を見つける。
ここでは終盤読み切りが実際どれくらい強いのかを考える
終盤読み切りの良いところ
単純に最終局面まで読み切れて、有望な手がいい感じにTTに入る
特に評価関数が苦手な局面だと評価関数の誤差に惑わされにくい
終盤読み切りの悪いところ
MPCを使っているので、読み手数が長くなると2石程度の誤差は生じる
例えば最善が+2、次善が+0だったとき、運悪く次善を+2と判定して、そっちを選んでしまう危険がある。
AI同士の対戦だと致命傷になることも
2石刻みの評価値になるので、若干評価値の表現力が下がる
AIにとって簡単な+2と、AIにとって難しい+2が全く同一になる
評価関数なら+2と+1だったかもしれない
じゃあどうすれば良いのか
正直、空きマス数が多いところで終盤読み切りをするのは少し怖い。
自己対戦と後ろから解析を使って事前探索を行う
適当な読み深さで自己対戦をして、出てきた局面を後ろから適当な読み深さ(自己対戦以上の深さが良い)で解析する
これを深さをインクリメントしながら繰り返すと、評価関数の苦手な局面でも正しく評価できるようになってくる
事前探索の結果をTTに入れた上で、改めて中盤(or終盤)探索を行えば、かなりミスが減る、と思う。