首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪种人工智能算法最适合下棋?

哪种人工智能算法最适合下棋?
EN

Data Science用户
提问于 2021-12-01 14:20:41
回答 4查看 2.8K关注 0票数 2

我正在研究我的象棋机器人,我想为它实现简单的人工智能。我是新来的,所以我不知道怎么下国际象棋。我听说过Q-学习,监督/非监督学习,遗传算法,等等,这可能不是国际象棋。我想知道AlphaZero是如何创建的?可能是遗传算法,但国际象棋是“如果A然后B”可能不起作用的游戏。这意味着Q-学习对它也是有害的,等等。

有什么建议要用吗?

注意:我找到了数据集,虽然它还包括低级别的玩家游戏,所以我不确定是否可以用这个来训练机器人

EN

回答 4

Data Science用户

发布于 2021-12-01 16:48:15

我不是该领域的专家,但我想提请您注意强化学习 (维基百科关于AlphaZero的文章中也提到了这一点)。

书"强化学习:导论“(RichardS.Sutton和AndrewG.Barto)是一个很好的起点。似乎是从强化学习开始的“圣经”。

游戏有一些简单的实现,比如"TicTacToe“(很多在线例子),在这里您可以很好地了解如何开始。还有一个上的R包

我还注意到github上有国际象棋项目 (例如Python),您可能会发现这很有趣。

票数 5
EN

Data Science用户

发布于 2021-12-02 02:34:07

这是个很大的问题。有两种基本的方法,关键的区别是搜索算法。

第一种方法,目前被世界上最强的引擎Stockfish所使用,将minimax作为搜索算法。然后它调用NNUE来评估搜索树末尾的位置。minimax算法需要大量的人工知识来修剪不必要的分支,而且非常复杂;大多数人发现河豚搜索算法是一个黑匣子并不奇怪。

第二种方法,由第二强引擎Leela Chess Zero使用,涉及蒙特卡洛树搜索。还有一个神经网络,它获取当前位置,并输出候选人移动列表,每个候选人的获胜百分比。然后引擎将它的时间分配到最有希望的动作中,在每个节点调用神经网络。Leela的神经网络是从自我游戏中训练出来的,事先没有人类的知识--这在计算上是非常密集的。

您可以找到关于国际象棋程序设计 wiki的更多细节,以及Chess.SE上的几个问题(比如)。

票数 4
EN

Data Science用户

发布于 2021-12-02 00:34:50

AlphaZero算法是在leaders中实现的,它实际上是领先的算法之一,至少在Stockfish实现自己的NN辅助算法之前是如此。

这里:https://en.wikipedia.org/wiki/Leela_国际象棋_零

NNs:https://training.lczero.org/networks/?show_all=0

代码:https://github.com/LeelaChessZero/lc0/releases

它使用第20和第30系列张量核对Nvidia GPU进行分布式学习,它也是一个最先进的系统,包括所有(许多) NNs权值。

票数 2
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/104689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档