α-β剪枝算法学习寄(蒟蒻向,巨佬勿入)

article/2025/9/28 22:11:07

 由于做某题时暴力分出来很低,但某巨佬告诉我α-β剪枝很好用于是本屑踏上了征途。作为一只屑屑在学习这个算法时到处看各种blog,于是乎被上界下界决策等一众本屑看不懂的词汇弄得晕头转向,这篇blog就用本屑的语言梳理一下α-β剪枝算法捏。

首先放一只定义:

Alpha-beta剪枝是一种搜索算法,用以减少极小化极大算法(Minimax算法)搜索树的节点数。这是一种对抗性搜索算法,主要应用于机器游玩的二人游戏(如井字棋象棋围棋)。当算法评估出某策略的后续走法比之前策略的还差时,就会停止计算该策略的后续发展。该算法和极suan所得结论相同,但剪去了不影响最终决定的分枝。

 简单点来说就是,双方轮流做选择,都想让自己得到最优结果,当一方发现自己做出某个决定后对方可能做出让自己的结果比当前最差结果更差的选择,这一方就会放弃这个选择。

貌似还是有点绕,举个栗子:

A,B两个特别聪明的人在van游戏,他们的面前有两组数,第一组中有一个3和一个5,第二组中有一个2和一个x,A希望得到尽可能大的数,B希望A得到尽可能小的数。A选择一组数,B选择一个数给A,由于B很聪明,他一定会选择较小的一个数给A,那么当A选择第一组,他可以得到3(当前最差结果);当他选择第二组(另一选择),可以在x>2时得到2,在x<2时得到更小的某个数x(更差结果),显然这个时候A不需要知道x是多少,无论如何都不会选择牌组2(放弃选择)。

拓展一下,假设他们有了很多组数,每组有很多个数,这些组又组成了新的组,新的组也组成了组,以此类推,最后我们会发现它们可以组成一颗树,定义这棵树的节点表示当前选择A最后能得到的数。

那么在这里引入一些定义:

MAX层:MAX层中的节点会尽可能做使答案更优的选择,即A可能做选择的位置

MIN层:MAX层中的节点会尽可能做使答案更劣的选择,即B可能做选择的位置

MAX层与MIN层一定交替出现

如下图

 在α-β剪枝算法中,对于除叶子节点外的每个节点(因为叶子节点值固定)定义一个最小上界β表示选择该节点可能得到的最大值,一个最大下界α表示选择该节点可能得到的最小值;假设两个叶节点3,4在MIN层,他们的父节点在MAX层,那么父节点一定会选择一个大于等于4的值,故该节点的α为4;同理假设两个叶节点3,4在MAX层,他们的父节点在MIN层,那么父节点一定会选择一个小于等于3的值,故该节点的β为3。

那么可以得到:

对于MAX层,α=该节点所有子节点的最大值,β=其父节点的β

对于MIN层,α=其父节点的α,β=该节点所有子节点的最小值

当α>=β时放弃该节点(这个想不明白的可以重新看看前面的栗子捏)

想看具体模拟过程的小朋友可以看看Alpha-Beta 剪枝 - OI Wiki

代码就不挂了我自己题还没写出来(

最后用朴素minmax过了,不知道为什么加完α-β过不了(


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

相关文章

alpha-beta剪枝算法原理(附代码)

alpha-beta剪枝算法原理 背景Max-Min算法alpha-beta剪枝代码 背景 由于笔者最近要写人工智能课的大作业&#xff0c;所以这两天在学习博弈论相关的知识&#xff0c;但网上对alpha-beta剪枝的原理讲的都不是很清晰&#xff0c;很多细节都忽略了&#xff0c;让初学者会有一种脑子…

人工智能之AlphaBeta剪枝算法

任务描述 本关任务&#xff1a;学习人工智能博弈算法中的 AlphaBeta 剪枝技巧&#xff0c;并基于 MinMax 算法编程实现如下图博弈树最优值问题的求解。 博弈树的输入形式为字符串&#xff1a;[A, [B, (E, 3), (F, 12), (G, 8)], [C, (H, 2), (I, 4), (J, 6)], [D, (K, 14), (…

α-β剪枝算法

在写之前首先感谢&#xff1a;https://blog.csdn.net/wenjianmuran/article/details/90633418 这里主要介绍minmax算法和α-β剪枝,相当于对一下文章的翻译&#xff1a; α-β剪枝 Minmax算法 正文&#xff1a; 看了很多关于α-β剪枝算法&#xff0c;大致明白了其中的含义…

α-β剪枝算法简单原理说明

看了一大堆文章实在看不懂&#xff0c;看视频也看不懂&#xff0c;但是看着看着突然顿悟了。这篇文章只讲大概的原理&#xff0c;不讲具体过程。 好了既然会搜这个算法&#xff0c;想必已经知道最大值最小值算法了&#xff08;不知道就去搜吧&#xff09;。这里直接讲例子。 …

alpha-beta剪枝算法

实验报告 alpha-beta剪枝算法 姓名&#xff1a;张楚明 学号&#xff1a;18342125 日期&#xff1a;2021.01.15 摘要 本实验将搜索深度为4的Alpha-Beta剪枝算法应用于中国象棋中黑方走棋&#xff0c;实现了中国象棋的人机博弈。博弈过程中综合考虑了棋力、对敌方棋子的攻击力、…

透析极大极小搜索算法和α-β剪枝算法(有案例和完整代码)

文章目录 前言minimax算法完整代码算法思想代码实现算法优化 α-β剪枝算法完整代码算法思想代码实现算法对比更多案例 结语 前言 先做了一版五子棋的小项目&#xff0c;后面又做了一个功能更强大的中国象棋的项目&#xff0c;但是始终都没有实现一版“智能”AI。 明知道这类博…

决策树后剪枝算法(二)错误率降低剪枝REP

​  ​​ ​决策树后剪枝算法&#xff08;一&#xff09;代价复杂度剪枝CPP  ​​ ​决策树后剪枝算法&#xff08;二&#xff09;错误率降低剪枝REP  ​​ ​决策树后剪枝算法&#xff08;三&#xff09;悲观错误剪枝PEP  ​​ ​决策树后剪枝算法&#xff08;四&…

C++实现的基于αβ剪枝算法五子棋设计

资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85883881 资源下载地址&#xff1a;https://download.csdn.net/download/sheziqiong/85883881 基于αβ剪枝算法的五子棋 五子棋介绍 简介&#xff1a; 五子棋是世界智力运动会竞技项目之一&#x…

决策树后剪枝算法(四)最小错误剪枝MEP

​  ​​ ​决策树后剪枝算法&#xff08;一&#xff09;代价复杂度剪枝CPP  ​​ ​决策树后剪枝算法&#xff08;二&#xff09;错误率降低剪枝REP  ​​ ​决策树后剪枝算法&#xff08;三&#xff09;悲观错误剪枝PEP  ​​ ​决策树后剪枝算法&#xff08;四&…

计算机博弈 基础算法 阿尔法-贝塔剪枝算法 α-β剪枝算法

计算机博弈大赛中 α-β剪枝算法剪枝算法是极大极小算法的一种优化&#xff0c;可以更快的搜索博弈树 预备知识&#xff1a; 广度优先搜索(BFS) 深度优先搜索(DFS) 极大极小算法(MaxMin算法) 介绍 剪枝算法来源于极大极小算法&#xff0c;在博弈树分枝过多时可以使用这个方法…

卷积神经网络通道剪枝算法小结

一、剪枝分类 目前常见的模型剪枝算法主要分成两类&#xff0c;即非结构化剪枝与结构化剪枝&#xff1b;在不少的神经网络加速器中已经应用了这些剪枝算法&#xff0c;早期常见的是非结构化剪枝&#xff0c;例如MIT的韩松组的前几年的相关工作中就有此类应用&#xff0c;但是在…

最大最小法及α-β剪枝算法图解

&#xff08;网上讲的都不是很好理解&#xff0c;贡献一下之前听慕课做的笔记&#xff0c;适合初学者比较简洁明了。&#xff09; 要想理解α-β剪枝算法&#xff0c;必须从最大最小法的博弈问题讲起&#xff01;注意不懂的同学不要跳过这一节。 最大最小法 场景&#xff1a;…

剪枝算法实现一字棋-C++

博弈树 alpha & beta剪枝算法实现一字棋 剪枝算法首先就是要理解&#xff0c;把这个算法彻底弄清楚&#xff0c;我觉得这是一件非常有意义的事情&#xff01;为后续书写其它棋类的AI打下了坚实的基础 剪枝操作的实现&#xff0c;遍历下一步所有可能取到的点&#xff0c;…

模型压缩:剪枝算法

过参数化主要是指在训练阶段&#xff0c;在数学上需要进行大量的微分求解&#xff0c;去捕抓数据中的微小变化信息&#xff0c;一旦完成迭代式的训练之后&#xff0c;网络模型推理的时候就不需要这么多参数。而剪枝算法正是基于过参数化的理论基础而提出的。 剪枝算法核心思想…

人工智能算法模型--Alpha-Beta剪枝算法学习笔记

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; (*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &a…

理解Alpha-Beta 剪枝算法

Alpha-beta剪枝是一种搜索算法&#xff0c;用以减少极小化极大算法&#xff08;Minimax算法&#xff09;搜索树的节点数。裁剪搜索树中没有意义的不需要搜索的树枝&#xff0c;提高运算速度。 搜索中传递两个值。 第一个值是Alpha&#xff0c;即搜索到的最好值&#xff0c;任何…

组合总和(剪枝算法)

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

Alpha-Beta剪枝算法原理

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

GRNN广义回归神经网络

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

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

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