理解Alpha-Beta 剪枝算法

article/2025/9/28 23:40:45

Alpha-beta剪枝是一种搜索算法,用以减少极小化极大算法(Minimax算法)搜索树的节点数。裁剪搜索树中没有意义的不需要搜索的树枝,提高运算速度。

搜索中传递两个值。
第一个值是Alpha,即搜索到的最好值,任何比它更小的值就没用了。(本方最少要得到的值)
第二个值是Beta,即对于对手来说最坏的值。(对方最多能给的值)

下面通过一个例子来说明Alpha-Beta剪枝算法。

在这里插入图片描述

上图为整颗搜索树。这里使用极小极大算法配合Alpha-Beta剪枝算法,正方形为自己(A),圆为对手(B)。

初始设置α为负无穷大,β为正无穷大。

在这里插入图片描述
对于B(第四层)而已,尽量使得A获利最小,因此当遇到使得A获利更小的情况,则需要修改β。这里3小于正无穷大,所以β修改为3。在这里插入图片描述
(第四层)这里17大于3,不用修改β。
在这里插入图片描述
对于A(第三层)而言,自己获利越大越好,因此遇到利益值大于α的时候,需要α进行修改,这里3大于负无穷大,所以α修改为3。
在这里插入图片描述
B(第四层)拥有一个方案使得A获利只有2,α=3, β=2, α > β, 说明A(第三层)只要选择第二个方案, 则B必然可以使得A的获利少于A(第三层)的第一个方案。

这样就不再需要考虑B(第四层)的其他候选方案了,因为A(第三层)根本不会选取第二个方案,多考虑也是浪费。

在这里插入图片描述
根据第三层A的3,修改第二层B的β值。

B(第二层)要使得A利益最小,则B(第二层)的第二个方案不能使得A的获利大于β, 也就是3. 但是若B(第二层)选择第二个方案, A(第三层)可以选择第一个方案使得A获利为15, α=15, β=3, α > β, 故不需要再考虑A(第三层)的第二个方案, 因为B(第二层)不会选择第二个方案。

在这里插入图片描述
当A(第三层)考虑第二个方案时,发现获得利益为3,和A(第一层)使用第一个方案利益一样。

如果根据上面的分析A(第一层)优先选择了第一个方案,那么B不再需要考虑第二种方案,如果A(第一层)还想进一步评估两个方案的优劣的话, B(第二层)则还需要考虑第二个方案。

若B(第二层)的第二个方案使得A获利小于3,则A(第一层)只能选择第一个方案,若B(第二层)的第二个方案使得A获利大于3,则A(第一层)还需要根据其他因素来考虑最终选取哪种方案。


α裁剪 与 β裁剪
在这里插入图片描述


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

相关文章

组合总和(剪枝算法)

组合总和(剪枝算法) 题目 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取 示例 示例 1:输入: candidates [2,…

Alpha-Beta剪枝算法原理

1. 前言 前文:极小化极大(Minimax)算法原理 极小化极大算法在完全信息零和博弈中,基于己方努力使得在N步后优势最大化(即评估函数输出值最大化)和对方努力使得N步后己方优势最小化这两个出发点&#xff0c…

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;而是将重复的元素放到容器的末尾&…