【人工智能基础】状态空间搜索

状态空间法

状态空间:一个问题全部可能的状态以及其关系的集合。

状态空间图:以图的形式表示问题的状态空间,节点对应状态,边对应状态转移算子,边上的权对应转移所需的代价

问题的解:是从最开始状态到目标状态的一条路径。

状态空间法就是将问题抽象为图:

状态->节点

操作->边

状态空间->图

问题的解->路径

求解过程->寻找路径

如:求三个硬币,一次翻两个,能否使三枚初始状态为数字面向上的硬币最终变为三枚国徽面向上的硬币。

我们可以枚举出三枚硬币可可能出现的全部8种状态,记数字面全部向上的状态为0,国徽面全部向上的状态为7,观察0节点是否能根据规则达到7节点。

图的搜索算法

通用图搜索算法

将所有节点分为三类:未知节点、已知已扩展节点(closed)、已知未扩展节点(open)

每次从open表中取一个节点N进行扩展,将扩展出来的新节点加入open表。结束后这个被选取的节点N加入closed表。

已扩展节点表为空还没找到目标节点,则问题无解.

状态空间图的分类

显式图:把状态空间图的全部要素(问题相关的全部状态、状态之间的关系)都以显式的像是存入知识库。

隐式图:初始时只存储初始状态,目标状态,状态之间的转移规则等信息。求解过程中,由初始状态出发,根据状态转移规则逐步生成所需的部分状态空间图。

状态空间图的计算机表示

Node.state 节点状态 Node.father 父节点指针 Node.g 历史已用代价

盲目搜索策略

广搜-open表为FIFO表

  • 有解则一定能找到解
  • 在单位耗散值的条件下,且问题有解,能找到最优解
  • 方法与问题无关,具有通用性
  • 效率低

深搜-open表为FILO表

  • 一般不能保证找到最优解
  • 当深度限制不合理时,可能找不到解
  • 最坏情况,搜索空间等同于穷举
  • 方法与问题无关,具有通用性

启发式搜索策略

对open表中的节点代价进行评估,选取代价最小的点进行扩展 f(n)=g(n)+h(n) g(n)已用代价 h(n)启发函数 代价优先(一致代价)搜索:只考虑g(n),令h(n)为0 爬山法(贪婪法):只考虑h(n)

A*算法h(n)<=h*(n)

  • 算法可纳(有解问题,总能找到最优解)
  • 在保证h(n)M=h*(n)的前提下,h(n)越大越好,h(n)越能准确的估计实际最小代价

评估函数的单调性

  • 单调性(节点对(i,j),j为i的后继,评估函数对于所有的这种节点对都满足f(i)<=f(j))

博弈树搜索

博弈树适用于双方对弈的层次结构

使用Max表示本方,Min表示对方

最大最小法

原理
  • 扩展当前棋局的全部N层子节点
  • 确定各子节点评估值
  1. 最底层节点静态评估
  2. 其余子节点苹果汁需要逐层交替倒推(Max节点取最大值,Min节点取最小值)
步骤
  • 生成规定深度的全部博弈树
  • 计算所有最底层节点的静态估计函数值
  • 自底向上逐层计算非终结节点的倒推估计值
  • Max取最大,Min取最小

α-β剪枝

由于博弈树规模巨大,构造完整的博弈树需要消耗大量时间和内存

  • 对于Max父节点,先探明的子节点可为父节点取值提供下界信息(α),小于α的未探明子节点可以忽略
  • 对于Min父节点,先探明的子节点可为父节点取值提供上界信息(β),大于β的未探明字节的可以忽略

α剪枝:α父≥β β剪枝:α≥β父

  • 跨层比较
  • 有界深搜生成博弈树

剪枝演示

下图中我们看嘴左边的分支,由于MIN会选取评估值最小的节点,所以我们可以知道在这个节点的评估值为-3 

剪枝1

下图中,我们在右边第一个节点中找到了一个评估值为-6的节点,表示如果MAX选中这个分支,可以获得的最高得分只有-6(MIN会选择评估值最小的节点),-6<另一个分支的评估值-3,所以不需要评估后面的分支,我们就可以知道如果走这个分支我们最高只能获得-3分 

剪枝2

 再看另一边,这边我们找到的第一个节点就是两分,由于MAX会倾向于获取高分这个分支的分数最低为2

所以对于MIN来说,选择这个分支的收益比选择前面那个-3的分支的收益低。 

剪枝3

 后面的节点都不需要再评估了 

剪枝4

 由此我们省去了6个节点的评估的时间,并且只进行了4次评估就做出了选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/559802.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

BP使用和弱口令漏洞

目录 一、BP使用 1.BP设置 2.Proxy 3.Reapter 4.Decord 5.Intruder 二、弱口令爆破 1.服务弱口令爆破 2.验证码绕过 一、BP使用 1.BP设置 设置代理的监听端口: 这里设置为本机的9090端口 2.Proxy 浏览器要挂代理&#xff0c;设置为本机的9090端口 打开拦截功能 当浏览…

Youtube DNN

目录 1. 挑战 2. 系统整体结构 3.召回 4. 排序 5. 训练和测试样本的处理 1. 挑战 &#xff08;1&#xff09;规模。很多现有的推荐算法在小规模上效果好&#xff0c;但Youtobe规模很大。 &#xff08;2&#xff09;新颖度。Youtobe语料库是动态的&#xff0c;每秒都会有…

Windows如何安装JDK

JDK和JRE简介 JDK&#xff1a;Java Development ToolKit java开发工具包&#xff0c;包含JRE针对java程序开发者 JRE&#xff1a;Java Runtime Environment java程序的运行环境针对java使用者来说 下载JDK&#xff0c;进入官网下载 Oracle官网 双击下载好之后的exe文件&#…

关于Python中install edge_tts记录

如下代码&#xff1a; #!/usr/bin/env python3""" Basic audio streaming example.This example shows how to stream the audio data from the TTS engine, and how to get the WordBoundary events from the engine (which could be ignored if not needed).…

分保、等保、关保、密评之间联系与区别

分保、等保、关保、密评之间联系与区别 什么是“三保一评”分保等保关保密评 相关的法律法规依据分保等保关保密评 分保工作简介分保工作流程分级保护技术要求 等保工作简介关保工作简介密评工作简介三保一评联系与区别 什么是“三保一评” 分保 涉密信息系统分级保护 指涉密信…

vivado 存储器校准调试

存储器校准调试 Vivado 中的存储器接口 IP 支持校准调试。其中存储有实用的核配置、校准和数据窗口信息 &#xff0c; 可在 Vivado 硬件管理器 中访问这些信息。“存储器校准调试 (Memory Calibration Debug) ”可随时用于读取此信息 &#xff0c; 并从存储器接口 IP 中获…

Linux命令学习—Iptables 防火墙(上)

1.1、防火墙 1、防火墙的定义 所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上 构造的保护屏障.是一种获取安全性方法的形象说法&#xff0c;它是一种计算机硬件和软件的结合&#xff0c;使 Internet 与 Intranet 之间建立起…

LeetCode216:组合总和Ⅲ

题目描述 找出所有相加之和为 n 的 k 个数的组合&#xff0c;且满足下列条件&#xff1a; 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次&#xff0c;组合可以以任何顺序返回。 解题思想 使用回溯算法 代码 class So…

代理IP对网络爬虫有什么影响?

代理IP对网络爬虫的影响深远且多方面&#xff0c;主要体现在以下几个方面&#xff1a; 第一点&#xff0c;代理IP能有效防止爬虫IP被封禁&#xff1a;在爬虫工作过程中&#xff0c;如果频繁访问同一目标网站&#xff0c;很容易被该网站的服务器识别为恶意行为&#xff0c;导致…

【大数据】Apache Knox 概述

Apache Knox 概述 1.概述1.1 Kerberos 封装1.2 简化客户端证书的管理1.3 Apache Ranger 集成1.4 Hadoop URLs VS Knox URLs 2.自定义 Apache Knox2.1 Topology2.2 Provider2.3 Services2.4 Personalized services 3.Tips3.1 Setting up SSL3.2 常见问题3.2.1 Bulky answer3.2.2…

【JavaSE】JDK17的一些特性

前言 从springboot3.0开始&#xff0c;已经不⽀持JDK8了 选⽤Java17&#xff0c;概括起来主要有下⾯⼏个主要原因 JDK17是LTS(⻓期⽀持版)&#xff0c;可以免费商⽤到2029年。⽽且将前⾯⼏个过渡版&#xff08;JDK9-JDK16&#xff09; 去其糟粕&#xff0c;取其精华的版本JDK17…

hbase基础(二)

HBase第二天 名称空间 namespace&#xff1a;名称空间默认hbase有两个名称空间&#xff0c;default、hbasedefault名称空间是默认创建表的位置&#xff0c;hbase是专门存放系统表的名称空间&#xff08;namespace、meta&#xff09;管理命名空间指令 create_namespace 命名空…

qt tcp 连接 秒断连,求助

问题&#xff1a; tcp连接总是秒成功后断连 debug会出现下面这些 onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(550)\nlansp_c.dll!00007FFDA2A1D93D: (caller: 00007FFDD8BEACF6) LogHr(1) tid(336c) 8007277C ¡£¡£ one…

小型企业网络优化加速方案

随着数字化经济蓬勃发展&#xff0c;小型企业的网络基础设施变得尤为重要。在这一浪潮中&#xff0c;建立一个稳定、高效的企业网络成为支撑业务发展的关键。本文将深入研究针对小型企业设计的网络优化加速方案&#xff0c;助力企业主了解如何规划和实施适合自身业务需求的网络…

Spring Boot 统一功能处理(三)

本篇主要介绍Spring Boot的统一异常处理。 目录 一、统一异常处理的使用 二、测试统一异常处理效果 三、浅析原理 ControllerAdvice简析 统一处理异常简析 一、统一异常处理的使用 在前面介绍统一数据返回时&#xff0c;我们在程序发生异常时会把整个报错信息都封装在da…

BRC20铭文铭刻解析

BRC20铭文铭刻的出现对于智能制造无疑是一个重要的里程碑。随着科技的飞速发展&#xff0c;智能制造已经成为制造业发展的必然趋势&#xff01;智能制造是指通过运用人工智能、物联网、大数据等先进技术&#xff0c;实现生产过程的自动化、智能化和高效化。 1. BRC20铭文的概念…

Docker了解及命令行使用

一、了解Docker 1、什么是Docker Docker为应用程序的开发、发布和运行提供了一个基于容器的标准化平台。容器运行的是应用程序&#xff0c;Docker平台用来管理容器的整个生命周期 2、虚拟机与容器 2.1、虚拟机是什么 虚拟机&#xff08;Virtual Machine&#xff09;是一种软…

PostgreSQL 免费的对象-关系数据库

目录 一、什么是数据库 二、ORDBMS 的一些术语 三、PostgreSQL 概述 四、PostgreSQL数据库优点和缺点 4.1PostgreSQL数据库的优点 4.2PostgreSQL数据库的缺点 4.3PostgreSQL 特征 五、Linux 上安装 PostgreSQL 5.1Yum 安装 PostgreSQL 5.1.1安装postgreSQL的官方yum仓…

华火电燃灶:重拾烹饪艺术的黄金法则,打造家庭美食的温馨记忆

记得在饭店给客户人炒菜的时候&#xff0c;炉灶下的每一道菜都透着诱人的香气。无论是炒肉还是炖汤&#xff0c;那股鲜香总让人回味无穷。然而&#xff0c;回到家&#xff0c;用上自家的燃气灶&#xff0c;发现同样的食材、同样的配方&#xff0c;味道却平淡无奇&#xff0c;仿…

记录一个hive中因没启yarn导致的spark引擎跑insert语句的报错

【背景说明】 刚在hive中配置了Spark引擎&#xff0c;在进行Hive on Spark测试时报错&#xff0c; 报错截图如下&#xff1a; [atguiguhadoop102 conf]$ hive which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_212/bin:/opt/mod…