好的,我浏览了这些文章以了解它们在做什么。以下是你提到的术语的概述:
马尔可夫链只是您的系统从一个状态转移到另一个状态的模型。从头开始开发马尔可夫模型有时可能很困难,但一旦掌握了其中一个,它们就相对容易使用和理解。基本思想是您的游戏将与之相关联的特定状态;作为游戏的一部分,您将从一个状态转移到另一个状态;并且,关键的是,这种从状态到状态的移动是基于概率的,并且您知道这些概率。
一旦您拥有了这些信息,您可以将其表示为图形,其中节点是状态,状态之间的弧(带有概率标签)是转换。您还可以表示为满足某些约束条件的矩阵,或者其他几种更奇特的数据结构。
简短的文章实际上都是关于马尔可夫链方法的,但是--这很重要--它仅使用该方法作为快速估计如果A军攻击由B保卫的领土会发生什么的一种方式。这是技术的不错应用,但它不是“Risk”的人工智能,它只是AI中帮助确定攻击的可能结果的模块。
蒙特卡罗技术则是估计器。一旦您拥有某种东西的模型,无论是马尔可夫模型还是其他任何东西,您经常发现自己希望对其进行某些估计。 (通常它会变成您可以在那个格式下很难处理的某些东西的积分形式。)蒙特卡罗技术只是随机抽样并将结果聚合成即将发生的估计值。蒙特卡洛技术在我看来并不是人工智能技术。它们是一种非常通用的技术,恰好对人工智能有用,但本质上并不是人工智能。马尔可夫模型也可以说同样的话,但该语句较弱,因为马尔可夫模型在规划人工智能方面非常有用,整个人工智能理论都围绕这种技术建立。马尔可夫模型在其他领域也被广泛应用。
那就是它们的含义。您还问我如果我必须实现一种风险人工智能,我会使用哪种方法。嗯,这两种方法都不够。正如我所说,蒙特卡罗不是一个人工智能技术,而是一种通用数学工具。而马尔可夫模型虽然理论上可以表示整个风险游戏,但它们最终会变得非常难以操作:您需要表示游戏的每个状态,这意味着领土中每个可能的军队配置以及手中每张牌的每个可能的配置等(此处省略了许多细节:这种方法还存在许多其他困难)。
Wolf论文的核心既不是马尔可夫方法也不是蒙特卡罗方法,而是他所描述的评估函数。这是人工智能问题的核心:如何确定最佳行动。Blatt论文中的蒙特卡罗方法描述了一种确定行动预期结果的方法,但这与确定最佳行动不同。此外,Wolf论文中还有一句话说,风险游戏中向前看变得很困难,因为游戏树变得非常大,这导致他(我认为)非常关注评估函数。
所以我的真正建议是:阅读搜索树方法,如极小化极大算法、Alpha-Beta 剪枝和特别是期望极小化极大算法。你可以在 Russell 和 Norvig 的早期著作中或者甚至在维基百科上找到这些算法的良好解释。尝试理解为什么这些技术通常有效,但对于风险游戏来说却很繁琐。这将引导您进一步讨论棋盘评估技术。然后回头看 Wolf 的论文,重点关注他的动作评估函数。最后,专注于他如何尝试自动学习一个好的评估函数。
这需要很多工作。但开发 AI 玩家来玩风险游戏并不容易。
(如果您只想计算给定攻击的预期结果,我建议使用蒙特卡罗算法。它简洁而易懂,并且非常容易实现。唯一困难的地方--虽然不是很大--是确保运行足够多的试验,以获得良好的结果。)