Artificial intelligence Monte Carlo树搜索像Belot和Bridge等纸牌游戏

Artificial intelligence Monte Carlo树搜索像Belot和Bridge等纸牌游戏,artificial-intelligence,montecarlo,Artificial Intelligence,Montecarlo,我一直在尝试在纸牌游戏中应用MCT。基本上,我需要一个公式或修改UCB公式,因此在选择要继续的节点时,这是最好的 问题是,纸牌游戏不是赢/输游戏,它们在每个节点都有分数分布,例如158:102。我们有两支球队,所以基本上是双人比赛。我正在测试的游戏是常数和游戏(戏法的数量,或者一些戏法的得分等等) 假设teamA和teamB得分的最大总和是每个叶子260分。然后我从根搜索最佳移动,第一次尝试10次后平均得到250次。我还有3个可能的动作,从未被测试过。因为250太接近最高分数,测试另一个动作的后

我一直在尝试在纸牌游戏中应用MCT。基本上,我需要一个公式或修改UCB公式,因此在选择要继续的节点时,这是最好的

问题是,纸牌游戏不是赢/输游戏,它们在每个节点都有分数分布,例如158:102。我们有两支球队,所以基本上是双人比赛。我正在测试的游戏是常数和游戏(戏法的数量,或者一些戏法的得分等等)

假设teamA和teamB得分的最大总和是每个叶子260分。然后我从根搜索最佳移动,第一次尝试10次后平均得到250次。我还有3个可能的动作,从未被测试过。因为250太接近最高分数,测试另一个动作的后悔系数非常高,但是,数学上应该证明什么是最佳公式,当你有以下动作时,可以选择哪一个动作:

  • Xm-移动m的平均分数
  • Nm-尝试移动m的次数
  • 最大-可获得的最大分数
  • MIN-可获得的最低分数

显然,你越是尝试同一招式,你就越想尝试其他招式,但你离最高分数越近,你就越不想尝试其他招式。根据这些因素Xm、Nm、MAX、MIN选择移动的最佳数学方法是什么?

您的问题显然是一个探索问题,而问题是,在置信上限(UCB)下,无法直接调整探索。这可以通过添加勘探常数来解决


置信上限(UCB)计算如下:

V是您试图优化的值函数(期望分数),s是您所处的状态(手中的牌),a是动作(例如放置一张牌)。n(s)是在蒙特卡罗模拟中使用状态s的次数,n(s,a)与s和动作a的组合相同

左侧部分(V(s,a))用于利用先前获得的分数的知识,右侧部分是添加值以增加探索。但是,没有办法增加/减少该勘探价值,这是在树的置信上限内完成的(UCT):

这里Cp>0是探索常数,可用于调整探索。结果表明:

如果奖励(分数)介于0和1之间(在[0,1]中),则保留该选项

建议:Cp=Rhi-Rlo,其中Rhi是使用Cp=0返回的最高值,Rlo是推出期间的最低值(即,当您在尚未计算值函数的情况下随机选择操作时)


参考:


听起来不错。如果V(s,a)在[0260]中怎么办?在这种情况下,什么是最佳常数Cp?当我移动并播放几次时,我有值X1,X2,…,XN-这是每个模拟的叶节点(endgame)处的分数。问题是我们不知道这些数字的分布是什么,我可以计算标准偏差,比如说:2,4,4,4,5,5,7和9是数值。在这种情况下,平均值为5,但方差为4,星镖偏差为2。另一个例子是,我试了4次,得到了20分、30分、25分和235分。显然235不太可能发生,所以我想在公式中使用25,而不是平均分数77。这是正确的逻辑吗?我更新了关于Cp使用什么值的问题,您可以尝试使用这个数字(增加以探索更多)。我不太清楚你想要什么树叶上的分数。如果您想评估策略,您应该在学习策略后对其进行模拟。