minimax中根节点是什么?

minimax中根节点是什么?
收藏者
0
被浏览
842

3 个回答

danssion LV

发表于 昨天 22:23

在 Minimax(极小化极大算法)里,根节点就是整棵“博弈树”最顶端的那个节点。

通俗地说,根节点就是“现在这个局面”。比如下棋时,轮到 AI 或你思考了,当前棋盘长什么样,这个局面就是根节点。它不是整盘棋最开始的开局,除非你正好从开局开始搜索;更多时候,它是“这一次我要做决定时”的起点。

根节点有几个特点:

1. 它是搜索开始的地方,上面没有父节点。
2. 它通常代表当前玩家要行动的局面。
3. 如果当前玩家想让自己得分最高,那么根节点通常就是 MAX 节点。
4. 从根节点往下分叉,每一支代表一种可能的走法。
5. 再往下,是对手的回应、你的再回应,直到某个结束局面或搜索深度。
6. Minimax 会从这些底层节点算出分数,再一层层往上回传,最后告诉根节点:“当前局面下,走哪一步最好。”

举个例子,玩井字棋时,轮到你下棋,当前棋盘就是根节点。你想把棋子放在哪里,就会产生几个子节点。然后对手可能怎么下,又会产生下一层节点。Minimax 就是从你这个“当前局面”出发,推演后面各种可能,最后帮你选一个最稳的走法。

所以,一句话总结:Minimax 中的根节点,就是本次搜索的起点局面,通常也是当前玩家要做决策的那个局面。

lbeminy LV

发表于 昨天 21:09

在 Minimax 算法中,根节点是博弈树的起始节点,表示当前需要做出决策的局面,以及当前轮到行动的玩家。算法从根节点开始,递归搜索所有可能的走法,直到终止状态或达到搜索深度,再通过回溯得到最优评估值。通常,如果根节点轮到己方行动,它就是 MAX 节点;如果轮到对手行动,它就是 MIN 节点。根节点最终对应的最优子节点,就是当前局面下应选择的最佳走法。

其乐无穷 LV

发表于 昨天 20:02

在 minimax 算法中,根节点是博弈树的搜索起点,也是当前需要作出决策的那个局面。它通常不是由其他节点通过某一步动作到达的,而是算法被调用时人为指定的入口。如果从整局游戏的最初状态开始分析,那么根节点就是初始局面;如果是在游戏进行中为当前玩家选择下一步,那么根节点就是当前棋盘、当前分数、当前轮到谁行动等信息的集合。因此,根节点不是固定不变的,每做一次决策,都可以把当前局面重新设为根节点,再从它向下展开搜索。

根节点对应轮到谁行动,这一点很关键。标准 minimax 常假设根节点是 Max 节点,也就是轮到希望最大化收益的玩家,但这不是必然规定。如果当前轮到 Min 玩家,根节点也可以是 Min 节点。此时根节点的取值规则会改变。若根为 Max,它的值等于所有子节点值的最大值;若根为 Min,它的值等于所有子节点值的最小值。根节点的子节点,就是当前玩家采取各个合法动作后到达的局面,通常轮到对手行动。继续往下递归,Max 层和 Min 层交替出现,直到叶节点返回评估值,再把值逐层回传到根节点。

根节点在算法中有几个特殊之处。第一,它是递归调用的入口。函数一般从根节点开始,如果是 Max 节点,就把初始最佳值设为负无穷,然后遍历每个子节点;如果是 Min 节点,就把初始最佳值设为正无穷。第二,根节点没有父节点,也没有上一层的玩家来替它选择。普通内部节点只需要把最优值返回给父节点,父节点会根据自己是 Max 还是 Min 决定取最大或最小。根节点则不同,它除了要得到整个搜索的 minimax 值,还常常要输出实际应该走的那一步。也就是说,根节点在比较子节点返回值时,必须记住哪个子节点产生了最优值,那个子节点对应的动作就是当前玩家的最佳移动。第三,根节点的深度通常记为 0,它的直接子节点深度为 1,再往下深度递增。搜索深度限制也常从根节点算起。Alphabeta 剪枝时,初始的 alpha 为负无穷,beta 为正无穷,搜索从根节点展开,根节点的所有子节点一般都要考察,直到某些剪枝在其下层发生。根节点本身不会被剪掉,因为它就是决策的最终比较层。

如果根节点已经是终止状态,例如游戏已经结束或没有合法动作,那么不需要继续展开子节点,直接返回该状态的效用值即可。如果根节点有多个合法动作,则它会展开多个子节点;如果只有一个合法动作,算法也会返回这个动作对应的结果。根节点

您需要登录后才可以回帖 登录 | 立即注册