無料で使える簡易版ピオソルバー?「WASM Postflop」の使い方

2022年11月19日

テキサスホールデムで強くなるためには、ある程度のセオリーを覚えた後はひたすら実践と復習が必要になります。

淡々と打つだけではなく、解析ツールを使いスポットごとに学んでいくこと、上手い人からプレイラインを聞くことが上達の近道となるでしょう。

ですが問題は解析ツールを使う場合、有料が多く初心者や中級者にとって使い始めるのに時間がかかるかもしれません。

こちらではそんな人に向けて完全無料、ブラウザで動く解析ツールをご紹介します。

今回の記事は、管理人のカズナリではなく、Twitterフォロワーのnullさん(@null43481284)から寄稿いただいた内容を校正しての投稿となります。

良いものですので、スポットの解析をしたことのない場合はぜひ使ってみてください。

「WASM Postflop」とは?使い方・性能

知らない
「WASM Postflop」とはオープンソースで公開されている、無料で利用できるテキサスホールデムのソルバーです。

簡単にいえば状況を入力することによって、数学的に推奨されるアクションを教えてくれる計算機の役割ですね。

GTOWizardなどはポジションごとのレンジがあらかじめ固定されている前提ですが、こちらは自分のレンジ・相手のレンジを調整することが出来ます。

ですので詳しく解析することは出来るのですが、プリフロップのレンジは同梱されていないため、自分で入力する必要があります。

利用可能な環境は、Windows PCやMac OS Xからブラウザ(Chrome等)で下記にアクセスするだけでOKです。

4GBほどの空きメモリが必要になり、タブレットやスマホからも画面は表示されますが利用は難しいでしょう。

WASM Postflopを使ってみる

初期設定、解析を始めるやり方

パーセント
今回は、UTG(あなた) vs BTNのSRP(シングルレイズドポット)を解析してみます。

状況

・6Max
・開始ポット:8BB
2.5BB(r)/2.5BB(c)/3BB(blind,ante)
・エフェクティブスタック:28BB
・フロップのボード:「T♠5♠2

まずはUTGのオープンレンジを入力します。

この例では、初心者でも使いやすいヨコサワハンドレンジの緑を元にしています。

普段使用しているレンジ表で頻度でオープンとなっているハンドは、頻度のパーセントをWeightバーで調整して該当のレンジをクリックします。

次にBTNのコールレンジを入力します。3betになるレンジは空白にします。

この例では、ヨコサワハンドレンジの緑を元に3betレンジを適当に空白にしています。

頻度でコール/レイズ/フォールドとなっているレンジは、コール頻度のパーセントをWeightバーで調整して該当のレンジをクリックします。

フロップ以降のアクション設定

お互いの想定レンジの入力が終わると、左メニューから「Board」を選択してフロップ3枚のカードを選択します。

続いて同じく左メニューから「Tree Configuration」から現在のスタックや使うベットサイズ、コミットでオールインするPOT割合などを細かく設定していきます。

Starting pot

フロップ開始時のPot額を入力します。

Effective stack

エフェクティブスタック。相手と自分の少ない方のスタック額を入力します。小数は入力できないため、BB表記を元に入力する場合は10倍ほどの数字にしておくとよいでしょう。

OOP bet sizes/IP bet sizes (bet)

ソルバーに計算させたいBet額のパターンを、Potに対するパーセンテージ(例えば「33,50,100,1000」)で入力します。Bet額とパターン数は自由に設定可能ですが、パターン数が増えるとその分メモリを消費します。

OOP bet sizes/IP bet sizes (raise)

レイズ額のパターンを、Potに対するパーセンテージで入力します。Bet額と同様にパターン数は自由に設定可能ですが、パターン数が増えるとその分メモリを消費します。

※例では100%と入力しておりますが、大き過ぎると指摘があったので、単一設定であれば50%ほどにしておくと良いでしょう。

Add all-in if effective stack is less than **% of pot

エフェクティブスタックが「**%」のベット/レイズ額を下回ったらオールインを「追加」するオプションです。そのためこのオプションの数値を増やすとメモリ使用量や計算時間は増加します。

Force all-in if next opponent’s raise size is less than **% of pot

こちらは “Force” なので、相手の次のレイズ額が必ず「**%」以下となってしまうようなベット/レイズをしようとした場合、そのベット/レイズを取りやめてオールインを強制します。こちらの数値を増やすとメモリ使用量や計算時間は減少します。10%~20%に設定するのがオススメです。

Adjust last two bet sizes

現状どこにも説明が書かれていないオプションですが、有効にすると相手のオールインの1つ前のベット額が少し賢くなります。例えばOOPのベットサイズが50%一択、IPのレイズサイズが40%一択、ポットは100、エフェクティブスタックも100としましょう。このとき、エフェクティブスタックを無視して普通に進行するとOOPがベット50、IPがレイズ130をすることになりますが、実際はエフェクティブスタックが100なので、IPは25%レイズに対応するオールイン100しか行えません。そこでこのオプションを有効にすると、OOPとIPの割引率がほぼ同じになるように、OOPは41%ベットを行うようになります。このときIPのオールインは32.4%レイズとなり、41/50と32.4/40がどちらも近い値になっていることが分かります。

以上の設定がおわったら「Run Solver」を選択します。

次も設定になりますが、ポーカーのことではなく、この項目では計算をする際のPCスペックや速さ、使うメモリなどの設定になります。

Number of threads

CPUのスレッド数と同じ数を入力します。Windowsの場合、タスクマネージャー>パフォーマンス>CPUの論理プロセッサ数から確認出来ます。同時に利用しているアプリケーションの実行を圧迫したくない場合は加減してください。

Build tree

押すとさらに設定項目が出てきます。

No compression: requires **GB of RAM(fast)

メモリ圧縮を使わない。メモリ容量が必要な代わりに計算が早く終わります。

Use compression: requires **GB of RAM

メモリ圧縮を使う。メモリが節約可能な代わりに計算はちょっと遅くなります。

Target exploitability

目標とするエクスプロイタビリティ。ナッシュ均衡解の計算精度を指定します。小さいパーセンテージほど精度は高くなりますが計算は遅くなります。傾向を見たいだけの場合は1~2%にしても問題ないと思います。

Maximum number of iterations

計算の実行回数。「Target exploitability」の目標精度に達した場合、あるいは計算回数がこの回数を超えた場合には計算を終了します。

Run solver

押すと解析開始。「Solver finished」と表示されるまで数分待ちます。

「requires ** MB of RAM」に記載されている使用予定のメモリ量が大きすぎてソルバーが実行できない場合は、Tree ConfigurationのBet額・Raise額のパターンを減らしたり、Add all-in if~やForce all-in if~のパーセンテージを設定してからもう一度Build treeを押してみてください。

解析結果から様々なパターンが閲覧可能

Solver finishedと表示され、左メニューの「Result」で、OOP側のアクションの選択肢とレンジ表が表示されています。

プリフロップで入力したレンジ表とTree Configurationで入力したBet額パターンから、「T♠ 5♠ 2♦」というフロップでソルバーならどのようなアクションを選択するかの計算結果が表示されています。

左のレンジ表を見ると、TのトップヒットやT~5間のストレートブロッカーを持っている場合に強くBetする傾向が見て取れます。

右の表には、レンジ上のハンド一覧とEQ(Equity, レンジ全体での勝率)、EV(Expected Value, GTO解での期待値)と、アクションの選択頻度が表示されています。

たとえば「A♠ A」であれば、EQ 86.0%、EV 131.4、Bet40(ハーフポット)を54.5%の頻度で選択という意味です。

Weightの項目は後ほど説明します。

右下の「Show action EV」にチェックを入れると、アクションの選択頻度からアクションのEVに表示が切り替わります。

ハンド単体ではなく、フォールドエクティやレンジ全体でのバランス込みなので、EVが変わらないケースでも頻度が変わる等も面白いところです。

Bet額パターンを増やすと表からはみ出すので、右にスライドします。

さて、あなたのハンドが「K♠J♠」として、マウスポインタをKJsに持っていくと、KJsだけの表が表示されます。

頻度95.4%でBet40なので、Bet40を選択してみましょう。

今度はBTN側のアクションを選択します。

何を持っているかはわかりませんが、レンジ表を見るとCallする割合が多そうなのでCallしてみましょう。

ターンカードを選択します。ドロー滑りの「Q♣」を選択します。

OOP側のターンのアクションです。フラッシュドローをまだ諦めずに87.0%の頻度でハーフBetを選択するようです。

IP側はまだまだCallする割合が多いようですね。Callを選択します。


リバーカードを選択します。

フラッシュドロー滑りのラグっぽい「2♣」を選択します。

「K♠J♠」は頻度99.8%のあきらめチェックです。

GTOの計算結果でも「フラッシュドロー滑りはブラフに向かない」という定石どおりになるようです。

Weightに注目してみましょう。

「K♠J♠」のWeightが83.0%となっています。この数字は、フロップで選択したアクション頻度95.4%、ターンの87.0%を掛け合わせた数字です。

つまり、GTOがこのアクションラインを取る割合を示しています。

仮にハンドが「KJ」で同じアクションラインを辿って来た場合、リバーのアクションは96.7%の頻度でオールインするのがGTO解のように見えます。

しかし、Weightが6.0%と低く、フロップやターンで選択したアクションがGTOから外れていることを示しています。

OOP側が諦めのチェックを選択した後のIP側のアクションです。

トリップス・セット、ショウダウンバリューが無いハンドで強くBetする一方、ミドルペアなどのショウダウンバリューがあるハンドはチェックになっています。

まとめ、3BETPOTや注意点

注意
Resultはブラウザを消すと消えますが、レンジやツリー設定はブラウザの「IndexedDB」と呼ばれるものに保存されます。

Safariでは7日間経過でデータが削除されてしまうようですが、Chrome/Firefoxではブラウザのデータ使用量が不足しない限りはデータは削除されません。

自分がよくプレイする環境でだいたい同じようなレンジで計算するのであれば項目ごとに保存して、そこからLoadして選択することで時間短縮できます。

今回は説明しませんでしたが、3bet potの場合はプリフロレンジにリレイズのレンジ・リレイズされた場合のコールレンジを入力し、スタートポットの額も3bet potっぽい額にします。

またUTGvsBBの場合など、OOPのレンジ1にBBのコールレンジ、IPにUTGのオープンレンジを入力する逆の形になり、要領はそのほかのポジションでも同じです。

素晴らしいツールを作ってくださった「ばいなり」さんに感謝いたします。

Resultをセーブ/エクスポートできるようになると嬉しいなって…

以上、nullさん(@null43481284)の投稿でした、実際に僕も解説に沿って使ってみて、無料で何度でも使えるのは非常にありがたいです。

有料ツールは難しいと考えている場合は、ぜひWASM Postflopを試しに使ってみてください。

WASM Postflopを使ってみる

※追記
Windowsユーザーの方であればデスクトップアプリ版のDesktop Postflopも公開していますので、こちらも使ってみていただけると嬉しいです(計算速度がより高速でメモリ使用量の4GB制限もありません)。

製作者様よりコメントをいただいたので、それを元に記事の修正や追記を行っています。今後もツールを使いこなせるようなマニュアル、使用方法など分かりやすくお伝えしていきますので、疑問点などありましたらコメントやTwitterなどで管理人のカズナリ(@kazunari_poker)までご連絡ください。