基于树搜索的游戏AI:如何通过稀疏的奖励避免AI“徘徊” /“陷入困境”?

时间:2018-11-13 11:52:25

标签: artificial-intelligence minimax game-ai monte-carlo-tree-search

我的游戏AI使用一种算法,该算法根据我可以做的动作(极大极小/蒙特卡洛风格)搜索所有可能的未来状态。它使用计分系统评估这些状态,选择得分最高的最终状态并遵循该状态。

这在大多数情况下效果很好,但在奖励稀少的情况下却非常糟糕。例如:有一个理想的可收藏对象,我右边有3个图块。自然的解决方案是右->右->右。

但是,我的算法搜索了6圈深度。并且它将发现许多最终收集对象的路径,包括花费超过3圈的路径。例如,它可能会找到以下路径:up-> right-> down-> right-> right-> down,而是在第5转弯时收集对象。

由于在这两种情况下,最终的叶子节点都会检测到所收集的对象,因此它自然不会偏爱一个或另一个。因此,与其在第1转弯处向右行驶,不如往上,往下或往左走。此行为将在下一个回合中完全重复,因此它基本上最终会在可收集对象的前面随机跳舞,只有运气才会使它踩在它上面。

这显然不是最佳选择,我想修复它,但是用尽了如何正确处理的想法。是否有解决此问题的方法,或者有任何理论上的工作来处理此问题?

我尝试过的解决方案:

  • 在更早的回合中使它更有价值地收集对象。在此过程中,要击败评估人员的“噪音”,转弯之间的差异必须很大。转弯1的额定值必须大于2,转弯2的额定值必须高于3,依此类推。转弯1和6之间的差异必须太大,以至于最终使行为变得极为贪婪,这在大多数情况下是不希望的。在具有多个对象的环境中,最终可能会选择在第1弯道抓住物体的路径,而不是在第5和第6弯弯抓住物体的更好路径。

  • 将对象分配为目标并为其指定距离。如果不转弯,原始问题仍然存在。如果在转弯的基础上进行,那么每回合所需的重要性差异再次使其过于贪婪。此方法还降低了灵活性并导致其他问题。目标选择并非易事,并且破坏了maxmax样式算法的重点

  • 在搜索中做得更深,以便它始终可以找到第二个对象。这将耗费大量计算能力,因此我不得不做出让步,例如更加主动地修剪路径。如果这样做,我将又遇到相同的问题,因为我不知道如何让它更喜欢修剪5轮版本而不是3轮版本。

  • 为上一轮制定的计划提供额外的价值。如果它至少可以遵循次优路径,就不会有太大的问题了。不幸的是,这必须再次对它的可靠运行产生很大的影响,使其在所有情况下都遵循次优路径,从而损害整体性能。

1 个答案:

答案 0 :(得分:1)

在权衡移动的最后一步的结果时,您是否在计算拾取物体所需的移动次数?

我想,您正在量化移动动作的每个步骤,如果该步骤导致拾取对象,则给出+1。这意味着我可以通过3个步骤,用您上面的示例拾取对象,并获得游戏场地的+1状态,但是我也可以使用4-5-6-x步进行此操作,获得相同的+1州。如果您要搜索的深度只有一个对象可到达,则您的算法可能会选择随机+1状态之一,从而为您提供上述行为。

可以通过以负分数量化AI必须执行的每个动作来解决。因此,以3个动作获得对象将产生-2,但以6个动作获得对象将导致-5。这样,AI就会清楚地知道,最好以最少的移动量(即3)获得对象。