# 探索不安定性 探索不安定性(Search Instability)は、探索深さや探索窓、手順順序などのわずかな違いで評価値や Principal Variation が大きく揺れる現象である。 [Aspiration Windows](/shogi/shogiwiki/search/aspiration-windows/)や[PVS](/shogi/shogiwiki/search/principal-variation-search/)の再探索と深く関係する。 ## 概要 探索は理想的には深くなるほど滑らかに精密化してほしいが、 実際には - ある深さで高評価 - 次の深さで急落 - さらに次で元に戻る といった揺れが起きることがある。 原因としては、 - [手の並べ替え](/shogi/shogiwiki/search/move-ordering/)の変化 - fail-high / fail-low による再探索 - [Null Move Pruning](/shogi/shogiwiki/search/null-move-pruning/)や[Late Move Reductions](/shogi/shogiwiki/search/late-move-reductions/)などの選択性 - [静止探索](/shogi/shogiwiki/search/quiescence-search/)や終局判定の境界 がある。 ## どんなときに問題になるか 探索不安定性が強いと、 - [Aspiration Windows](/shogi/shogiwiki/search/aspiration-windows/)の再探索が増える - Principal Variation が頻繁に入れ替わる - 時間管理が難しくなる - 棋譜解析で表示が落ち着かない といった問題が起きる。 ## 典型例 - 静かな局面だと思っていたら、少し深く読んで tactical な筋が見つかる - [LMR](/shogi/shogiwiki/search/late-move-reductions/)で浅く読んだ手が再探索で急に有力になる - [Razoring](/shogi/shogiwiki/search/razoring/)や[Futility Pruning](/shogi/shogiwiki/search/futility-pruning/)の境界付近で挙動が揺れる ## 将棋AIでの位置づけ 将棋は分岐数が大きく、王手・受け・成り・打つ手の影響が大きいので、 探索不安定性が起こりやすい。 そのため実装では、 - 重要ノードでは選択性を弱める - fail-high 後の再探索条件を工夫する - [Principal Variation](/shogi/shogiwiki/search/principal-variation/)の更新規則を安定化させる といった対策が取られる。 ## 注意点 - 不安定性を完全に消すことは難しい - 速度を上げる選択性と安定性はしばしばトレードオフになる - 単に評価値が揺れるだけでなく、最善手自体が変わるかも見る必要がある ## 関連項目 - [Aspiration Windows](/shogi/shogiwiki/search/aspiration-windows/) - [Principal Variation Search](/shogi/shogiwiki/search/principal-variation-search/) - [Late Move Reductions](/shogi/shogiwiki/search/late-move-reductions/) - [Razoring](/shogi/shogiwiki/search/razoring/) - [Futility Pruning](/shogi/shogiwiki/search/futility-pruning/) ## 参考にしたホームページ - [Chessprogramming Wiki: Search Instability](https://www.chessprogramming.org/Search_Instability) - [Chessprogramming Wiki: Aspiration Windows](https://www.chessprogramming.org/Aspiration_Windows) - [GitHub: official-stockfish/Stockfish](https://github.com/official-stockfish/Stockfish/issues/760)