
【初心者向け】 ポーカーのエッセンス: プレイングの基本とソルバーの活用
本記事はHyugaさんからの寄稿です。
はじめに
こんにちはHyugaです。「機械学習を用いてGTO戦略を理解する」シリーズの記事で、解析補助用のスクリプト作成、記事のレビューなどYuckさんのサポートをしております。
今までの記事は少し難しかったので、今回は閑話休題として初心者向けの内容になっております。
今回、YouTubeで見て気になったハンドがあったので、それを例にソルバーの使い方とハンドレビューの方法論を詳しく解説していきます。
ポーカーの基本的な戦略や考え方、さらにはソルバーを用いた分析の見方などを、初心者の方々にも理解しやすく説明していこうと思います。
今回、PioSOLVERというソルバーを使用しました。ソルバーとは、ノーリミットホールデムにおいて、ハンドレンジやベットサイズを設定することでGTO戦略を計算できます。また、PioSOLVERには以下の機能があります。
ノードロック機能: プレイヤーのアクションを固定して、それに対して最適な戦略を計算できます。
集合分析機能: レンジ全体で複数のボードを分析できます。「機械学習を用いてGTO戦略を理解する」シリーズの記事でも使用しています。
この記事でわかること
ポーカーの基本的な戦略や考え方
ソルバーを用いた分析の見方
ハンドレビューの方法論
具体的な戦略について:
Flopにおけるベット戦略
自分と相手のレンジ、ボードを考慮して適切なベットレンジとサイズを選定します。
ポットコントロールを意識したベットサイズ
相手からのレイズ、リバーでのオールイン、必要勝率などを考慮して適切なベットサイズを選択します。
ハンド解説
ルール
BBアンティありのトーナメント中盤を想定しています。
8maxです。
ハンド履歴
ブラインド:400-800 BBアンティ:800
ポジション: UTG+1
以降、UTG+1のプレイヤー視点で解説します。
PreflopでHeads Upとなり、相手のプレイヤーはBBです。
ハンド: 8h8c
エフェクティブスタック: 22800(28.5BB)
Preflop:
UTG+1(Hero): レイズ1600 -> BB(Villain): コール
Flop:
BB: チェック -> UTG+1: チェック
Turn:
BB: ベット2000 -> UTG+1: レイズ6000 -> BB: コール
River:
BB: チェック -> UTG+1: オールイン15200 -> BB: フォールド
Preflop
まずはPreflopの状況を整理してみましょう。
ブラインド:400-800 BBアンティ:800
ポジション: UTG+1
ハンド: 8h8c
エフェクティブスタック: 22800(28.5BB)
UTG+1: レイズ1600 -> BB: コール
お互いのハンドレンジを見てみましょう。今回はバブルファクターを考慮する必要がないレンジとします。
BBアンティがあることを考慮し、一般的なアンティがない100BBのキャッシュゲームより広いレンジでオープンします。

一方、BBのコールレンジです。BBアンティありで、2BBオープンのため、かなり広いハンドでコールしています。

今回はこのレンジでPioSOLVERを用いて計算しています。またベットサイズは以下のように設定しました。(Turn IPはサイズの検証をするため、レイズサイズが多めになっています)

これからPostflopをプレイするうえで大事なことは、「UTG+1とBBのアクションはPostflopのレンジの中のどこに該当するか」、「UTG+1のハンドやレンジはBBのレンジに比べてどの程度強いか」などお互いのレンジとアクションを結び付けて考えることです。
Flop
ポット: 4400
エフェクティブスタック: 21200
ボード: 8s7d5s
BB: チェック -> UTG+1: チェック
UTG+1にトップセットがヒットしました!ナッツではないものの、ナッツ級に強いです。それにもかかわらず、UTG+1はチェックしました。ポーカーを始めたての時に、「強いハンドではベットする」ということを習うと思いますが、明らかに反しています。これは、Preflopのところにも書いた、UTG+1とBBのレンジを比較した結果です。
ここで、エクイティ分布について考えてみましょう。エクイティ分布とは、レンジの中でハンドのエクイティがどのように分布しているかを示したグラフです。横軸にハンド、縦軸に相手のハンドレンジに対するあるハンドのエクイティをプロットしています。例えば、8s7d5sのボードに対して96sというハンドは、ストレートが完成しておりエクイティは90%程度で、グラフの右上に位置します。
以下の二つのグラフは、Flopのボードが8s7d5s(今回のボード)とKs8s2dのエクイティ分布です。それぞれどちらのボードのグラフでしょうか?(どちらのボードも、Preflopのハンドレンジは上で記載したものです)
UTG+1が赤色、BBが緑色のグラフです。


答えは、上が8s7d5sで、下がKs8s2dです!考え方は強いほうのハンドを比較してみるとなんとなくわかってきます。
まず8s7d5sの右上を見てみましょう。BB側は96や64などのストレートハンドを持っているのに対し、UTG+1側は最も強いハンドで88や77などのセットハンドです。よって、BB側のほうが最も強いハンドを持っている構造になります。

続いてその次に強いハンド群です。それぞれの役の強さは図で表した通りです。UTG+1はBBにはないオーバーペアのレンジがあるので、上位10-30%のレンジで、UTG+1のエクイティが逆転しています。

Ks8s2dのエクイティ分布を見てみましょう。UTG+1側はKKのセット、AAのオーバーペア、AKなどのトップヒット強キッカー、QQなどの2ndペアがある一方、BBにはそれらのハンドはありません。BBの最も強いハンドは8,2のセットやK8のツーペアであり、レンジ全体的にUTG+1が支配している構造になります。

Flopでの8s7d5s, Ks8s2dのレンジ全体のエクイティ, 期待値は以下のようになります。
ポット: 4400
$$
\begin{array}{|l|l|l|l|l|} \hline
ボード & BB エクイティ & BB 期待値 & UTG+1 エクイティ & UTG+1 期待値 \\ \hline
8s7d5s & 0.497 & 2060 & 0.503 & 2340 \\ \hline
Ks8s2d & 0.362 & 1154 & 0.638 & 3246 \\ \hline
\end{array}
$$
このように、8s7d5sは拮抗している一方、Ks8s2dはだいぶUTG+1に有利です。これを踏まえて、BBがチェックした後のFlopでのUTG+1の戦略を見てみましょう。
8s7d5s:

Ks8s2d:

緑色はチェック、オレンジ色はポットの33%ベット、赤色は75%ベットです。結果として以下のようなことが言えます。
Flop: 8s7d5s
38%の頻度でベットをしており、そのうちほぼすべてで大きいサイズのベット(75%ベット)を使用している。
つまり、狭いレンジで高いベットサイズを使用している。
Flop: Ks8s2d
95%の頻度でベットをしており、そのうちほぼ8割で小さいサイズのベット(33%ベット)を使用している。
つまり、広いレンジで安いベットサイズを使用している。
なぜこのような結果になるか、定性的に考察してみましょう。
上述した通り、8s7d5sではBBとUTG+1のエクイティは拮抗しており、ストレートのような強いハンド、将来的に強くなるストレートドローやフラッシュドローはBB側のほうが多く含まれます。このような状態で、高頻度でベットをしてしまうと、BB側から高頻度でチェックレイズが飛んできてしまい、フォールドせざるをえないハンドのエクイティが削られ、プレーが難しくなってしまいます。
また、高いベットサイズを選択することで、将来的にまくられるかもしれないBB側のツーオーバーやガットショットストレートドローのエクイティを奪うことができたり、チェックレイズの頻度を落とすことができます。
一方、Ks8s2dはUTG+1が全体的に有利です。BB側の強いハンドは多くないので、チェックレイズされる頻度はそこまで高くなく、また小さいベットでも相手の弱いところはフォールドしてくれるので、そのぶんのエクイティはUTG+1側の利益になります。また、小さいベットで相手から広くコールしてもらうことで、UTG+1に有利な状況を保ったまま、ポットサイズを大きくすることができます。
以下に、2つのボードとUTG+1側のベットに対するBBの戦略のスクリーンショットを載せるので、ぜひ参考にしてみてください。
ボード8s7d5s、UTG+1の75%ベットに対するBBの戦略:

ボード8s7d5s、UTG+1の33%ベットに対するBBの戦略:

ボードKs8s2d、UTG+1の75%ベットに対するBBの戦略:

ここまで、長々とFlopの戦略について説明してきましたが、UTG+1の88のハンドを見てみましょう。
UTG+1 strategy in Flop: 8s7d5sの画像の通り、88はベットとチェックの両方の戦略をとっています(チェック(緑の領域)のほうが広いから、チェックが有利という訳ではないので注意してください!)。つまり、同じ状況になったときに強いからと言って必ずベットするといった偏った戦略になっていなければ、どちらを選択しても基本的に問題ありませんが、今回はチェックを選択していました。
その理由としては、チェックレンジを強くしているアピールをすることで将来的に搾取されないようにすること、相手のプレイヤーは今までのプレイで勉強されていてブラフを打てるプレーヤーだと感じており、ターンやリバーでブラフを誘発したいなどが考えられます。
Turn
ポット: 4400
エフェクティブスタック: 21200
ボード: 8s7d5sKc
BB: ベット2000 -> UTG+1: レイズ6000 -> BB: コール
まずは、ターンでのエクイティ分布、レンジ全体のエクイティ、期待値をみてみましょう。Kcが落ちたことで、UTG+1側のAK、KQがトップヒットに、KKがセットに昇格し、BB側、UTG+1側のドローはどちらも完成していません。Kc自体はUTG+1側に有利なカードでエクイティや期待値も少し改善されていますが、ナッツは依然としてBB側にありますし、グラフの通りFlopとそこまで大きな変化はありません。

$$
\begin{array}{|l|l|l|l|} \hline
BB エクイティ & BB 期待値 & UTG+1 エクイティ & UTG+1 期待値 \\ \hline
0.483 & 2059 & 0.517 & 2341 \\ \hline
\end{array}
$$
早速、BBに2000点ベットされた後のUTG+1の戦略を見てみましょう。青:フォールド、緑:コール、オレンジ:レイズ6000点、赤:レイズ10000点、紫:オールインです。(Turn以降、より精度が高くなるよう再計算しています)

直感通り、レイズとコールの混合戦略をとっており、多くの頻度でレイズしています。レイズの中でも、6000、10000、オールインのうち、すべてで6000を選択しています。
ターンでは、戦略の選択ではなく、レイズのベットサイズについて考えてみようと思います。
PioSOLVERでは、アクションを固定したときに、前後のアクションがどのように影響をうけるかを計算してくれる「ノードロック」という機能があります。この機能を利用して、IPのレイズサイズを様々な値で固定し、期待値や相手の戦略の変化を見ていきます。
まず、UTG+1の期待値は以下のように変化しました。
$$
\begin{array}{|l|l|} \hline
戦略 & 期待値(UTG+1) \\ \hline
GTO戦略 & 2341 \\ \hline
レイズ10000固定戦略 & 2315 \\ \hline
レイズ21200(オールイン)固定戦略 & 2264 \\ \hline
\end{array}
$$
続いて、戦略の変化を確認しましょう。
GTO戦略(BBベット2000 -> UTG+1レイズ6000)

レイズ10000固定戦略(BBベット2000 -> UTG+1レイズ10000)

レイズ21200固定戦略(BBベット2000 -> UTG+1レイズ21200オールイン)

期待値の表から、レイズ6000 > レイズ10000 > オールインです。それぞれの戦略の中で、最も相手がプレイしづらくなるものはどれかを考えてみましょう。
まずUTG+1のGTO戦略に対するBBの戦略を見てみましょう。以下のようなことが言えます。
適度な頻度でレイズ、コール、フォールドを混ぜる必要があります。
ストレートやセットは100%の頻度でレイズを打っていますが、Kのツーペアなどはレイズとコールの混合戦略になっています。これらのハンドですべてレイズしてしまうと、バリュー過多になってしまいます。
すべてのフラッシュドローやストレートドローでレイズまたはコールをするわけではありません。QsTsなどの弱いフラッシュドローは100%フォールドです(このスポットは人間は特にコールまたはレイズ過多になると思います)。
続いて、UTG+1のレイズ10000に対するBBの戦略を見てみましょう。
フォールドしないすべてのハンドでレイズオールインを選択しています。
バリューでオールインするハンドはKヒット以上、ブラフはストレートドローと強いフラッシュドローで単純です。
BBがコール止めをすると、リバーでポットが24400、エフェクティブスタックが11200になります。相手のベットに対して基本的にオッズコールをせざるをえないので、メリットを最大化するためにターンでオールインするのが正解です。
最後に、UTG+1のレイズ21200(オールイン)に対するBBの戦略を見てみましょう。
基本的にKヒット以上でコールしますが、フラッシュドローなどにフォールドされ、バリューを取り逃がしています。
このように比較してみると、BBが一番プレイしづらいのはGTO戦略です。もちろん、ソルバーがレイズ6000を選択するのは上述したものだけではなく、もっと複雑です。ポットサイズやエフェクティブスタックなどを考慮し、適切なベットサイズを選択する(ポットコントロールを意識する)必要があります。
River
ポット: 16400
エフェクティブスタック: 15200
ボード: 8s7d5sKcQc
BB: チェック -> UTG+1: オールイン -> BB: フォールド
リバーはドローなどが完成しないQcが落ち、88は非常に強いハンドとなりました。BBのストレートは、ターンで考察した必要勝率を考えると、Kヒットやセットなどからコールをもらえる上、リバーでスペードが落ちた時の対応が難しいので、ターンで3betオールインをするのが普通です。よって、実質8のセットは最も強いといえます(ソルバーの計算結果でも、BBのストレートはターンでオールインでした)

当然88は100%の頻度でオールインです。BBのターンのコールレンジにはKヒット系がほとんどなので、UTG+1のバリューの下限はKQです。ブラフに関しては、BBにストレートが存在しない以上、ストレートを抑えているブロッカー(9,6,4のカード)はあまり関係なく、JT, A4, 44など、単純に弱いハンドから選ばれている印象です。
リバーのブラフとブラフキャッチについては、別のハンドで面白いシーンがあったので後日また取り上げられたらなと思います!
まとめ
今回、ハンド解説を通じて、以下のようなポーカーの基礎的な考え方をまとめました。ポーカーを始めたての方はぜひ参考にしていただけるとうれしいです!
Flopにおけるベット戦略
自分と相手のレンジ、ボードを考慮して適切なベットレンジとサイズを選定します。
ポットコントロールを意識したベットサイズ
相手からのレイズ、リバーでのオールイン、必要勝率などを考慮して適切なベットサイズを選択します。