統計は冷酷だ

ポーカー、ゲーム、サッカーなどについて考えていきたい。自分の為にもブログを更新していこうと思う。

複数ストリートでのNuts/Airのベットサイズ

こんにちは

今回は「The Mathematics of Poker」のP.231のExample19.2の内容について書いていこうと思います。


題名の通り、複数のストリートがあるときのNuts/Airでのベットサイズについての内容です。


一つのストリートのNuts/Airではベットサイズはオールインを利用するのが最適ですが、複数のストリートがあるときはどうなのかを考えていきます。


一つのストリートの特殊な例についてもnoteを書いています。


note.com



ホールデムのTurnでpot:1
eff stack: Pの時のNuts/Airについてです。


X: Nuts y , Air 1-y
Y: middle 1

Xがyの割合のNutsを持っていて、残りはEquityが0のAirであり、Yはブラフキャッチャーのみを持っている状況です。
Riverで何が出てもEquityが変化しないです。



という状況でのGTOについて考えます。



ベットサイズとして、Turnで s_1 , Riverで s_2のベットサイズを選択するとして計算し、最適なベットサイズを求めていきます。


Riverから逆算して考えます。


XがNutsをcheckすることはなく、全てのNutsでベットします。
Nutsをレンジに含んでいるXはYがcallしてもfoldしてもEVが同じになるようにAirを混ぜてベットします。


Riverでのpot:  1+2s_1になっていて、ベットサイズがs_2なので


XはRiverではXは value : bluff = 1+2s_1+s_2 : s_2 となるようにベットします。


次にTurnに関して考えます。


Riverと同様にTurnでもNutsをレンジに含んでいるXはYがcallしてもfoldしても同じEVになるようにAirを混ぜてベットします。



YはRiverでXがベットしてきた時はs_1損し、Xがcheckした時は 1+s_1 得するので、XのRiverでの bet : check = 1+ s_1 : s_1 になるようにbetします。


こうすることでYはTurnでのXのベットに対してcallしてもfoldしてもEVが変わらず、RiverでのXのベットに対してcallしてもfoldしてもEVが変わらないです。



Xにしてみれば、一部のAirをcheckしてギブアップしてTurnでブラフを混ぜてベットし、さらにRiverでブラフの一部をcheckしてギブアップするという構造です。


今、XのNutsの割合をyとして考えています。


XがTurnでベットする割合は、

\begin{eqnarray*}
y \times (1+ \frac{s_2}{1+2s_1+s_2}) \times (1 + \frac{s_1}{1+s_1})
\end{eqnarray*}

とかけます。



Yは全てのハンドをfoldしてもXのEVは同じなので、XがTurnでベットすることができるAirを最大にしようとします。

ここでわかりやすいように、Xがベットした時のTurn, Riverでアクションによってpotが何倍になるかをそれぞれr_1, \ \  r_2とします。


\begin{eqnarray*}
r_1 &=& 1 + 2s_1\\
r_ 2 &=& \frac{1 + 2s_1 + 2s_2} { 1 + 2s_1}
\end{eqnarray*}


です。


以上より、XのTurnでのベットレンジBは

\begin{eqnarray*}
B &=& y \times \frac{ r_1 \ r_2} { \frac{1}{2} r_1 ( r_2 + 1)} \times \frac{r_1}{2(r_1+1)} \\
&=& \frac{4yr_1r_2}{(r_1+1)(r_2+1)}
\end{eqnarray*}


です。


イメージ的にはそれぞれの分母がストリートのアクション前とアクション後のpotの平均、分子がアクション後のpotです。


XはRiverでALL-INするので r_1 \ r_2 = const.
Bを最大化する s_1, \ s_2すなわち r_1 , r_2
 (r_1+1)(r_2+1) が最小になる時です。


これは相加相乗平均から、 r_1 = r_2 の時です。

従って、それぞれのストリートでpotが同じ倍率で大きくなる時、
すなわち同じpot size betを利用することがわかります。




実際piosolverで計算させてみてもそうなります。
ちなみにpiosolverでは残りのストリート数+eをbet sizeに入力するとこのサイズをtreeに入れて計算してくれます。

f:id:takoagemat:20200410000320p:plain
TurnからのNuts/Air


f:id:takoagemat:20200410000326p:plain



Flopから完全なNuts/Airを再現はできなかったのですが、同じようにほとんど一つのベットサイズを利用します。

f:id:takoagemat:20200410000332p:plainf:id:takoagemat:20200410000338p:plain
FlopからのNuts/Air



実践的にも、強いvalueハンドでは複数のストリートで少しずつvalueをとってALL-INに向かいたいという感覚とも合致すると思います。