我已经用java实现了一个3*3的Tic-Tac-Toe游戏,只使用了Minimax算法。但是,当我将电路板大小更改为4*4时,程序似乎挂起。我想问一下,我是应该应用带有alpha-beta剪枝的Minimax来解决这个问题,还是可以应用Minimax本身?
如果你想进行全深度搜索,你需要使用alpha-beta。一个简单的4x4搜索树有16个!大约21万亿个节点。许多节点不需要搜索,因为另一方通过在下一步中获胜或创建一个在以后强制获胜的位置来反驳祖先位置。Alpha beta将允许您在不遍历这些搜索空间的情况下切掉其中一些搜索空间。
我试图让Alpha-beta修剪工作,但与我的Minimax函数相比,它给了我完全错误的动作。这是我的极大极小函数,它现在工作得很好。 这是我的Alphabeta修剪函数 两者都使用相同的评估,不确定这里出了什么问题。谢谢你的帮助。
我正在使用minimax算法为connect four编写AI。为了增加深度,我正在使用alpha-beta修剪。然而,我的代码得到了错误的结果。我很难找出哪里出了问题。
我目前正在从事我的第一个C项目,并选择使用基于Minimax的AI编写一个Connect Four(又名Score 4),更具体地说是基于Alpha-Beta修剪方法。 到目前为止,我了解到AB修剪包含在一个递归算法中,该算法考虑了一个alpha和一个beta参数,这是您在游戏树中找不到的“极限”。此外,我们定义了最大化和最小化玩家,前者是第一个开始玩游戏的玩家。最后,还有一个“深度”,我把它理解
这是我的极小极大方法,它实现了alpha beta修剪和记忆: 作为一个测试游戏,在我的主要方法中,我在某处放置一个X(X是玩家),然后调用newminimax499查看我应该在哪里放置O(计算机): } 该方法返回计算机应该在何处播放它的O(在本场景中为6),因此我按照指示放置O,自己播放X,调用newminimax499并再次运行代码以查看O要在何处播放,依此类推。 在这次特殊的运行之后,我得
我用Javascript制作了一个两种类型的井字游戏。一个是3x3,另一个是10x10。 我正在使用带有Alpha-Beta修剪的Minimax算法来解决这两个游戏。在3x3中,博弈树非常小,算法运行良好。 但在10x10中,它需要太多的时间。代码甚至不能在10分钟内移动一步。我运行了算法,等了10分钟,仍然在计算,然后我关闭了浏览器选项卡。(如果我让代码运行lol,甚至可能需要几个小时、几天、几
我正在尝试为一个游戏创建一个AI播放器,使用带有alpha-beta修剪的minimax算法。我在正确地执行它时遇到了一些困难。我有两个功能要使用,一个用于评估给定玩家(返回一些分数)getBoardScore的当前棋盘状态,另一个用于返回每个可能移动(从给定玩家的给定棋盘状态)GetPossibleBoard创建的所有可能棋盘状态。 我的AI通过最初调用alphaBeta,将其传递到当前的板状态