統計は冷酷だ

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

リミットHi/LogameのGTO

こんにちは

今回は「The Mathematics of Poker」のP.225のExample18.1の内容に関して書いていこうと思います。



読んでる人いるのかなあ笑
最近は実践的ではない内容ばかり書いていますが、pioの計算が終わったら実践的な内容についても書いていけたらいいと思っています。



今回の内容はリミットゲームのHi/LoポーカーのGTOについてです。


Hi/Loとは強いハンドと弱いハンドを持っている人がそれぞれ半分ずつのpotを獲得できるゲームです。

具体的にはStud8とかFLO8とかです。
ルールはpokerstarsのホームページなどにも載っていると思います。


[0,1]gameの概念を利用するので、何それといった方はこちらからみてもらえると多少はわかりやすいはずです。



note.com





今回想定する状況は以下の通りです。

X,Yの2人のプレイヤーでのリミットゲームのHi/Logameで、
Xはcheck raiseすることができない、
X,Y共にが相手のbet, raiseに対してfoldすることができない、


そして、それぞれのプレイヤーがHi/Loそれぞれのハンドで[0,1]game同様に0%~100%のエクイティを持っているハンドを一様に持っているとします。


X(OOP): Hi/Lo共に[0,1]の一様乱数
Y(IP): Hi/Lo共に[0,1]の一様乱数


Hi/Lo共に数字の小さなハンドが強い、すなわち0がHi/Loそれぞれのエクイティが100%、1が0%という状況を想定しています。


Xのハンドが(0.3, 0.4)という表記を、
Hiに対して上から30%のEquityを持っているハンドを持っていて、Loに関しては上から40%のEquityを持っているハンドを持っているとします。



今回は両者foldできないのでpotの大きさは関係ないです。


Xがfoldできないのは流石に現実離れしすぎだと思ったのですが、FLO8などではRiverで十分にpotが大きくなっていてほとんどfoldしないシチュエーションはあると思うので考える価値はあると思います。




まず、Xのbetとcheckの境界から考えるのですが、
これをXのハンド(x,y)に関して、x+y=1の直線だと仮定して進めていきます。


同様のルールでHiのゲームではXは上位1/2のハンドをbetするので自然だという考えの元であり、また後々x+y=1の直線上のハンドでは、betとcheckのEVが同じであることを確認します。



その上でXがbetしてきた時の、Yのアクションについて考えます。
今、foldはできないのでraiseとcallの境界を考えていきます。


Yのハンド(x,y)でXのbetレンジにraiseしてscoopしてさらなる利益を得られる時と、raiseしてscoopされてさらなる損失を被る時が等しい時がraiseとcallの境界だとわかります。


従って、Yのraiseとcallの境界を


\begin{eqnarray*}
xy &=& \frac{(1-y-x)(1-x-y)}{2}\\
(x-1)^2+(y-1)^2&=& 1
\end{eqnarray*}



と求められます。


xyがraiseしてscoopした時の利益、 \frac{(1-y-x)(1-x-y)}{2}がraiseしてscoopされた時の損失です。


これは円の方程式になっていて、 (1,1)を中心とした半径1の円になっています。
つまり、YはXのbetに対して (x-1)^2+(y-1)^2>1をみたすハンド(x,y)ではraiseするということがわかります。


言い換えるとゲーム開始時のHiのエクイティの二乗とLoのエクイティの二乗の合計が1より大きい時はraiseするということです。


同様にXがcheckした時のYのbetとcheckの境界を求めます。

先ほどと同様に、Yのハンド(x,y)でXのcheckレンジにbetしてscoopしてさらなる利益を得られる時と、betしてscoopされてさらなる損失を被る時が等しい時がbetとcheckの境界です。


f:id:takoagemat:20200409165713p:plain


従って、


\begin{eqnarray*}
(1-x)(1-y) &=& \frac{(y-(1-x))(x-(1-y))}{2}\\
x^2 + y^2 &=& 1
\end{eqnarray*}



と求められます。


(1-x)(1-y)がbetしてscoopできた時の利益で、  \frac{(y-(1-x))(x-(1-y)) }{2}がbetしてscoopされた時の損失です。

こちらも円の方程式になっていて、(0,0)を中心とした半径1の円になっています。
つまり、YはXのcheckに対してx^2 + y^2 < 1をみたすハンド(x,y)ではbetするということがわかります。


ここで、図からXのbetとcheckの境界 x+y=1ではraiseされる損失とbetしてcallされる利益が同じであることがわかります。


まとめると以下のような図でGTOのアクションを図示できることがわかります。


f:id:takoagemat:20200409165717p:plain
Xの戦略



f:id:takoagemat:20200409165723p:plain
Yの戦略



Xがcheckした後にYは \frac{\pi}{4}  \fallingdotseq  78.5\%の割合でbetすることがわかります。


実際のポーカーではない様々な制約のもとで考えましたが、エクイティの二乗を考えることから、Hi/LoゲームではHiとLoのエクイティの合計が同じならば、どちらかのエクイティに偏っていた方が価値が高いことがわかります。


これは本には書いていませんが、このゲームにおけるYの利得は

領域 D = \{  (x,y) \mid 0 \leq x+y \leq 1 , 0 \leq x , y \leq 1   \} でscoopできる時なので、


\begin{eqnarray*}
&& \iint_D \ xy \ \ dxdy = \frac{1}{24}
\end{eqnarray*}



と計算できます。


同じ状況のHiのゲームではYの利得が1/8ですが、Hi/Loゲームではchopになることが多くYの利得が減少しています。


以上です。
コメントや感想などあったらぜひお願いします。