プリフロップオールインと最適停止問題

確率論

※ChatGPT画伯作、”窮鼠猫を噛む”

プリフロップオールイン:問題例

 筆者のやっているゲームは初心者が多いせいかプリフロップオールインをするプレイヤーが非常に多い。そのため、プリフロップオールインを制する者がテキサスホールデムを制すという気分になる。しばらくこの問題を真面目に考えてみたいという気分に筆者はなっている。ただ、この問題を数学的に定式化して厳密に解こうとするとゲーム理論(確率的動学的最適化問題や強化学習)の話になるだろうし、プレイヤーが複数いる場合はナッシュ均衡が無数に存在してしまうため、対戦相手のモデルが必要になるだろう。厳密に扱うのは現時点では難しいので、簡単な例から考えてみようというのが本稿の趣旨である。

 最適なプリフロップオールイン戦略を考えるために単純化された問題を考えよう。プレイヤーは二人と仮定し、あなたは9bbのスタックしか持っていないとする。対戦相手は100bb以上持っている上に、”お前の負けだろ、あきらめろ”という感じで、毎ゲームあなたのスタックと等しい額をプリフロップからベットしてくると仮定する。追い詰められている状況であるからリスク回避など考えず、期待値を最大化するようにオールインかフォールドかの意思決定を行うものとする。このとき、最適な起死回生のオールインを行うにはどの手札で行えばよいだろうか?最初のゲームはあなたがSBであると仮定する。

 この場合、フォールドし続けると12ゲーム目であなたのスタックはすべて無くなるため、その前にオールインを行う必要ある。

ゲームブラインド残スタック
10.58.5
21.07.5
30.57.0
41.06.0
50.55.5
61.04.5
70.54.0
81.03.0
90.52.5
101.01.5
110.51.0
121.00.0

プレイヤーが二人である場合の各手札の勝利確率は次のテーブルで与えられる。

注意が必要なのは、169個のマスは確率が均等ではなく、\(\small {}_{52}C_2=1326\)個の組み合わせのうちそれぞれのマスの個数は以下の通りである。

それぞれのマスの勝利確率を\(\small p_{ij}\)、その手札が配られる確率を\(\small d_{ij}\)(上記の表の個数を1326で割った値)とすると

\[ \small q_{ij} = p_{ij} \times d_{ij} \]

が各マスのその手札が配られた上に勝利する確率になる。エントリーする手札のレンジを\(\small R\)と表せば、その時の期待勝利確率は

\[ \small p_R = \sum_{(i,j)\in R} q_{ij} \]

で計算できる。この場合における各ゲームでの最適なプリフロップオールインのレンジを求めよ、というのが本稿の問題である。

最適停止問題

 前節の問題のように、確率的に状態(前節の問題であれば手札)が与えられる場合に最適なタイミングを意思決定する問題は最適停止問題(Optimal Stopping Problem)と言われる。金融工学でもよく登場する問題であり、典型的にはアメリカンオプションのプライシングの問題(オプションを行使する最適なタイミングを求める問題)がある。一般的に、最適停止問題は時間軸で後ろの問題から帰納的に最適解を求めることで最適なタイミングを決定する(このような解法をバックワード・インダクション(後退帰納法)という)。

 記号として、\(\small n\)回目のゲームにおける参入ハンドレンジを\(\small R^{(n)}\)、手札の勝利確率を\(\small p_R^{(n)}\)、スタックの残量を\(\small s^{(n)}\)、フォールドした場合のチップの期待値を\(\small V_{\text{Fold}}^{(n)}\)、オールインした場合のチップの期待値を\(\small V_{\text{All-in}}^{(n)}\)で表すことにする。オールインする場合のチップの期待値は

\[ \small V_{\text{All-in}}^{(n)} = 2 \times s^{(n-1)} \times p_R^{(n)} \]

であることは容易に理解できるだろう。フォールドした場合の期待値は一番最後のゲームから帰納的に計算する必要がある。12回目のゲームはフォールドすればすべてのチップを失うので、\(\small V_{\text{Fold}}^{(12)}=0\)である。そのため、12回目は手札が何であってもオールインすることになる(この場合、手札が不明である場合の勝利確率は0.5になる)。11回目のゲームはフォールドした場合、12回目のゲームでオールインすることになるため、

\[ \small V_{\text{Fold}}^{(11)}=E\left[V_{\text{All-in}}^{(12)}\right] = 2 \times 0.5 = 1.0 \]

と表すことができる。10回目のゲームは11回目のゲームでオールインするか、フォールドするかを選択できるため

\[ \small V_{\text{Fold}}^{(10)}= E\left[\max\left\{ V_{\text{All-in}}^{(11)}, V_{\text{Fold}}^{(11)} \right\} \right] \]

と計算できる。10回目のゲームの時点では11回目に配られる手札は不明であるため、期待値を計算する必要があることに注意する。再帰的に計算すれば、すべての\(\small n\)について

\[ \small V_{\text{Fold}}^{(n)}= E\left[\max\left\{ V_{\text{All-in}}^{(n+1)}, V_{\text{Fold}}^{(n+1)} \right\} \right] \]

と表すことができる。

 上記の考察から、169個のマスのうち、フォールドした場合のチップの期待値を上回る期待値持つハンドレンジでオールインすればよいということになる。したがって、後ろのゲームから再帰的に勝利確率\(\small p_{ij}^{(n)}\)が

\[ \small R^{(n)} = \left\{(i,j)| 2 \times s^{(n-1)} \times p_{ij}^{(n)} > V_{\text{Fold}}^{(n)} \right\} \]

を満たす範囲の手札でオールインすればよいということになる。

 計算は結構大変なので解だけ示そう。疑う読者は自分で計算してみればよいだろう。フォールドした場合のチップの期待値\(\small V_{\text{Fold}}^{(n)}\)と\(\small 2s^{(n-1)}p_{ij}^{\ast(n)} = V_{\text{Fold}}^{(n)}\)となる勝利確率\(\small p_{ij}^{\ast(n)}\)は各ゲームで以下のように推定できる。

ゲームスタックフォールド価値均衡確率
18.508.953249.74%
27.507.994447.03%
36.507.271048.47%
46.006.312245.09%
55.005.624046.87%
64.504.664042.40%
74.004.027444.75%
83.003.057038.21%
92.502.501041.68%
101.501.501030.02%
111.001.000033.35%
120.000.000000.00%

フォールドした場合においても、後続のゲームで手札を選択する権利をプレイヤーが有しているため、フォールド時のスタックよりフォールド時のチップの期待値は高めに推定されることが見て取れるだろう。ポジションがBBである場合はフォールドすると失うチップが多いため、ルースになる傾向があることも分かるだろう。

 最適なプリフロップオールインのハンドレンジは均衡確率より勝利確率が高い手札で行えばよい。非常にルースであるように見えるかもしれないが、追い詰められた状況では思い切ってギャンブルしないとジリ貧になるだけということだろう。12回分のハンドレンジをそれぞれ示せば以下の通りである。単純化された例であるが、トーナメントで追い詰められた場合などの状況では、スタックの残量に応じてどのハンドレンジで勝負に出れば良いかの参考になるかもしれない。ただし、トーナメントの場合は順位を上げるため1ゲームでも多く生き残ることも重要であるため、もう少しタイトになるかもしれない。生き残るゲームの回数を最大化するようにオールインの戦略を考える場合はまた別の機会に考えよう。

・1回目

・2回目

・3回目

・4回目

・5回目

・6回目

・7回目

・8回目

・9回目

・10回目

・11回目

・12回目