目前,我正在做一个关于创建人工智能来玩五子棋游戏的项目(它就像井字游戏,但在 15 15 板上玩,需要连续 5 次才能获胜)。我已经使用 Q-learning 成功实现了一个完美的井字游戏 AI,并将游戏状态/动作存储在一个表格中,但是对于 15 15 棋盘,可能的游戏状态变得太大而无法实现这个项目。
我的问题是,我应该使用神经网络还是遗传算法来解决这个问题?更具体地说,我应该如何实现这一点?
目前,我正在做一个关于创建人工智能来玩五子棋游戏的项目(它就像井字游戏,但在 15 15 板上玩,需要连续 5 次才能获胜)。我已经使用 Q-learning 成功实现了一个完美的井字游戏 AI,并将游戏状态/动作存储在一个表格中,但是对于 15 15 棋盘,可能的游戏状态变得太大而无法实现这个项目。
我的问题是,我应该使用神经网络还是遗传算法来解决这个问题?更具体地说,我应该如何实现这一点?
对于 Gomoku 来说,使用神经网络或遗传算法似乎有点矫枉过正,因为两者都需要一段时间,而且通常不会按照你的意愿去做。Gomoku 游戏树相当大,但您可以从极小极大、游戏树修剪和良好的启发式函数(包括计算一半和完整的 2 秒、3 秒、4 秒等)获得不错的 AI,而不是映射出整个空间。
如果您不熟悉 alpha-beta 剪枝和 minimax,请参阅这篇文章。
如果您真的想使用神经网络或遗传算法,您可以体验学习。关于神经网络,一种方法如下:
当然,这只是一种方式,你需要先找到游戏数据。
作为旁注,可以通过几种方式应用遗传算法,例如上面提到的神经网络中的参数优化或游戏树搜索,因此请确保您清楚如何使用它定义问题设置!应用神经网络的替代方法也是如此。
最后,知道五子棋已经解决是很有帮助的。有关其他人的想法和想法,请参阅此帖子。