4

申し訳ありませんが、私はこのプロジェクトを始めたばかりで、アイデアやコードがありません。プログラミングよりも理論的な質問をしています。

すべての Google 検索で同じ応答が得られるようで、この質問に対する答えを見つけるのは非常に困難です。

モンテカルロ/網羅的列挙法を使用せずにテキサスホールデムポーカーの勝率を計算する方法はありますか? すべてのカードが表向きで、デッキ内のすべてのカードがわかっていると仮定します。

他のフォーラムでのすべての応答は、「ポーカーストーブを使用する」またはそれに似たものであるように思われます。コードを書くための理論を探しています。

ありがとう。

4

2 に答える 2

0

答えはノーだ。

ポーカーのエクイティを計算するために実行できる閉じた形式の計算はありません。組み合わせ論を使用すると、多くの部分問題を特定して解決できるため、計算が高速化されます。

たとえば、5 つのカード ハンドすべてを検討している場合、52 のチョイス 5 = 2,598,960 の異なるハンドがあります。しかし、スーツが同等であることを知っており、組み合わせ手法 (分析的または計算的) を使用すると、すべてのハンドのスペースを 134,459 クラスに減らすことができます。各クラスは、同等のクラスの異なるハンドの数に応じて重み付けされます。

また、アプリケーションに合わせた網羅的評価のさまざまな使用方法があります。評価のサブセットを繰り返し実行する必要がある場合は、特定のニーズに合わせてキャッシュまたは事前計算されたルックアップ テーブルを使用できます。

于 2012-06-02T02:15:53.217 に答える
0

モンテカルロ/網羅的列挙法を使用せずにテキサスホールデムポーカーの勝率を計算する方法はありますか?

特定の場合には可能です...

2 人のプレーヤーのヘッズアップ プリ フロップ マッチアップには、完璧なルックアップ テーブル プリ フロップを使用できます。「典型的な」169 対 169 の概算では十分ではないことに注意してください (たとえば、Jh Th 対 9h 8h は実際には「JTs 対 98s」ではありません)。つまり、それはかなり大まかな概算になります)。

それに加えて、大量のメモリがあり、巨大なキャッシュ ミスに耐えることができる場合、技術的に巨大なルックアップ テーブルを事前に計算し (サーバー側で言う)、他のケース (たとえば、3 人のプレイヤーがオールインするすべてのマッチアップ) のルックアップを行うことができます。プリ フロップ)、しかし、実際には多くのメモリが必要です :)

フロップとターンでの「フル エニュメレーション」は問題ではないことに注意してください。フロップではあと 2 枚のカードしかないため、通常は C(45,2) しかありません [フロップで 2 人のプレーヤーがオールインし、2*ホールカード 2 枚 + コミュニティ カード 3 枚 -- したがって 990 の可能性が残る] または C(43,2) [フロップで 3 人のプレイヤーがオールイン、ホールカード 3*2 + コミュニティ カード 3 枚がわかる]。

したがって、実際の評価者は 1 つではなく複数の方法を使用します。例えば:

  • プリ フロップでオールインする 2 人のプレイヤーのルックアップ テーブル (最速)
  • 小さいため(最大 990 の可能性) 、フロップまたはターンでオールインする任意の数のプレイヤーの完全な列挙型-- 非常に高速
  • モンテカルロまたは 3 人以上のプレーヤーのフル列挙型オールイン プリ フロップ -- 信じられないほど遅い

ここで興味深いことに、最も典型的なケースでは非常に速く結果が得られます。ほとんどの実際のオールインでは、3 人以上ではなく 2 人のプレイヤーが関与します。

したがって、「1 vs 1 プリ フロップ」のルックアップ テーブルを検索する、完全な C(45,2) または C(46,1) の完全な列挙型を実行します (どちらの場合も驚くほど高速です)。

時間がかかるのは、「3 人以上のプレイヤーがプリフロップでオールイン」の場合だけです。

于 2012-06-03T15:25:56.073 に答える