1

我有一个超级极小游戏玩法,它将不同的启发式数据汇总在一起,为游戏的每个状态返回一个值。我想实施学习。我希望程序学习每种启发式的权重。让程序学习每种启发式的权重的最有效方法是什么?当然,它只会在尝试之后知道某个重量是否对某个启发式算法有效。是唯一的选择某种试验和错误系统?什么是一些有效的学习启发式权重的技巧?

谢谢你的帮助!

回答

1

我在实践中并没有多少应用极小极大 - 但总的来说,它最好有一个内在的衡量得分/善良/不好的基础。第一步是尝试为游戏定义这样一个分数 - 并将其作为每个支持游戏实现的接口公开。

是某种试错系统的唯一选择吗?

不!遗传算法在这类事情中很流行(至少在爱好者中),并且可以成功应用于许多问题(给定足够的时间)。在早期人工智能研究中可以找到很多与此有关的信息,特别是与国际象棋程序相关的信息。

你可以在超参数优化查找一些研究来寻找更多的机器学习方式来做到这一点。不幸的是,它不太适合研究一个可能的区域。

根据所实施的游戏的具体情况/启发式的性质,还有更多的可能性。

0

强化学习(RL),特别是时间差异(TD)方法,处理非对抗设置中的启发式学习权重。如何在游戏设置中学习启发式算法的权重取决于您使用什么算法来玩游戏。算法的主要类别是alpha-beta minimax和UpperConfidenceTree。对于极大极小,当您增加树的深度时,您可以查看树节点上值的更新。我建议从学习RL-TD开始,然后阅读Joel Veness等人的Bootstrapping from Game Tree Search 。人。