第三章 搜索策略——博弈树的启发式搜索

2023-11-10

1.概述:

博弈是一类具有智能行为的竞争活动,如下棋、打牌、战争等。博弈可分为双人完备信息博弈和机遇性博弈。所谓双人完备信息博弈,就是两位选手对垒,轮流走步,每一方不仅知道对方已经走过的棋步,而且还能估计出对方未来的走步。对弈的结果是一方赢,另一方输,或者是双方和局。这类博弈的实例有象棋、围棋等。所谓机遇性博弈是指存在不可预测性的博弈,如掷币等。

2.特点:

若把双人完备信息博弈过程用图表示出来,就得到一棵与/或树,这种与/或树被称为博弈树。在博弈树中,那些下一步该MAX走步的节点称为MAX节点,下一步该MIN走步的节点称为MIN节点。

博弈树具有如下特点:

(1)博弈的初始状态是初始节点;

(2)博弈树中的“或”节点和“与”节点逐层交替出现的;

(3)整个博弈过程始终站在某一方的立场上,例如MAX方。所有能使自己一方获胜的终局都是本原问题,相应的节点是可解节点;所有使对方获胜的终局都是不可解节点。

3.极大极小过程

对简单的博弈问题,可生成整个博弈树,找到必胜的策略。但对于复杂的博弈问题,不可能生成整个搜索树,如国际象棋,大约有10120个节点。一 种可行的方法是用当前正在考察的节点生成一棵部分博弈树,并利用估价函数f(n)对叶节点进行静态估值。一般来说,那些对MAX有利的节点,其估价函数取正值;那些对MIN有利的节点,其估价函数取负值;那些使双方均等的节点,其估价函数取接近于0的值。

为了计算非叶节点的值,必须从叶节点开始向上倒退。其倒退方法是:对于MAX节点,由于MAX方总是选择估值最大的走步,因此,MAX节点的倒退值应该取其后继节点估值的最大值。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2h5MzIzMg==,size_20,color_FFFFFF,t_70,g_se,x_16

则其第一者走棋后的博弈树为:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2h5MzIzMg==,size_20,color_FFFFFF,t_70,g_se,x_16

 4. a-β剪枝

极大极小过程是先生成与/或树,然后再计算各节点的估值,这种生成节点和计算估值相分离的搜索方式,需要生成规定深度内的所有节点,因此搜索效率较低。如果能边生成节点边对节点估值,并剪去一些没用的分枝,这种技术被称为a-β剪枝。

a-β剪枝的方法如下:

(1) MAX节点(或节点)的a值为当前子节点的最大倒推值。

(2) MIN节点(与节点)的β值为当前子节点的最小倒推值。

a-p剪枝的规则如下:

(1)任何MAX节点n的a值大于或等于它先辈节点的值,则n以下的分枝可停止搜索,并令节点n的倒推值为a。这种剪枝称为剪枝。

(2)任何MIN节点n的a值小于或等于它先辈节点的a值,则n以下的分枝可停止搜索,并令节点n的倒推值为。这种剪枝称为a剪枝。

下面来看一个a-β剪枝的具体例子,如下图所示。其中最下面一层端节点旁边的数字是假设的估值。在该图中,L、M、N的估值推出节点F的到推值为4,即F的p值为4,由此可推出节点C的到推值>4。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2h5MzIzMg==,size_20,color_FFFFFF,t_70,g_se,x_16

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第三章 搜索策略——博弈树的启发式搜索 的相关文章

随机推荐

  • 关于手机Camera的硬件电路知识

    前阶段 小白教同事测了些Camere的基本功耗 正愁不知道写什么的小白 突然想到了素材 于是乎便趁着周末雷雨天宅家之际 写一篇关于手机Camere的硬件文章 手机Camera 一 工作原理 关于Camera 景物通过镜头生成光学图像投射到图
  • MNIST手写体识别训练过程数据流图

    1 数据流图 2 对应的 Python 代码 import torch import torchvision import torchvision transforms as transforms import torch nn as nn
  • 嵌入式数据库知识概括

    嵌入式数据库知识概况 嵌入式数据库 Derby SQLite H2 总结 嵌入式数据库 嵌入式数据库 Embedded Database 简介 从软件角度来说 数据库分类为两种 第一种 数据库服务器 Database Server 第二种
  • Unity控制在面板上显示变量

    unity之定制Inspector Ngui 刚接触Unity时知道脚本的共有变量会在Inspector中显示出来 但是有一些确不行 前些日子添加按钮的音效 我用的是Ngui按钮也基本是UIButton 但是给button一个个挂UIPla
  • Maven配置环境变量

    在上文java在Windows配置Path环境变量 中我们找到了环境变量所在位置我们直接打开环境变量 第一步 在环境变量页面点击新建 第二步 配置MAVEN HOME 在变量名中输入 MAVEN HOME 在变量值中输入jdk安装位置 D
  • C语言qsort函数详解

    目录 一 qsort函数的使用 二 qsort函数的模拟 一 qsort函数的使用 快排函数qsort是C的库函数 它可以对输入的任何类型的数组排序 通过该函数的函数声明我们可以看出它的使用方法 举个栗子 include
  • 还不会部署高可用的kubernetes集群?企业DevOps实践之使用kubeadm方式安装高可用k8s集群v1.23.7...

    关注 WeiyiGeek 公众号 设为 特别关注 每天带你玩转网络安全运维 应用开发 物联网IOT学习 原文地址 还不会部署高可用的kubernetes集群 企业DevOps实践之使用kubeadm方式安装高可用k8s集群v1 23 7 本
  • Qt学习笔记1:创建一个QT的空项目

    初始QT 在创建QT项目时系统提供了几个不同的模板 点选模板 系统会自动为用户创建好一个基础框架方便开发 这里 我们试着不适用系统提供的基础框架 自己创建一个空的QT项目 创建工程 1 进入QT界面 选择新建工程 在跳出的选项中选择其他项目
  • Linux·i2c驱动示例

    I2C 是很常用的一个串行通信接口 常用于连接各种外设 传感器等器件 一 Linux I2C 驱动框架 Linux 内核将 I2C 驱动分为两部分 I2C 总线驱动 I2C 总线驱动就是 SOC 的 I2C 控制器驱动 也叫做 I2C 适配
  • 原型和原型链

    1 原型 原型 prototype 一个对象 概念 每一个函数上 都有一个prototype 原型对象 使用场景 一般使用在构造函数上 如果给构造函数的原型prototype添加方法 构造函数构造出来的对象就能共享原型上所有的方法 var
  • 写一篇关于OpenAi基金的介绍

    OpenAI基金是由业界领先的技术领导者组成的非营利性机构 旨在推进人工智能的发展 以此来改善人类的生活 OpenAI的目标是建立开放 可靠的智能机器 能够推动人类的发展 改善生活质量和解决全球性问题 OpenAI通过支持研究和发展人工智能
  • Linux SPI总线和设备驱动架构之一:系统概述

    origin http blog csdn net droidphone article details 23367051 SPI是 Serial Peripheral Interface 的缩写 是一种四线制的同步串行通信接口 用来连接微
  • Linux驱动开发——(使用中断处理)gpio(6)

    Linux内核中断编程 为什么会有中断机制 中断产生的根本原因就是因为外设的数据处理速度远远慢于CPU 比如使用CPU读取UART接收缓冲区的数据 当使用CPU读取UART接收缓冲区的数据时 发现UART接收缓冲区的数据并没有准备就绪 一般
  • 在CentOS / RHEL上安装ThingsBoard CE

    在CentOS RHEL上安装ThingsBoard CE 1 安装之前 硬件要求 要在一台机器上运行ThingsBoard和PostgreSQL 您将至少需要1Gb RAM 要在单台计算机上运行ThingsBoard和Cassandra
  • RocksDB源码分析之db_test LevelReopenWithFIFO

    TEST F DBTest LevelReopenWithFIFO const int kLevelCount 4 const int kKeyCount 5 const int kTotalSstFileCount kLevelCount
  • Python正则表达式入门

    Python3 正则表达式 正则表达式是一个特殊的字符序列 它能帮助你方便的检查一个字符串是否与某种模式匹配 本文主要阐述re包中的主要函数 在阐述re包中的函数之前 我们首先看议案正则表达式的模式 即使用特殊的语法来表示一个正则表达式 1
  • Unity导入模型后模型动画无法勾选loop time

    导入模型后发现动画无法勾选 点击edit跳转到 原因不明 但可以直接选中动画后 ctrl d复制一个 然后就可以编辑
  • 在ubuntu虚拟机环境上搭建nginx服务器

    1 1安装nginx sudo apt install nginx 检查是否安装 nginx v nginx文件安装完成之后的文件位置 usr sbin nginx 主程序 etc nginx 存放配置文件 usr share nginx
  • vue开发,node.js启动报错‘digital envelope routines

    vue开发 node js启动报错 digital envelope routines 最近在学习vue 打算使用node js启动一下自己的vue项目 毕竟 现在主流的都是这个本地服务器 肯定有它的好处 但是启动总是报错 各种错误 耐住性
  • 第三章 搜索策略——博弈树的启发式搜索

    1 概述 博弈是一类具有智能行为的竞争活动 如下棋 打牌 战争等 博弈可分为双人完备信息博弈和机遇性博弈 所谓双人完备信息博弈 就是两位选手对垒 轮流走步 每一方不仅知道对方已经走过的棋步 而且还能估计出对方未来的走步 对弈的结果是一方赢