サブゲーム解法 — 実戦の一局面に落とす
ポーカーのゲーム木は天文学的だ。プリフロップから 5 ストリート、全ボード、全ベットサイズ——君の Mac M3 で丸ごと解くのは不可能だ。にもかかわらずソルバーが動くのは、全体を解かず、今この一局面(サブゲーム)だけを切り出して解いているからだ。
ここで君が問うべきは、実戦のたった一つの分岐——「T♠9♦8♣ のリバーで、このスポットだけ正確に知りたい」——をどう解に落とすか、だ。これがサブゲーム解法とリゾルビングの技術になる。
サブゲームとは何か
サブゲームとは、ゲーム木の途中の一点から下流すべてを含む部分木だ。リバーのある状態から始めて、その先のベット/コール/フォールドの全分岐を内包する。
これを独立に解くには、その入口に立つ両者のレンジが必要になる。サブゲームは宙に浮いてはいない。そこに至るまでのプリフロップ・フロップ・ターンの全アクションが、両者のレンジを絞り込んだ結果として入口に届いている。
リゾルビング:上流を信じずに解き直す
ナイーブにサブゲームだけ切り出して解くと、ある罠にはまる。上流(フロップやターン)の戦略を固定したまま下流を解くと、両者がそのサブゲームへ入ってくる確率(=レンジの重み)が歪み、均衡が崩れる。
これを防ぐのがリゾルビング(re-solving)だ。サブゲームを解く際、相手には「このサブゲームに入るより上流で逸れた方が得だったか?」を保証する制約——カウンターファクチュアル値(CFV)の下限——を課す。
ナイーブ切り出し vs リゾルビング
-------------------------------------------------------------
ナイーブ 入口レンジ固定で下流だけ解く
→ 上流の選択を無視 → 均衡が局所的に破綻
リゾルビング 相手の上流逸脱の価値(CFV)を制約に追加
→ 「ここに来ない選択」と整合 → 大域均衡を保存DeepStack や Libratus が実時間で人間を破ったのは、このリゾルビングを各局面で走らせたからだ。君が GTO Wizard で「このスポットだけ解き直す」ボタンを押すとき、内部で起きているのもこれだ。
切り出しの手順
実戦の一局面を解に落とす君のワークフローはこうなる。
1. ストリートを特定 どこから解くか(例:T98 ターン)
2. 入口レンジを再構成 プリ〜前ストリートのアクションから両者のレンジを引く
3. ベットサイズ集合 そのノードで許す離散サイズを決める(1/3, 2/3, pot, ovr)
4. ボード抽象化 類似ターン/リバーを束ねて分岐を圧縮
5. 反復 → 収束判定 Exploitability を見て < 0.5% pot で止める
6. 翻訳 出力頻度を L10 の手順で実戦アクションへアベストラクション:分岐を間引く技術
サブゲームでも、全リバーカード(最大 44 種)×全サイズを律儀に展開すれば爆発する。だから**抽象化(abstraction)**で間引く。
抽象化の二軸
-------------------------------------------------------------
アクション抽象化 ベットサイズを離散化(連続→{33,66,100,200}%)
カード抽象化 戦略的に同型のカードを束ねる(バケット化)
例:T98 でのリバー 2♦/2♠ はほぼ同じ扱い抽象化は近似だ。だが戦略的に等価なものを束ねている限り、解の質はほとんど落ちない。君が削るべきは「区別しても頻度が変わらない分岐」であって、急所のサイズではない。
君が立つ場所
全体ゲームを解くのは研究者の仕事だ。君が卓上で戦うのは、常に今この一つのサブゲームでしかない。
だからハンターの実力は「ゲーム木全部を暗記しているか」では測れない。目の前の一局面の入口レンジを正しく再構成し、そこだけを精度十分に解き、頻度に翻訳して打てるか——それが全てだ。全体は解けない。だが一局面は、いつでも君の手の内にある。
このレッスンの要点
- サブゲームは入口に立つ両者のレンジが全てを決める。ボードだけでは解けない
- リゾルビングは上流逸脱の価値(CFV)を制約に課し、大域均衡を保存する
- 個人運用は入口レンジを広めに取れ。狭さより広さの誤りが安全
- 抽象化は戦略的に等価な分岐だけを間引け。急所のサイズを消すと別ゲームになる