我有一个使用极小极大算法的游戏程序,它将不同的启发式方法相加以返回游戏每个状态的值。我希望实现学习功能,让程序能够学习每个启发式方法的权重。让程序学习每个启发式方法的权重最有效的方法是什么?当然,只有在尝试后,程序才能知道某个权重对某个启发式方法是否有效。唯一的选择是某种试错系统吗?
谢谢你的帮助!
回答:
我很少在实践中使用极小极大算法 – 但一般来说,最好有一个内在的分数/好坏标准作为基础。第一步是尝试为你的游戏定义这样的分数,并将其作为一个接口暴露出来,供每个支持的游戏实现。
唯一的选择是某种试错系统吗?
不!遗传算法在这种事情上很受欢迎(至少在业余爱好者中),并且可以成功地用于许多问题(如果有足够的时间)。你可以在早期的人工智能研究中找到很多相关信息,特别是与国际象棋程序相关的。
你可以查找一些关于超参数优化的研究,以找到更多机器学习风格的方法来实现它。不幸的是,这个领域的研究还不如它应该的那样深入。
根据所实现的游戏的具体情况/启发式方法的性质,还有更多的可能性。