読者です 読者をやめる 読者になる 読者になる

いものやま。

雑多な知識の寄せ集め

ポーカーのオッズとアウツの話。(その3)

ゲーム 数学

昨日はポーカー(テキサスホールデム)でアウツからオッズを計算する方法を説明した。

ポーカーのオッズに関する説明でよく見るのは、ここまで。
といっても、比の形で表されたオッズを使った計算は、ほとんど見たことがないけど。

さて、ここまでの話は、間違ってはいない。
ただ、最初に書いた通り、自分には納得がいかない部分があった。
今日はその話を。

ベットは1回で終わるとは限らない

自分が納得いかなかった部分。
それは、ベットは1回で終わるとは限らないということ。

最初に考えたサイコロの例を思い出して欲しい。
そこでは、参加するかしないかを選択し、参加すると決めたら、あとは実際にサイコロを振るだけ。
勝ちの目が出れば賞金がもらえて、参加費も戻ってくる。
勝ちの目が出なければ、参加費が没収される。

一方、ポーカーを考えて欲しい。
フロップで参加するかしないかを選択し、参加すると決めたとする。
そうすると、ターンがめくられる。
ターンはヒットするかもしれないし、ヒットしないかもしれない。
けど、ヒットしようがしまいが、賞金はもらえず、なぜかまたベットが始まる

おいおい、ちょっと待てよ、と。
自分は、参加費を払えばある確率に従って賞金がもらえると聞いて、この賭けに参加した。
けど、実際は、参加費を払って勝負に参加したら、別の勝負が始まって、その勝負への参加費がさらに必要だと言われた。
賞金はいつもらえるんだ?
これは詐欺じゃないか?

そう、ここが単純な賭けとポーカーの違い。

カードを1枚めくって、それがヒットするかしないかで勝負が決まるなら、ここまでの話は何の問題もない。
けど、実際にはそこで勝負は決まらず、さらに新しい賭けが始まるだけ。
勝つか負けるかは、そういった賭けをいくつか続けた結果として、最終的に決まる。

そうなると、最初に行った賭けの判断が正しかったのかどうかは、その最初の賭けを見るだけで簡単に判断できるような単純なものではなくなってしまっている。
けど、そのことについて指摘し、ちゃんと計算を行っている人を、自分は見たことがない。

はてさて、単純にポットオッズとオッズを比較する方法は、どれくらい正しいのか。
それとも、もっとハンド全体を通しての判断を行わないといけないのか。
それについて、以下では議論していく。

問題設定

ここでは、ポーカーを模した、次のようなゲームを考えてみる:

ゲーム1では、ポットに  (K+a) 入っていて、参加するにはポットに  a 支払う。
ゲーム1に参加しなかった場合、何も起こらない。
ポットに  a 支払ってゲーム1に参加すると、確率  (1 - p) でゲーム2に、確率  p でゲーム3に移行する。(ただし、 0 \le p \lt \frac12 とする)
なお、ゲーム2は負けやすいゲーム、ゲーム3は勝ちやすいゲームである。

ゲーム2では、ポットには  (K+2a+b) 入っていて、参加するにはポットに  b 支払う。
ゲーム2に参加しなかった場合、何も起こらない。(ゲーム1で支払った  a も返ってこない)
ポットに  b 支払ってゲーム2に参加すると、確率  (1-q) で負け、確率  q で勝つ。(ただし、 0 \le q \lt \frac12 とする)
負けた場合には何ももらえないが、勝った場合にはポットに入っている  (K+2a+2b) をもらえる。

ゲーム3もゲーム2と同様で、ポットには  (K+2a+c) 入っていて、参加するにはポットに  c 支払う。
ゲーム3に参加しなかった場合、何も起こらない。(ゲーム1で支払った  a も返ってこない)
ポットに  c 支払ってゲーム3に参加すると、確率  (1-r) で負け、確率  r で勝つ。(ただし、 \frac12 \lt r \le 1 とする)
負けた場合には何ももらえないが、勝った場合にはポットに入っている  (K+2a+2c) をもらえる。

イメージとしては、ヘッズアップで、

  • ゲーム1は、フロップでポットに  K 入っていて、相手が  a をベットしてきて、これにコールするかどうか。
  • ゲーム2は、ゲーム1でコールしたあと、ターンがめくられたけどヒットせず、相手が  b をベットしてきて、これにコールするかどうか。
  • ゲーム3は、ゲーム1でコールしたあと、ターンがめくられてヒットして、相手が  c をベットしてきて、これにコールするかどうか。
  • リバーではお互いチェックする。

という感じ。

それぞれの場合の利益を確認すると、以下のとおり:

  • ゲーム1に参加しなかった場合、利益は0。
  • ゲーム1に参加してゲーム2へ移行し、
    • ゲーム2に参加しなかった場合、利益は  -a
    • ゲーム2に参加して負けた場合、利益は  -a-b
    • ゲーム2に参加して勝った場合、利益は  K+a+b
  • ゲーム1に参加してゲーム3へ移行し、
    • ゲーム3に参加しなかった場合、利益は  -a
    • ゲーム3に参加して負けた場合、利益は  -a-c
    • ゲーム3に参加して勝った場合、利益は  K+a+c

図示すると、次のようになる:

f:id:yamaimo0625:20160516002632p:plain

このゲームにおいて、各ゲームでの正しい判断がどうなっているのかを調べていく。

ゲーム2について

まずはゲーム2について。

ゲーム2に参加した場合の期待値は、以下のとおり:

 {
\begin{align}
q (K+a+b) + (1-q)(-a-b) &= q (K+2a+b) - (1-q)b - a \\
&= qK' - (1-q)b -a
\end{align}
}

ただし、 K' = K + 2a + b で、これはゲーム2のポットの最初の金額。

ゲーム2に参加すべきかどうかは、参加した場合の期待値が参加しない場合の期待値以上になっているかどうかだから、

 {
\mbox{ゲーム2に参加すべき} \\
\quad \iff qK' - (1-q)b -a \ge -a \\
\quad \iff qK' - (1-q)b \ge 0 \\
\quad \iff K' : b \ge (1-q) : q
}

すなわち、ゲーム2の  (\mbox{ポットオッズ}) \ge (\mbox{オッズ}) と同値になっている。
これはポーカーでサンクコストを考慮してはいけない数学的な理由。 - いものやま。で言及した通り。
というか、元々このような問題を考えていて、サンクコストについてだけ切り出した記事が、上の記事。

なお、ゲーム2自体の期待値は、次のようになっている:

 {
\mbox{max.} \{qK' - (1-q)b -a, -a \}
}

注意すべきは、参加すべきかどうかの判断からはサンクコストの  a が消えているけれど、期待値にはサンクコストの  a が残っているということ。
これがゲーム1の期待値を計算するときに意味を持つ。

ゲーム3について

ゲーム3はゲーム2と同じ構造なので、同様の議論で、次のようになることが分かる:

ゲーム3の期待値は、以下の通り:

 {
\mbox{max.} \{rK'' - (1-r)c -a, -a \}
}

ただし、 K'' = K + 2a + c

そして、ゲーム3に参加すべきかどうかは、 K'' : c \ge (1-r) : r かどうかで判断できる。

ゲーム1について

さて、問題はゲーム1。

単純にポットオッズとオッズを比較するのだと、次のような判断を行うことになる:

 {
\mbox{ゲーム1に参加すべき} \iff (K + a) : a \ge (1-p) : p
}

問題は、この判断が正しいのかどうか。

ゲーム2、ゲーム3の期待値から、ゲーム1に参加したときの期待値  E は、次のようになる:

 {
E = p \: \mbox{max.} \{ rK'' - (1-r)c -a, -a \} + (1-p) \: \mbox{max.} \{qK' - (1-q)b -a, -a\}
}

したがって、ゲーム1に参加すべきかどうかは、次のように判断することになる:

 {
\mbox{ゲーム1に参加すべき} \\
\quad \iff p \: \mbox{max.} \{ rK'' - (1-r)c -a, -a \} + (1-p) \: \mbox{max.} \{qK' - (1-q)b -a, -a\} \ge 0
}

見ての通り、 (K+a) : a \ge (1-p) : p かどうかなんていう単純な判断ではない。

さて、この複雑な判断をどう扱えばいいものなのか・・・?

ゲーム1の近似的な計算

厳密には先程の計算を行わないといけないのだけど、これだと複雑すぎてモノの本質が見えてこない。
そこで、次の2つの仮定を入れることで、近似的に計算が行えるようにしてみる。

入れる仮定は、次の2つ:

  •  r \approx 1
  •  q \approx p

これらの仮定の意味するところは、以下の通り:

  • ヒットしてゲーム3に移行した場合、ほぼ間違いなく勝てる
  • ヒットしなくてゲーム2に移行した場合も、ヒットする確率はゲーム1とほぼ変わらない

実際のゲームは必ずしもこうはならないので、かなり強い仮定ではあるのだけど、これくらい強い仮定を入れないと計算が進まないので、しかたない。
それに、そこまで無理のある仮定でもないし。

まず、 r \approx 1 の仮定があると、オッズ  (1-r) : r は限りなく0に近くなる。
なので、どんなにポットオッズが悪くてもコールした方が期待値は高くなるので、ゲーム3の期待値は次のように近似できる:

 {
\begin{align}
\mbox{max.} \{rK'' - (1 - r)c -a, -a\} & \approx K'' - a \\
& = K + a + c
\end{align}
}

この結果と q \approx p の仮定から、ゲーム1に参加したときの期待値  E は次のように近似できる:

 {
\begin{align}
E &= p \: \mbox{max.} \{ rK'' - (1-r)c -a, -a \} + (1-p) \: \mbox{max.} \{qK' - (1-q)b -a, -a\} \\
& \approx p (K + a + c) + (1 - p) \: \mbox{max.} \{pK' - (1-p)b -a, -a\}
\end{align}
}

ここから先は、場合分けが必要。

まず、記述しやすくするために、 \beta = p K' - (1 - p)b とする。
このとき、 \beta \ge 0 \iff K' : b \ge (1 - p) : p であることに注意。

 \beta b について整理すると、

 {
\begin{align}
\beta &= p K' - (1 - p)b \\
&= p (K + 2a + b) - (1 - p)b \\
&= (2p - 1) b + p (K + 2a)
\end{align}
}

なので、 \beta b に関する一次関数になっていて、 0 \le p \lt \frac12 なので、単調減少するようになっている。
これは、 b=0 のとき \beta は最大で、 b が大きくなるにつれ  \beta は小さくなっていき、 \beta \lt 0 になると、ゲーム2に参加しない方がいいということを意味する。

  •  K' : b \ge (1 - p) : p、すなわち、 \beta \ge 0のとき

ゲーム1に参加したときの期待値  E は、次のようになる:

 {
\begin{align}
E & \approx p (K + a + c) + (1 - p) \{ p K' - (1 - p) b - a \} \\
& = p (K + a + c) - (1 - p) (a - \beta)
\end{align}
}

まず、もし  (K + a) : a \ge (1 - p) : p なら、 E \ge 0 を近似的に満たす。
なぜなら、そのとき、 p(K+a) - (1 - p)a \ge 0 なので、

 {
\begin{align}
E & \approx p (K + a + c) - (1 - p) (a - \beta) \\
& = \{ p (K + a) - (1 - p)a \} + pc + (1 - p)\beta \\
& \ge 0
\end{align}
}

となるから。
 \beta \ge 0 であることに注意)

そこで、 (K+a) : a \lt (1 - p) : p の場合を考える。

この場合、 p(K+a) - (1 - p)a \lt 0 なので、

 {
\begin{align}
a - \beta &= a - (2p - 1)b - p(K + 2a) \\
&= - \{ p(K + a) - (1 - p)a \} + (1 - 2p) b \\
&\gt 0
\end{align}
}

であるから、

 {
E \approx p (K + a + c) - (1 - p)(a - \beta) \ge 0 \\
\quad \iff (K + a + c) : (a - \beta) \ge (1 - p) : p
}

と、近似的に求まる。

すなわち、この場合は、近似的に

 {
\mbox{ゲーム1に参加すべき} \\
\quad \iff (K + a + c) : (a - \beta) \ge (1 - p) : p
}

となる。

  •  K' : b \lt (1 - p) : p、すなわち、 \beta \lt 0のとき

この場合、ゲーム1に参加したときの期待値  E は、次のようになる:

 {
\begin{align}
E & \approx p (K + a + c) + (1 - p)(-a) \\
& = p (K + a + c) - (1 - p)a
\end{align}
}

よって、この場合は、近似的に

 {
\mbox{ゲーム1に参加すべき} \\
\quad \iff (K + a + c) : a \ge (1 - p) : p
}

となる。

〜〜〜

さて、以上の議論をまとめると、ゲーム1に参加すべきかどうかの判断は、近似的に次のように表わせることが分かる:

 {
\mbox{ゲーム1に参加すべき} \\
\quad \iff (K + a + c) : (a - \mbox{max.} \{\beta, 0\}) \ge (1 - p) : p
}

ただし、 \beta = p K' - (1 - p)b で、 \beta \lt a である。

ところで、この数式はどんな意味を持つのか?

インプライド・ポットオッズ

この数式で注目すべきは、 (K + a + c) : (a - \mbox{max.} \{\beta, 0\}) \ge (K+a) : a ということ。
これは、ポットオッズよりもオッズが悪くても、参加した方が期待値が高くなる場合が存在するということを示している。

具体的には、ヒットした場合に相手から引き出せる金額が大きかったり(=  c が大きい場合)、ヒットしなかった場合の次の勝負でオッズよりも安く勝負に参加できる場合(=  \beta が大きい場合、すなわち、 b が小さい場合)には、ポットオッズよりも悪いオッズでも、オッズにあう場合があるということ。

よく、インプライド・ポットオッズと呼ばれるオッズがあるけれど、 (K + a + c) : (a - \mbox{max.} \{\beta, 0\}) というオッズがまさにそれ。
もっとも、ちゃんと数式で示されることは滅多になく、感覚で語られるだけのことが多いけど。
でも、ちゃんとハンドを通しての期待値を計算すると、このように数式で導き出されてくる。

なお、 c \rightarrow 0, b \rightarrow \infty とすると、 (K + a + c) : (a - \mbox{max.} \{\beta, 0\}) \rightarrow (K + a) : a となる。
なので、単純にポットオッズとオッズを使った判断も、近似的には間違ってはいない。
ただし、それは少しゆるめの判断になっている。

それと、ここまで来て気づく、重要なことがある。
それは、単純な1回のベットのオッズと、ハンドを通してのオッズは、必ずしも一致しないということ。
この事実を知らないと、サンクコストはオッズに影響を与えないということがどれくらい凄いことなのかは、理解できない。

つまり、これまでの議論で分かる通り、ハンドを通してのオッズを計算すると、未来のベットは現在のベットのオッズに影響を与えることが分かる。
それなら、過去のベット(すなわちサンクコスト)も、ハンドを通してオッズを計算すれば、現在のベットのオッズに影響を与えそうなものだけど、実際には過去のベットは現在のベットのオッズに影響を与えない
そこには非対称性が存在する。

これは重要なことだ。
なぜなら、もし、過去のベットが未来のベットと同様に現在のベットのオッズに影響を与えるのならば、オッズの計算はさらに複雑なものになっていただろう。
けど、この未来と過去に関する非対称性の存在のおかげで、サンクコストについては考えず、インプライド・ポットオッズだけを考えればいいということが分かってくる。

今日はここまで!