レイズされない時のベットサイジング
こんにちは
今回は「The Mathematics of Poker」P.151のExample14.3の[0,1]gameについて書いていきます。
OOPが強制check、raiseなしで、eff stackが無限であるときのGTOです。
この内容「The Mathematics of Poker」の中でも一番理解するのに時間がかかるところの一つだと思います。
状況は
X: [0,1]の一様乱数
Y: [0,1]の一様乱数
pot: 1, eff stack: infinity
X(OOP)が強制check
Y(IP)は自由なベットサイズを選択できる
XはYのベットに対してcall or foldする。raiseをすることはできない。
ショウダウンになったら数字が小さい(大きいでも同義)方が勝ちという仮定の元でのgameを考えたものです。
この条件の元でのGTOについて考えていきます。
ちなみに0がEquityが100%のハンド、1がEquityが0%のハンドだとして考えています。
まずYのベット額tに対してXのcallとfoldの境界をとします。
つまり、どんな小さなベットに対してもfoldする境目がです。
このの値をとします。
Xの戦略に関して
XはYのブラフハンドyでのベット額sのベットに対してブラフハンド最上位のハンドでのcheckとEVが同じになるようにdefenceします 。
はブラフ成功によるもの、はブラフ失敗によるものです。
この式を最初にみたときしっくりこなかったので、こちらのnoteに自分なりにわかりやすく書いてみました。
ブラフの最上位のハンドの利益は0なので、
従って、 とかけます。
この結果をみてもわかるように、XはYのブラフの最上位のハンドがブラフとcheckのEVを同じになるようにdefenceすればいいということになっています。
Yの戦略に関して
Yのvalue betの利得関数を考えて、のコールレンジに対してバリューハンドでどのくらいバリューベットすれば一番利得が得られるかを求めていきます。
はさらに強いハンドにコールされてしまう場合、はバリューが取れた場合について考えています。
をで微分すると
になる時がが極大であり、その時のは
と求められます。
なぜで微分するかですが、Yの特定のハンドに対して利得関数を求めており、その特定のハンドに対して最適なベット額を求めているからです。
Xはベット額によってYのバリューハンドが何かわかるという状態です。(ここはもしかしたら語弊があるかもしれません)
より
ベット額sの変化に対してバリューハンドyがどれくらい変化するかがわかりました。
またYはXがbluff catcherのハンドでcallしてもfoldしても同じEVになるようにするので、
Yのブラフレンジはバリューに比べての割合あります。
従ってYのブラフレンジの割合は
で求められます。
この積分を求めて
従って、なので
以上より、
であり、
GTOは
XはYのベット額sのベットに対して]でcallして、 ]でfoldする
Yは ]のハンドをに従った額でバリューベット
]のハンドをブラフレンジとしてベット額に合わせた割合ベット
となります。
これは本には書いてませんが、
ベットサイズを任意に決められることでのIPの利得は
です。
第一項はバリューによる利益、第二項はブラフによる利益です。
ポットサイズベットに限定されている時は利益がだったので、任意のベットサイズを選択できることにより得られる利益が増加したことがわかります。
実際piosolverで計算しても似たような結果になります。
もちろん有限個の有限なベットサイズしか選択できませんが、下位のハンドはブラフをした方がよく、上位のハンドは 15%potまでしか入れてませんがバリューベットした方がいいとでています。
IPの利得もで = 0.0714より少し小さいです。
以上です。
もちろん実際のポーカーではOOPはレイズすることが可能です。
もしOOPにレイズされない状況で、お互いのレンジが連続的な同じ分布になってれば、強いハンドは大きく、弱いハンドは小さくベットすることが得になります。
なにか間違っていることや感想などあれば反応いただけると助かります。