ノーリミットホールデムは非常に複雑なゲームです。このゲームを本当の意味で正しく表すには、宇宙に存在する原子よりも多くのノードが必要です。そのため、世界中のプレイヤーは、ポーカーを解析するのに必要な計算量を最小限にするため、よりシンプルなゲームモデルを作ろうとしてきました。こういったゲームをシンプルにする行為を「抽象化」と呼んでいます。
抽象化とは
「抽象化」とは、ポーカーをシンプルにする方法です。ポーカーは非常に複雑なため、解析するには計算量を減らす必要があります。その方法はいくつか存在します。
- サブセットを使ってフロップを代替する (プリフロップソルバー)
- 似たような性質をもつハンドを分類する(プリフロップソルバー)
- ベットサイズの選択肢を絞る(プリフロップとポストフロップソルバー)
- ベットサイズに上限を設定する(プリフロップとポストフロップソルバー)
サブセットとは
ホールデムでは22100通りのフロップがあり、そのうち1755通りは異なる戦略を持っています。これはあまりに多いため、プログラマーやポーカーのプロは、ポーカーを解析しやすくするためにこの数を減らそうとしてきました。「サブセット」とは、戦略的に選ばれたフロップの分類のことで、全ての表現可能なフロップを表しています。
プリフロップはポストフロップと分けて考えることはできません。プリフロップの戦略は、ポストフロップにおけるEVを最大化しようとした結果として生まれます。プリフロップのレンジは、それぞれのハンドが後のストリートで最もEVがプラスになるように作られています。
1755種類の戦略的に異なるフロップがあるため、プリフロップに取れる選択肢はポストフロップよりも指数関数的に大きくなります。フロップのサブセットはプリフロップの解析を簡単にする目的で作られましたが、多種多様なフロップを表すことで、ポストフロップのEVも正確に計算できるように作られています。各フロップには影響度を表した数値が割り当てられています。セット内のすべてのフロップにわたって、各コンボのその平均EVを取ることで、プリフロップのEVを近い値にすることができています。
最初の試みはWill Tiptonによるもので、彼は論理と頻度の制約に基づく数学を使いました。その後、Piosolverによって大きな流れが起きました。PioSolverは実際に1755種類のフロップを全て解析し、サブセットと比較しました。GTO Wizardで使用されているサブセットはPioSolverのものを利用しています。このリンクをクリックすると、サブセットに含まれているフロップを全て見ることができます。
GTO Wizardでのサブセットの使い方
GTO Wizardには1755種類全てのフロップのソリューションがありますが、人気のサブセットを4種類(25、49、85、184)提供しています。
サブセットの主な使い方を2つ紹介します。
☝
ソリューションの練習を簡単にする
GTO WizardTrainerでは、ボードフィルターを適用するオプションがあります。(Settings>Board)。シチュエーションが少なくなることで、勉強しやすくなり、パターンを覚えやすくなります。
✌
レポートを可視化する
GTO Wizardには、フロップの全てのデータを表した集合分析レポートが用意されています。しかし、もっとシンプルなレポートを求めているユーザーもいるため、サブセットを使ってフロップの数を絞って表示することもできるようにしました。これは、様々なスポットを素早く確認するのに便利です。なお、サブセットを適用すると、ベットサイズのテクスチャが荒くなります。
ベットサイズの上限
ノーリミットホールデムがここまで複雑なのはどのような状況でもベットサイズの上限がないからです。
リミットホールデムでのヘッズアップはすでに完全に解析されています。つまり絶対に負けない完璧な戦略が計算されたということです。しかし、ノーリミットホールデムは、ベットサイズの上限がないので、膨大な数のノードが追加されています。これは今の技術では解析し切ることは不可能です。
ソルバーは、このベットサイズの数を人間が制限することで使えるようになります。ベットサイズの選択肢を入力すると、アルゴリズムが選択肢に対する理論的に正しいソリューションを導きます。
100BBのヘッズアップキャッシュゲームにおけるSBのCベットはGTO Wizardでは33%、67%、100%、150%、オールインの選択肢を採用しています。
実際の100BBのヘッズアップではSBのCベットは25%、40%、 41%、 41.1%など1BB以上の無数のベットサイズがあります。
ベットの上限回数
ベットの選択肢をさらにシンプルにするために、プレイヤーの1回のストリートあたりのベットまたはレイズの回数を制限します。例えば、GTO Wizardのシミュレーションでは、ベットまたはレイズの上限を5回とし、最後の1回はオールインに変換されます。
上の例は200BBのSB対BBのSRPです。フロップで50%の4ベットに直面した場合、SBはフォールドするか、コールするか、オールインするしかありません。オールインでないサイズに5ベットすることはできません。
この制限は小さいことのように思えますが、計算量を大幅に短縮しています。
バケツ
「バケツ」とは似たようなハンドをまとめたもののことです。例えば、ボードがA♦3♣9♣の時A♠K♥ は「バックドアフラッシュドローのないキッカーが強いトップペア」と分類されたりします。このカテゴリーに分類されたハンドはすべて1つのハンドとみなされ、同じようにプレイされます。これによって計算量が大幅に少なくなります。正しく分類した場合、プリフロップでほぼ完璧な結果を出すことがテストによって判明しています。
ヘッズアップ以外のプリフロップでソルバーは、計算量を短縮するために「バケツ」を使用します(ポストフロップでは使用しません)。バケツの数は数十から数万まであります。
クラスター分析のアルゴリズムは、「バケツ」をより効率よく使うために開発されました。詳しくは、アルバータ大学の論文を基にしたHRCの記事をご覧ください。
サブゲーム
サブゲームとは、ポーカーを小さく表現したもののことを指します。サブゲームには、ゲームの複雑さを少なくするための抽象化がいくつか含まれています。ソルバーはポーカーを解析しているのではなく、ポーカーのミニチュア版であるサブゲームを解析しているのです。
ポーカーで「サブゲーム」という言葉を使う人は、実際のポーカーと、ソルバーで使う抽象化されたポーカーを区別しているのでしょう。
まとめ
この記事で最も伝えたいことは、ノーリミットホールデムは完全な解析には程遠いということです。私たちは一定の制限の上でのポーカーというゲームに対して非常に正確な解析をしました。それはGTO WizardのStudyモードで確認することができます。ソリューションは戦略の流行を研究したり、概念を理解するには優れたツールですが、実践でそのまま再現するのに完璧な戦略ではないです。
ゲーム中に予想外のラインやベットサイズを使われた時、相手は単にあなたとは違う前提条件でポーカーをプレイしているだけかもしれません。