← 返回博客
作者:BluffKing · · 更新
开局表与 GTO 求解
区分翻前基线查表、普通翻后启发式与逐局面 CFR 求解,说明固定模型输入、采样误差与可剥削度如何限制结果。
查表不等于求解当前局面
BluffKing 的翻前范围曾用 gto_chart 命名。当前方法字段是 cfr_equity_realization,界面称“翻前基线范围”:请求时读取预先生成的数据,不为你输入的局面重新求解。
翻前数据怎样生成
数据来自简化的 6 人、100bb 翻前树上的折扣遗憾 CFR 变体,终局使用全下胜率与胜率实现模型。范围数据包含混合继续频率;其来源标识是“CFR 近似均衡 · 胜率实现模型”,不是完整德州扑克的最优策略。
输入包含固定下注尺度、对手反应频率与胜率实现系数,另有强牌包含和弱牌排除规则。胜率矩阵每格使用 8,000 次蒙特卡洛试验,并采用代表性花色组合;改动模型就可能改变范围。生成参数记录于 engine/data/preflop_v2.json 的 _source。
普通翻后建议与真正求解也要分开
普通局面分析器在翻后使用 equity_heuristic:胜率与规则启发式,不是 CFR 求解。单独的翻后求解器才对指定双方范围与下注尺度运行 Discounted-CFR,并返回 cfr_equilibrium、迭代数和实测可剥削度。
它保留指定树中的牌组合,但下注选项仍由输入限定,有限迭代也不保证精确均衡。因此界面使用“翻后 CFR 近似均衡”;结果只适用于所输入的范围、尺度与精度。该入口还需要服务端启用和源码要约配置,不能把代码存在等同于每个部署都开放。
读分析结果时看什么
- 方法:预生成基线、胜率启发式,还是当前局面的 CFR 求解?
- 模型:输入了哪些范围、筹码深度和下注尺度?
- 误差:胜率采样量、迭代上限和实测可剥削度是什么?
实现入口为 engine/src/solver/、server/src/handlers/solver.rs 与 gto-solver/src/lib.rs。分析结果用于复盘,不能保证获胜。