【问题标题】:Is it necessary to create a tree for the alpha-beta pruning algorithm?是否需要为 alpha-beta 剪枝算法创建树?
【发布时间】:2023-09-27 19:55:01
【问题描述】:

我已经在网络上看到了 minimax 和 alpha-beta 修剪算法的实现。这些实现使用数组而不是树结构来生成可能的游戏动作。

是否有必要为这些算法创建一棵树,使用带有节点的结构?为什么要使用数组来存储博弈树?

【问题讨论】:

    标签: tree artificial-intelligence minimax alpha-beta-pruning


    【解决方案1】:

    对于 alpha-beta / minimax 和其他相关算法,不需要显式创建树 / 将其存储在内存中。您通过递归函数调用隐式“遍历”一棵树,但从不显式创建一棵树,也不需要在此类“树”的任何节点中存储任何数据。

    给定一个游戏状态,您只需要一个临时的数据结构来包含该状态的合法移动或后续游戏状态;数组/列表之类的东西是最明显的数据结构。您只需要暂时使用它,这样您就可以遍历它并运行您的递归函数调用,然后您可以再次将它们扔掉。您永远不必存储完整的树。

    【讨论】: