在游戏背景下编码一些人工智能技术有哪些资源?

人工智能 机器学习 游戏-ai 参考请求
2021-11-02 07:22:15

我知道关于人工智能的最基本的基本理论,我想深入研究人工智能和机器学习的实际编码。我已经知道了一些 C++ 编码,现在我正在学习 Python 语法。

我想我想开始为简单的游戏(比如蛇或国际象棋,这不是一个真正简单的游戏,但我对此了解很多)实施人工智能技术,然后转向更复杂的方法和算法。

那么,有哪些资源(例如教程、指南、书籍等)可用于在游戏环境中对一些人工智能技术进行编码?

1个回答

您可以使用 AI 技术解决的最简单的游戏之一是井字游戏,这是一款非常简单的游戏。为了解决这个问题,您可以使用 minimax 或 alpha-beta pruning(minimax 的扩展),它们是两人游戏的非常基本但基本的搜索技术,因此 minimax 不仅可以应用于井字游戏,还可以应用于任何两个游戏-玩家游戏。

注释CS 161 Recitation Notes - Minimax with Alpha-Beta Pruning提供了 alpha-beta 修剪的一个不错的概述(带有一个具体示例),一开始可能会有点混乱,但它是一种相对简单的搜索技术,您可以可以通过几次阅读迭代来掌握(但要小心翼翼,因为学习某些东西所需的时间和精力很大程度上取决于你的知识和经验)。有几个在线教程展示了如何为井字游戏实现极小极大和 alpha-beta 修剪。我可以将它们全部列出,但我认为你最好寻找它们并选择你最喜欢的。也许看看这个实现

当然,说到游戏,我们不能忘记强化学习。我目前无法列出任何好的教程,但网上有很多资源。您甚至可以将 RL 应用于井字游戏,因此这可能是您的下一步。正如有人在评论中提到的,OpenAI 的 gym是一个用于实现 RL 代理的 RL 库,可以用来解决很多游戏,所以你一定要看看它。OpenAI 的健身房有一个很好的介绍,特别是如果你已经熟悉 RL,当然,在尝试使用它之前你可能应该这样做。原则上,您可以将 RL 应用到许多游戏中,包括国际象棋、蛇等。

还有一本 Jason Brownlee 撰写的名为Clever Algorithms: Nature-Inspired Programming Recipes的书,其中描述了许多 AI 技术,其中一些原则上也可以应用于游戏。本书简明扼要,相对清晰。它还附带了其中提供的所有算法的实现(在 Ruby 中,这是一种类似于 Python 的语言)。

总而言之,虽然这个网站不适合推荐,但我建议你先熟悉基本的搜索技术,如极小极大和 alpha-beta 剪枝,然后你可以开始学习 RL,它可以应用于许多游戏。两者都有很多在线资源。