ソルバー頻度は25%刻みに丸めていい?EVとExploitabilityを検証
25ポイント刻みへの丸めは、常に安全でも、常に悪手でもありません。本記事の厳密なリバーゲームでは、1/3ポットとポットベットなら均衡頻度が25%刻みに一致します。しかし、残り5つのベットサイズでは一致しません。3/4ポットでは、Qのベット頻度42.86%・Kのコール頻度57.14%を50%・50%に丸めると、丸めた両戦略をそのまま対戦させたベッター側EVは均衡時から+0.4464チップしか変わりません。それでも、どちらのプレイヤーも単独でベストレスポンスへ切り替えると3.125チップ改善できます。
大切なのは「25%ならよい」という結論ではなく、丸め方の検証方法です。丸めた戦略どうしのEV差が小さくても、一方だけが対応を変えたときの穴は大きい場合があります。両者のベストレスポンスを別々に測り、単位とそのノードへの到達頻度を残し、合成ゲームの結果を実際のソルバー解の保証に広げないことが必要です。
開示:これは、既存の合成AKQゲームを使ってGTO Geckoが設計した独自の頻度丸め実験です。GTO Gecko製品から得た出力でも、ホールデムのソルバー解でも、プレイヤー集団のデータでも、他社ソルバーとの比較でもありません。特定の刻み幅を推奨するものでもありません。公開数値は厳密な有理数演算で算出し、別実装のPython検算器でも再計算しています。
検証するのは、小さな1ストリートのリバーゲーム
ベット前のポットは100チップ。ベッターのレンジはAとQが50%ずつ、ディフェンダーはKだけです。AはKに必ず勝ち、Qにはショーダウンバリューがありません。Aは必ずベットし、Qは頻度fでブラフします。ベットを見たKは頻度cでコールします。ベット額をbとします。
- ベッターがチェックした場合、Aは100チップのポットを獲得し、Qの獲得は0です。
- Kがフォールドした場合、ベットしたAでもQでも100チップのポットを獲得します。
- Kがコールした場合、Aの利得は100 + b、Qの利得は−bです。
- レーキ、引き分け、次のストリート、カード除外効果、トーナメント賞金、母集団仮定はありません。
ここでいう「Qのベット頻度」は、Qを持ったときにベットする条件付き確率です。ベットレンジ内のブラフ比率ではありません。AとQの開始時の比率が同じで、Aは必ずベットするため、ベットレンジ内のブラフ比率はf / (1 + f)です。たとえば3/4ポットではf = 3/7ですが、ベットレンジ内のブラフ比率は3/10です。
このA/Q対Kのモデル自体は、出典に挙げた日本語のAKQゲーム解説などで使われてきた教材です。本記事の独自部分は、7つのベットサイズと5つの刻み幅を横断する丸め実験、片側だけを丸める対照実験、再現用の公開バンドルです。
KにとってコールとフォールドのEVが等しくなる条件から、均衡でのQのベット頻度が決まります。QにとってベットとチェックのEVが等しくなる条件から、均衡のコール頻度が決まります。
均衡でのQのベット頻度:f* = b / (100 + b)
均衡コール頻度:c* = 100 / (100 + b)
各グリッドでは、f*とc*を最寄りのグリッド点へ別々に丸めます。各プレイヤーのもう一方のアクションは100%から引くため、2択の確率は必ず合計100%です。ちょうど刻みの中間に来た場合は上側へ丸めます。この同点処理も再現用ファイルに固定しています。
これは複数のベットサイズに対する局所的なリバー教材で、ホールデム全体の戦略ではありません。混合ブラフ、混合コール、利得の大きさ、丸め規則の関係以外は意図的に取り除いています。
4つの数値は、別々の問いに答える
宣言したQのベット頻度fとKのコール頻度cをそのまま対戦させたとき、ベッターのこのノードでの総リターンをuB(f,c)とします。ノードへ到達する前の拠出はサンクコストです。すべての終端で両者のリターン合計は開始時のポットPになるため、ディフェンダー側はuD = P − uBです。
uB(f,c) = ½(100 + c·b) + ½f[(1−c)·100 − c·b]
丸め後の対戦EV差は、この値と均衡値との差です。丸めた両戦略を、そのままぶつけたらどうなるかを測っています。どちらかが相手のズレに合わせて戦略を変えた場合は測っていません。
ベッターのベストレスポンス(最適応答、BR)改善量では、丸めたKのコール頻度に対して、Qを常にベットするか常にチェックするか、有利な方へベッターだけが変更します。ディフェンダーのBR改善量では、丸めたQのベット頻度に対して、Kを常にコールするか常にフォールドするか、有利な方へディフェンダーだけが変更します。2つの改善量の合計がNashConvです。
本記事では、2人定和ゲームでのExploitability(エクスプロイタビリティ、被搾取可能量)をNashConv÷2と定義します。つまり、相手の戦略を固定したまま一方だけがベストレスポンスに切り替えたときの改善量を、両席で平均した値です。これはOpenSpielの固定版実装と同じ規約です。別のツールがNashConvそのものを表示する場合もあるため、ラベルだけで比較してはいけません。
25ポイント刻みの結果は、ベットサイズで変わる
次の表ではbだけを変えます。各行で厳密な均衡から出発し、両者の混合頻度を0・25・50・75・100%のうち最も近い値へ丸めます。単位は、この合成ノードへ到達した1回あたりのチップです。初期ポットは100です。
狭い画面では横にスクロールできます。「丸め後の対戦EV差」は、丸めた戦略どうしを対戦させたベッター側EVと均衡EVの差で、Exploitabilityではありません。
| ベット | 均衡のQベット / Kコール | 丸め後のQベット / Kコール | 丸め後の対戦EV差 | ベッターのBR改善量 | ディフェンダーのBR改善量 | Exploitability |
|---|---|---|---|---|---|---|
| 1/4ポット | 20% / 80% | 25% / 75% | +0.1563 | 2.3438 | 0.7813 | 1.5625 |
| 1/3ポット | 25% / 75% | 25% / 75% | 0 | 0 | 0 | 0 |
| 1/2ポット | 33.33% / 66.67% | 25% / 75% | +0.5208 | 1.5625 | 4.6875 | 3.1250 |
| 3/4ポット | 42.86% / 57.14% | 50% / 50% | +0.4464 | 3.1250 | 3.1250 | 3.1250 |
| ポット | 50% / 50% | 50% / 50% | 0 | 0 | 0 | 0 |
| 1.5倍ポット | 60% / 40% | 50% / 50% | +1.2500 | 6.2500 | 6.2500 | 6.2500 |
| 2倍ポット | 66.67% / 33.33% | 75% / 25% | +1.0417 | 3.1250 | 9.3750 | 6.2500 |
1/3ポットとポットで0になるのは、25ポイント刻みが本質的に優れているからではありません。その2つでは、たまたま均衡頻度がグリッド点と一致します。同じ規則でも、1.5倍ポットと2倍ポットではExploitabilityが6.25チップ、初期ポットの6.25%になります。
片側だけを丸めると、EVが合うという罠が見える
1/2ポットが最も分かりやすい診断例です。均衡ではQが1/3でベットし、Kが2/3でコールします。Qのベットだけを25%へ丸め、Kのコールを均衡のままにすると、ベッターの対戦EVは66.6667チップのまま。均衡値と完全に一致します。それでも、Kだけが戦略を変えれば4.1667チップ改善できます。本記事の両席平均規約では、Exploitabilityは2.0833チップです。
Kのコールだけを75%へ丸めても、対戦EVは均衡値と完全に一致します。今度はベッターだけが2.0833チップ改善でき、Exploitabilityは1.0417チップです。対戦EVが均衡値と一致しても、その戦略の組が均衡とは限りません。
| 戦略 | Qベット / Kコール | 丸め後の対戦EV差 | ベッターのBR改善量 | ディフェンダーのBR改善量 | Exploitability |
|---|---|---|---|---|---|
| 均衡のまま | 33.33% / 66.67% | 0 | 0 | 0 | 0 |
| Qのベットだけ丸める | 25% / 66.67% | 0 | 0 | 4.1667 | 2.0833 |
| Kのコールだけ丸める | 33.33% / 75% | 0 | 2.0833 | 0 | 1.0417 |
| 両方を丸める | 25% / 75% | +0.5208 | 1.5625 | 4.6875 | 3.1250 |
この現象は、ソルバー資料の注意点とも一致します。完全な均衡では、混合する各アクションは均衡相手に対して無差別です。しかし、戦略全体を動かせば相手に有利な応答を与える場合があります。PioSOLVERの概念FAQも、アクションEVが近いからといって、混合する全ハンドを同じ一方へ寄せてよいわけではないと説明しています。
細かい刻みはこの例で有利だが、保証ではない
1/2ポットで両頻度を最も近い1・5・10・25・50ポイント刻みに丸めると、Exploitabilityは順に0.125、0.625、1.25、3.125、6.25チップです。この例では細かい刻みほど小さくなります。ただし、この大小関係を他のベットサイズにそのまま当てはめることはできません。粗い刻みでも、均衡頻度がグリッド点と一致すればExploitabilityは0になるためです。
実際のソルバー出力には、到達重みやブロッカーが異なる多数のハンドがあります。各セルを独立に丸めると、レンジ全体のアクション量や構成まで変わります。近いハンドを純粋戦略へ振り分けながら全体頻度を維持する方法は、本記事のセル単位ルールとは別の簡略化です。どちらにも、この合成ゲームの数値をそのまま移せません。
簡略化した戦略を検証する5ステップ
- 基準解を固定する。ゲーム定義、レンジ、ボード、スタック、レーキまたはICM、使えるサイズ、収束指標、単位を保存します。
- 簡略化ルールを書く。刻み幅、同点処理、各アクションを独立に丸めるか、合計をどう100%へ戻すかを記録します。
- 変更したレンジ全体を測る。1ハンドのアクションEVが近いことから、レンジ全体の損失を推測しません。
- 両席それぞれのベストレスポンスを計算する。各プレイヤーの改善量を残します。丸めた両戦略間のEVが相殺されても、保護にはなりません。
- 到達頻度で重み付けし、複数ノードで繰り返す。まれなノードでの条件付き5チップは、1ハンドあたり5チップではありません。次ストリートや相互に関連する複数ノードの変更も結果を変えます。
ポーカーソルバーの読み方では、頻度とアクションEVの違いを先に整理しています。頻度を決めた後の偏りのない実行は英語版のPoker Randomizer Guideの守備範囲で、簡略化コストとは別です。対戦EVとベストレスポンスが別の問いになる全ゲーム例は、Kuhn Pokerの収束実験で確認できます。
この実験で分からないこと
厳密なベストレスポンスは、相手が丸めた戦略を完全に知り、ミスも適応コストもなく対応できると仮定します。したがって、Exploitabilityは最悪ケースの頑健性指標であり、人間の相手が実際に得る金額の予測ではありません。逆に、丸めた戦略どうしのEV差が小さくても、相手が対応できない証拠にはなりません。
本実験は、1つのリバーノードへ到達した後の条件付き計算です。ベッター側のハンドクラスはAとQの2種類で、各ケースには固定された1つのベットサイズしかなく、ブロッカーも次のアクションもありません。宣言したもの以外のチェックレンジもありません。複数ストリートのホールデム解を丸めた損失、覚えやすさ、レンジ全体のアクション量を意図的に維持する別の簡略化手法は評価できません。
GTO Geckoとの関係
2026年9月16日に確認した日本向けApp Storeの掲載情報によると、GTO Geckoでは、プランに応じて事前計算済みのプリフロップ/フロップ/ターン/リバーのスポット集を利用し、レンジ構成、アクション頻度、EV推定値を比較しながら、シミュレーション形式で意思決定を練習できます。GTO Geckoは、これらの数値を読み解くための学習ツールです。本実験のデータを生成したものではなく、頻度の丸めを検証する機能や任意のノードを解くソルバーとして紹介しているわけでもありません。
混合アクションを学ぶときは、まずレンジ全体の中で元の頻度とEVを確認します。簡略化するなら別の仮説として記録し、元の値を比較用に残します。下記の公開計算機は、合成したA/Q対Kの式だけを扱います。
全結果を再現する
公開バンドルは決定論的で、非公開ソルバー解、ハンド履歴、顧客データを含みません。
- 手法と再現手順
- モデル、主要結果、要約JSON
- 7サイズ × 5グリッドのCSV
- 1/2ポットの片側丸めCSV
- 955行の全スイープCSV
- 対話型計算機
- 有理数を使うJavaScript生成器
- 別実装のPython検算器
- SHA-256マニフェスト
生成器はBigIntで約分した分数を使います。検算器は別実装のPython fractions.Fractionで、主要35ケース、片側丸め4ケース、全955行を再計算し、固定ファイル一覧と全ハッシュを確認します。通常モードと最適化モードの両方で実行します。
よくある質問
- ソルバー頻度は全部25%刻みに丸めてよいですか?
- 本実験から一般解は出ません。2つのベットサイズでは完全一致し、5つではExploitabilityが生まれました。実際の損失は、レンジ、到達頻度、ブロッカー、次のストリートなどに依存します。
- 対戦EVが正しいのに、なぜ搾取されますか?
- 均衡では、一方の混合が相手を無差別にします。無差別になっている側の頻度を動かしても現在の相手に対するEVは変わらない場合がありますが、相手には有利な純粋応答が生まれます。片側丸めの対照実験が、その相殺を切り分けています。
- ExploitabilityとEVロスは同じですか?
- 定義なしには同じと言えません。本記事では、両者の単独ベストレスポンスによる改善量を平均した値です。片側の最悪ケース損失、NashConv、固定相手へのアクションEV、ゲーム全体のEVは別の量です。
- 丸めずランダマイザーを使うべきですか?
- ランダマイザーは、決めた確率を偏りなく実行する道具です。元の頻度と簡略化後の頻度のどちらが戦略的に妥当かは判定しません。
出典
- PioSOLVER: Calculation, strategies and other concepts:混合アクションのEVと、戦略全体を一方へ寄せた場合の被搾取性。2026年9月16日確認。
- PioSOLVER: Meaning of numbers:混合戦略とアクション後レンジ。2026年9月16日確認。
- OpenSpiel exploitability実装(commit 4840189):ベストレスポンスによる改善、NashConv、本記事で使う2人ゲームの規約。2026年9月16日確認。
- GTO Gecko(日本向けApp Store):製品との関係に記した現在の機能範囲。2026年9月16日確認。
- FreeBetRangeの使い方:ステップバイステップガイド:25ポイント刻みの簡略化を使う現在の日本語例。2026年9月16日確認。
- ソルバー戦略の簡略化—実戦に取り入れる3つの方法:25ポイント、50ポイント、純粋戦略への簡略化に関する日本語資料。2026年9月16日確認。
- AKQゲームで考えるカウンターエクスプロイト耐性付きの搾取戦略:1/2ポット均衡とベストレスポンスの日本語での文脈。2026年9月16日確認。