SEEの高速化案
やっぱりSEEの計算が重いので、差分計算してみようかと検討中。
SEE計算は大雑把に分けると
- 特定のマスに利いている駒の交換値をリストアップする
- 実際に駒を交換した場合の評価値の増減を計算する
という2ステップになっています。
んで、私の実装だと前半が重いので、ここを差分計算しようかと検討中。
実装的には、81個の各マスに利いている駒とその交換値のリストを保持しておいて、駒が動いたり利きが変化した際にそれを更新していく様な感じで行けるかと思います。
現状では全幅5手の探索時に実行時間の60%前後がSEE計算に取られているので、ここを高速化出来ればかなり効果がある…はず。