ポーカーアドベントカレンダー2025 22日目|しぐま|MDFだいすきクラブ
この記事の目次
- はじめに
- 1. MDFとは?
- 2. MDFへの批判とmodelによる検証
- [Model #2] AKQJ model
- AKQJ modelのNash均衡
- [Model #3] 有限check EVの拡張AKQ model
- 有限check EVの拡張AKQ modelのNash均衡(\( p \)が十分小さい場合)
- [Model #4] 発展率付き拡張AKQ model
- 発展率付き拡張AKQ modelのNash均衡(\( p \)が十分小さい場合)
- [Model #5] Full-street [0, 1] model
- Full-street [0, 1] modelのNash均衡
- [Model #6] Half-street [0, 1] model
- Half-street [0, 1] modelのNash均衡
- [Model #7] Half-street [0, 1]-[\( -\delta \), 1] model
- Half-street [0, 1]-[\( -\delta \), 1] modelのNash均衡
- [Model #8] Half-street [0, \( 1+\delta \)]-[0, 1] model
- Half-street [0, \( 1+\delta \)]-[0, 1] modelのNash均衡
- [Model #9] Full-street [0, 1]-[\( -\delta \), 1] model
- Full-street [0, 1]-[\( -\delta \), 1] modelのNash均衡①(\( \delta \)が十分小さい時)
- Full-street [0, 1]-[\( -\delta \), 1] modelのNash均衡②(\( \delta \)が少し大きい時)
- [Model #10] Full-street [0, \( 1+\delta \)]-[0, 1] model
- Full-street [0, \( 1+\delta \)]-[0, 1] modelのNash均衡(\( \delta \)が十分小さい場合)
- 3. まとめ
- 4. 関連文献
- 5. おわりに
はじめに
みなさん、こんにちは。ポーカーアドベントカレンダー2025の22日目を担当する、しぐま(@sigm_4)と申します。普段は、Seeker Start (@seekerstart)というポーカー学習コミュニティの運営の一人として活動しています。ポーカーの基礎理論的な部分に関心があり、noteの執筆やTwitterによる情報発信を行っています。
このポーカーアドベントカレンダーの企画は、私の次のような発言を髙木皓太(@KotaTakagi1326)さんに拾っていただいたところからスタートしました。
当初はこんなにも豪華な方々に素敵な記事を書いていただけることになるとは全く想定しておらず、ご協力いただいたみなさまに改めて感謝申し上げます。また、髙木さんには企画コンセプトの設定から企画の管理・進行にいたるまで、大変な速度と熱量でご尽力いただきました。自分一人ではこの企画を成立させることは到底不可能でした。この場を借りて、感謝申し上げます。
そんなポーカーカレンダーも22日目です。昨日は、AmuさんがPoker×AIという内容で記事を寄せてくださいました。今日までバトンを繋いでくださった方々の記事、そしてこれから登場される方々に関する情報はこちらをご参照ください↓↓
🎄🎄🎄
さて、ポーカー界には、年に一度必ず盛り上がるクリスマスのようなイベントがありますよね。そう、牛歩MDF (Minimum Defense Frequency)に関する議論です。「実戦ではMDFなんか必要ない」、「MDFは非現実的なモデル上の数値にすぎない」、「GTO戦略上でもMDFとずれた結果が出ることが多い」と、長年ポーカー界にいる方は毎年この手の議論を見てきたのではないでしょうか?
そこで、年に一度のアドベントカレンダーということで、本稿ではMDFについて改めて眺めてみることにしました。なんといっても、MDFは冬の季語ですからアドベントカレンダーのテーマとしてぴったりです[図0]。私もこのように生成AIをポーカーの学習に役立てています。

[図0] MDFは冬の季語とのことです(ChatGPT 5.2)。
アドベントカレンダーはより広い方々に読んでいただきたいというのもあり、基本的なところから始めて、最終的にはflop CBに対するdefense頻度を見積もる上での良いmodelを提案するというところを目指します。簡単な結論としては、「Flop CBに対する平均的なdefense頻度を見積もるためには、EQ差を考慮して拡張した[0, 1] modelが良い」ということになります。この結論が出てくるまでに長い道のりを辿りますが、冬景色の道中を楽しんでいただけたらと思います🚗
普段執筆するnoteはやや専門的と言われていますが、今回の記事では偏微分やTaylor展開は出てきません。安心してお読みください!
1. MDFとは?
MDF (Minimum Defense Frequency)を導入するために、AKQ modelから始めましょう。AKQ modelとは、次のようなtoy modelです。
[Model #1] AKQ model
・プレイヤー1:AまたはQを等確率で持つ。
・プレイヤー2:Kを持つ。
・プレイヤー1のみが1度だけbet(またはcheck)を行うことができるとし(= half-street)、potに対するbet sizeを\( B \)に固定する。
・プレイヤー2はプレイヤー1のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・プレイヤー1のcheckまたはプレイヤー2のcallが生じた時点でshowdownを行い、カードのランクの大きいプレイヤーがその時点のpotを獲得する。
AKQ modelのNash均衡(「GTO戦略の組」と思ってもらえれば良いです)を得るためには、次の2つの計算を行います。
① プレイヤー1は、プレイヤー2のKをcall or foldのindifferentにするようにQのbet頻度を決める。
② プレイヤー2は、プレイヤー1の持つQをbet or checkのindifferentにするようにcall頻度を決める。
するとAKQ modelのNash均衡は次のようになることが導けます。
AKQ modelのNash均衡
・プレイヤー1は、Aを必ずbetし、Qを確率\( \frac{B}{1+B} \)でbet、確率\( \frac{1}{1+B} \)でcheckする。 ……①より
・プレイヤー2は、プレイヤー1のbetに対して確率\( \frac{1}{1+B} \)でcall、確率\( \frac{B}{1+B} \)でfoldする。 ……②より
このAKQ modelのNash均衡で導かれた、プレイヤー2の持つKのcall頻度のことをMDF (Minimum Defense Frequency)と呼ぶことにします。つまり、MDFをpot額に対するbet額\( B \)の関数として、
$$
\begin{eqnarray}
\mathrm{MDF}(B) = \frac{1}{1+B} \tag{1}
\end{eqnarray}
$$
と定義します。プレイヤー2がcall頻度をMDFから変更してしまうとexploitされる可能性が出てきます。例えば、プレイヤー2がKのcall頻度をMDFから減らしたとすると、プレイヤー1はbluff頻度(= Qのbet頻度)を増加させて追加の利益を得ることができます。Minimum Defense Frequencyと呼ばれるのはそのためです。
[当たり前の註:逆にMDFからcall頻度を増やしたとすると、プレイヤー1はbluff頻度を減らして追加の利益を獲得できるため、“minimum”だからと言ってcall頻度を上げて良いわけではありません。]
2. MDFへの批判とmodelによる検証
MDFは、Nash均衡におけるcall頻度を見積もる手段として各所で紹介されています。YouTubeの解説動画や、初等的なポーカー書籍でもかなりの頻度で出会します。一方で、「MDFは実際のポーカーでは参照する意味はない」というような批判もよく目にします。具体的な批判内容を挙げてみましょう。
- お互いのrangeのEQに差がある場合(特にcaller側に非常に弱いhandが存在する場合)、MDFは達成されない。
- Bluff handは実際には有限のEQがある。
- MDFはAKQ modelのように完全polarizeしたrangeを想定して得られたcall頻度である。
以下では、これらの指摘事項をmodelを通じて見ていきます。次々にmodelが出てくるので、図1に前もってロードマップを示しておきます。迷子になってしまった場合は、その都度参照しながら読み進めてください🧭

[図1] 本稿で扱う#1〜#10のmodelの関係性。
まず、MDF批判の1点目のcaller側に弱いhandが存在するケースを考えてみましょう。具体的な状況として、以下のようなAKQJ modelというtoy modelを見てみます。
[Model #2] AKQJ model
・プレイヤー1:AまたはQを等確率で持つ。
・プレイヤー2:Kを確率\( 1-p \)で持ち、Jを確率\( p \)で持つ。
・プレイヤー1のみが1度だけbet(またはcheck)を行うことができるとし(= half-street)、potに対するbet sizeを\( B \)に固定する。
・プレイヤー2はプレイヤー1のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・プレイヤー1のcheckまたはプレイヤー2のcallが生じた時点でshowdownを行い、カードのランクの大きいプレイヤーがその時点のpotを獲得する。
このmodelはAKQ modelとほとんど同じですが、プレイヤー2がbluff catcherのKだけでなく、EQ 0%のJも持つようなmodelになっています。このmodelのNash均衡は次のようになります。
AKQJ modelのNash均衡
・プレイヤー1は、Aを必ずbetし、Qを確率\( \frac{B}{1+B} \)でbet、確率\( \frac{1}{1+B} \)でcheckする。
・プレイヤー2は、プレイヤー1のbetに対してKを確率\( \frac{1}{1+B} \)でcall、確率\( \frac{B}{1+B} \)でfold、Jをpure foldする。
Nash均衡は、プレイヤー2がJを持つ確率\( p \)に依存しません。これは当然で、JのEQは0%で、プレイヤー1のどのアクションに対してもなす術なしだからです。プレイヤー1はAとQでKを挟み込むというAKQ modelの基本構造は影響を受けません。
しかし、プレイヤー2のrange全体のcall頻度はAKQ modelにおけるcall頻度とは異なることに注意しましょう。プレイヤー2のrange全体のcall頻度は、KとJについて重み付けして平均を取ることで、
$$
\begin{eqnarray}
(1-p)\cdot \frac{1}{1+B} + p\cdot 0 = (1-p)\mathrm{MDF}(B) \tag{2}
\end{eqnarray}
$$
と得られます。すると、range全体のcall頻度はMDFよりも小さくなってしまいました。これは当然の結果で、callerはbluff catcherのKをMDFに一致する頻度でcallする一方、EQ 0%のJを必ずfoldするため、その分fold頻度が底上げされているのです。このように、特定のbluff catcherに対してはMDFが意味を成すものの、「Range全体のcall頻度をMDFに一致させるようにプレイする」という指針は必ずしも正しくないことが示唆されます。MDF批判①「お互いのrangeのEQに差がある場合(特にcaller側に非常に弱いhandが存在する場合)、MDFは達成されない」は妥当ですね。
次に2点目のbluff handに有限のEQがあるケースを考えてみましょう。簡単なmodelとして、次のような有限check EVの拡張AKQ modelを考えてみましょう。
[Model #3] 有限check EVの拡張AKQ model
・プレイヤー1:AまたはQを等確率で持つ。
・プレイヤー2:Kを持つ。
・プレイヤー1のみが1度だけbet(またはcheck)を行うことができるとし(= half-street)、potに対するbet sizeを\( B \)に固定する。
・プレイヤー2はプレイヤー1のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・プレイヤー1のcheckまたはプレイヤー2のcallが生じた時点でshowdownを行い、カードのランクの大きいプレイヤーがその時点のpotを獲得する。
・ただし、プレイヤー1がcheckしたQは、プレイヤー2のKに対して \( p[100\%] \) のEQがある。
このmodelでは、bluff handのQにcheck EVが付与されています。実際のポーカーのflopやturnでは、基本的にEQ 0%のhandは存在しません。例えば、flopにおいてはどれだけ弱いhandでも10%〜20%程度のEQがあることがほとんどです。そのような状況を素朴にmodelに導入するとどうなるでしょうか?このmodelのNash均衡を求める手続きは、通常のAKQ modelとほとんど同じです。プレイヤー2のKのcall頻度を導くには、プレイヤー1のbluff hand Qのbet EVがcheck EVに等しいという条件を使いますが、今回はcheck EVが0ではなく、\( p \)であることに注意します。ここでは\( p \)が十分小さい場合について、結果を示します。
有限check EVの拡張AKQ modelのNash均衡(\( p \)が十分小さい場合)
・プレイヤー1は、Aを必ずbetし、Qを確率\( \frac{B}{1+B} \)でbet、確率\( \frac{1}{1+B} \)でcheckする。
・プレイヤー2は、プレイヤー1のbetに対して確率\( \frac{1-p}{1+B} \)でcall、確率\( \frac{B+p}{1+B} \)でfoldする。
通常のAKQ modelと比較すると、このmodelのNash均衡ではプレイヤー2のKのcall (fold)頻度が修正を受けていることがわかります。Call頻度は、MDFに対して\( 1-p \)のファクター分小さくなっています。プレイヤー1はbluff hand (Q)を持たされた時、check EVがあるのでcheckする誘惑に駆られます。それに対応して、プレイヤー2はbluff catchする頻度を低下させることで、プレイヤー1にbluffしてもらおうとするというわけです。
Check EVが有限だからMDFよりcall頻度を下げる、「まあそうだよね」と思ったかもしれません。でもちょっと待ってください。Bluff handにcheck EVがあるなら、betしてcallされた場合にもbluff catcherを捲れる可能性を考えてもいいんじゃないの?そのような疑問に答えるべく、次のような発展率付き拡張AKQ modelを考えましょう。
[Model #4] 発展率付き拡張AKQ model
・プレイヤー1:AまたはQを等確率で持つ。
・プレイヤー2:Kを持つ。
・プレイヤー1のみが1度だけbet(またはcheck)を行うことができるとし(= half-street)、potに対するbet sizeを\( B \)に固定する。
・プレイヤー2はプレイヤー1のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・プレイヤー1のcheckまたはプレイヤー2のcallが生じた時点でshowdownを行い、コミュニティカードを1枚開いて、強い役を持つプレイヤーがその時点のpotを獲得する。
・コミュニティカードは、Qと2がそれぞれ\( p \)と\( 1-p \)の確率で現れるものとし、役判定はpair > high cardで決める(high card内はrankの大小で強さを決定)。
このmodelでは、プレイヤー1のbluff hand Qが確率\( p \)で発展して、プレイヤー2のbluff catcher Kを捲ることができます。AKQ modelと同様にKをcall or fold、Qをbet or checkのindifferentになるようにアクション頻度を決定することでNash均衡を導くことができます。計算過程は省略しますが、発展率\( p \)が十分小さい条件の下では、次の結果が得られます。
発展率付き拡張AKQ modelのNash均衡(\( p \)が十分小さい場合)
・プレイヤー1は、Aを必ずbetし、Qを確率\( x \)でbet、確率\( 1-x \)でcheckする。
・プレイヤー2は、プレイヤー1のbetに対して確率\( y \)でcall、確率\( 1-y \)でfoldする。
ただし、
$$
\begin{eqnarray}
x &= \frac{1}{1-\frac{1+2B}{1+B}p}\frac{B}{1+B}, \tag{3} \\
y &= \frac{1-p}{1-\frac{1+2B}{1+B}p}\frac{1}{1+B} \tag{4}
\end{eqnarray}
$$
である。
プレイヤー1のbluff頻度\( x \)は、通常のAKQ modelにおけるbluff頻度(\( = \frac{B}{1+B} \))よりも大きくなっています。プレイヤー1のbluff handは一定の確率で“value hand”に昇格するので、相手のKをindifferentに追い込むためには多めにbluffしておけば良いと解釈できます。
一方、プレイヤー2のcall頻度\( y \)を見ると、MDF(\( = \frac{1}{1+B} \))より大きくなっていることがわかります。プレイヤー1のbluff handは相手のrangeに対して\( p \)に等しいEQを持っているため、check EVが生じます。するとbluff handは、checkがお得に見えるわけですが、実際にはbetをcallされてからも捲り目があるという点を考慮すると、betもお得な気がしてきます。今回はbetの方が実はお得で、プレイヤー1はbetに前のめりです。それに対応して、プレイヤー2はcall頻度を上げることで、プレイヤー1のbluffを抑制しに動くわけです。
Bluff handに発展可能性がある状況では、checkとbetのどちらにも得があるという点が重要です。どちらがより大きな利得を生み出すかは、(betした場合の平均pot額) = (callされた後のpot額)×(call確率)が(現在のpot額)よりも大きいかどうかで決定されます。(callされた後のpot額) = \( 1+2B \)で、(call確率) = MDF ( = \( \frac{1}{1+B} \))を代入すると、(betした場合の平均pot額) = \( \frac{1+2B}{1+B} > 1 \)となるため、betがcheckよりも得になるという構造になっているのです。
有限check EVの拡張AKQ modelと発展率付き拡張AKQ modelの2つのmodelの結果を見ると、それぞれcall頻度をMDFより低下させる/上昇させるという真逆の結果を示しています。では、現実にはどちらのmodelが正しそうでしょうか?
有限check EVの拡張AKQ modelでは、check すると有限のEQがQに付与されますが、betした場合にはbluff handのEQは0です。一方、発展率付き拡張AKQ modelでは、checkしてもbetしても同じだけのEQがあります。現実にはこれら二つの間にあると考えるのが自然でしょう。例えば、flopでIPからCBを打つ場面で、非常に弱いhandをbetせずにcheck backしてturnに進むと、大体20%程度のEQが残ります。一方、そのhandをbetすると、相手のcall rangeに対しては(bet sizeに依りますが)EQ 10%付近に低下します。
有限check EVの拡張AKQ modelの結果を思い出すと、call頻度がMDFに比べてQのcheck後のEQ分だけ低下するのでした。上述のようにflopを想定して、Qのcheck後のEQを20%と仮定すると、call頻度はMDFより20%低くなります。一方、発展率付き拡張AKQ modelでは、bluff handの発展率を20%として、pot betをする場合を考えると、式(4)よりcall頻度がMDFより約14%高くなることがわかります。これらの単純平均を取ることで、flopにおけるbluff handのEQの影響を見積もると、pot betに対するcall頻度はMDFに比べて約3%低くなると考えられるわけです。Bluff handのEQがあることでcall頻度がMDFからずれる影響は、高々数%程度に収まると予想できます。というわけで、MDF批判②「Bluff handは実際には有限のEQがある(からMDFは当てにならない!)」は妥当ではあるものの、意外と影響が小さい可能性があります。
ここで、実際のポーカーのflopにおいて、call頻度がMDFからどの程度乖離するのか見てみましょう。
図2にはSB vs. BB SRPのCBに関して、bet sizeに対するBBのdefense頻度(= call頻度+raise頻度)のグラフを示しています。赤い点は、当該スポットにおけるGTO Wizard 50NL Complexのsolutionから、CBに対するdefense頻度を全flopに関して平均した値を計算してプロットしています。黒い曲線は、式(1)の\( \mathrm{MDF}(B) = \frac{1}{1+B} \)を描いたものです。なお、データはGTO Wizard Blog「ポーカーにおける数学的誤解」(リンク)から採取しています。

[図2] SB vs. BB SRPにおけるCBに対するcall頻度のbet size依存性。赤い点は当該スポットにおける実際のdefense頻度、黒い曲線はMDFを表す。データはGTO Wizard Blog「ポーカーにおける数学的誤解」(リンク)から採取。
図2を見ると、flopに関して平均されたcall頻度は、綺麗にMDFに一致していることがわかります。お〜👏👏これまで見てきたmodelは、AKQ modelベースのpolarizeしたbet rangeを持つものでしたので、polarizeしたbet rangeを持つbet sizeの大きな状況ではMDFに近いcall頻度を持つことを特に期待します。図2をよくよく見ると、bet sizeが大きい場合にはcall頻度がMDFよりも数%程度小さくなっていることに気づきます。
Call頻度がMDFからずれる代表的な要因として、お互いのrangeのEQ差と、bluff handの有限EQの2つを見ましたが、これらの影響を具体的に見積もってみましょう。
SB vs. BB SRPでは、お互いのrangeのEQ差は平均的に7pt.程度です(SBのEQが53.5%、BBのEQが46.5%)。AKQJ modelの式(2)によれば、お互いのrangeのEQ差の分だけrange全体のcall頻度が低下します。つまり、このmodelは7%程度のcall頻度の低下を示します。しかし、KJ側のみに最弱handがあって、それがrange全体のEQ差を決めているという状況は不自然です。実際には、AQ側のAの量が多いことでもEQ差が生じます。そして、AQ側のAの割合が増えたとしても、KJ側のKのcall頻度は変化しません。実際のポーカーでは、bettorのtop rangeの多さとcallerのbottom rangeの多さの両方によってrange全体のEQ差が生じることを考えると、ざっくり見積もって、EQ差の半分程度(〜3.5%)がcall頻度とMDFの差に寄与するだろうと思えます。
Bluff handが有限のEQを持つことの影響についてはどうでしょう?Flopでbluff handのEQが20%程度であることを仮定すると、pot betの場合にcall頻度がMDFから約3%程度低くなることを前に見積もりました。Bet sizeを大きくすると、このずれは小さくなります。先の計算に基づくと、double-pot betの場合にcall頻度がちょうどMDFに一致します。
これらを総合すると、double-pot bet付近では、call頻度がMDFに比べて3%程度低くなることになります。図2のbet sizeが大きい2点(180%〜250%付近)を見ると、およそ4%程度のずれが見られるため、modelとかなり良い一致具合です。上記のような修正を行ったAKQ modelベースのtoy modelは、flop CBに対するcall頻度を良い精度で見積もれているようです。
しかし、図2の驚くべき点は、大きいbet sizeだけでなくあらゆるbet sizeについてcall頻度がMDFと一致していることです。なぜこれほどuniversalに成り立っているのか不思議ですよね。それに、AKQ modelから派生したmodelだけで上記のように説明しても、なんだか騙された気がします。
そこで、MDFに対する批判の3点目に挙げた、「MDFはAKQ modelのように完全polarizeしたrangeを想定して得られたcall頻度である」について考えてみましょう。実際、flopではお互いのrangeのEQ分布(distribution)は近く、EQ graphを見てもpreflop aggressor側のrangeがpolarizeしていると言えることは滅多にありません。
Distributionの観点でAKQ modelと対照的で有名なmodelとして、[0, 1] modelが挙げられます。[0, 1] modelとは、お互いのhandが[0, 1]の閉区間からランダムに選ばれ、その数の大小で勝敗を決めるというmodelです。AKQ modelでは、一方のプレイヤーがEQ 100%と0%の極端な分布のrangeを持っていたのに対し、[0, 1] modelではお互いに一様な分布のrangeを持っています。以下では、こちらを用いてbetに対するcall頻度を議論していきましょう。
SB vs. BB SRPのようなOOPのプレイヤーがbettorの場合には、片方のプレイヤーにのみbet権が与えられるhalf-streetではなく、両方のプレイヤーがbet可能なfull-streetのmodelを検討すべきです。これまで見た拡張AKQ model関連のmodelはhalf-streetとして扱ってきましたが、callerがcondensedなrangeを持っているために、ほとんどの場合full-streetに変更してもそちらから打ち出すことはできず、状況は変わりません。しかし、[0, 1] modelでは、half-streetとfull-streetで状況が変わってきます。
というわけで、OOP bettorの場合を調べるために、full-streetの[0, 1] modelを見ることから始めましょう。
[Model #5] Full-street [0, 1] model
・プレイヤー1(OOP)とプレイヤー2(IP)はそれぞれ、閉区間[0, 1]から独立な一様分布に従って1つずつ実数を選択する。
・OOPのプレイヤー1は先にbet(またはcheck)を行うことができ、checkした場合にはIPのプレイヤー2もbet(またはcheck)を行うことができる(= full-street)。Potに対するbet sizeを\( B \)に固定する。
・双方のプレイヤーは相手のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・いずれかのプレイヤーのbetにもう一方のプレイヤーがcallした場合と、お互いがcheckした場合はshowdownを行い、最初に選択した実数が大きいプレイヤーがその時点のpotを獲得する。
導出過程は省略しますが、このmodelのNash均衡は次のようになります。
Full-street [0, 1] modelのNash均衡
・図3にNash均衡の概略を示している。
・OOP(プレイヤー1)の戦略は、\( a, b, c \)の3つの境界で区切られた4つの純粋戦略区間を持つ。\( [c, 1] \)の区間はvalue bet、\( [b, c] \)の区間はcheck/call、\( [a, b] \)の区間はcheck/fold、\( [0, a] \)の区間はbluff betを行う。
・OOP(プレイヤー1)からbetを受けた場合のIP(プレイヤー2)の戦略は、\( [d, 1] \)の区間でcall、\( [0, d] \)でfoldを行う。
・OOP(プレイヤー1)がcheckした場合のIP(プレイヤー2)の戦略は、\( [f, 1] \)の区間でvalue bet、\( [e, f] \)の区間でvalue bet 、\( [0, e] \)でbluff betを行う。
ただし、
$$
\begin{align}
a &= \frac{B}{(1+B)^2(1+2B)}, \tag{5} \\
b &= d = \frac{B}{1+B}, \tag{6} \\
c &= 1-\frac{1}{(1+B)(1+2B)}, \tag{7} \\
e &= \frac{B}{(1+B)(1+2B)}, \tag{8} \\
f &= 1-\frac{1}{1+2B} \tag{9}
\end{align}
$$
である。

[図3] Full-street [0, 1] modelのNash均衡。
今注目したいのは、OOPのbetに対するIPのcall頻度\( 1-d \)です。上の結果のうち式(6)を参照すると、call頻度\( 1-d \)はMDFにちょうど等しいことがわかります。これは実は計算を実行することなくわかります。まず、OOPはpolarizeしたbetを行います。OOPの残されたcheck rangeは、betによってtopとbottomが削られたために、元々のrangeよりもmarginalでcondensedになります。従って、OOP check後のIPのbetは、OOPのbetよりもvalueの下限を下げることができて、それに応じてbluffも多くなります。つまり、IPのcheck or bluff betの境界hand \( e \)は、OOPのcheck or bluff betの境界hand \( a \)よりも高くなります。これは、OOPのcheck or bluff betの境界hand \( a \)のEVが0ということを意味します。OOPのbluff handはcheck EVが一見ありそうに思えますが、実際にはないのです。つまり、OOPのbetとIPのcallが通常のAKQ modelの構造と同じになっていて、IPはOOPのbetに対してMDFに等しい頻度でcallすれば良いことになります。
一見複雑に見えるfull-street [0, 1] modelですが、call頻度自体はこのような考察から簡単に導くことができます。Full-street [0, 1] modelはAKQ modelと全く異なるrange distributionとなっているにも拘らず、厳密にMDFが登場することは意外に感じるかもしれません。どうやらMDFは意外とuniversalな基準のようです。MDF批判③「MDFはAKQ modelのように完全polarizeしたrangeを想定して得られたcall頻度である」は、100%的を射ている指摘事項とは言えないかもしれません。
「AKQ modelがflopを記述する良いmodelになっていて、そのためにOOPのCBに対するIPの平均的なcall頻度がMDFで精度良く求まる‼️」と言われると、そんな極端なrange distributionを持つmodelでそんなこと言われても……という気持ちになりますが、「Full-street [0, 1] modelがOOP bettorの場合の平均的flopを記述する良いmodelになっている」というのは比較的妥当そうに思えます。もしくは、次のように理解すると健康かもしれません。
・Full-street [0, 1] modelがOOP bettorの場合の平均的flopを記述する良いmodelになっている。
↓
・Full-street [0, 1] modelにおけるOOPのpolarizeしたbetと、bluff handのcheck EVが0という構造はAKQ modelの構造と同質である。
↓
・IPのcall頻度は、AKQ modelから定義されるMDFに等しくなる。
このように理解すると、IP bettorの場合も[0, 1] modelで記述できるのではないかと期待します。つまり、IP bettorの場合には、half-street [0, 1] modelが対応するように予想できます。
ここから先は、[0, 1] model関連のmodelを検証することで、flopの“MDF”に関して理解を深めていきます。道に迷いそうになったらロードマップ図1を参照してくださいね。
[Model #6] Half-street [0, 1] model
・プレイヤー1とプレイヤー2はそれぞれ、閉区間[0, 1]から独立な一様分布に従って1つずつ実数を選択する。
・プレイヤー1のみが1度だけbet(またはcheck)を行うことができるとし(= half-street)、potに対するbet sizeを\( B \)に固定する。
・双方のプレイヤーは相手のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・プレイヤー1のcheckまたはプレイヤー2のcallが生じた時点でshowdownを行い、最初に選択した実数が大きいプレイヤーがその時点のpotを獲得する。
Nash均衡は比較的よく知られた結果で、次のようになります。
Half-street [0, 1] modelのNash均衡
・図4にNash均衡の概略を示している。
・プレイヤー1は、\( [c, 1] \)の区間はvalue bet、\( [a, c] \)の区間はcheck、\( [0, a] \)の区間はbluff betを行う。
・プレイヤー1からbetを受けた時、プレイヤー2は\( [b, 1] \)の区間でcall、\( [0, b] \)でfoldする。
ただし、
$$
\begin{align}
a &= \frac{B}{(1+2B)(2+B)}, \tag{10} \\
b &= 1-\frac{2(1+B)}{(1+2B)(2+B)}, \tag{11} \\
c &= 1-\frac{1+B}{(1+2B)(2+B)} \tag{12}
\end{align}
$$
である。

[図4] Half-street [0, 1] modelのNash均衡。
Half-street [0, 1] modelでも、full-streetの時と同様、プレイヤー1はpolarizeしたbet rangeを持ち、対するcallerはある値を境にしてfoldとcallが切り替わるという戦略の組になっています。私たちが気にしているのは、betに対するcall頻度\( 1-b \)で、これを改めて計算すると、
$$
\begin{eqnarray}
1-b = \frac{1}{1+B}\left(1-\frac{B}{(1+2B)(2+B)}\right) \tag{13}
\end{eqnarray}
$$
となります。式(13)のcall頻度は、MDF(\( = \frac{1}{1+B} \))に比べて\( \frac{B}{(1+2B)(2+B)} (>0) \)の分だけ小さくなっていることに気づきます。これは、プレイヤー1のbluff handに有限のcheck EVがあることに起因しています。このことを見るために、このmodelのNash均衡を導くための式を少し追ってみましょう。
図4のようにNash均衡の形を決めた後は、境界のhandがそれぞれ2つのアクション間でindifferentになるようにしてやるだけです。例えば、\( a \)の値のhandについては、bet EVとcheck EVが等しくなるように式を立てます。つまり、
$$
\begin{align}
(\text{bet EV}) &= b\cdot 1 + (1-b)\cdot (-B) \\
&= (\text{check EV}) = a \tag{14}
\end{align}
$$
が成り立ちます。これを整理すると、
$$
\begin{eqnarray}
1-b = \frac{1}{1+B}(1-a) \tag{15}
\end{eqnarray}
$$
を得ます。式(15)はプレイヤー2のcall頻度\( 1-b \)が、MDF(\( = \frac{1}{1+B} \))に比べてcheck EV \( a \)の分だけ小さくなることを示しています。プレイヤー1はcheckすれば、showdown valueがあるため、ある程度の得がないとbetしたくはならないわけです。そのために、プレイヤー2はbluff catchを減らす方に動く結果になるのです。
これは、前に見た有限check EV付き拡張AKQ modelと全く同じ構造です。唯一異なる点は、このmodelではcheck EVが事前に決められた固定された値ではなく、bluff handの上限の値\( a \)で決まることです。\( a \)はbluffの総量を表しますが、bluffの総量はvalueの総量(とbet size)で決まり、valueの総量(value handの下限)は相手のcall rangeで決まります。つまり、このmodelでは、call頻度\( 1-b \)、bluffの総量\( a \)、valueの総量\( 1-c \)が互いに関係し合って最終的なNash均衡が決まります。従って、正確なcall(またはfold)頻度の式(13)(または式(11))を得るためには、式(15)を含めた3つの式を連立させて解くことになりますが、call頻度がMDFに比べてどのようにずれるかを知るためには式(15)で十分です。
さて、このhalf-street [0, 1] modelは、実際のポーカーのflop CBに対するdefense頻度(= call頻度+raise頻度)を説明できるでしょうか?図5には、BTN vs. BB SRPでのCBに対するdefense頻度をbet sizeに関してプロットしています。赤い点は、当該スポットにおけるGTO Wizard 50NL Complexのsolutionから、CBに対するdefense頻度を全flopに関して平均した値を計算してプロットしています。黒い曲線はMDFの式(1)を、青い曲線はhalf-street [0, 1] modelで得られたcall頻度の式(13)を表しています。

[図5] BTN vs. BB SRPにおけるCBに対するdefense頻度のbet size依存性。赤い点は当該スポットにおける実際のdefense頻度、黒い曲線はMDF、青い曲線は式(13)を表す。データはGTO Wizard Blog「ポーカーにおける数学的誤解」(リンク)から採取。
まず、図5を見ると、IPがbettorの場合にはcall頻度がMDFと大きな乖離があることに気づきます。Call頻度は、どのbet sizeについてもMDFより10pt.弱小さくなっています。図2のOOPがbettorの場合には、call頻度がMDFと精度良く整合していたことと大きな違いです。
Half-street [0, 1] modelにおけるcall頻度はどうでしょう。結構いい線行っているようです。IP bettorの場合のcall頻度を見積もるmodelとしてそこそこ成功しています。しかし、half-street [0,1] modelは、call頻度を系統的に高く評価してしまっています。
そこで、より精密にflopのIP bettorの状況を再現するために、お互いのrangeのEQ差を考慮してみましょう。次のような、half-street [0, 1]-[\( -\delta \), 1] modelを考えます。
[Model #7] Half-street [0, 1]-[\( -\delta \), 1] model
・プレイヤー1は閉区間[0, 1]から、プレイヤー2は閉区間[\( -\delta \), 1]からそれぞれ独立な一様分布に従って1つずつ実数を選択する。ここで、\( \delta \)は十分小さな正の実数とする。
・プレイヤー1のみが1度だけbet(またはcheck)を行うことができるとし(= half-street)、potに対するbet sizeを\( B \)に固定する。
・双方のプレイヤーは相手のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・プレイヤー1のcheckまたはプレイヤー2のcallが生じた時点でshowdownを行い、最初に選択した実数が大きいプレイヤーがその時点のpotを獲得する。
このmodelでは、双方のプレイヤーが同一の閉区間[0, 1]から値を選択するのではなく、片方のプレイヤーが[\( -\delta \), 1]の少し下方に広いrangeを持つように変更がなされています。この時、プレイヤー1のrange EQは\( \frac{1+\delta}{2} \)、プレイヤー2のrange EQは\( \frac{1-\delta}{2} \)なので、両プレイヤーのrangeのEQ差は\( \delta \)に等しいという状況です。
このようなEQ差付きの拡張[0, 1] modelのNash均衡は次のようになります。
Half-street [0, 1]-[\( -\delta \), 1] modelのNash均衡
・図6にNash均衡の概略を示している。
・プレイヤー1は、 \( [c, 1] \)の区間はvalue bet、\( [a, c] \)の区間はcheck、\( [0, a] \)の区間はbluff betを行う。
・プレイヤー1からbetを受けた時、プレイヤー2は\( [b, 1] \)の区間でcall、\( [-\delta, b] \)でfoldする。
ただし、
$$
\begin{align}
a &= \frac{B}{(1+2B)(2+B)}, \tag{16} \\
b &= 1-\frac{2(1+B)}{(1+2B)(2+B)}, \tag{17} \\
c &= 1-\frac{1+B}{(1+2B)(2+B)} \tag{18}
\end{align}
$$
である。

[図6] Half-street [0, 1]-[\( -\delta \), 1] modelのNash均衡
実は、式(16)-(18)はhalf-street [0, 1] modelの式(13)-(15)に等しく、\( \delta \)に依りません。しかし、プレイヤー2のcall頻度は、rangeが[0, 1]から[\( -\delta \), 1]に変化したことを反映して、
$$
\begin{eqnarray}
\frac{1-b}{1+\delta} = \frac{1}{1+\delta}\frac{1}{1+B}\left(1-\frac{B}{(1+2B)(2+B)}\right) \tag{19}
\end{eqnarray}
$$
と\( \delta \)に依存します。プレイヤー2はEQ 0%のhandが増えたため、call頻度がhalf-street [0, 1] modelの時よりも小さくなります。\( \delta \)が十分小さい範囲内では、call頻度の減少割合は\( \delta \)で近似できます。例えば、BTN vs. BB SRPのケースでは、range EQの差が平均的に6pt.程度(BTNのrangeのEQが53.2%、BBのrangeのEQが46.8%)になるので、\( \delta \sim 0.06 \)、call頻度は6%程度の減少になります。
このmodelに基づいたcall頻度の式(19)と\( \delta = 0.06 \)の値を用いて、改めてBTN vs. BB SRPにおける平均defense頻度(= call頻度+raise頻度)と比較してみましょう。図7には当該スポットのdefense頻度を赤い点で、half-street [0, 1]-[\( -\delta \), 1] modelによるcall頻度の式(19)を青い点線で、half-street [0, 1] modelによるcall頻度の式(13)を青い実線で、MDFの式(1)を黒い実線で示しています。

[図7] BTN vs. BB SRPにおけるCBに対するdefense頻度のbet size依存性。赤い点は当該スポットにおける実際のdefense頻度、黒い実線はMDF、青い実線は式(13)、青い点線は式(19)を表す。データはGTO Wizard Blog「ポーカーにおける数学的誤解」(リンク)から採取。
いかがでしょうか?かなり精度良くBTN vs. BB SRPのdefense頻度のbet size依存性を再現できています👏👏
この結果は非常に喜ばしいものですが、両プレイヤーのrange のEQ差の付け方は他にもあるのではないか?と疑問に思うのが自然でしょう。Half-street [0, 1]-[\( -\delta \), 1] modelでは、プレイヤー2にEQ 0%のhandを加える形でrange EQの差を作りました。これと対極に当たる状況として、プレイヤー1にEQ 100%のhandを加えるというmodelを考えても良いでしょう。このような目的のもと、次のようなhalf-street [0, \( 1+\delta \)]-[0, 1] modelを考えます。
[Model #8] Half-street [0, \( 1+\delta \)]-[0, 1] model
・プレイヤー1は閉区間[0, \( 1+\delta \)]から、プレイヤー2は閉区間[0, 1]からそれぞれ独立な一様分布に従って1つずつ実数を選択する。ここで、\( \delta \)は十分小さな正の実数とする。
・プレイヤー1のみが1度だけbet(またはcheck)を行うことができるとし(= half-street)、potに対するbet sizeを\( B \)に固定する。
・双方のプレイヤーは相手のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・プレイヤー1のcheckまたはプレイヤー2のcallが生じた時点でshowdownを行い、最初に選択した実数が大きいプレイヤーがその時点のpotを獲得する。
この場合には、先ほどのhalf-street [0, 1]-[\( -\delta \), 1] modelと異なる結果を生むでしょうか?Nash均衡は次のようになります。
Half-street [0, \( 1+\delta \)]-[0, 1] modelのNash均衡
・図8にNash均衡の概略を示している。
・プレイヤー1は、\( [c, 1+\delta ] \) の区間はvalue bet、\( [a, c] \)の区間はcheck、\( [0, a] \)の区間はbluff betを行う。
・プレイヤー1からbetを受けた時、プレイヤー2は\( [b, 1] \)の区間でcall、\( [0, b] \)でfoldする。
ただし、
$$
\begin{align}
a &= \frac{B}{(1+2B)(2+B)}(1+2(1+B)\delta), \tag{20} \\
b &= 1-\frac{2(1+B(1-\delta))}{(1+2B)(2+B)}, \tag{21} \\
c &= 1-\frac{1+B(1-\delta)}{(1+2B)(2+B)} \tag{22}
\end{align}
$$
である。

[図8] Half-street [0, \( 1+\delta \)]-[0, 1] modelのNash均衡
プレイヤー2のcall頻度は、
$$
\begin{eqnarray}
1-b = \frac{1}{1+B}\left(1-\frac{B}{(1+2B)(2+B)}(1+2(1+B)\delta)\right) \tag{23}
\end{eqnarray}
$$
と求まり、half-street [0, 1] modelによるcall頻度の式(13)に比べて小さくなっていることが確認できます。Bettorがcallerに対してrangeのEQ優位を持つ時、基本的にcall頻度は下がる傾向にあることがわかります。Bettorのtop rangeが強化された場合、value handを多く作れるため、それに伴ってbluff handの使用量が上がり、bluff handの上限値(= EQ)が高くなります。すると、bluff handはよりcheck EVが高くなって、隙あらばcheckしようと思うわけです。これに対しcallerはcall頻度を下げて、たくさんbluffしてもらうようにお願いするという仕組みです。
Bettorのtop rangeが増強されたからcall頻度が下がるというのは、そこまで自明ではないと思います。実際、AKQ modelでAとQの割合を1:1から、例えば1.2:1のように増やしても、Kのcall頻度はMDFから変化しません。今回のhalf-street [0, \( 1+\delta \)]-[0, 1] modelでは、valueの量を増やせるためにbluffの量とcheck EVが上がり、相手のcall頻度を下げさせる方向に力が働くことが鍵になっています。AKQ modelのようにvalue handをいくら増やしてもbluff handのcheck EVが0のままであれば、相手のcall頻度はこちらのtop rangeの詳細に依らず常に固定されてしまいます。
Half-street [0, 1] modelについて、callerにbottom rangeを加えた場合と、bettorにtop rangeを加えた場合という2つの方法でプレイヤー間のrange EQ差を導入しました。これらの異なるEQ差の付け方による違いをプロットして確認してみましょう。
図9にはBTN vs. BB SRPのCBに対するdefense頻度を赤い点で、half-street [0, \( 1+\delta \)]-[0, 1] modelによるcall頻度の式(23)を青い一点鎖線で、half-street [0, 1]-[\( -\delta \), 1] modelによるcall頻度の式(19)を青い点線で、half-street [0, 1] modelによるcall頻度の式(13)を青い実線で、MDFの式(1)を黒い実線で示しています。全てのmodelについて、\( \delta=0.06 \)を使用しています。

[図9] BTN vs. BB SRPにおけるCBに対するcall頻度のbet size依存性。赤い点は当該スポットにおける実際のdefense頻度、黒い実線はMDF、青い実線は式(13)、青い点線は式(19)、青い一点鎖線は式(23)を表す。データはGTO Wizard Blog「ポーカーにおける数学的誤解」(リンク)から採取。
詳細な計算過程は省略しますが、\( B\delta < 1 \)の場合には、callerにbottom rangeを追加した場合の式(19)の方が、bettorにtop rangeを追加した場合の式(23)よりもcall頻度を低く評価します。CallerにEQ 0%のhandが加わってしまう方がダイレクトにcall頻度に影響を与えそうなため、これは直観とも合っています。
実際のポーカーでは、EQ差はbettorのtop rangeとcallerのbottom rangeの両方から発生するため、現実は式(19)と式(23)の中間にあるはずです。図9を見ると、式(19)(青の点線)が式(23)(青の一点鎖線)と比べて赤いデータ点により良く一致しています。つまり、BTN vs. BB SRPのCBに対するdefense頻度に関して言えば、比較的精度の良い見積もりを与えているのは、式(19)の方です。
いずれにしても、IP bettorの場合のflop CBに対する平均的なdefense頻度は、EQ補正付きのhalf-street [0, 1] modelでよく記述されると言って良いでしょう。
「めでたし、めでたし」と言いたいところですが、次の疑問が浮かんだ人もいるのではないでしょうか?「OOP bettorの場合には、full-street [0, 1] modelに従ってdefense頻度がMDFでよく近似されるということだったが、そちらもEQ差を導入したら理論値がMDFからずれてしまうのではないか?」というような問いです。
こちらも至極もっともなので検証しましょう。
まずは、IPのbottom rangeにEQ 0%のhandを付け加えることを考えましょう。以下のfull-street [0, 1]-[\( -\delta \), 1] modelを扱います。
[Model #9] Full-street [0, 1]-[\( -\delta \), 1] model
・OOP(プレイヤー1)は閉区間[0, 1]から、IP(プレイヤー2)は閉区間[\( -\delta \), 1]からそれぞれ独立な一様分布に従って1つずつ実数を選択する。ここで、\( \delta \)は十分小さな正の実数とする。
・OOPのプレイヤー1は先にbet(またはcheck)を行うことができ、checkした場合にはIPのプレイヤー2もbet(またはcheck)を行うことができる(= full-street)。Potに対するbet sizeを\( B \)に固定する。
・双方のプレイヤーは相手のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・いずれかのプレイヤーのbetにもう一方のプレイヤーがcallした場合と、お互いがcheckした場合はshowdownを行い、最初に選択した実数が大きいプレイヤーがその時点のpotを獲得する。
やや複雑に見えますが、このmodelのNash均衡は手計算で求めることができます。
Full-street [0, 1]-[\( -\delta \), 1] modelのNash均衡①(\( \delta \)が十分小さい時)
・図10にNash均衡の概略を示している。
・OOP(プレイヤー1)の戦略は、\( a, b, c \)の3つの境界で区切られた4つの純粋戦略区間を持つ。\( [c, 1] \)の区間はvalue bet、\( [b, c] \)の区間はcheck/call、\( [a, b] \)の区間はcheck/fold、\( [0, a] \)の区間はbluff betを行う。
・OOP(プレイヤー1)からbetを受けた場合のIP(プレイヤー2)の戦略は、\( [d, 1] \)の区間でcall、\( [0, -\delta] \)でfoldを行う。
・OOP(プレイヤー1)がcheckした場合のIP(プレイヤー2)の戦略は、\( [f, 1] \)の区間でvalue bet、\( [e, f] \)の区間でvalue bet 、\( [-\delta, e] \)でbluff betを行う。
ただし、
\begin{align}
a &= \frac{B}{(1+B)^2(1+2B)}(1+\delta), \tag{24} \\
b &= d = \frac{B-\delta}{1+B}, \tag{25} \\
c &= 1-\frac{1+\delta}{(1+B)(1+2B)}, \tag{26} \\
e &= -\delta + \frac{B}{(1+B)(1+2B)}(1+\delta), \tag{27} \\
f &= 1-\frac{1+\delta}{1+2B} \tag{28}
\end{align}
である。

[図10] Full-street [0, 1]-[\( -\delta \), 1] modelのNash均衡①(\( \delta \)が十分小さい時)。
OOPのbetに対するIPのcall頻度は、
$$
\begin{eqnarray}
\frac{1-d}{1+\delta} = \frac{1}{1+B} \tag{29}
\end{eqnarray}
$$
となり、MDFに等しくなっています。通常のfull-street [0, 1] modelでもcall頻度の式(6)はMDFに一致していました。OOPのbluffとx/fの境界handがcheckした場合に、IPのcheck back rangeよりも弱いことが共通する重要なポイントです。
鋭い方はすでに気づいていると思いますが、IPにbottom rangeを加えたことで、OOPのbluff handに有限のcheck EVが出てくる可能性はないでしょうか。つまり、\( \delta \)が十分小さければ\( a < e \)が成り立ち、OOPのbluff handはcheck EVを持ちませんが、\( \delta \)を大きくしていったら\( a > e \)に逆転してOOPのbluff handにcheck EVがもたらされる(→ IPのcall頻度もMDFからずれる)のではないでしょうか?
この指摘は実際に正しいです。上に示したNash均衡は、\( \delta \)が十分小さいという仮定の下、図10のようなrange分割になることを決めうちしていました。いつこのNash均衡が破れるか調べてみましょう。
式(24)と(27)から、
$$
\begin{eqnarray}
e-a = \frac{1}{(1+B)^2(1+2B)}(B^2-\delta (1+4B+4B^2+2B^3)) \tag{30}
\end{eqnarray}
$$
となるので、
図10のNash均衡は、
$$
\begin{eqnarray}
\delta \leq \frac{B^2}{1+4B+4B^2+2B^3} \tag{31}
\end{eqnarray}
$$
で成り立つことがわかります。
式(31)の右辺を\( B \)の関数としてプロットすると図11のようになります。

[図11] \( \frac{B^2}{1+4B+4B^2+2B^3} \)のプロット。
SB vs. BB SRPを念頭に置くと、EQの差から\( \delta \sim 0.05 \)程度なので、bet sizeがおよそ45%以上であれば式(31)の条件が満たされて、先に示したNash均衡が成り立つことになります。
式(31)が破れた場合のNash均衡も見てみましょう。
Full-street [0, 1]-[\( -\delta \), 1] modelのNash均衡②(\( \delta \)が少し大きい時)
・図12にNash均衡の概略を示している。
・OOP(プレイヤー1)の戦略は、\( a, b, c \)の3つの境界で区切られた4つの純粋戦略区間を持つ。\( [c, 1] \)の区間はvalue bet、\( [b, c] \)の区間はcheck/call、\( [a, b] \)の区間はcheck/fold、\( [0, a] \)の区間はbluff betを行う。
・OOP(プレイヤー1)からbetを受けた場合のIP(プレイヤー2)の戦略は、\( [d, 1] \)の区間でcall、\( [-\delta, d] \)でfoldを行う。
・OOP(プレイヤー1)がcheckした場合のIP(プレイヤー2)の戦略は、\( [f, 1] \)の区間でvalue bet、\( [e, f] \)の区間でvalue bet 、\( [-\delta, e] \)でbluff betを行う。
ただし、
$$
\begin{align}
a &= \frac{B}{1+4B+4B^2+2B^3}, \tag{32} \\
b &= d = \frac{B}{1+B}\left( 1-\frac{B}{1+4B+4B^2+2B^3} \right), \tag{33} \\
c &= 1-\frac{1+B}{1+4B+4B^2+2B^3}, \tag{34} \\
e &= -\delta + \frac{B(1+B)}{1+4B+4B^2+2B^3}, \tag{35} \\
f &= 1-\frac{(1+B)^2}{1+4B+4B^2+2B^3} \tag{36}
\end{align}
$$
である。

[図12] Full-street [0, 1]-[\( -\delta \), 1] modelのNash均衡②(\( \delta \)が少し大きい時)。
図12と図10を見比べるとわかる通り、Nash均衡②の方では\( a \)と\( e \)の上下関係が逆になっています。「\( \delta \)が少し大きい時」と書いているのは、式(31)を破った後にさらに\( \delta \)を大きくしていくと、いずれ\( a \)と\( b \)の大小関係が逆転してx/f rangeが潰れてしまうためですが、本筋にはあまり関係ないため無視して構いません。
こちらのNash均衡では、IPのcall頻度は、
$$
\begin{eqnarray}
\frac{1-d}{1+\delta} = \frac{1}{1+B}\left( 1 – \frac{1}{1+\delta}\left( \delta – \frac{B^2}{1+4B+4B^2+2B^3} \right) \right) \tag{37}
\end{eqnarray}
$$
となります。このNash均衡が成立する\( a \geq e \)の条件の下では、式(37)第2項の括弧内は非負なため、IPのcall頻度はMDFよりも小さくなります。OOPのbluff handにcheck EVが生じたためにIPのcall頻度が下がるというおなじみの構造になっています。
Half-streetの時と同様、OOPにtop rangeを追加する形で両者のrangeにEQ差を付けるmodelも見てみましょう。
[Model #10] Full-street [0, \( 1+\delta \)]-[0, 1] model
・プレイヤー1は閉区間[0, \( 1+\delta \)]から、プレイヤー2は閉区間[0, 1]からそれぞれ独立な一様分布に従って1つずつ実数を選択する。ここで、\( \delta \)は十分小さな正の実数とする。
・OOPのプレイヤー1は先にbet(またはcheck)を行うことができ、checkした場合にはIPのプレイヤー2もbet(またはcheck)を行うことができる(= full-street)。Potに対するbet sizeを\( B \)に固定する。
・双方のプレイヤーは相手のbetに対してcallまたはfoldを選択し、raiseは禁止する。
・いずれかのプレイヤーのbetにもう一方のプレイヤーがcallした場合と、お互いがcheckした場合はshowdownを行い、最初に選択した実数が大きいプレイヤーがその時点のpotを獲得する。
ここでも\( \delta \)が十分小さい場合のNash均衡を見てみましょう。この仮定の下での導出はfull-street [0, 1] modelと全く同じ流れです。
Full-street [0, \( 1+\delta \)]-[0, 1] modelのNash均衡(\( \delta \)が十分小さい場合)
・図13にNash均衡の概略を示している。
・OOP(プレイヤー1)の戦略は、\( a, b, c \)の3つの境界で区切られた4つの純粋戦略区間を持つ。\( [c, 1+\delta] \)の区間はvalue bet、\( [b, c] \)の区間はcheck/call、\( [a, b] \)の区間はcheck/fold、\( [0, a] \)の区間はbluff betを行う。
・OOP(プレイヤー1)からbetを受けた場合のIP(プレイヤー2)の戦略は、\( [d, 1] \)の区間でcall、\( [0, d] \)でfoldを行う。
・OOP(プレイヤー1)がcheckした場合のIP(プレイヤー2)の戦略は、\( [f, 1] \)の区間でvalue bet、\( [e, f] \)の区間でvalue bet 、\( [0, e] \)でbluff betを行う。
ただし、
$$
\begin{align}
a &= \frac{B}{1+B}\left( \frac{1}{(1+B)(1+2B)} + \delta \right), \tag{38} \\
b &= d = \frac{B}{1+B}, \tag{39} \\
c &= 1-\frac{1}{(1+B)(1+2B)}, \tag{40} \\
e &= \frac{B}{(1+B)(1+2B)}, \tag{41} \\
f &= 1-\frac{1}{1+2B} \tag{42}
\end{align}
$$
である。

[図13] Full-street [0, \( 1+\delta \)]-[0, 1] modelのNash均衡(\( \delta \)が十分小さい場合)。
図13の形のNash均衡からは、OOPのbluff handにcheck EVがなく、IPのcall頻度はMDFに等しくなります(式(39))。
Nash均衡を導く際に\( \delta \)が十分小さいと仮定して図13の形を決めましたが、full-street [0, 1]-[\( -\delta \), 1] modelの時と同様、\( a \)と\( e \)の大小が逆転してしまう可能性が考えられます。これがいつ起こるか確認しましょう。
\( e \)と\( a \)の差を取ると、式(38)と(41)から、
$$
\begin{eqnarray}
e-a = \frac{B}{1+B}\left( \frac{B}{(1+B)(1+2B)} – \delta \right) \tag{43}
\end{eqnarray}
$$
のようになるので、図13のNash均衡が成り立つためには、
$$
\begin{eqnarray}
\delta \leq \frac{B}{(1+B)(1+2B)} \tag{44}
\end{eqnarray}
$$
が必要十分です。
式(44)の右辺を\( B \)の関数としてプロットすると図14のようになります。

[図14] \( \frac{B}{(1+B)(1+2B)} \)のプロット。
\( \delta \sim 0.05 \)を念頭に置くと、少なくとも20%から200%程度のbet sizeでは式(44)の条件式が十分成り立っていることになります。「OOPのtop rangeが増強されてvalue handが増えても、IPのcall頻度を下げる効果は低い」というhalf-street [0, \( 1+\delta \)]-[0, 1] modelにおける結果と似ています。
Full-street [0, 1]-[\( -\delta \), 1] modelとfull-street [0, \( 1+\delta \)]-[0, 1] modelからわかることは、OOP bettorの場合にはIP bettorの場合に比べて、range EQ差によるcall頻度の変化が小さいということです。OOP bettorの場合には、IPのbottom rangeの追加でもIPのcall頻度の変化は限定的で、OOPのtop rangeの追加では常識的なbet sizeについてIPのcall頻度の変化はないという結果でした。
以上の観察から、flopのCBに対する平均的なcall頻度を説明するための統一的なmodelとして、EQ差を考慮したhalf(またはfull)-street [0, 1] modelを考えれば良いという提案ができます。
OOP bettorの場合には、EQ差を考慮したfull-street [0, 1] modelが対応し、IPのcall頻度は(基本的に)MDFに一致します(式(1))。
$$
\begin{eqnarray}
\mathrm{MDF}(B) = \frac{1}{1+B}. \tag{1}
\end{eqnarray}
$$
[註:「(基本的に)」は、full-street [0, 1]-[\( -\delta \), 1] modelで見たように、IPのbottom rangeの追加によってbluff handのcheck EVが有限に残るNash均衡が成立する可能性があるからです。\( \delta \sim 0.05 \)の場合に、およそ45%以上のbet sizeについてIPのcall頻度がMDFに一致するNash均衡になることを前に議論しました。これは両プレイヤーのrange EQ差を全てIPのbottom rangeに押し付けた場合の見積もりですが、実際にはEQ差はOOPのtop rangeの量にも由来します。そのため、これを考慮すると、かなり広範のbet sizeについてこのNash均衡が実現することになります。]
IP bettorの場合には、EQ差を考慮したhalf-street [0, 1] modelが対応し、half-street [0, 1]-[\( -\delta \), 1] modelを具体的なEQ差の付け方として採用すると、OOPのcall頻度は式(19)に従います。
$$
\begin{eqnarray}
\frac{1-b}{1+\delta} = \frac{1}{1+\delta}\frac{1}{1+B}\left(1-\frac{B}{(1+2B)(2+B)}\right). \tag{19}
\end{eqnarray}
$$
改めて本稿で見たmodelの関係性を掲載しておきます[図1]。

[図1] 本稿で扱った#1〜#10のmodelの関係性。
最後に、具体例を見ておしまいにしましょう。
今回、EQ差を考慮するとどのようにcall頻度が変化するかという議論を主に行ったので、それが顕著な例を見てみましょう。図15はBTN vs. BB SRPにおいてBTNのrange EQが高い順番にflopをソートしたものです(solutionはGTO Wizardのcash 100bb, 6max NL50, GTO-GTO)。AJTrのflopでBTNのrange EQ 57.9%となり、最高EQ差を生み出すようです。こちらを取り上げて調べてみましょう。

[図15] BTN vs. BB SRPにおけるBTNのrange EQが高いflop。AJTrがBTNのrange EQ 57.9%と最も高くなる。SolutionはGTO Wizardのcash 100bb, 6max NL50, GTO-GTOによる。
図16には、BTN vs. BB SRPのAJTrにおいて、BTNがpot 75%のCBを打った後のBBの戦略を示しています。BBのdefense頻度は44.6%、fold頻度は55.4%です。
MDFによると、\( \frac{1}{1+3/4} = 4/7 \simeq 0.571 \)より、defense頻度57.1%、fold頻度42.9%ということになります。Defense頻度を12.5pt.も過大評価しています。現実にはMDFが示唆するよりもたくさんfoldしています。このようなスポットでよく「MDFは達成されないことが多い💢」などと言われるわけです。
本稿では、EQ差付きの拡張[0, 1] modelがflopのdefense頻度を見積もるための良いmodelであるということを議論しました。IP bettorの場合には、half-street [0, 1]-[\( -\delta \), 1] modelによる式(19)がOOPのdefense頻度を評価する上で最適だという結論でした。そこで、式(19)にbet size \( B=3/4 \)とこのflopにおけるEQ差\( \delta = 0.158 \)を代入して計算してみると、defense頻度44.0%、fold頻度56.0%が得られます。かなりの精度で現実のdefense(またはfold)頻度を見積もれています👏👏

[図16] BTN vs. BB SRPのAJTrにおいて、BTNがpot 75%のCBを打った後のBBの戦略。SolutionはGTO Wizardのcash 100bb, 6max NL50, GTO-GTOによる。
同じflopについてpositionを変えてSB vs. BB SRPを見てみましょう。図17には、SB vs. BB SRPのAJTrにおいて、SBがpot 75%のCBを打った後のBBの戦略を示しています。BBのdefense頻度は54.1%、fold頻度は45.9%です。BTN vs. BBの場合よりも、多くをdefenseしていることがわかります。OOP bettorの場合には、full-street [0, \( 1+\delta \)]-[0, 1] modelまたはfull-street [0, 1]-[\( -\delta \), 1] modelを考えればよく、前者からはOOPのdefense頻度としてMDFが出てくるのでした。実際、MDF 57.1%は、現実のdefense頻度54.1%と3pt.程度の比較的小さな差になっています。後者のmodelについては、異なる2つのNash均衡について議論しましたが[図1]、今回はEQ差が大きいため式(37)を利用し、\( B = 3/4 \)と\( \delta = 0.135 \)を代入すると、defense頻度54.3%、fold頻度45.7%の結果を得ます。これは、実際のdefense(fold)頻度に非常に近い値で、EQ差付きのfull-street 拡張[0, 1] modelはOOPのCBに対するdefense頻度を見積もるためのmodelとして成功していることがわかります👏👏

[図17] SB vs. BB SRPのAJTrにおいて、SBがpot 75%のCBを打った後のBBの戦略。SolutionはGTO Wizardのcash 100bb, 6max NL50, GTO-GTOによる。
3. まとめ
本稿では、図1に示すように10個のmodelのNash均衡を調べながら、betに対するcall(またはfold)頻度がどのような条件でどのように変化するのかを見てきました。特にflopのCBに対する平均的なdefense頻度を見積もるためには、EQ差を考慮して拡張した[0, 1] modelが良いということを議論しました。全flopに関する平均的な振る舞いとして、OOP bettor (IP caller)の場合には、call頻度はMDF(式(1))に一致し、IP bettor (OOP caller)の場合には、call頻度はMDFよりも低く、式(19)で記述できることがわかりました。また、平均的な振る舞いだけでなく、個別のflopについても適用可能性があることを具体的に示しました。
何点か注意事項に言及して締めくくりましょう。
まず、今回提示したEQ差付きの拡張[0, 1] modelは、CBに対するdefense頻度を記述する有効なtoy modelであることを議論しましたが、ポーカーのflopに関するあらゆる性質を説明できるような万能modelというわけではない点に注意しましょう。例えば、flopのCB頻度やCB size、CBを打つhand選定などは記述できません。拡張[0, 1] modelでは、必ずpolarizeしたbet rangeを構築しますが、現実にはEQが中程度のmarginal handもbetしますし、nutsも必ずbetするわけではありません。それでは、このmodelは間違っている!という結論になるかというと、そういうわけでもありません。実際のflopのbet rangeはmodelが示唆するよりは広がりを持つけれども、betに対するdefense頻度の大部分は、bet rangeの高EQ handと低EQ handの構成で決まる(からmodelは一定の妥当性を持つ)という見方(予測)もできます。
また、本稿で提示したmodelでは考慮していない(もしくはできていない)点がいくつかあります。上記のbet rangeのpolarization (= polarize度合い)がその一つです。他にもraiseの存在、turnやriverといった後続するstreetの存在はbetに対するfold頻度に影響を与える可能性があります。関心のある読者の方は、これらを見てみると面白いかもしれません。
個別のflopに関するdefense頻度の見積もりについても、EQ差付きの拡張[0, 1] modelが万能ではないという点にも注意が必要です。当然modelが示唆するdefense頻度と実際の頻度に乖離がある場合が存在します。これを考慮して、まとめの部分では「適用可能性がある」という表現にとどめました。今回のmodelでは、bet sizeとrange EQの差のみをinputとしてdefense頻度が計算できるわけですが[註:正確にはrange EQの差の付け方でmodelの選択に関して任意性があった]、これがもしほとんどの個別のflopに対して有効であれば、それは凄まじいことです。少なくとも一定の個別のflopについて成功することは事実で、CBに対するdefense頻度を考える上では、bet sizeの他にrange EQの差が重要であるという点はある程度合意が取れると考えています。
今年話題のAmuさん・Dramaさんによる週刊均衡(@GTOmaga)では、flopのCBに対するfold(またはdefense)頻度を見積もる際の考え方について次のように記述しています。
Step1. Bet sizeからfoldする頻度を判定する。(EQ差考慮)
Step2. 自レンジを捕捉し、弱いハンドから順にfoldするハンドを選ぶ。
Step3. 持っているハンドがfoldすべきハンドであるかを判定する。
(『週刊均衡』 Stage 1-3 Call判定均衡思考 EQ差より引用)
このように、fold頻度はbet sizeとrangeのEQ差によって見積もるという方針をとっていて、本稿での提案と整合的です。その上で、
特に何%ずらすか、もしくはどのあたりが降りるハンドか?という判断は慣れを要する部分が強いです。
(『週刊均衡』 Stage 1-3 Call判定均衡思考 EQ差より引用)
と言及しています。これに関して、本稿で提示したmodelによるfold(またはdefense)頻度の見積もりが一つの定量的指針となることを期待しています。
4. 関連文献
MDFに関連した文献をいくつか紹介します。
・glassさんnote記事「何故potbetに50%以上降りていいか」
リンク:https://note.com/mathpoker/n/n4219f31da181#cabbde56-79c6-4979-b3b3-200ee4c17485
→ 今回取り扱ったhalf-street [0, 1] modelについて詳しく計算過程を示した上で、pot betに対してMDFが達成されず50%以上をfoldするのはなぜかという内容を説明しています。
・Wagon_manさんnote記事「なぜMDFとGTOは乖離するのか」
リンク:https://note.com/wagonman53/n/n6df51863694c
→ なぜsolver上のdefense頻度がMDFから乖離するのかについて、bluff handのcheck EVの観点を指摘した上で、具体的なスポットを紹介しています。
・Wagon_manさんnote記事「レイズに対してはMDF厳守」
リンク:https://note.com/wagonman53/n/nfe936e369a48
→ Raiseに対してはMDFをほぼ必ず守るという内容を簡単に解説しています。
・GTO Wizard Blog「ポーカーにおける数学的誤解」
リンク:https://japan.gtowizard.com/blog/mathematical-misconceptions-in-poker/
→ MDFや\( \alpha \)に関する定義、実際にはbet sizeに依存してどのようにfold頻度が変化するかをIP bettorとOOP bettorの場合について比較しています。本稿でもこちらの記事で使われているデータを使用しました。
・GTO Wizard YouTubeチャンネル “The Most Misunderstood Poker Metric”
リンク:https://www.youtube.com/watch?v=8XuJEkBjBpU
→ Solver上のdefense頻度とMDFとの乖離、raiseに対するdefense頻度とMDFとの関係、それらの定性的な理屈について広く説明されています。上のWizard Blogと内容は大まかには同じですが、より説明やデモンストレーションが充実しています。
5. おわりに
非常に長くなりましたが、ここまでお読みいただきありがとうございました。途中で離脱してここを読んでいる人も多いかもしれないと思ってもいます。詳細はあまりわからなかったとしても、「CBに対するdefense頻度はbet sizeとEQ差を考えると大体見積もれる」という内容に加えて、ポーカーの理解のためにはこのようなmodel計算の営みがあるということを知っていただけたら嬉しく思います。Model計算は、ポーカーの「当たり前」を増やすことに繋がります。
冒頭に「結論にいたるまでの道中を楽しんでいただければ」と書きましたが、もしかすると、多くのポーカープレイヤーにとって、結論の1文以上の詳細や導出の手続きは、「かなりどうでも良い」という程度の位置付けになるかもしれません。しかし、それでも良いのだと思います。このような知見が「当たり前」の事実として使えるように、こちらで細かいことはやっておきますので任せてください。全員が安心して使える「当たり前」を提供していけるよう今後も頑張ります。
そして、本稿のMDFに関する内容を考えるきっかけを与えてくれたのは、Seeker StartのDiscordサーバー内の質問フォーラムです。MDFに関して非常に鋭い質問をくださった方、議論にご協力くださった方々にこの場を借りてお礼申し上げます。Discordサーバーへの加入に関心がある方は、Seeker Start (@seekerstart)宛てにDMをお送りください🙇
また、本稿を読んでポーカーの理論的側面に興味を持ってくださった方がいましたら、ぜひ過去の記事をご覧ください🙇以下はnoteに投稿した過去の記事リストです↓↓
・「2eのgeometric sizeの近似計算について」
難易度:★☆☆☆☆
リンク:https://note.com/seekerstart/n/nf3d8ed2a0673
・「Hypergeometricサイズ:相手にdraw outsがある場合のbetサイズについて」
難易度:★★☆☆☆
リンク:https://note.com/seekerstart/n/n0ede7b39dbb7
・「AKQ gameのQuantal Response Equilibrium (QRE)」
難易度:★★★★☆
リンク:https://note.com/seekerstart/n/n43252ae3aca7
・「MultiwayにおけるNash均衡と複数Nash均衡の選択理論」
難易度:★★★☆☆
リンク:https://note.com/seekerstart/n/n43da800d9a62
・「ポーカー部分ツイート作品に対する解説」
難易度:🤡
リンク:https://note.com/seekerstart/n/n52723878376f
※本稿の難易度は★★☆☆☆くらいです。
PS: GTO Wizard Partnerのご依頼もいつでもお待ちしております!!
🎄🎄🎄
明日23日目はPeeeajeさん(@JP_pokeraccount)のご担当です。個人的にはお会いしたことありませんが、good regを含む多くの方が厚い信頼を寄せるプレイヤーです。理論的な内容の記事や学習ロードマップに関するnoteも有名です(noteリンク)。今回のアドベントカレンダーに向けてTwitterでアンケートもされていました!どんな記事が出てくるのでしょうか?明日の公開をとても楽しみにしています!

著者|しぐま
ぽ → Seeker Start運営(@seekerstart)
