PUCT探索で即勝ち候補手を厳密に扱い、終盤の誤探索を+0.82pt改善した
自己対局世代G3の敗戦棋譜をリプレイ・詳細分析したところ、「相手に次の1手で勝利が確定する明確な応手が存在する」にもかかわらず、PUCT探索がその重大な枝を一度も訪問せず、過度に楽観的な局面評価Qを残してしまうケースが散見された。ゲーム終了条件の判定ルールや入力特徴量、正解ラベルの定義自体は正しく機能しており、真の原因は探索が限られたステップ数の中で確定局面に到達できていない点にあった。
そこで、「次の1手を進めるだけで勝敗が確定する候補手」についてのみニューラルネットワークの予測に委ねるのをやめ、ネイティブなゲームエンジンによって厳密に判定・バックアップする sml-puct-v3 を構築した。
同じモデル、同じ128 simulationsで比較
3本のG3学習系統を固定した上で、ルールベース強豪である point rush および reserve anchor を相手に、従来のv2探索と修正版v3探索を比較した。総対局数は2,304局である。
| opponent | v3 − v2 | 95% CI |
|---|---|---|
| point rush | +1.04 pt | [+0.36, +1.72] |
| reserve anchor | +0.61 pt | [−0.01, +1.22] |
| equal-weight primary | +0.82 pt | [+0.37, +1.28] |
着手の選択または着手決定までの手数に変化が生じた対局は87局存在し、最終的なゲームの勝敗結果自体が覆った対局は29局に達した。そのうち24局がv3側の勝利へと好転し、逆転負けへ悪化したのはわずか5局にとどまった。
確定局面のみを探索木に反映させる
v3探索では、ノード展開時に候補手をネイティブエンジンの遷移関数に通し、現在の手番プレイヤーがその1手で即座に勝利できる候補手を即座に検出する。
| v2 | v3 |
|---|---|
| priorが低い即勝ち候補は未訪問のまま放置され得る | 即勝ち手は事前確率(prior)の多寡に関わらず確実に認識される |
| 相手の即勝ち応手を深くまで読まないと親のQ値へ反映されない | 厳密な確定評価値(+1 / -1)を即座にバックアップする |
| ニューラルネットワークの予測評価値に依存 | ルールエンジン側で一意に判定できる局面ではエンジンの厳密値を採用 |
典型的な失敗例として、従来のv2探索では、G3が勝利点15点に到達するカード購入に128回中111回もの訪問を集中させ、勝率予測Q=0.89と極めて楽観視していたケースがあった。しかし実際には、その直後の手番で相手が即座に勝ち切る確定手順が存在していた。v3探索ではこの応手を即座に確定敗北(terminal loss)として認識できるため、相手の勝ち札を先回りして予約・カットする防御手へと探索の焦点を正しくシフトさせることが可能になった。
改善範囲の境界と限界
第40手以降の終盤5,825ターンを対象に再探索を実施したところ、v2とv3の間で選ばれる着手が変わったのは97ターンにとどまり、全体の79%にあたる4,629ターンでは完全に同一の手が選択されていた。
| 想定される課題 | v3で対処可能か |
|---|---|
| 次の1手での即勝ち / 即負け | 対処可能 |
| 購入カード枚数のタイブレーク判定を含む確定局面 | 対処可能 |
| 2手以上先に潜む脅威(multi-ply threat) | 対処不可 |
| Tier 3カードと貴族タイルの連鎖など数手先の得点ラッシュ | 学習済み評価値(value)と探索深さに依存 |
| 終盤局面における評価ネットワークの過度な楽観性 | 課題として残存 |
終盤の敗因をすべて「学習データの不足」として片付けるのではなく、ゲームルール上自明に判定できる範囲を探索アルゴリズム側で厳密に担保するアプローチをとった。依然として残る複数手先の脅威や評価値のキャリブレーションの狂いについては、学習パイプライン側の課題として引き続き検証を進めていく。
この記事は、実装・実験記録をもとに、本文の大部分をLLMが執筆し、筆者が内容を確認・編集しています。