alpha-beta搜索(min-max搜索):

简称mfs,用来解决双方最优决策博弈问题。

核心思想:在搜索树中,下一层越小,对当前层越有利,由于取max,一旦下一层出现了比其他孩子结果更大的值,那么停止搜索。(最优性剪枝)。

模板:

//upd是本层值,将传给下一层。
//lim是上一层给这一层的下限。
//op决定本层是先手还是后手(可能无用)。
int mfs(int upd,int lim,int op){
// 判断mfs终止。 // 贪心地选择合适的mfs顺序(先走结果可能大的) for(/*枚举*/){ //做操作 val=-mfs(-lim,-(upd-V),-op)+V;
//V是走这一步的贡献
//对手的结果对自己取负。
//自己的lim滚动给孩子的upd,使同一个人一直是同一个变量
//因为实际结果比里面会+V,所以lim要比实际的-V。
//op取负,换下一个人。 //回溯 if(val >= lim) return INF;//剪枝
if(val > upd) upd=val;//更新
}
return upd;
}

alpha-beta搜索算法的更多相关文章

  1. 软件发布版本区别介绍-Alpha,Beta,RC,Release

    Alpha: Alpha是内部测试版,一般不向外部发布,会有很多Bug.除非你也是测试人员,否则不建议使用. 是希腊字母的第一位,表示最初级的版本 alpha就是α,beta就是β alpha版就是比 ...

  2. 软工+C(2017第4期) Alpha/Beta换人

    // 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...

  3. 软工+C(4): Alpha/Beta换人

    // 上一篇:超链接 // 下一篇:工具和结构化 注:在一次软件工程讨论课程进度设计的过程中,出现了这个关于 Alpha/Beta换人机制的讨论,这个机制在不同学校有不同的实施,本篇积累各方观点,持续 ...

  4. K 班1-7,alpha,beta 作业成绩汇总

    K 班1-7,alpha,beta 作业成绩汇总 千帆竞发 详细得分 短学号 名 1 2 3 4 5 6 7 alpha beta TOTAL 505 基智 4.55 1 -2 0 0 -10 4.3 ...

  5. 软件版本GA,RC,alpha,beta含义

    软件版本GA,RC,alpha,beta含义 (1)RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release.Candidate.就是发行 ...

  6. 扩增子分析解读6进化树 Alpha Beta多样性

    分析前准备 # 进入工作目录 cd example_PE250 上一节回顾:我们的OTU获得了物种注释,并学习OTU表的各种操作————添加信息,格式转换,筛选信息.   接下来我们学习对OTU序列的 ...

  7. (转)软件版本中的Alpha,Beta,RC,Trial是什么意思?

    版本号:V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta )Build:用数字或日期标示版本号的一种方式.(如:VeryCD ...

  8. 软件版本中的Alpha,Beta,RC,Trial是什么意思?

    版本号: V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta ) Build:用数字或日期标示版本号的一种方式.(如:VeryC ...

  9. 项目管理: Alpha,Beta,RC,GA,Release

    Alpha:                    Alpha是内部测试版,一般不向外部发布.也可以认为是演示版本.允许存在一定的问题(例如功能组合.异常流程处理.稳定性.性能存在部分问题)      ...

  10. Alpha,Beta,RC,RTM,EVAL,CTP,OEM,RTL,VOL

    微软的一个系统(如Win 7)或开发工具(VS系列),往往会对应很多种版本,下面就介绍一下这些版本的含义:   Alpha (阿尔法,希腊字母的第一位'α',代表最初的版本) Alpha是内部测试版, ...

随机推荐

  1. TIMER_PWM_CAPTURE

  2. [GO]revoer的应用

    error的函数只是用来报一些低等级的错误,panic是报那些会导致程序崩溃的错误,但是会有一个问题就是panic也会导致程序中断 ,如果我们需要程序在报错之后继续运行并报出错误的信息 就需要使用到r ...

  3. SAC学习笔记(一)——SAC安装

    1.软件包申请 地址: http://www.iris.edu/forms/sac_request.htm      其中的表单需要正确认真填写,选择你所需要的系统平台Linux.Mac OS.Sol ...

  4. eclipse Multiple annotations found at this line

    参考:http://blog.csdn.net/li396864285/article/details/42745071 这样的错不影响编程,是eclipse的校验问题 去掉相应的Build就行了

  5. Spring MVC @RequestMapping浅析

    简介:@RequestMappingRequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径.RequestMapp ...

  6. SpringMVC源码解读 - RequestMapping注解实现解读 - RequestCondition体系

    一般我们开发时,使用最多的还是@RequestMapping注解方式. @RequestMapping(value = "/", param = "role=guest& ...

  7. [LintCode笔记了解一下]80.Median

    Given a unsorted array with integers, find the median of it. A median is the middle number of the ar ...

  8. 简述各大 Linux 发行版,有主观,不完全,望见谅

    只罗列当前热门的linux发行版 更多关于 Linux 以及 Linux 衍生版的内容可以参阅 中文wiki Debian 系 Debian:开源社区的代表性 linux 系统,每2年一次更新,现在的 ...

  9. Autoconf 中文手册

    Autoconf Autoconf Creating Automatic Configuration Scripts Edition 2.13, for Autoconf version 2.13 D ...

  10. VC中CDC与HDC的区别以及二者之间的转换

    CDC是MFC的DC的一个类 HDC是DC的句柄,API中的一个类似指针的数据类型. MFC类的前缀都是C开头的 H开头的大多数是句柄 这是为了助记,是编程读\写代码的好的习惯. CDC中所有MFC的 ...