
理論で学ぶポーカー#2 : AKQJT9ゲームで数学的に最適なベットサイズ分割を探る

東京大学大学院情報理工学系研究科に所属。主にゲームAIや自然言語アルゴリズムの研究を専門とする鶴岡研究室にて活動。CLOViZ株式会社にてPOKER Q'zの開発もリード。
はじめに
本記事は、前回の記事の続きです。まだ読んでいない方はそちらを先にお読みください。https://pokerqz.com/blog/theoretical_poker_1
今回のテーマは「ベットサイズ分割」です。GTOでは一般的に、より強いバリューハンドほど大きいベットサイズを用いる傾向がありますが、それはなぜでしょうか。今回はこの疑問を、トイゲーム「AKQJT9ゲーム」を用いて、数学的な観点から考察していきたいと思います。
1. AKQJT9ゲームとは?
AKQJT9ゲームは、本テーマを取り上げるために自作したトイゲームで、前回紹介した「AKQゲーム」の派生です。AKQゲームと比較して、カードが3枚から6枚に増えただけですが、一応ルールをおさらいしておきます。
- プレイヤー
本ゲームは、HeroとVillainの2人で行います。 - カード
使用するカードは [As] [Ks] [Qs] [Js] [Ts] [9s] の6枚のみで、それぞれの強さは A > K > Q > J > T > 9 です。各プレイヤーには、これらのうち1枚がランダムに配られ、同じランクのカードが配られることはありません。 - ポジション
Heroは常にIP(インポジション)、Villainは常にOOP(アウトオブポジション) でプレイします。 - アクション
- いきなりリバーから始まり、最初にVillain(OOP)が行動します。その際、Villainは常にチェックを選択します。
- その後、Hero(IP)は、任意のベットサイズを選択するか、チェックバックをすることができます。
- 2でHeroがチェックバックの場合、そのままショーダウンとなります。
- 2でHeroがベットした場合、Villainはコールまたはフォールドの2択のみとなり、レイズはできません。
- ポットサイズ
初期ポットは1です。
2. アルゴリズムで計算されたGTO解
それではこのゲームの最適解を数式で計算していきたいのですが、イメージを掴みやすくするため、CFRアルゴリズムを用いて計算されたGTO解を見てみましょう。(CFRアルゴリズムの詳しい話にも、また機会があったら触れたいです)

図1は、筆者が独自に構築したツールにてGTO解を図示したものです。レンジ表はGTO Wizard風に仕上げました。この表は、実際のポーカーにおいてボードが[2s][2h][2d][3s][3h](つまり今回のA~9とは直接的に関係のないボード)で、VillainからCheckされた後のHeroのレンジ全体の戦略を示しています。
ただし、お互いのハンドレンジは[As][Ah],[Ks][Kh],...[9s][9h]の6コンボに限定しています(ポケットペアはスペード・ハートのコンボのみ使用)。
この時ハンドの強さは[As][Ah] > [Ks][Kh] > ... > [9s][9h]で、互いが同じハンドを持つことは無いので、この状況はAKQJT9ゲームと等価です。
今回は15%から160%まで、様々なベットサイズのオプションを用意しました。赤色は大ベット、オレンジは小ベット、緑はチェックを示します。
ナッツのAの方がセカンドナッツのKよりもバリューベットのサイズが大きく、サイズ分割が行われていることが分かります。


また、図2・図3は、ハンドが[Ks][Kh]・[As][Ah]の時に使う戦略を詳細に示しています。それぞれのハンドでEVを最大化させるベットサイズを用いるのが最善で、EVが大きい値のアクション頻度が大きいことが分かります。
図1から図3を見て、AKQJT9ゲームについて分かることをまとめると、以下のようになります。
《ここまでのまとめ》
- ナッツのAは、ピュアに大ベットを用いる。最適なサイズは120%から130%の間の、やや120%寄りの当たりにありそう。
- セカンドナッツのKは、ピュアに小ベットを用いる。最適なサイズは25%から30%の間の、やや30%寄りの当たりにありそう。
- マージナルハンドのQからTは、ピュアにチェックする。
- 最弱の9は、AとKのそれぞれのバリューベットで用いるサイズを兼用して、適切な頻度でブラフベットする。
※補足
- Qはバリューベットを打つことができません。もしQでベットすると、相手はA・Kを確実にコールし、9を確実にフォールドします。すると、相手がJ・Tを全頻度でブラフキャッチコールしたとしても、コールされた後のエクイティが50%となってしまい、バリューベットとして機能していないことが分かります。
- Tはブラフベットすることはありません。ブラフは、必要コンボ数的に9だけで十分だからです(後述)。
3. ベットサイズを任意の2つのサイズとしたAKQJT9ゲームの最適解
さて、ここからは数学的な考察に入っていきましょう。
このゲームにはサイズ分割があるので、Aで使うバリューベットのサイズを$b_{A}$、Kで使うバリューベットのサイズを$b_{K}$として考えます。
前回の記事より、ある強いハンドをピュアにサイズ$b$でバリューベットするとき、相手のマージナルハンドをコールとフォールドのインディファレントにするブラフベット頻度は$\frac{b}{1+b}$でした。今回は用いるベットサイズが2種類あるため、Heroの最適な戦略は以下のようになります。
Heroの戦略
Hero(IP) の手札 | bet $b_{A}$ の頻度 | bet $b_{K}$ の頻度 | checkの頻度 |
---|---|---|---|
A | 1 | 0 | 0 |
K | 0 | 1 | 0 |
Q , J , T | 0 | 0 | 1 |
9 | $\frac{b_{A}}{1+b_{A}}$ | $\frac{b_{K}}{1+b_{K}}$ | $1 - \frac{b_{A}}{1+b_{A}} -\frac{b_{K}}{1+b_{K}}$ |
この戦略に対して、Villainは以下のように応答します。ここでは一旦、bet $b_{A}$に対するマージナルハンド(KからT)のブラフキャッチ頻度を$f_{1}$、bet $b_{K}$に対するマージナルハンド(QからT)のブラフキャッチ頻度を$f_{2}$と置きます。(具体的な値はこれから計算します。)
Heroのbet $b_{A}$に対するVillainの戦略
Villainの手札 | callの頻度 | foldの頻度 |
---|---|---|
A (1コンボ) | 1 | 0 |
K , Q , J , T (4コンボ) | $f_{1}$ | $1 - f_{1}$ |
9 (1コンボ) | 0 | 1 |
Heroのbet $b_{K}$に対するVillainの戦略
Villainの手札 | callの頻度 | foldの頻度 |
---|---|---|
A , K (2コンボ) | 1 | 0 |
Q , J , T (3コンボ) | $f_{2}$ | $1 - f_{2}$ |
9 (1コンボ) | 0 | 1 |
ここで前回の記事より、Villainの最適なブラフキャッチ頻度は、Heroの弱いハンドがブラフベットするか諦めチェックするかのインディファレントになるような頻度でした。すなわち
(Heroの9のbet $b_{A}$のEV) = (Heroの9のbet $b_{K}$のEV) = (Heroの9のcheckのEV)
となればいいので、以下の式が成り立ちます。
$$\frac{1 ・ (-b_{A}) + 4f_1 ・(-b_{A}) + 4(1-f_1) ・1 }{5} = \frac{2 ・ (-b_{K}) + 3f_2 ・(-b_{K}) + 3(1-f_2) ・1 }{5} = 0$$
これを解いて$f_1 = \frac{4-b_{A}}{4(1 + b_{A})}$, $f_2 = \frac{3-2b_{K}}{3(1 + b_{K})}$となります。
また、$1 - f_1 = \frac{5b_{A}}{4(1 + b_{A})}$, $1 - f_2 = \frac{5b_{K}}{3(1 + b_{K})}$となります。(後で使います)
4. Heroのレンジ全体のEVを最大化させる$b_{A} , b_{K}$は?
お互いの最適戦略が分かったところで、Heroのレンジ全体のEVを最大化させる$b_{A} , b_{K}$を求めましょう。前回の記事で、マージナルハンドと弱いハンドのEVは、Heroのベットサイズに依存しないことに触れました。よって最適な$b_{A} , b_{K}$は、A・K(バリューハンド)それぞれのEVを考えれば求まることになります。
それでは実際にA・KのEVを計算しましょう。AのEVは前回のように計算できますが、KのEVについては注意点があります。それは、Kは相手のAに対してミスバリューを打ってしまう可能性があることです。それに注意して、HeroのAのEVを$E_{A}(b_{A})$、HeroのKのEVを$E_{K}(b_{K})$とすると、
$$E_{A}(b_{A}) = \frac{4f_1・(1 + b_{A}) + (4(1-f_1) + 1)・1}{5} = \frac{1}{5} ((4-b_{A}) + \frac{5b_{A}}{1 + b_{A}} + 1) = \frac{1}{5} (5 + \frac{5b_{A}}{1 + b_{A}} - b_{A})$$
$$E_{K}(b_{K}) = \frac{1・(-b_{K}) + 3f_2・(1 + b_{K}) + (3(1-f_2) + 1)・1}{5} = \frac{1}{5} (-b_{K} + (3-2b_{K}) + \frac{5b_{K}}{1 + b_{K}} + 1) = \frac{1}{5} (4 + \frac{5b_{K}}{1 + b_{K}} - 3b_{K})$$
となります。$E_{A}(b_{A})$を最大にする$b_{A}$と$E_{K}(b_{K})$を最大にする$b_{K}$を、関数を微分してそれぞれ求めましょう。
高校の数IIIで習う分数関数の微分公式を用いると、
$$\frac{d}{db_{A}} E_{A}(b_{A}) = \frac{1}{(1 + b_{A} )^2} - \frac{1}{5}$$
$$\frac{d}{db_{K}} E_{K}(b_{K}) = \frac{1}{(1 + b_{K} )^2} - \frac{3}{5}$$
となります。
$\frac{d}{db_{A}} E_{A}(b_{A})$と$\frac{d}{db_{K}} E_{K}(b_{K})$は、共に単調減少な関数なので、これらが0となるような$b_{A}$,$b_{K}$が最適なベットサイズです。
これを解いて$b_{A} =\sqrt{5} -1 \approx 1.236$ , $b_{K} = \sqrt{\frac{5}{3}} -1 \approx 0.291$ となります。
これが意味することは、Heroの最適なベットサイズは、Aの時がPot 123.6%、Kの時がPot 29.1%だということです。先ほどアルゴリズムの結果から、
- ナッツのAは、ピュアに大ベットを用いる。最適なサイズは120%から130%の間の、やや120%寄りの当たりにありそう。
- セカンドナッツのKは、ピュアに小ベットを用いる。最適なサイズは25%から30%の間の、やや30%寄りの当たりにありそう。
と予想を立てましたが、見事にその通りになっていることが分かります。また、この時9のブラフベットの頻度は、
Pot 123.6%が $\frac{b_{A}}{1 +b_{A}} \approx \frac{1.236}{1 + 1.236} \approx 0.553$
Pot 29.1%が $\frac{b_{K}}{1 +b_{K}} \approx \frac{0.291}{1 + 0.291} \approx 0.225$
となり、両方合わせても1を超えません。つまり、ブラフコンボは9だけで十分なので、Tまでブラフに回す必要はない、ということです。
5. 実践でベットサイズ分割を行う際の注意
ここまで、ベットサイズ分割が自身のレンジのEVを底上げする話をしてきました。しかし、これを本当のポーカーで実践する際には注意が必要です。
このゲームでは、Villainにレイズ権がありませんでしたが、実際のポーカーではレイズされることがあります。
安ベットのレンジにナッツクラスのハンドが一切含まれない場合、相手にそれがバレると、エクスプロイトで幅広くポラライズされたレイズを返されてしまいます。
そうなると自身のレンジのEVは大きく下がってしまいます。
よって、相手がレイズを適切に返せる上手なプレイヤーである場合、ナッツクラスのハンドを、一部安ベットに入れてバランスを取ります(特にOOPの場合)。
まとめ
今回も難易度の高い記事になってしまいましたが、ここまでお読みいただきありがとうございます。本記事では、GTOの行うベットサイズ分割が、数学的な裏付けを持つ効果的なプレーであることを説明しました。
結論を簡潔に要約すると以下のようになります。
- ベットサイズ分割を行う場合、より強いバリューハンドほど大きいベットサイズを用いるとEVが上昇する。
- ブラフハンドはEQの低い弱いハンドから選定し、各ベットサイズごとに適切な頻度でブラフをする(実践では、ブロッカーの良いハンドほど大きいブラフベットを選択する傾向あり。今回のゲームではブロッカーは無かった)。
- 実践では相手にレイズ権があるため、ベットサイズ分割をするにしても、ある程度ナッツクラスのハンドを分散させてエクスプロイトされることを防ぐ必要がある。
初心者から中級者におすすめ!
東大発ポーカーAI学習アプリ 『POKER Q'z』のアプリダウンロードはこちら↓
お好きなプラットフォームで今すぐ始めよう!
関連SNS情報
POKER Q'zが気になった方は是非こちらのフォローをお願いいたします!
定期的にポーカーのクイズ、テクニックや戦略などの役に立つTipsを配信しています✨