Alpha-Beta剪枝算法原理

article/2025/9/28 23:54:05

1. 前言

前文:极小化极大(Minimax)算法原理
极小化极大算法在完全信息零和博弈中,基于己方努力使得在N步后优势最大化(即评估函数输出值最大化)和对方努力使得N步后己方优势最小化这两个出发点,构建决策树。在决策树上通过这两个出发点的内在逻辑进行搜索,最后给出行动策略。
显然,极小化极大算法需要展开整个决策树,对于局面复杂的问题,其搜索空间将会非常大。
同时,我们可以清晰地看到有部分节点是否被搜索不会影响最后的结果,因此,无需展开此类节点以及计算此类节点的子节点的估值。
通过上述方法,可节省算法的搜索时间。这种不展开搜索不必要节点的算法,被称为——Alpha-Beta剪枝算法。

2. 算法原理

Alpha-Beta剪枝算法可加速极小化极大算法的搜索过程。在构建和搜索决策树时,每个节点除存储局面估值之外,还存储可能取值的上下界。下界即为Alpha值,上界即为Beta值。

2.1 Alpha剪枝

如图1所示,在对max节点的子节点进行搜索时,子节点是否需要进一步展开搜索受到其兄弟节点值的影响。
在这里插入图片描述

图1中每个矩形节点为max节点,圆形节点为min节点。节点b的minimax值为3,节点d的minimax值为8,节点e的minimax值为2。因为节点c为一个min节点,其minimax值为其所有子节点minimax值中的最小值。又因为节点a为max节点,其minimax值为其所有子节点minimax值中的最大值。因此,当搜索到节点c的子节点e时,节点c的其余子节点不用展开搜索。
节点e的minimax值为2,节点c为min节点,因此节点c的minimax值必然小于或等于2。又因为节点a为max节点,且其子节点b的minimax值为3,因此节点a的minimax值必然大于或等于3。
反过来考虑:若按照极小化极大算法逻辑,将节点c的子节点全部展开搜索完毕,节点c的minimax值必然不会大于2。又因为节点b的minimax值为3,因此不论搜索完毕后节点c的minimax值取任何不大于2的值,均不会影响节点a的minimax值。最终不会影响决策树根节点的minimax值和相应的行动策略。

2.2 Beta剪枝

如图2所示,在对min节点的子节点进行搜索时,子节点是否需要进一步展开搜索也受到其兄弟节点值的影响。
在这里插入图片描述

图2中每个矩形节点为max节点,圆形节点为min节点。节点b的minimax值为4,节点d的minimax值为8。因为节点c为一个max节点,其minimax值为其所有子节点minimax值中的最大值。又因为节点a为min节点,其minimax值为其所有子节点minimax值中的最小值。因此,当搜索到节点c的子节点d时,节点c的其余子节点不用展开搜索。
节点d的minimax值为8,节点c为max节点,因此节点c的minimax值必然大于或等于8。又因为节点a为min节点,且其子节点b的minimax值为4,因此节点a的minimax值必然小于或等于4。
反过来考虑:若按照极小化极大算法逻辑,将节点c的子节点全部展开搜索完毕,节点c的minimax值必然不会小于8。又因为节点b的minimax值为4,因此不论搜索完毕后节点c的minimax值取任何不小于8的值,均不会影响节点a的minimax值。最终不会影响决策树根节点的minimax值和相应的行动策略。

3. 算法过程

根据上述原理,Alpha-Beta剪枝算法过程可描述如下:

  1. 开始构建决策树;
  2. 将估值函数应用于叶子节点;
  3. 使用深度优先搜索顺序构建和搜索决策树,传递并更新 α 、 β 、 节 点 m i n i m a x 值 \alpha、\beta、节点minimax值 αβminimax

max结点更新α值(下限),Min结点更新β值(上限)。

  1. 从根结点选择评估值最大的分支,作为行动策略。

3.1 算法过程图解

图3
图4
图5
图6
图7


http://chatgpt.dhexx.cn/article/Wp9iMt8x.shtml

相关文章

GRNN广义回归神经网络

广义回归神经网络 GRNN (General Regression Neural Network) 广义回归神经网络是基于径向基函数神经网络的一种改进。 结构分析: 可以看出,这个结构与之前我们所讲过的径向基神经网络非常相似,区别就在于多了一层加和…

m分别使用BP神经网络和GRNN网络进行时间序列预测matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归&#xff…

广义回归神经网络(GRNN)

广义回归神经网络(GRNN) 一、GRNN神经网络概述 二、GRNN神经网络理论基础(如果对理论不感兴趣可直接看GRNN网络结构,网络结构理解更直观) 三、GRNN的网络结构 注意:一定要理解第三个求和层的概念&#xff0…

【GRNN情绪识别】基于GRNN神经网络的情绪识别算法matlab仿真

1.软件版本 matlab2021a 2.本算法理论知识 GRNN,即General Regression Neural Network,中文全称为广义回归神经网络,是由The Lockheed Palo Alto研究实验室在1991年提出的。GRNN是一种新型的基于非线性回归理论的神经网络模型[43,44]。GRN…

m基于C3D-hog-GRNN广义回归神经网络模型的人员异常行为识别算法的matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 实时的人群异常行为识别是一项极具挑战的工作,具有较高的现实意义和社会需求,快速准确地判断出异常行为并及时预警,一直是我们探索的方向。传统的机器学习算法…

基于BP神经网络/GRNN神经网络的电力预测matlab仿真

目录 一、理论基础 二、案例背景 三、MATLAB程序 四、仿真结论分析 一、理论基础 BP神经网络,即Back Propagation神经网络,其本质是一种基于误差反馈传播的神经网络算法。从结构上讲,BP神经网络是由一个信息的正向传播网络和一个误差的反…

RNN CNN GCN

RNN CNN GCN 属于深度学习领域——图像识别 主要用于识别提取图像的特征 CNN:对象是图片,一个二维结构,其主要核心是有一个kernel小窗口,用于图片的平移,然后再利用卷积来提取图片的特征。 RNN:针对一维结构,主要利用…

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 -附代码

基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测 文章目录 基于麻雀搜索算法优化的广义回归神经网络(GRNN)预测1.GRNN 神经网络概述2.GRNN 的网络结构3.GRNN的理论基础4.运输系统货运量预测相关背景5.模型建立6.麻雀搜索算法优化GRNN7.实验结果8.参考文献9.Matlab代码 摘要&…

广义回归神经网络(GRNN)的数据预测

广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归,样本数据少时,预测效果很好, 网络还可以处理不稳定数…

神经网络(一):GRNN广义回归神经网络理论概念笔记

GRNN广义回归神经网络以及相关概念 https://blog.csdn.net/zengxiantao1994/article/details/72787849 https://blog.csdn.net/guoyunlei/article/details/76101899参考博客 小小白入坑系列,欢迎大佬的指教! 算法网上铺天盖地的,我只是把自己对算法的理…

【GRNN回归预测】基于matlab有限增量进化广义回归神经网络LIEV-GRNN数据回归预测【含Matlab源码 2132期】

⛄一、GRNN模型 GRNN是一种非线性回归的前馈式神经网络。通常是由输入层、模式层、求和层和输出层构成。GRNN算法在运算速度与学习能力上比径向基函数神经网络(radial basis function, RBF)、反向传播神经网络(back propagation, BP)更强,广泛应用于系统辨识、预测…

神经网络学习笔记(二)GRNN广义回归神经网络

广义回归神经网络(GRNN) 广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归,样本数据少时,预测…

GRNN神经网络概述

GRNN,General Regression Neural Network,即广义回归神经网络,最早是由美国的Donald F.Specht教授于1991年提出的基于非线性的回归理论的人工神经网络模型[47,48]。GRNN广义回归神经网络具有较好的网络适应能力,从而使得神经网络能…

广义回归神经网络GRNN回归预测-MATLAB代码实现

一、GRNN简介 广义回归神经网络(General Regression Neural Network, GRNN)是1991年提出的基于径向基函数(Radial Basis Fuction,RBF)网络的一种改进形式,与径向基函数网络相比,其训练更为方便…

广义回归神经网络(GRNN)的实现(Python,附源码及数据集)

文章目录 一、理论基础1、广义回归神经网络结构2、输入层3、模式层4、求和层5、输出层6、优化思路 二、广义回归神经网络的实现1、实现过程(GRNN.py)2、预测结果3、参考源码及实验数据集 一、理论基础 广义回归神经网络(Generalized Regress…

【机器学习】广义回归神经网络(GRNN)的python实现

【机器学习】广义回归神经网络(GRNN)的python实现 一、广义回归神经网络原理1.1、GRNN与PNN的关系2.2、GRNN的网络结构二、广义回归神经网络的优点与不足2.1、优点2.2、不足三、GRNN的python实现参考资料一、广义回归神经网络原理 1.1、GRNN与PNN的关系 广义回归神经网络(…

C++ Unique函数 详细

unique函数是STL中比较实用的函数之一 包含该函数的函数头文件为 #include <algorithm>2 unique函数可以删除有序数组中的重复元素。 注意&#xff1a; a 这里的删除不是真的delete&#xff0c;而是将重复的元素放到容器末尾 b unique函数的返回值是去重之后的尾地址 c…

c++的unique函数

unique是 c标准模板库STL中十分实用的函数之一&#xff0c;使用此函数需要 #include <algorithm> 该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素&#xff0c;注意 (1) 这里的去除并非真正意义的erase&#xff0c;而是将重复的元素放到容器的末尾&…

SQL查询JSON格式的字段值 JSON_UNQUOTE与JSON_EXTRACT 去除SQL中双引号

一、最常用的就是 JSON_EXTRACT()函数&#xff0c;用于提取字段值 selectJSON_EXTRACT(a.info,"$.Score")fromjsontest awhereJSON_EXTRACT(a.info,"$.name") "Bob" 二、JSON_UNQUOTE 去除 SQL 中 " " ? MySQL自5.7之后开始支持js…

unique函数的用法

unique函数是用于将矩阵数据中的相同元素删除&#xff0c;只留下不相同的唯一元素。 1.例如: 得到的B矩阵为&#xff1a; 这个相对简单&#xff0c;但是有时需要将矩阵中的元素相同行的删除&#xff0c;也可以用到unique 2.当需要删除矩阵中的出现多次的行数组时 例如&#x…