我们小组在Telegram中宣布公告

官方联系

       

MTT扑克机器人:算法与诈唬的舞蹈

当我告诉别人这件事时,我猜他们脑海里会浮现出一些闪光的电影场景——烟雾缭绕的房间、昏暗的灯光,一个戴着兜帽的人在桌子下藏着电脑数牌的场景。而现实则是在阳光照耀的房间里的办公桌后面,这里是泰国,我正在完善那些会让普通赌场顾客头疼的算法。我称之为我的“与概率的数字探戈”。

这种舞蹈在 MTT 扑克——即多桌锦标赛中最为复杂。这种游戏是一种独特的野兽,上一分钟你是筹码堆的王者,下一分钟你可能会紧紧抓住那比你的早晨浓缩咖啡还要少的筹码生存下来。它是一场生存、耐心和计算过的进攻的游戏——听起来很诗意吧?直到你开始编程一个机器人来掌握它。

MTT:疯狂与美丽

让我们先搞清楚:所有的德州扑克游戏基本上是类似的,从两张底牌到五张公共牌,试图智胜桌上的每一个人;但 MTT 则完全在另一种频率上运作。它们更像是一场马拉松,而不是短跑。成百上千的玩家都从相同的筹码堆开始,梦想着那些最诱人的头奖。游戏结构是不容谈判的:盲注不断上升,你被迫参与游戏。你不能只是坐等口袋 AA,然后期望获得最好结果。

现在,把这一切混乱转换成一段软件代码——那才是真正的挑战。MTT 扑克机器人全是关于计算概率,但它也需要掌握时机,理解桌面动态,知道什么时候进攻,什么时候放弃。当然,后者还涉及一些诈唬的元素。机器人能诈唬吗?你打赌它可以。只是不要指望它在执行诈唬时会出汗。

MTT 机器人构建:数学与心理战的结合

就像你可能会被要求下棋,但他们总是会改变棋盘。有时,用水气球扔对手比任何骑士都更强。这就是制作 MTT 机器人的感觉。扑克的数学、概率、博弈论——所有那些美丽的方程,我在莫斯科国立大学学习并在麻省理工学院完善——它们只是一个起点。

我的机器人将博弈论最优策略与更人性化的东西结合在一起:所谓的利用性玩法。在 GTO(博弈论最优)中,人们寻找一种策略,无论对手如何玩,都不会被利用。这就像说一种没人完全理解但又无法反驳的语言。它干净、优雅,说实话,有点冷酷。

但 MTT 并不是一场纯粹的 GTO 游戏。它们是流动的,随着盲注的增加和玩家人数的减少而变化。这就是利用性玩法发挥作用的地方——你发现对手下注中的弱点和模式,然后利用它们。比如,当你注意到桌子对面那个人每当他觉得没人注意时都会加注。你戳穿了他的诈唬,瞬间他像一只在满屋摇椅中的猫一样紧张。

实践:为竞赛准备你的机器人

好了,那么如何设置一个既能在筹码丛林中生存又能应对坏运气的机器人呢?让我们来看看细节。

  1. 数据库与数据分析:
    1. 一个成功的 MTT 机器人从一个手牌历史数据库开始:你为它提供数千甚至数百万的手牌,让它分析模式。玩家多经常用某种牌加注?他们 3-bet 时通常有什么范围的牌?这是你的机器人必须弄清楚的东西,才能做出明智的决定。
    2. 一个更重要的分析是理解位置游戏。通过这个游戏,机器人学会了玩家实际上对大盲注的加注折牌太多,因此它调整了自己的进攻,目的是从后位偷更多盲注,这在锦标赛中当盲注与筹码堆大小相比较大时非常重要。
  2. 翻牌前策略库:
    1. 可以想象 MTT 机器人的翻牌前策略是构建所有其他东西的坚实基础。在大多数情况下,这些会被编程成按位置划分的范围库:早位、中位、后位、小盲和大盲。
    2. 假设你的机器人在后位,遇到小盲的跟注,它的库可以包括用边缘手牌加注 50% 的时间——例如,9♠ 8♠,以利用小盲玩家的被动行为。这只是对翻牌前代码的一个微小调整,但在关键时刻对机器人会产生很大的影响。
  3. ICM 计算(独立筹码模型):
    1. 在锦标赛后期,筹码堆大小比任何其他因素都重要。这就是 ICM 发挥作用的地方——它计算每个筹码堆相对于奖金结构的权益。在此,机器人需要理解相对于锦标赛奖金结构,每个筹码的价值。
    2. 一个简单的例子是,机器人在按钮位置上有口袋 7,剩下 12 个大盲注,它需要决定是全押还是弃牌。ICM 计算结果表明,相较于弃牌,推全押的预期价值稍微高一点,考虑到奖金结构和对手的可能范围。这类计算使得机器人能够做出最优的长期盈利选择。

诈唬与半诈唬:编程来欺骗

诈唬是让扑克超越牌面的一种魔力;它是一场读心的心理战——你必须进入对方的内心。那么,如果你把一台机器放进这场心理战中会发生什么呢?构建 MTT 机器人时,你无法避免问自己这个问题:机器能诈唬吗?

短答案是:是的,但不完全是你想象的那样。也许它手里是一副弱听牌,比如彩虹牌面的后门同花听牌。它知道在这种情况下,尽管牌不强,但一注可能会让持有高牌的对手弃牌。这就是一种半诈唬,它用一副可以在后几轮改善的牌下注,但如果对手弃牌,它可能立即赢得底池。具体来说,对于所有可能的对手反应,机器人策略计算出 check、bet 和 raise 的概率。如果计算出的弃牌权益大于 check 值,那么是时候让机器人下注了。无情有效,却毫无情感。

真正的挑战:生存于方差之中

但我们也别过于浪漫:为 MTT 构建机器人的过程中,方差是其暗面。世界上最好的玩家,无论是人类还是机器,都可能因为运气太差而连续输掉数百手牌。在锦标赛中,当你的整个筹码堆可能在一手牌中消失时,坏运气就像一记重拳打在你肚子上。

你花了几个月的时间打造一个完美的机器人,扩展它的范围,选择恰当的时机进攻,然后屏幕对面的某个人在河牌上抓到了一张奇迹牌,结果是——你的机器人出局了。这令人沮丧、令人谦卑,同时也有些奇妙。

为了减轻这一点,我编写了一个“防倾斜”功能。

这与一个因坏运气而心烦意乱的玩家完全相反,它会自动调整自己的玩法,并根据更新后的筹码堆大小和锦标赛剩余时间重新计算。如果机器人的筹码堆例如降到 10 个大盲以下,它会切换到推或弃策略,使用包括同花 A、对子和强力 Broadway 牌的预定义范围全押。这是一种当筹码不足时的应急方案,使机器人变得极具攻击性。

超越数字:MTT 扑克机器人的未来

你可能会问:如果像我的这种机器人不断改进,游戏会变成什么样子?某种反乌托邦未来,MTT 成为机器人之间的战斗,而人类坐在看台上,像是网络角斗士的战斗?这很有诱惑力,但扑克并不会消失。当然,高额在线游戏有其机器人驱动的戏剧性,但人类是未知数——不可预测、情绪化,并且有时候会做出机器永远无法复制的非理性决策。人们喜欢打扑克不仅仅是为了钱——而是为了读牌手的表情、令人心