是否可以在不使用 ML 算法的情况下计算出卡坦岛定居点的最佳位置?
虽然简单地将定居点周围的数字(最高点位置)相加是微不足道的,但我希望对定居点位置进行更深入的分析。例如,如果最高点位置在羊-羊-羊周围,则最好转到较低点位置以获得更好的资源访问。它还可以加权互补资源,阻止其他参与者获得资源,并更靠近港口。
算术编程似乎可行,但有朋友说这是ML问题。如果是机器学习,随着游戏板每场比赛都会改变,人们将如何进行培训?
是否可以在不使用 ML 算法的情况下计算出卡坦岛定居点的最佳位置?
虽然简单地将定居点周围的数字(最高点位置)相加是微不足道的,但我希望对定居点位置进行更深入的分析。例如,如果最高点位置在羊-羊-羊周围,则最好转到较低点位置以获得更好的资源访问。它还可以加权互补资源,阻止其他参与者获得资源,并更靠近港口。
算术编程似乎可行,但有朋友说这是ML问题。如果是机器学习,随着游戏板每场比赛都会改变,人们将如何进行培训?
Catan 实际上是一个比简单规则所暗示的复杂得多的游戏,而精确的解决方案可能超出了当前 AI 技术的范围。
蒙特卡洛树搜索或 Expectiminimax 技术似乎可以提供帮助,但它们适用于完美信息游戏。Catan 不是完全信息的游戏(开发卡被隐藏),并且也有一个没有规则回合顺序的阶段(交易)。
为了正确解决 Catan,我认为您将需要解决 POMDP 的算法(如 CFR+)和协商算法(如Kraus 的 Diplomat)。我不确定这些以前是否在正式分析中结合在一起,所以这对某人来说实际上可能是一篇很好的博士论文。
也就是说,您可能会使用自我对弈技术来获得一名优秀的玩家,因为 Catan 具有随机性和相对较少的动作集,例如双陆棋。这些可能会或可能不会提供关于如何最好地玩游戏的简单规则。您的朋友从根本上认为这是一个 ML 问题是正确的。
从历史上看,非 ML 方法将是一个专家系统。这通常是一个基于规则的决策系统,属于符号 AI的范畴。
这些系统在有限的环境中可以具有很强的效用,但通常是“脆弱的”,因为先前未定义或计算的参数将产生无计算或弱效用。因为游戏规则是完全可定义的,所以主要关注的是效用,它与游戏解决的程度有关。
在这种情况下,为启发式系统提供信息需要在博弈论和组合博弈论的意义上对博弈进行分析,因为 Catan 涉及不完全信息和组合元素。复杂性确实很高,不仅是不完全信息、分支因素、随机性、玩家数 > 2,而且,正如您所注意到的,游戏板本身具有非常多的潜在配置,因此假定解决游戏非常困难到不可能。(如果是有限的,可能是NEXPTIME,否则是不可判定的。)
The Settlers of Catan的论文博弈策略表明,Catan 的博弈树是不可测量的,因为自然语言中的贸易谈判选项不受限制:
对此的一种回应是开发一个由玩游戏的启发式策略组成的符号模型。开发这样的模型可能有两个优点。首先,符号模型原则上可以导致人类专家游戏的可解释模型......其次,符号模型可以提供下一步可能是最优的先验分布......
该论文提到了第二部分与机器学习的关系,其中“通过训练获得的最佳动作的后验分布改进了基线先验分布”。
尤其是在游戏未解决且难以处理的情况下,机器学习已在越来越多的游戏中显示出强大的实用性,因此它不太可能不是真正强大游戏的最佳组件。但是,这样的系统可以是 ML 和特定领域知识的组合,例如在知情搜索中。
《优化卡坦岛定居者的UCT》对此进行了详细介绍,同时也为之前的工作提供了参考。
如果您的主要要求是强大的实用性,那么某种形式的机器学习可能是最佳选择。但是尝试解决游戏并将启发式方法拼凑在一起可能会很有趣。
从您提出问题的方式可以得出几个强有力的假设,这些假设极大地简化了问题并使其可行:
我想到了两个简单的想法:
1. ML 方法 查看历史游戏数据,看看哪些结算选项导致了胜利。所以基本上看 (X,y) 的元组,其中 X 类似于 (W8, C2, O6),这意味着该定居点可以使用 8 的木材、2 的粘土和 6 的矿石。y 表示胜利或损失。为了让它有点动态,您可以区分初始定居点(放置在开始处)和游戏期间的定居点。因此,对于这两个类别中的每一个,您基本上都会为可能的定居点得出一个分数。
如果您可以计算所有可能的组合,您甚至不需要 ML,因为您可以简单地运行一次数学然后查找它。在这种情况下可能是可行的,因为上面提到的假设大大简化了问题(与完全“解决”游戏相比)。考虑给定定居点的可能组合(选择 3 个具有 A 可能资源和 B 可能数字的字段)将很快让您对此有所了解。
2. 经典的符号方法 我马上想到的是线性规划,因为它提供了一种方便的方法来对您提到的战略方面进行建模。您可以开发一个目标函数,以最大限度地利用不同资源和数字的分数(例如,您可以赋予粘土比羊毛更高的重要性)。除此之外,约束可以捕捉游戏策略的其他方面,例如“始终确保可以使用粘土”或“不要解决 3 种资源相同的地方”等。
我对此建模的第一个想法是使用像 X_(i,j) 这样的决策变量,其中 X 为 0 或 1,i 代表 {clay, wood, ..., desert} 中的资源(旁注:不要忘记水和不同的港口)和 j 对 {2,...12} 中的数字进行建模。约束需要模拟这样一个事实,即您需要为每个结算选择其中的 3 个 X_(i,j)。
如果你想为给定的游戏计算这个,你需要根据特定游戏的布局为模型提供可能的结算选项。然后运行优化,它会为您提供最佳解决方案(即最大化您的目标函数的 3 个可行 X_(i,j))。
Qua 定义你需要为这种方法引入游戏知识。并且可能与真正擅长游戏的人交谈将有助于了解什么是重要的。