首页 > 其他分享 >Alpha-Beta 剪枝

Alpha-Beta 剪枝

时间:2024-09-06 19:03:35浏览次数:7  
标签:剪枝 int max beta son Beta alpha Alpha alph

有一个简单的博弈问题:

现在有一颗 \(n\) 个点的树,每次询问后给出一个点连接的所有子节点。

Alice 和 Bob 在树上博弈。

Alice 和 Bob 每次可以将点向下移动一格。

如果到了叶子节点,便不再移动,交互库给出叶子权值。

Alice 希望选的数最大,Bob 反之。

求:到达的数最后是多少?

显然有 \(\mathcal O(n)\) 做法:

\[f(i,0) = \max_{v\in son_i} f(v,1) \]

\[f(i,1) = \min_{v\in son_i} f(v,0) \]

但是我们询问次数想要尽可能小。

若我们搜索到了一个点。

我们维护两个变量 \(\alpha,\beta\)。

\(\alpha\) 表示现在可以至少取到 \(\alpha\)。

\(\beta\) 表示现在走到该子树内可以取到的最大值。

最后 \(\alpha \ge \beta\) 时直接退出即可,因为显然不优。

int alpha_beta(int u, int alph, int beta, bool is_max) {
  if (!son_num[u]) return val[u];
  if (is_max) {
    for (int i = 0; i < son_num[u]; ++i) {
      int d = son[u][i];
      alph = max(alph, alpha_beta(d, alph, beta, is_max ^ 1));
      if (alph >= beta) break;
    }
    return alph;
  } else {
    for (int i = 0; i < son_num[u]; ++i) {
      int d = son[u][i];
      beta = min(beta, alpha_beta(d, alph, beta, is_max ^ 1));
      if (alph >= beta) break;
    }
    return beta;
  }
}

引用了 oi-wiki 上的代码。

标签:剪枝,int,max,beta,son,Beta,alpha,Alpha,alph
From: https://www.cnblogs.com/WhisperingWillow/p/18400827

相关文章

  • DFS算法专题(一)——二叉树中的深搜【回溯与剪枝的初步注入】
    目录1、DFS算法简介2、算法实战应用【leetcode】2.1计算布尔二叉树的值2.1.1算法原理 2.1.2算法代码2.2求根节点到叶节点数字之和  2.2.1算法原理​2.2.2算法代码2.3二叉树剪枝2.3.1算法原理2.3.2算法代码2.4验证二叉搜索树 2.4.1算法原理 2.4.2......
  • 软件开发过程中 Alpha、Beta、RC、Stable 版本都有什么区别?
    在传统软件开发过程中,软件版本周期可分为三个阶段,分别是:α、β、λ。Alpha(α):内部测试版。这个是最早的版本,这个版本包含很多BUG功能也不全,主要是给开发人员和测试人员测试和找BUG用的。Beta(β):公开测试版。这个版本比Alpha版发布得晚一些,主要是给社区用户和忠实用户测......
  • NetSarang Xshell 8.0 beta
    一、概述 NetSarangXshell8.0beta发布啦!二、新功能2.1身份验证配置文件 2.2触发器2.3快速命令 2.4RDP支持 2.5快速启动 2.6自定义会话图标  三、下载地址xshell8:https://url89.ctfile.com/d/31504589-62661406-731eec?p=3997(访问密码:3997......
  • Windows平台体验StableSwarmUI-0.6.4-Beta经验版
    目录StableSwarmUIinstall经验版StableSwarmUI配置后端StableSwarmUI快捷安装脚本StableSwarmUI安装与启动sd_xl_base_1.0模型获取由于网络原因,国内获取ComfyUI以及SD_Xl_base_1.0模型可能非常缓慢。想要丝滑获取,需要魔法或者高效上网。如果没有条件,也有方法,可以从......
  • 正点原子ALPHA开发板使用4.3寸触摸屏LCD驱动实验显示不正常
    显示问题裸机开发时,驱动教程的PDF里给了4.3寸LCD屏幕的设置参数。如下图所示:但是按照这个设置,编写设备树dts文件,下载到开发板里,却出现了显示异常,具体来说就是帧率不对,图和字都是歪斜的,像果冻一样左右摇晃。但是,通过实验发现,在dts文件里将屏幕频率超频设置(大于上图的31MHz,我按照......
  • 苹果 iOS / iPadOS 18 beta8和iOS / iPadOS 18.1 beta3版本更新
    苹果今日向iPhone和iPad用户推送了 iOS/iPadOS18开发者预览版Beta8 更新(内部版本号:22A5350a)和iOS/iPadOS18.1开发者预览版Beta3 更新(内部版本号:22B5034e),本次更新距离上次发布Beta/RC间隔8天。此次更新的iOS18Beta8已无限接近正式版,更新文件并未提到......
  • 英伟达玩转剪枝、蒸馏:把Llama 3.1 8B参数减半,性能同尺寸更强
    前言 小模型崛起了。欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。本文转载自机器之心仅用于学术分享,若侵权请联系删除CV方向的准研究生们,未来三年如何度过?招聘高光谱图像、语义分割、diffusion等方向论文指导老师上个月......
  • SciTech-BigDataAIML-CV+CG-Digital Image/Signal Processing- RGB图片转换成 RGBA格
    RGBA与RGBRGB是Color(颜色)数值化为R(红色)、G(绿色)、B(蓝色)**三Channel(分量),每分量数值的取值范围为0-255。通过组合这三个ColorChannel(颜色分量)的不同数值,可以得到各种各样的颜色。RGBA是RGB颜色模型的一种扩展,只增加了一个表示透明度(Alpha)的透明分量(A)。A代......
  • AlphaGo Zero论文《Mastering the game of Go without human knowledge》阅读笔记
    AlphaGoZero论文阅读笔记原论文:《MasteringthegameofGowithouthumanknowledge》简述:论文提出了一种新的围棋人工智能算法AlphaGoZero,该算法可以在完全无监督的情况下进行训练,并且超越了之前的AlphaGoFan和AlphaGoLee的表现。该算法具有如下特点:在无监督的情况......
  • 苹果发布iOS 18 Beta 7更新:RC准正式版正在路上
    苹果发布iOS18开发者预览版Beta7更新,版本号为22A5346a。值得注意的是,本次更新版本号以a结尾,意味着如果不出意外,iOS18 RC准正式版将于下个版本发布,距离正式版发布又近一步。另外,知名苹果分析师马克·古尔曼(MarkGurman)也表示,iOS18Beta7可能是Beta最终版本。在本次......