计算机博弈算法(Adversarial Search)

这篇具有很好参考价值的文章主要介绍了计算机博弈算法(Adversarial Search)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

人机博弈是人工智能的重要分支,人们在这一领域探索的过程中产生了大量的研究成果,而极小化极大算法(minimax)是其中最基础的算法,它由Shannon在1950年正式提出。Alpha-beta剪枝的本质就是一种基于极小化极大算法的改进方法。Knuth等人在1975年优化了算法,提出了负极大值(negamax)概念,这一概念的原理本质上与极小化极大值算法并无不同,但是却不需要系统区分取极大值者和极小值者,使得算法更加统一。此外,Knuth等人也对alpha-beta剪枝算法的搜索效率进行了深入的研究,Pearl也在1982年证明了alpha-beta剪枝原理的最优性

二、极大极小值算法(Minimax Search)

1. 极大极小算法

在人机博弈中,双方回合制地进行走棋,己方考虑当自己在所有可行的走法中作出某一特定选择后,对方可能会采取的走法,从而选择最有利于自己的走法。这种对弈过程就构成了一颗博弈树,双方在博弈树中不断搜索,选择对自己最为有利的子节点走棋。在搜索的过程中,将取极大值的一方称为max,取极小值的一方称为min。max总是会选择价值最大的子节点走棋,而min则相反。这就是极小化极大算法的核心思想。

计算机博弈算法,算法,人工智能,机器学习,Powered by 金山文档
  1. 如果节点是终止节点:应用估值函数求值;

  1. 如果节点是max节点:找到每个子节点的值,将其中最大的子节点值作为该节点的值;

  1. 如果节点时min节点:找到每个子节点的值,将其中最小的子节点值作为该节点的值。

2. 估值函数

估值函数使用来给每一个局面给出一个估值,用判断博弈树中当前局面的形势。在传统的棋类游戏智能系统中,估值函数一般是人为指定的,对棋类游戏智能的水平有决定性作用。

估值函数的形式不是固定的,它的输入一般是一个局面的信息,输出是一个表明相应局面好坏程度的数值。为了说明极小化极大算法,例如规定井字棋的估值函数为:玩家X还存在可能性的行、列、斜线数减去玩家O还存在可能性的行、列、斜线数。

计算机博弈算法,算法,人工智能,机器学习,Powered by 金山文档

3. α-β pruning search

3.1. alpha-beta剪枝原理

极小化极大算法最大的缺点就是会造成数据冗余,而这种冗余有两种情况:①极大值冗余;②极小值冗余。相对应地,alpha剪枝用来解决极大值冗余问题,beta剪枝则用来解决极小值冗余问题,这就构成了完整的Alpha-beta剪枝算法。接下来对极大极小值冗余和具体剪枝过程作简要介绍。

  • Alpha剪枝:极大值冗余如图所示,这是一颗博弈树的某一部分,节点下的数据为该节点的值,节点B的值为20,节点D的值为15,这里,C为取极小值的min节点,因此节点C的值将小于等于15;而节点A为取最大值max的节点,因此A只可能取到B的值,也是就说不再需要搜索C的其他子节点E和F的值就可以得出节点A的值。这样将节点D的后继兄弟节点减去称为Alpha剪枝

计算机博弈算法,算法,人工智能,机器学习,Powered by 金山文档
  • Beta剪枝:极小值冗余如图所示,这也是一颗博弈树的某一部分,节点B的值为10,节点D的值为19,这里,C节点为取最大值max节点。因此,C的值将大于等于19;节点A为取极小值的min节点,因此A的值只能取B的值10,也就是说不再需要求节点C的子节点E和F的值就可以得出节点A的值。这样将节点D的后继兄弟节点减去称为Beta剪枝

计算机博弈算法,算法,人工智能,机器学习,Powered by 金山文档

3.2. α-β剪枝实现

  • alpha: 在MAX轮次会被更新,用来记录当前节点的各个子节点中的最大值,如果子节点被剪枝了,那就是抛去被裁剪部分之后的最大值。

  • beta: 在MIN轮次会被更新,用来记录当前节点的各个子节点中的最小值,如果子节点被剪枝了,那就是抛去被裁剪部分之后的最小值。

  • 剪枝条件:α>=β

  • 初始化:是递归调用,每一个节点的alpha的初始值均是负无穷,因为alpha要负责记录最大值;每一个节点的beta的初始值均是正无穷,因为beta要负责记录最小值。

计算机博弈算法,算法,人工智能,机器学习,Powered by 金山文档

最清晰易懂的MinMax算法和Alpha-Beta剪枝详解

3.3 α-β search

  • The α-value of a MAX-node is set to the current largest final backed-up value of itssuccessors. That is, you can not back up a node until you have finished looking at itschildren.

  • The β-value of a MIN-node is set to the current smallest final backed-up value of itssuccessors.

  • α cut-off – search is discontinued below a MIN-node whose β value is less than or equal to the α value of any of its MAX-node ancestors.

  • β cut-off – search is discontinued below a MAX-node whose α value is greater than or equal to the β value of any of its MIN-node ancestors.

References

https://www.w3cschoool.com/adversarial-search

Alpha-beta剪枝 -机器之心

Minimax Search以及alpha-beta剪枝文章来源地址https://www.toymoban.com/news/detail-765378.html

到了这里,关于计算机博弈算法(Adversarial Search)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索人工智能 | 计算机视觉 让计算机打开新灵之窗

    计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。 计算机视觉既是工程领域,也是科学领域中的一个富

    2024年02月14日
    浏览(39)
  • 深入探索人工智能与计算机视觉

    在当今数字化时代,人工智能(AI)和计算机视觉(CV)作为两大前沿技术,正以惊人的速度改变着我们的生活。本文将深入探讨人工智能与计算机视觉的关系、应用以及未来发展方向。 1. 人工智能与计算机视觉的关系 人工智能是一门涵盖众多技术领域的学科,旨在使计算机

    2024年04月14日
    浏览(45)
  • 【人工智能课程】计算机科学博士作业三

    来源:李宏毅2022课程第10课的作业 图片攻击是指故意对数字图像进行修改,以使机器学习模型产生错误的输出或者产生预期之外的结果。这种攻击是通过将微小的、通常对人类难以察觉的扰动应用于输入图像来实现的。图片攻击是对深度学习系统中的鲁棒性和安全性的一种测

    2024年03月16日
    浏览(56)
  • 【人工智能课程】计算机科学博士作业一

    模型拟合:用深度神经网络拟合一个回归模型。从各种角度对其改进,评价指标为MSE。 掌握技巧: 熟悉并掌握深度学习模型训练的基本技巧。 提高PyTorch的使用熟练度。 掌握改进深度学习的方法。 数据集下载: Kaggle下载数据: https://www.kaggle.com/competitions/ml2022spring-hw1 百度云

    2024年01月23日
    浏览(41)
  • hnu计算机与人工智能概论5.6

    最近有点忙,好久没更新了,大家见谅!最后一关howell也做不出来  第1关:数据分析基础 1.将scores.xls文件读到名为df的dataframe中 2.添加平均分列:考勤、实验操作、实验报告的平均 3.输出前3行学生的平均分列表,控制小数点后两位 4.输出学生人数和班级数 5.分别输出实验报

    2024年02月04日
    浏览(37)
  • 人工智能与计算机辅助决策的技术融合

    人工智能(Artificial Intelligence, AI)和计算机辅助决策(Computer-Aided Decision, CAD)是两个不同的领域,但它们之间存在密切的联系和相互作用。人工智能主要关注于模拟和创造人类智能的机器,包括学习、理解自然语言、视觉识别、推理和决策等方面。而计算机辅助决策则关注于利用

    2024年02月22日
    浏览(46)
  • hnu计算机与人工智能概论答案3.8

    连夜更新,求求关注!! 写在前面:这一课难度较低,报错时多看看冒号和缩进有无错误,祝大家做题顺利!!! 第1关:python分支入门基础 根据提示,在右侧编辑器补充代码,完成分支程序设计(用函数调用的方式来实现)。 第1题: 闰年的判断:判断某一年是否是闰年,

    2024年02月08日
    浏览(32)
  • hnu计算机与人工智能概论答案3.15

     终于肝完了!有一说一,这一次难度肉眼可见的提升,终于明白程序员为什么会秃顶了(头发真的禁不住薅啊),祝大家好运! 第1关:循环结构-while与for循环 第1题 编程计算如下公式的值1^2+3^2+5^2+...+995^2+997^2+999^2并输出结果 第2题 用 while 语句完成程序逻辑,求如下算法可

    2024年02月08日
    浏览(38)
  • 人工智能在计算机视觉中的应用与挑战

    引言 计算机视觉是人工智能领域的一个重要分支,旨在让计算机能够像人一样理解和解释视觉信息,实现图像和视频的自动识别、理解和分析。计算机视觉技术已经在许多领域产生了深远的影响,如人脸识别、自动驾驶、医学影像分析等。本篇博客将深入探讨人工智能在计算

    2024年02月14日
    浏览(42)
  • hnu计算机与人工智能概论答案2.20

    补一下第一次作业 第1关:数据输入与输出 第一题 在屏幕上输出字符串:hi, \\\"how are you\\\" ,I\\\'m fine and you 第二题 从键盘输入两个整数,计算两个数相除的商与余数 假设输入12,5 输出为 2 2 第三题 在屏幕上 输入一个三位数输出该数的个位、十位和百位数字 假设输入125 输出为 5 2

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包