计算完蓝图策略之后就是计算实时策略。与完全信息博弈不同,德扑是非完全信息博弈,玩家只知道自己的手牌不知道对面的手牌,在进行策略计算的时候完全信息博弈可以根据决策点叶子节点的值进行选择,譬如在决策点p有两个动作a和b,a行动之后对应的节点是p1,b行动之后对应的节点是p2,如果p1节点的值是-1而p2节点的值是1那么p节点就会选择b行动作为他的策略。但是非完美信息博弈却不同,节点p1和p2的值是不固定的,譬如如果你一直选择b,那么对手会猜到你会走b的路径,那么他会调整自己的策略剥削你的策略。一个对局搜索的算法里,对局的结构有起始点root和之后的决策点还有对局所定义的叶子节点leaf nodes。pluribus对root和leaf nodes 做了特别的处理。下文分别对叶子节点和root的处理做介绍
1、叶子节点leaf nodes
为了考虑对手会调整自己策略的情况,pluribus叶子节点的值不再是固定的值,而是由叶子节点之后双方继续对局搜索。但是叶子节点之后的搜索过程中的动作变为选择4个不同的调整策略,分别为蓝图策略,偏fold的策略(蓝图策略里的fold概率5,重新归一化的策略),偏call的策略(蓝图策略里的call概率5,重新归一化的策略),偏raise的策略(蓝图策略里的raise概率*5,重新归一化的策略)。这样做与直接search到最后相比的优点是什么呢??这个方法把一方面结合了蓝图策略的结果加速了迭代收敛过程,又避免了忽略对手会改变策略的情况。并且为简化计算在叶子节点之前对牌组的抽象是500种,叶子节点之后的节点仍是蓝图策略的200种。
2、根节点root
叶子节点考虑完之后,再说下实时搜索的起始点root的选择,pluribus并不是将当前决策点作为root而是将当前回合发牌点作为root。并且用unsafe的方法预估对手的手牌分布,所谓unsafe的方法,就是
按对手不同手牌情况下到达该节点的概率归一化分布。作者认为这种方式是安全高效的。
3、对于offtree的处理。
对手的选着可能会与抽象的动作不同,偏离的蓝图策略的选择,比如下注35,而蓝图策略里只有下注20和50.对于这种情况。在不同的回合有不同的处理。对于靠后的回合,在实时搜索阶段,会把off tree的动作添加到实时搜索算法中。如果是在preflop,如果动作偏离的不多,会把该动作近似成离他较近的动作,只有在偏离很大的情况才会把ff tree的动作添加到实时搜索算法中进行计算。