我一直试图在纸牌游戏中应用MCTS。基本上,我需要一个公式或修改UCB公式,因此最好选择继续哪个节点。
问题是,纸牌游戏不是赢/输游戏,他们在每个节点都有得分,例如158:102。我们有2支球队,所以基本上它是2人游戏。我测试的游戏是常数游戏(技巧数量,或者采取的技巧等等)。
让我们说每个叶子的teamA和teamB得分的最大总和为260。然后我从根部搜索最佳移动,我尝试的第一个在10次尝试后给出平均250。我有3个可能的动作,从未经过测试。因为250太接近于最高分,所以测试另一个动作的后悔因素非常高,但是,应该在数学上证明什么是最佳公式,它可以让你在选择时选择哪个动作:
显然,你尝试同样的动作越多,你想要尝试其他动作的次数越多,但是你越接近最高分,你想要尝试其他动作的次数就越少。根据这些因素选择移动的最佳数学方法是什么?Xm,Nm,MAX,MIN?
答案 0 :(得分:2)
您的问题显然是探索问题,问题在于使用上限置信区(UCB),无法直接调整探索。这可以通过添加探测常数来解决。
上置信区(UCB)计算如下:
V 是您要优化的值函数(预期得分), s 您所处的状态(手中的牌),以及< em> a 动作(例如放一张卡片)。 n(s)是在蒙特卡罗模拟中使用状态 s 的次数, n(s,a) s 和action a 的组合相同。
左侧部分( V(s,a))用于利用先前获得的分数的知识,右侧部分是增加值以增加探索。但是没有办法增加/减少这个探索值,这是在树木的高置信区域(UCT)中完成的:
这里 C p &gt; 0 是探测常数,可用于调整探索。结果表明:
如果奖励(分数)介于0和1([0,1]之间),则Silver & Veness建议: C p = R hi - R lo , > R hi 是使用 C p = 0 返回的最高值, Rlo 是最低值推出期间的值(即,当您尚未计算任何值函数时随机选择操作时)。
参考: