弱解决
一般认为,Polaris程序在2008年就已经得到了HULHE扑克的弱解决方法。这个程序主要由布拉德利·约翰松编写,他来自加拿大阿尔伯塔大学。实际上,Polaris与六位专业牌手进行了对战,赢了其中三位,负于另外两位,还与一位打平。每一场对战都由500盘复式对局组成:每种发牌方式都会通过对换玩家打两次。这种方法可以在玩家之间建立完美的对称性,于是,每个人都没有理由说自己是运气不好的受害者。人们只花了七年,就从HULHE扑克的弱解决走到了强解决。尤其,这段时间与国际象棋的研究历程相比并不长。即使最乐观的专家也认为,国际象棋需要至少四十年才能从第一步走到第二步。对于扑克类游戏来说,由于每位玩家的信息不完全,再加上随机因素,使得最优策略并不是确定性的规则(如果你拿着J,桌子上掀开的牌有一张Q,而对手刚刚加注的话,那么你就应该跟上),而是概率性的规则(如果你拿着J,桌子上掀开的牌有一张Q,而对手刚刚加注的话,那么你应该在20%的情况下跟注,在80%的情况下放弃)。
2.完美策略,还是自适应策略?
人们用数学方法和计算机计算了能给出HULHE扑克最优策略的纳什均衡点,并在2015年开发了游戏程序Cepheus。不论面对什么样的对手,在大量对局之后,这个程序都不会落后。然而,这个游戏程序并没有考虑怎么适应对手的特殊风格,所以不能一直最大程度地利用对手的弱点。
另一个同样在加拿大阿尔伯塔大学开发的程序Polaris,在开发时,它的目标就包含了适应对手。它不像其他扑克程序那样尝试为对方玩家建立模型,因为只有在知道大量连续对局之后,这样的模型才有效。Polaris采用的原则是,先定义一系列有限的相当不错的游戏策略(利用了不同的简化游戏版本中计算出来的纳什均衡),然后在与对手完成一些对局之后,比较这些策略的得失。在玩了50局、足够进行比较之后,程序会比较这些策略用在50局上的效果,以此在策略列表中进行选择,而这个选择能更好地利用对局玩家的特点。
对游戏中出现的每个情况确定适当的概率,是一件很棘手的事,比起局面数目相同而没有随机性的完全信息游戏,需要我们进行更多的计算。对于HULHE扑克来说,局面的数目也很庞大。在去除对称性之后,数目是3.19 × 1014,这样我们就明白了为什么这种基础的扑克游戏(与下注无限制的多人游戏相比)这么难解决了。这是人们首次强解决一个在现实中玩家众多、拥有随机因素而玩家又只拥有关于自己手牌信息的游戏。
说实话,HULHE扑克的强解决只是“几乎”解决:对于迈克尔·鲍林的团队计算出的随机游戏策略来说,任何玩家如果在人类能承受的时间内与这个程序对局,几乎无法取得明确的胜利。准确的结果是,如果玩家每小时玩200局、每天玩12个小时、玩够70年,那么玩家有95%的可能性看不出鲍林团队计算出来的“几乎”完美的策略与真正完美的策略之间的差异。
另外,在某种意义上,完美的随机策略也是无法计算的,因为这种计算需要以无限精度确定大量实数值(策略中与每个局面相关的概率)。因此,计算出来的值和数学上的完美解之间的微小差异无关紧要,如果我们认为“几乎”完美的解答就是HULHE扑克的强解答,也不算出格。
计算这个解答还附带得到了一个结果,在HULHE扑克中,庄家(发牌的一方)比对手稍占优势:长远来说,如果总是由同一位玩家发牌的话,那么他一定能赢钱。这也符合职业玩家长期以来的猜测:谁先叫牌谁不利。