当前位置: 华文星空 > 体育

写一个智能的程序来玩德州扑克,是否可行?

2014-03-15体育

本来上来想说先问有没有再问为什么,后来一看是快十年前提出来的问题,我八十米的大刀又收了回去。

基本上是有两种套路,巧合的是最有名的PioSOLVER和Pluribus都发表在问题提出的2014年不久之后。

一种是基于统计方法的扑克求解器(Solver)例如2015年推出的PioSOLVER。Solver是一种特定于德州扑克的人工智能辅助工具,能够帮助玩家通过计算找出一种被称为「纳什均衡」的策略,以保证在长期的游戏中不会处于劣势。要使用Solver,玩家需要提供对自己和对手可能持有的牌的预估,然后Solver会根据这些信息构建游戏树,并计算出最优的纳什均衡策略。然而,Solver的计算能力受限于游戏树的复杂性,导致其在扑克游戏的前几轮(特别是preflop和flop)时,无法做到实时计算,只能离线计算。此外,如果玩家对自己和对手的牌的预估不准确,Solver的效果也会大打折扣。尽管如此,Solver凭借其数学上的严谨性和强大的可解释性,被广泛应用于德州扑克的研究和复盘分析。

与此不同,另外一类是以Pluribus为代表的AI模型,它们可以自主地计算并调整其游戏策略,而无需玩家提供预估的牌型范围。2019年发表的Pluribus采用了一种被称为反事实遗憾最小化(Counterfactual Regret Minimization,简称CFR)的技术的变体,这是一种迭代的自我对弈方法。Pluribus首先通过自我对弈来计算出一个初始的策略蓝图,然后根据游戏的实际进展,对可能的走势进行详细搜索,并适时调整其策略。此外,Pluribus在搜索过程中并不需要考虑到游戏的全部可能结果,这在计算上极大地降低了复杂性。Pluribus采用的这种新的有限前瞻搜索算法,使其能够成功应对多人扑克对局,取得了一次次胜利。Pluribus的成功代表了AI在多人博弈、不完全信息游戏中取得了重大突破,开启了人工智能在解决各种实际问题中的新可能性。