当前位置: 首页 > 知识库问答 >
问题:

如何在使用minimax算法实现2048 AI代理时应用阿尔法-贝塔修剪?

屈星腾
2023-03-14

我正在为2048年开发一个人工智能,并且即将应用极大极小算法。

然而,2048的搜索树实际上就像一棵没有民角色的期望极小树。我想知道如果我没有民角色,我怎么能在实践中应用α-β剪枝?

如果我不应该在这个场景中应用alpha-beta修剪,我怎么能减少无用的搜索分支?

任何想法将不胜感激。谢谢你。

共有1个答案

孙阳旭
2023-03-14

我认为阿尔法-贝塔算法不适合这个游戏。请检查这个答案如何实现启发式:游戏2048的最佳算法是什么?

 类似资料:
  • 我最近实现了极小极大和阿尔法贝塔修剪算法,我100%确定(自动分级器)我正确地实现了它们。但是当我执行我的程序时,它们的行为不同。我99%确定极小极大和阿尔法贝塔的结束状态应该是相同的。我说得对吗?它们在实现结果的路径上会有所不同吗?因为我们忽略了min将选择的一些值,而max不会选择这些值,反之亦然。

  • 我正在尝试建立一个国际象棋AI。我的带有 alpha-beta 修剪的 negamax 函数 (ABP) 比使用 ABP 的单独最小和最大函数运行得慢得多(约 8 倍),尽管返回的移动是相等的. 我的棋盘评估函数总是返回一个关于红色玩家的值,即红色玩家越高越好。仅对于 Negamax,当返回深度 0 时,黑色玩家的此值乘以 -1。 我的Netamax函数: 根调用: 我的最小和最大函数: 根分别调

  • 我已经实现了迭代深化的alpha beta搜索,并且我已经阅读了一些技术来进一步优化算法,首先搜索从以前的深度搜索中出现的最佳移动。 据我所知,我可以只将先前深度搜索的主要变化存储在动态长度列表中吗?例如,假设我使用PV[1,0,2,3]搜索到深度4,这意味着在深度1选择移动数1,在深度2选择移动数0,在深度3选择移动数2,等等...,然后对于深度5搜索,该算法将首先从先前的深度PV搜索节点的子节

  • 在我的方法newminimax49中,我有一个minimax算法,它利用了本文中建议给我的记忆和其他一般性改进。该方法使用一个简单的启发式电路板评估函数。我的问题基本上是关于alpha-beta修剪,即我的minimax方法是否使用alpha-beta修剪。据我所知,我相信这是真的,然而,我用来实现它的东西似乎太简单了,不可能是真的。此外,其他人建议我使用alpha-beta剪枝,正如我所说的,我

  • 本文向大家介绍python使用minimax算法实现五子棋,包括了python使用minimax算法实现五子棋的使用技巧和注意事项,需要的朋友参考一下 这是一个命令行环境的五子棋程序。使用了minimax算法。 除了百度各个棋型的打分方式,所有代码皆为本人所撸。本程序结构与之前的井字棋、黑白棋一模一样。 有一点小问题,没时间弄了,就这样吧。 一、效果图 (略) 二、完整代码 以上就是本文的全部内容

  • 我有以下奥赛罗(reversi)游戏的阿尔法-贝塔极小值的实现。不知怎的,这永远不会返回正确的行动。它似乎返回了我在函数(0,0)中设置的默认操作和第二个值-32768,这意味着它在MAX子例程中被删减了。关于我可以改进什么以及如何解决这个问题,有什么建议吗? 注意:我已经确定了大部分正确返回的继任者。目前的最大深度是8。电脑玩家的pn(玩家数量)是1,人类玩家的是0。第一阶段,0,是MINIMA