在游戏前期建树假设6个人每个人五个动作选择,如果打到河牌圈有30个动作那么节点数是5^30次方级别是不可能的,所以论文都会采用mccfr在训练的初期。
先上论文
Monte Carlo Sampling for Regret Minimization in Extensive Games
Cfr主要分为OS mccfr 和 ES mccfr,OS mccfr 是对单一结束节点采样,ES mccfr是对对手和机会节点采样,这里列出更新公式
可以对比cfr的更新公式
Mccfr多了1/q(z) ,这个q(z)是这次采样所占比例,需要注意一个常见的优化是,当采样对手动作时就不需要传递计算对手reachprob,这样可以q(z) = 对手到达概率。
这里列出mccfr(左边)和cfr(右边)的对比,cfr无论是自己还是对手都会遍历所有动作,计算regret时会乘对手到达概率,mccfr则对于对手会从对手动作里面抽样不会遍历全树,而且更新regret时不用乘以对手reachprob。
可以参考这份代码
Cfr+ 和discount cfr 还有最新的linear cfr 都是加快更新的算法,主要是对regretSum和strategySum在不同训练时期赋予不同的权重加速。