python - 如何使用 ANN 和遗传算法在 Python 中为井字游戏创建 AI?

标签 python neural-network artificial-intelligence genetic-algorithm tic-tac-toe

我对机器学习领域非常感兴趣,最近我想到了 future 几周的项目。
基本上,我想创建一个可以在 Tic Tac Toe 中击败每个人的 AI。对于每个 n*n 的棋盘大小,甚至可能对于其他维度(例如,对于游戏的 3D 模拟),该算法都必须可扩展
此外,我不希望算法提前知道游戏的任何信息:它必须自己学习。所以没有硬编码的 ifs,也没有监督学习。
我的想法是对主要算法本身使用人工神经网络,并通过使用遗传算法对其进行训练。所以我只需要编写游戏规则的代码,然后每个群体都在与自己作战,应该从头开始学习
这是一个大项目,我不是这方面的专家,但我希望怀着这样的目标,学到很多东西。

  • 首先,这可能吗?我的意思是,是否有可能在合理的时间内取得好的结果?
  • 是否有适合我用于此项目的 Python 库? Python 是否适合此类项目?

最佳答案

是的,这是可能的。但是你必须事先告诉你的 AI 游戏规则(好吧,这是有争议的,但如果你这样做表面上更好 - 它会更好地定义你的搜索空间)。

现在,普通的井字棋游戏太简单了 - 最小最大搜索就足够了。扩大维数或棋盘的大小确实需要更高级的算法,但即便如此,搜索空间还是相当简单(维数增加的代数性质导致搜索空间略有变化,这仍然应该可以通过更简单的方法处理)。

如果您真的想在一个问题上使用繁重的机器学习技术,请再看看国际象棋(深蓝真的只是蛮力逼傻子)。 Arimaa 对于此应用程序也很有趣。你也可以考虑看看围棋(也许从一些在 AlphaGo 上完成的工作开始)

那是我的两分钱

关于python - 如何使用 ANN 和遗传算法在 Python 中为井字游戏创建 AI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37056608/

相关文章:

python - 按双换行符分割,优先考虑 crlf

parallel-processing - 为什么我的 MATLAB 神经网络在使用并行处理时训练速度较慢?

machine-learning - 定时从Google Colab下载

python - 在 Python 中使用 Weka

machine-learning - 使用 tflearn 进行回归的神经网络

neural-network - 什么是 NEAT(增强拓扑的神经进化)?

python - 如何使用过滤器的 'Sort A to Z' 对 XlsxWriter 中的表格进行排序?

python - 如何从 python 中的 xml sax 解析器获取结果

python - struct.unpack 中的 IPv6 地址格式

python - 通过 LSTM (Core ML) 处理序列