alpha-beta-pruning

    0热度

    1回答

    您好首先我的英语水平非常好,所以有些事情是不可理解的。我为tic-tac-toe编写了一个MinMax算法,它工作得很好。所以我尝试着使用MinMax四种连接算法,可惜它不能像我想要的那样工作。然后我在谷歌上找到Alpha beta MinMax,当我终于明白它的时候,我试了一下,但这是一场灾难。这里是我的MinMax我为4连接做了什么,有人可以给我一个建议,我如何实现alpha和beta? pr

    2热度

    1回答

    我一直在工作了一段时间,人工智能问题,并在这个星期我已经尝试编码AI连接4与Python。首先我有复制板的问题,但我想在Python中你需要使用deepcopy来避免复制错误 最后,我设法创建了alpha-beta修剪算法,它工作正常,但后来我测试了我的算法深度8对在线alpha-beta修剪算法深入6,令人惊讶的是我的算法丢失了,我用harvard的教师创建了评估函数,并且从msavenski的

    0热度

    1回答

    这是一个有关平行国际象棋搜索的shared hashtable algorithm的概念性问题。 我已经实现了一个产生4个线程的alpha-beta搜索,每个线程都进行搜索并返回最佳移动/评估。但是,我正在观察搜索不稳定性,其中线程返回不同的结果。我正在使用链接中描述的无锁散列表,所以有些条目可能会被覆盖或损坏,尽管损坏的数据永远不会被实际使用。 为什么搜索线程可能返回不同的结果?这是并行搜索的预

    1热度

    1回答

    我决定创建一个带有11x11棋盘的Tic Tac Toe游戏,胜利条件是连续(垂直,水平或对角)5格X或O或当棋盘满,即没有可能的移动。 我创建了一个AI对手,它使用minimax算法找到棋盘上的最佳棋步。极大极小(具有α-β修剪)的伪代码如下: function alphabeta(node, depth, α, β, maximizingPlayer) if the game end

    2热度

    1回答

    我对如何实施MCTS“树策略”有点困惑。我读过的每篇论文或文章都会谈到从目前的游戏状态(在MCTS teminology中:玩家即将采取行动的根源)进入树状结构。我的问题是我如何选择最好的孩子,即使我在MIN玩家级别(假设我是MAX玩家)。即使我选择MIN可能采取的一些特定动作,并且我的搜索树在该节点中的深度也会更大,但MIN玩家在选择其他节点时可能会选择不同的节点(如果min玩家是业余人员,以及

    1热度

    2回答

    对不起,图片直接从我的笔记。 我一直在读了极小的树木和alpha数据修剪的最后一天,在我的项目准备了一下。这是c中的奥赛罗的实现。 我看过吨左右,它的资源,我知道它被问了很多。 在我开始评估功能之前,我想充分理解这一点。 在附图中,我无法弄清楚功能Min_Node(pos)和Max_Node(pos)会做什么,任何输入将不胜感激。 如果任何人有我应该去寻找实现这个和奥赛罗对我的评价功能,当任何提示

    0热度

    1回答

    我成功地实现了一个负面的游戏引擎,它运行良好,但具有确定性。这意味着我可以一遍又一遍地重放同一游戏,因为对于给定的位置,游戏引擎每次都会产生相同的最佳移动。这在我的例子中是不需要的,因为我想在编码锦标赛和确定性行为方面与我的算法竞争,对手可以很容易地编写通过对我的程序重播一系列获胜动作而获胜的程序。 我的问题是,使它不那么确定的最有效和最优雅的方法是什么?我可以为我的位置评估添加随机偏移量,但恐怕

    1热度

    1回答

    我想在python中写一个国际象棋引擎,我可以找到给定位置的最佳举动,但我努力从该位置收集主要变化,以下是我所到目前为止已经试过: def alphabeta(board, alpha, beta, depth, pvtable): if depth == 0: return evaluate.eval(board) for move in board.lega

    0热度

    1回答

    我正在为2048开发一个AI,并且即将应用minimax算法。 但是,2048的搜索树实际上就像一个没有Min角色的Expectiminimax树。我想知道我是否没有Min角色,如何在实践中应用alpha-beta修剪? 如果我不应用alpha-beta修剪在这种情况下,我怎么能减少无用的搜索分支? 任何想法将不胜感激。谢谢。

    1热度

    2回答

    我正在编写一个程序来播放点和框,并且我想通过在迭代深化方案中基于它们的启发式值来订购我在alphaBeta中考虑的动作来提高我的时间效率。本质上,我想进入搜索树,每次迭代增加深度,并用alphaBeta评估每个节点。在每次连续迭代中,我认为节点的顺序将由先前迭代中的节点的启发式值决定。但是,我无法理解这将如何实施。有人可以提供一个标准alphaBeta程序如何使用迭代加深进行搜索的伪代码?谢谢!