如何区分左到右与右到左的alpha-beta剪枝及剪枝节点判断
Alpha-Beta剪枝问题解答
- 左到右alpha-beta剪枝中,节点K会因
alpha >= beta被剪枝,你的判断是正确的。
左到右遍历逻辑下,根节点(Max层)拿到左侧Min节点A的返回值3后,alpha更新为3。遍历到中间Min节点B时,首个子节点F的返回值为1,B作为Min层节点将自身beta更新为1,此时根传入的alpha=3 >= beta=1,触发剪枝条件,B的剩余子节点G、K都无需访问,K会被剪枝。 - 右到左alpha-beta剪枝中,仅节点H、M、O会被剪枝的判断是错误的。
右到左遍历逻辑下,M、O两个节点都会被完整访问,不会被剪枝。实际触发剪枝的环节为:根节点拿到右侧Min节点C的返回值4后,alpha更新为4;遍历到中间Min节点B时,首个访问的子节点K返回值为0,B的beta更新为0,此时alpha=4 >= beta=0,触发剪枝,B的剩余子节点G、F以及G的子节点H、I都会被剪枝,除此之外L节点的左侧叶子节点也会被剪枝,被剪的节点远不止H一个,也不包含M、O。
内容的提问来源于stack exchange,提问作者Jtang11
相关产品推荐
相关产品推荐

