扑克 GTO 是什么?用实例理解基本概念
介绍 GTO、范围和混合策略,并通过一个假设明确的求解器示例说明其适用边界。
目录
GTO 是 game theory optimal(博弈论最优)的缩写。在扑克里,它指为某个明确游戏模型设计、使对手难以从针对性利用中获得大量利润的策略。它并不保证任何一张表、一手牌或一个求解器画面在所有场合都是最佳答案。
模型决定结论:位置、有效筹码、范围、抽水(rake)、公共牌、下注尺度和停止规则都会改变答案。在不完全信息博弈中,反事实遗憾最小化等方法只是在所述模型内搜索近似均衡;它们不会把每个真实无限注德州局面变成“已解”。Zinkevich 等(2007) 与 Bowling 等(2015) 提供背景;其中,Bowling 等人所说的“已解”,仅针对一个指定的单挑限注模型,而非所有无限注德州。
用范围思考,而不是只看一手牌
范围是玩家可能持有的手牌及其权重集合。策略会混合行动,是因为不同的行动都需要由构成恰当的范围支撑;这不等于凭感觉轮流行动。实务上应先读假设,再把每个频率理解为该模型、该节点的指示。
翻前范围的产品视图可见范围。托管产品的 API 接口见 GTO 扑克求解器 API 指南。术语表解释 EV、范围和同构等术语,避免把本文写成 API 文档。
一个参数明确的根节点实例
本例使用一次真实的 Direct CPU 记录和 GG200NL 100 bb 范围:6 人桌现金局,CO 开到 2.5 bb,BB 跟注,翻牌为 Qs Th 2d。根节点底池为 5.5 bb,剩余筹码为 97.5 bb;BB 在位置外,CO 在位置内。应用的设置保留了来源范围中手牌类别的混合权重;它是示例输入,不是对唯一正确翻前范围或完整 GG 抽水均衡的主张。
对 BB 根节点的 KQs 手牌类别,下图采用原生 CSV 的类别均值:频率是剩余可用 KQs 组合的算术平均;各行动的期望值(EV)是相应的类别均值(bb)。这些数值既不是全范围加权结果,也不是每个组合的 EV 或原始翻前 KQs 权重,更不是摊牌权益(equity)。输入的 KQs 权重为 0.913,而 CSV 的 InRange 0.7500 是存活组合的覆盖比例。
KQs 频率
来自所捕获 BB 根节点 CSV 的 KQs 行动频率比较。; 根节点行动; 类别频率
各行动的期望值(EV) 3.8028 bb
各行动的期望值(EV) 3.7597 bb
各行动的期望值(EV) -0.7566 bb
CSV 显示将该行动四舍五入为 0.00%;这不表示它的概率严格为零。
| 根节点行动 | KQs 频率 |
|---|---|
| 过牌 | 0.3978 |
| 下注 3 bb | 0.6022 |
| 下注 97 bb | 0 |
下面的原生策略导出图由应用为该 BB 根节点生成。它不是桌面截图,也不是上述数值的来源。

完整英文 Direct UI 截图是同一份与 CSV 绑定记录的独立展示证据,只用来展示结果界面,不能从像素抄录指标。

这个示例说明什么,以及不说明什么
该设置配置了 50% 底池下注;在这个根节点为 2.75 bb,而原生的 1 bb 四舍五入使实际行动成为 BET 3.000000。根节点还保留 CHECK 与 BET 97.000000,因此不是两行动博弈树。第三个行动在 CSV 中四舍五入的频率不得改写成“从不下注”。
该记录使用 CPU、customExact、FP32、maxIteration 100、配置的 0.5% 底池精度目标及同构。它的翻牌后博弈树是本地不扣除抽水的模型,并不主张复现原 GG 抽水模型;它没有最终迭代次数或实测可被利用程度。观察到的完成时间上限为 98.509 秒,不是精确的求解时间。因此,本例并不声称已达到配置的目标、输出是完整均衡,或这条行动线路适用于其他牌局。
有用的学习流程
- 先陈述牌局:位置、筹码、范围、公共牌、抽水处理和可选行动。
- 再识别节点和统计量。频率、各行动的 EV、摊牌权益与范围加权 EV 回答不同问题。
- 不要因为四舍五入后的显示为零就删除很小的行动。
- 比较前一次只改变一个假设;新公共牌或范围就是新模型,而不是本次结果的延续。
- 求解器输出只用于学习与练习,不能用于真实牌局的实时辅助。
输入与结果
这项研究示例不是策略处方。其输入为 NLHE 6 人桌:BB 在位置外、CO 在位置内,双方起始均为 100 bb;CO 开到 2.5 bb,BB 跟注,翻牌为 Qs Th 2d;根节点底池为 5.5 bb,剩余筹码为 97.5 bb。
下载
- 下载根节点 CSV 结果 — 8,495 字节;98 个 BB 手牌类别的根节点频率(0–1 小数)和各行动 EV(bb),不是完整博弈树或每个组合的结果。
- 下载完整保存的输入 JSON — 3,946 字节;本例使用的精确保存设置。
- 下载 MelaGTO Direct v1.1 (10)。
| 求解设置 | 使用的值 |
|---|---|
| 求解器 | CPU、FP32、customExact |
| 下注尺度 | 翻牌、转牌和河牌双方均为 50% 底池;原生 1 bb 四舍五入使翻牌半底池行动为 3 bb |
| 博弈树 | raiseLimit 1;allinThreshold 0.67;启用同构 |
| 停止条件 | maxIteration 100;0.5% 底池精度目标;自动线程数(-1) |
目标是配置,不是已达到收敛的证明。记录未提供最终迭代次数或实测可被利用程度;根节点仍有 CHECK、BET 3.000000、BET 97.000000,CSV 把第三个行动频率显示为 0.0000,因此不代表该行动不可能。
使用的范围
以下是保存输入中完整的混合权重范围,格式适用于 Direct 的 Bulk edit 字段。手牌类别和权重保留到三位小数;未列出的类别权重为 0。
BB 位置外(98 个类别)
22:1.000, 33:1.000, 44:1.000, 55:1.000, 66:0.900, 77:0.965, 88:0.956, 99:0.920, 32s:0.431, 42s:1.000, 43s:0.804, 52s:1.000, 53s:0.873, 54s:0.727, 63s:1.000, 64s:0.711, 65o:0.060, 65s:0.706, 74s:1.000, 75s:0.871, 76o:0.176, 76s:0.665, 84s:0.309, 85s:0.949, 86s:0.916, 87o:0.163, 87s:0.746, 95s:0.387, 96s:0.927, 97s:0.928, 98o:0.271, 98s:0.823, A2s:0.711, A3s:0.735, A4o:0.289, A4s:0.754, A5o:0.815, A5s:0.540, A6s:1.000, A7o:0.849, A7s:1.000, A8o:0.928, A8s:1.000, A9o:0.996, A9s:0.998, AJo:0.937, AJs:0.785, AQo:0.912, ATo:0.951, ATs:0.883, J3s:0.828, J4s:0.885, J5s:0.936, J6s:0.875, J7s:0.731, J8s:0.747, J9o:0.482, J9s:0.334, JJ:0.224, JTo:1.000, JTs:0.384, K2s:0.912, K3s:0.652, K4s:0.747, K5s:0.882, K6o:0.083, K6s:0.921, K7s:0.856, K8o:0.101, K8s:0.995, K9o:0.980, K9s:0.814, KJo:0.779, KJs:0.527, KQo:0.700, KQs:0.913, KTo:0.856, KTs:0.772, Q2s:0.815, Q3s:0.818, Q4s:0.805, Q5s:0.701, Q6s:0.622, Q7s:0.997, Q8s:0.611, Q9o:0.452, Q9s:0.499, QJo:0.906, QJs:0.145, QTo:0.926, QTs:0.577, T6s:0.829, T7s:0.915, T8o:0.057, T8s:0.910, T9o:0.839, T9s:0.265, TT:0.808
CO 位置内(73 个类别)
22:0.417, 33:0.407, 44:1.000, 55:1.000, 66:1.000, 77:1.000, 88:1.000, 99:1.000, 54s:0.302, 65s:0.401, 76s:0.357, 87s:0.566, 97s:0.623, 98s:1.000, A2s:1.000, A3s:1.000, A4s:1.000, A5o:0.926, A5s:1.000, A6s:1.000, A7o:0.464, A7s:1.000, A8o:1.000, A8s:1.000, A9o:1.000, A9s:1.000, AA:1.000, AJo:1.000, AJs:1.000, AKo:1.000, AKs:1.000, AQo:1.000, AQs:1.000, ATo:1.000, ATs:1.000, J7s:1.000, J8s:1.000, J9o:0.305, J9s:1.000, JJ:1.000, JTo:1.000, JTs:1.000, K3s:1.000, K4s:1.000, K5s:1.000, K6s:1.000, K7s:1.000, K8s:1.000, K9o:0.677, K9s:1.000, KJo:1.000, KJs:1.000, KK:1.000, KQo:1.000, KQs:1.000, KTo:1.000, KTs:1.000, Q5s:1.000, Q6s:1.000, Q7s:1.000, Q8s:1.000, Q9o:0.213, Q9s:1.000, QJo:1.000, QJs:1.000, QQ:1.000, QTo:1.000, QTs:1.000, T7s:0.670, T8s:1.000, T9o:0.160, T9s:1.000, TT:1.000
以 JSON 作为完整参数参考:在 Direct 中用上述数值创建 Custom spot,将完整范围粘贴到 Bulk edit,选择 CPU 求解,再将根节点输出与下载的 CSV 比较。版本、硬件和停止条件都可能影响精确复现。