实用算法实现-第 15 篇 对抗搜索

博弈算法之alpha-beta搜索    博弈一向被认为是最富挑战的智力游戏,有着难以言语的魅力。自从出现计算机后人们就开始有了与计算机下棋的想法。早在上世纪60年代就已经出现若干博弈程序,并达到较高的水平,现已出现计算机博弈程序能够与人类博弈大师抗衡的局面。博弈理论的研究不断为人类科学提供新的课题,同时也对深层次的知识研究提出了严峻的挑战。如何表示博弈问题的状态,博弈过程和取胜的知识是目前人类仍在探讨的问题。就拿五子棋游戏来讲,棋 阅读详情

《人工智能,一种现代方法》对于对抗搜索的介绍非常好。

15.1    极小值极大值策略

极大值极小值策略是一种最优策略。当对手不犯错误时,最优策略能够导致至少不比其它任何其它策略差的结果。需要注意的是,最优策略针对的是最优化对手:如果使用极大值极小值策略对付非最优化对手,可能没有使用其它策略好,但是使用那些策略对付最优化对手必定要比极大值极小值策略差。

极小值极大值策略是指存在两个最优化的博弈对手MIN和MAX,MIN的目的是使得value最小,而MAX则是使得value最大。由于两个对手都不会犯错误,即采用最优策略,故此有如下公式:

不难发现使用极小值极大值策略实际完成的是对策略空间的一种深度优先搜索。

15.2    α-β剪枝

对于两个使用最优策略的博弈者,一个博弈的value的最终结果总是确定的。而极大值极小值搜索则是通过搜索博弈树,来找出博弈的value的最终结果。极大值极小值搜索进行DFS搜索,一直深入搜索到叶子。如果结点的所有子树已搜索完毕,则该结点回溯到父结点。该搜索从初始状态,经过搜索过程P,达到当前状态S,搜索至当前结点N。可以知道,搜索过程P唯一地决定了当前状态S,而S状态正在考察结点N。

为了减少不必要的搜索,对博弈树的搜索进行α-β剪枝。每个结点N都维持两个变量α和β。α和β表示通过搜索过程P,在搜索进行到当前状态S时,MAX和MIN探索清楚的value值的一些情况。α的意义是:如果博弈过程为P,那么博弈到结点N时,MAX所能保证的value的最小值为α。β的意义是:博弈过程为P,那么博弈到结点N时,MIN所能保证的value的最大值为β。

假设在达到当前状态S时,由N的父结点F发起的搜索刚刚搜索到结点N。结点N将由父结点F得到自己的α和β的初值(博弈树的根结点的α取为-∞,β取为+∞),因为结点的α和β的初值总是由状态的S的先序状态决定的,而在状态的S的上一个状态中,F正在发起到结点N的搜索。在搜索到N结点之后,对N的子树的搜索继续进行。当N的某棵子树搜索完成之后,需要根据最优选择的结果来更新自己的α和β:如果结点N是MAX,那么只有有可能(存在一个子树,返回的vlaue的值v比α大),它会不断地抬高α;如果结点N是MIN,那么只有有可能(存在一个子树,返回的vlaue的值v比β小),它会不断地压低β。

在维护α和β的之后,可以发现有一些情况可以不必再搜索子树而直接回溯到父结点。当搜索到结点N时,双方已经博弈到第n步。

1. 如果结点N是MAX,且发现N的某子树返回的vlaue的值v比β还大,它可以断定在第n-1步MIN做决定的时候不会让MAX有这种机会。因为在第n-1步,MIN就知道存在着一个策略D,使得value值为β;如果v比β大,MIN会毫不犹豫地采用D策略。

2. 如果结点N是MIN,且发现N的某子树返回的vlaue的值v比α还小,它可以断定在第n-1步MAX做决定的时候不会让MIN有这种机会。因为在第n-1步,MAX就知道存在着一个策略D,使得value值为α;如果v比α小,MAX会毫不犹豫地采用D策略。

上述结论对于第n = 1步也是成立的,因为此时α取为取为-∞,β取为+∞,α-β剪枝的条件不可能满足。

15.2.1   实例

PKU JudgeOnline, 1085, Triangle War.

15.2.2   问题描述


如上图,A、B进行博弈。如果某人连接两点之后完成一个三角形,则得一分,且再需走一步。得分多的人获胜。

先给定一些已经走好的步骤,求最后谁胜。

15.2.3   输入

4

6

24

45

59

36

25

35

23、对抗搜索与博弈:从确定性到部分可观察游戏的探索 本文深入探讨了从确定性到部分可观察游戏中的对抗搜索与博弈策略,比较了极小极大算法、α-β剪枝和蒙特卡罗搜索等核心算法在不同游戏场景下的适用性与局限。文章分析了随机游戏(如西洋双陆棋)中的机会节点处理、部分可观察游戏(如Kriegspiel)中的信念状态建模,以及纸牌游戏中的信息不完全挑战,并介绍了透视平均法、抽象化和前向剪枝等优化技术。同时,总结了各类游戏的特点与应对策略,展望了深度学习、强化学习及多智能体系统在未来博弈智能中的发展趋势,展示了人工智能在复杂游戏环境中不断突破的潜力。 阅读详情

相关推荐

基于C++ α-β剪枝算法实现的AI五子棋游戏

通过本次实验,加强了组员之间的沟通协调能力,同时也提高了我们对αβ减枝算法的了解。我们更了解了五子棋相关的游戏规则以及一些技巧,拓宽了我们的知识面,有助于我们在未来的生活中更好的与人交流。同时,经过此次实验,我们深入了解了棋类人工智能算法,进一步的提升了我们的专业水平,有助于我们在未来的就业与科研岗位上走的更远。虽然α-β减枝实现起来非常容易,但是五子棋的局势估计却十分的有挑战性,其局势估计的准确与否直接影响了程序的运行结果是否令人满意,AI是否能够展现出足够的智能。

神仙别闹的自留地 1734

吃豆人-对抗搜索.rar

人工智能实验2、3

A Mathematical Framework for Transformer Circuits—(一)

transformer数学理解理论

qq_42208244的博客 2663

手把手教你用OpenCV+Python实现HALCON级模板匹配(附工业案例代码)

本文详细介绍了如何利用开源计算机视觉库OpenCV和Python,构建媲美HALCON商业软件的工业级模板匹配解决方案。通过分析工业检测的核心挑战,文章提供了从模板预处理、多策略融合匹配到应对尺度与旋转的完整代码实现,并附有连接器引脚检测的实战案例,为工业自动化场景下的高精度视觉检测提供了低成本、高可控性的技术路径。

e3f4g5的博客 284

Linux内核模块开发实战指南(2025版)

2025年Linux内核模块开发迎来革命性突破!本文将从零开始手把手教你构建可动态加载的AI加速驱动模块,揭秘最新内核特性与开发技巧,更包含独家性能调优方案与跨架构移植秘籍。文末附赠价值百万的调试脚本,助你轻松突破开发瓶颈!

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 1808

【工具】GitHub学生认证+PyCharm配置Copilot全流程指南

本文提供了一份详细的GitHub学生认证及在PyCharm中配置Copilot的完整指南。通过完成A2F认证、准备有效材料并使用干净网络环境,学生可免费获取GitHub Copilot Pro订阅,极大提升编程学习与开发效率。

w7x8y9z的博客 1459

通达信+大智慧数据同步存调DLL

数据同步存调DLL(通达信版+大智慧版)

guleba的博客 2053

FPGA 学习笔记:Vivado 配置IO引脚约束

FPGA 学习笔记:Vivado 配置IO引脚约束

坚韧与专注 2万+

Google Earth Engine(GEE)——使用归一化燃烧指数 (NBR) 绘制地表烧伤严重程度图

归一化燃烧指数(Normalized Burn Ratio, NBR)是一种遥感指标,用于评估野火或烧伤地面后的植被恢复情况。NBR能增强较大范围的火灾区域,如大于200公顷。它是通过比较远红外波段 (SWIR) 和近红外波段 (NIR) 的反射率来计算的。SWIR波段测量烧伤地面的反射率,NIR波段测量没有受到烧伤影响的植被的反射率。NBR的计算公式为:NBR =(NIR-SWIR)/(NIR + SWIR)。其中,NIR为近红外波段,SWIR为短波红外波段。

此星光明博客 3464

YOLOv11改进 | Neck篇 | 独创HFPN利用分层特征融合块HFFB模块融合多层次特征改进yolov11(全网独家创新)

本文给大家带来的最新改进是利用分层特征融合块HFFB创新yolov11的neck部分我称之为HFPN,这个模块可以融合局部特征、全局特征、中间特征将三种特征融合在一起辅助yolov11进行检测,经过我的设计分为三种可以针对大目标、小目标、标准目标的检测方式均不同,大家可以根据自己的数据集进行不同的选择,本文的内容为我独家创新。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、原理介绍三、核心代码四、添加方法4.1 修改一4.2 修改二4.3 修改三4.4 修改四。

Snu77的博客 5210

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 实用算法实现-第 14 篇 启发式搜索
下一篇: 实用算法实现-第 16 篇 拓扑排序
存储李希
博客等级 码龄15年 418粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值