GTO 基础

扑克 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 是存活组合的覆盖比例。

所捕获 BB 根节点 CSV 中的 KQs 类别频率
所捕获 BB 根节点 CSV 中的 KQs 类别频率
根节点行动KQs 频率
过牌0.3978
下注 3 bb0.6022
下注 97 bb0

下面的原生策略导出图由应用为该 BB 根节点生成。它不是桌面截图,也不是上述数值的来源。

所捕获 BB 根节点的原生 GUI 策略导出图
所捕获 BB 根节点的原生 GUI 策略导出图

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

所捕获 BB 根节点的完整英文 Direct UI 截图
所捕获 BB 根节点的完整英文 Direct UI 截图

这个示例说明什么,以及不说明什么

该设置配置了 50% 底池下注;在这个根节点为 2.75 bb,而原生的 1 bb 四舍五入使实际行动成为 BET 3.000000。根节点还保留 CHECK 与 BET 97.000000,因此不是两行动博弈树。第三个行动在 CSV 中四舍五入的频率不得改写成“从不下注”。

该记录使用 CPU、customExact、FP32、maxIteration 100、配置的 0.5% 底池精度目标及同构。它的翻牌后博弈树是本地不扣除抽水的模型,并不主张复现原 GG 抽水模型;它没有最终迭代次数或实测可被利用程度。观察到的完成时间上限为 98.509 秒,不是精确的求解时间。因此,本例并不声称已达到配置的目标、输出是完整均衡,或这条行动线路适用于其他牌局。

有用的学习流程

  1. 先陈述牌局:位置、筹码、范围、公共牌、抽水处理和可选行动。
  2. 再识别节点和统计量。频率、各行动的 EV、摊牌权益与范围加权 EV 回答不同问题。
  3. 不要因为四舍五入后的显示为零就删除很小的行动。
  4. 比较前一次只改变一个假设;新公共牌或范围就是新模型,而不是本次结果的延续。
  5. 求解器输出只用于学习与练习,不能用于真实牌局的实时辅助。

输入与结果

这项研究示例不是策略处方。其输入为 NLHE 6 人桌:BB 在位置外、CO 在位置内,双方起始均为 100 bb;CO 开到 2.5 bb,BB 跟注,翻牌为 Qs Th 2d;根节点底池为 5.5 bb,剩余筹码为 97.5 bb。

下载

求解设置 使用的值
求解器 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 比较。版本、硬件和停止条件都可能影响精确复现。

查看翻前范围