【poker】AKQゲームとGTO

AKQゲームについて, 非常にわかりやすく解説してある記事が多くありますが, 数式を載せている記事は多くないように感じます. ここでは, 数式を使ってより理解しようという意思のもと, AKQゲームのNash均衡を求めてみようと思います. ただし, 著者はゲーム理論のゲの字も知らないような初心者なので, 専門的な数式は使えません. 同じような内容の記事があったらごめんなさい.

1. AKQゲーム

 様々なパターンのルールがあると思うので, ここでは一つに限定します.
 playerはAliceとBobの二人であり, AliceはOOPに, BobはIPに座ります. それぞれが1bbずつのブラインドを支払った後, 山札から1枚ずつカードが配られます. 山札はA, K, Qの3枚しかなく, カードの強さはA>K>Qです.
 ベッティングラウンドでは, OOPのAliceは必ずcheckし, IPのBobがcheck/betのいずれかのアクションをします. ここで, bet額は1bbに限定されているとします. Bobにベットされた際, Aliceはcall/foldのいずれかのアクションをします. raiseはしません. このとき, お互いの戦略をどうすべきかを考えます.

2. Nash均衡

 まず, IPであるBobの戦略を考えます. Aを持っているときは必ず勝っているため確率1でbetすべきでしょう. Kを持っているときはcheckすべきです. なぜなら, AliceはAを持っているときはcallし, Qを持っているときはfoldするため, ただ損失を増やすだけになるからです.
 Qを持っているときは微妙で, Kを持っているAliceがfoldする可能性がある以上, 一定の頻度でブラフするのが良さそうです. そこで, BobがQを持っているときのブラフ頻度を p_bとおきます.  p_b=0の時Bobは全くブラフせず,  p_b=1の時BobはQを持っていると完全ブラフ気合太郎になります.

 次に, Aliceの戦略を考えます. Aを持っているときは必ず勝っているので確率1でcallし, Qを持っているときは必ずfoldします.
 Kを持っているときですが, Bobが全くブラフしない場合は別として, Qを持っていてブラフをする可能性がある以上, 一定の頻度でcallするのが良さそうです. そこで, AlcieがKを持っているときのcall頻度を p_cとします.  p_c=0でAliceは全くcallせず,  p_c=1でAliceはブラフ絶対許さないウーマンになります.

 さて, Nash均衡を求めるためにBobの期待値Eを求めましょう. 一気に求めても大変なので, BobがA, K, Qを持っているときのそれぞれの期待値を E_A, E_K, E_Qとし, あとで足して1/3をかけます.
 まずE_Aですが, AliceがKを持っているとき確率p_cでcallしてくれポットを獲得できます. Bobの純利益は2bbです. また, 確率1-p_cでfoldされますが, その際も1bb儲けます. AliceがQを持っているとき, 確率1で1bb獲得します. つまりE_Aは以下のようになります.


E_A = \dfrac{1}{2}(2p_c+(1-p_c))+\dfrac{1}{2} = \dfrac{1}{2}p_c+1

 次に, E_Kですが, BobはcheckするのでAliceがAを持っていたら1bb負け, Qを持っていたら1bb勝ちます:


E_K = -\dfrac{1}{2}+\dfrac{1}{2} = 0

 最後にE_Qですが, AliceがAを持っている場合とKを持っている場合を考えて,


E_Q = \dfrac{1}{2}(-2p_b-(1-p_b))+\dfrac{1}{2}(-2p_bp_c+p_b(1-p_c)-(1-p_b)) = \dfrac{1}{2}p_b-\dfrac{3}{2}p_bp_c-1

です. 第一項はAliceがAを持っていた場合で, ブラフをした場合は-2bb, しなかった場合は-1bbです. 第二項はAliceがKを持っていた場合で. 順にブラフキャッチされた場合, ブラフ成功, ブラフやめた場合を表しています.
 ここからBobの期待値E


E = \dfrac{1}{3}(E_A+E_K+E_Q) = \dfrac{1}{6}p_c+\dfrac{1}{6}p_b-\dfrac{1}{2}p_bp_c

となります. ここからNash均衡を求めていきましょう.

 まず, Bobの戦略を考えます. Bobがいじれるのはp_bのみなので, これでE偏微分して


\dfrac{\partial E}{\partial p_b} = \dfrac{1}{6} - \dfrac{1}{2}p_c

を得ます. AliceのこれはAliceの p_cに完全に依存し, 偏微分が正ならp_bを1に, 負ならp_bを0にすれば最大限AliceをExploitできることになります(GTOを知っている人で偏微分知らない人はいないと思うので, 偏微分の説明は割愛します).
 逆に, Aliceはどうすればいいでしょうか. 同様にEp_c偏微分して


\dfrac{\partial E}{\partial p_b} = \dfrac{1}{6} - \dfrac{1}{2}p_b

を得ます. 偏微分が正ならp_cを0に, p_cを1にすれば良いことがわかります.

 AliceがBobの利益を小さくするにはどうすれば良いのかを考えると, 偏微分を値を0にしてしまえば良いことを思いつきます. p_c=1/3としてしまえば, Ep_bに対して無依存になり, Bobがどんな戦略を取ろうとも期待値が一定になります. これはBob視点からも同じで, Aliceの偏微分を値を0にしてしまえば (p_b=1/3とすれば) Aliceがどんな戦略を取ろうとも自分の期待値を変化できなくさせることができます. この p_b=p_c=1/3がいわゆるNash均衡となります.

 さて, この事実からいくつかの誤解を解くことができます.
 まず, いわゆるGTOが期待値を0にするという話です. これは単純に p_b=p_c=1/3を期待値の式に代入すれば分かることですが, Bobの期待値は E=1/18となり, 正の値になります. IPの優位によるものです.
 さらには, GTOが一番の利益をとる戦略という考えも否定することができます. Aliceが少しでもNash均衡から外れていれば (p_c=1/3と違う値を取れば) Bobはそれに対してNash均衡でプレイするよりも, Aliceのプレイにアジャストしてp_b=1ないしはp_b=0とするのが利益最大となります. 例えば, AliceがNash均衡よりも大きいp_c=1/2でプレイする場合, Nash均衡であるp_b=1/3だと期待値は1/18ですが, BobがAliceを最大にExploitしたp_b=0という戦略を取れば, 期待値は1/12になります. 前者は5.56bb/100hands, 後者は8.33/100handsに対応します. こうなってくると, 自分がGTOをプレイするかよりは, 相手がGTOをプレイしているかどうかが大事なような気がします(要検証). 要するに, GTOは相手の利益を限定する消極的な戦略であり, 自分の利益を最大化するような積極的戦略ではないということです.

3. ベットサイズ

 これだけだとつまらないので, Bobは自身のベットサイズを変えられることにしましょう. バリューとブラフのベット額を変えるわけにはいかないので, 両者の額は同じとして Sとしましょう. このときのBobの期待値 Eは頑張って計算すると


E = \dfrac{1}{6}Sp_c+\dfrac{1}{6}(2-S)p_b-\dfrac{1}{2}(S+2)p_bp_c

となります.Nash均衡は


  p_b = \dfrac{1}{S+2},  ~~~p_c = \dfrac{2-S}{S+2}
となります.
 面白いことに,  Sが2を超えるとAliceはBobの偏微分の値を0にできなくなることがわかります. ただし, これは実はAliceにとって不都合ではなく, 計算すると Sが2を超えるとBobの期待値は最大でも0になり, 先ほどの1/18を下回ってしまいます. そのため, Bobにとって Sを2より大きくすることに意味はなさそうです.
 では, Bobにとっての最適なベット額 Sとはいくらでしょうか. 上記のNash均衡時の p_b, p_cを期待値の式に代入すれば,

E = \dfrac{S(2-S)}{6(S+2)}
がBobの期待値になります. これを S\ge 0の範囲で最大化してやれば良いのですが, 微分して求めれば最大値は S = 2(\sqrt{2}-1)の時

E = \dfrac{3-2\sqrt{2}}{3}
です. この値は5.72bb/100handsであり, ベットサイズが1bbだった5.56bb/100handsを上回り, このベットサイズでBobは戦うべきと言えます.

最後に, この記事をまとめます. 結論としてポーカープレイヤーは,  \sqrt{2}を計算するため関数電卓を持ってプレイすべきと言えます. 正直, 真面目なことはよくわかりませんでした.