首页 > 其他分享 >关于A*的一些理解

关于A*的一些理解

时间:2023-11-23 16:24:52浏览次数:31  
标签:状态 路径 目标 BFS 入队 理解 关于 一些 最优

A*算法,本质是对BFS的一种优化,无论这个BFS是普通的BFS(搜索树上边权为1)还是优先队列BFS(搜索树上的边权可能大于1)

蓝书上论证正确性那一段说的\(s\)指的是目标状态的某一状态(即\(s\)已经到达了目标状态但不一定最优)然后再去理解那一段话

但是,我想说的是,中间的点第一次被取出的时候不一定是这个点的最优状态,见下图

可以模拟一下,会发现倒数第二个点被入队了两次,而且第二次入队才是这个点的最优情况

出现这个的原因就是因为估价函数只跟当前这个状态有关

那么这种情况会不会影响最终的结论?

答案是不会

因为目标状态的估价函数一定为0,如果一个已经到达了目标状态但不是最优的\(s\)入队了,由于存在一个更优的目标状态,所以从起始状态到目标状态一定会存在一条路径,这条路径的终点是目标状态的最优情况而且每一个点的当前代价都是这些点的最优代价(我不管这条路径是什么时候被搜索出来的,反正肯定存在这么一条路径)。根据估价函数的性质,这条路径上的每一个点的当前代价+未来估价一定小于等于目标状态的最优情况,于是就小于\(s\)的当前代价,就是说在\(s\)被扩展之前,这条路径上的每一个点都会被扩展,所以目标状态的最优情况一定比\(s\)先扩展,所以不会影响答案

标签:状态,路径,目标,BFS,入队,理解,关于,一些,最优
From: https://www.cnblogs.com/dingxingdi/p/17851834.html

相关文章

  • linux iptables初步理解
    引用:https://www.bilibili.com/video/BV1Jz4y1u7Lz/?spm_id_from=333.788&vd_source=e05f4a55dd5d8e27f74472aa7fd97ace1.iptables处理模型:linux内核有一个netfilter框架来设置这个防火墙linux可以像路由器一样做转发处理的,所以流量处理就有如下路径:iptables有四......
  • 深入理解Python爬虫中的HTTP请求与响应过程
    在Python爬虫开发中,了解HTTP请求与响应的过程是非常重要的。HTTP(HypertextTransferProtocol)是一种用于传输超文本的应用层协议,通过HTTP协议,我们可以在网络上获取各种资源。本文将深入探讨Python爬虫中的HTTP请求与响应过程,帮助您更好地理解和应用Python爬虫技术。1.了解HTTP协议H......
  • 关于人生怎么想
    人生是一艘船,时间就是动力。就是要体验这人生(包含多样性、。。。),当在体验人生时,总会有些阻力,这些阻力就是想要与得不到的关系。想要的时候想你本来就什么也没有,随时可以什么都不要。不要被得不到产生情绪束缚,总之人生是个加法,不要被所谓的“失去感觉”而苦恼吧。......
  • 关于无线通信的核心技术详细介绍
    无线通信技术是一种利用电磁波在空气中进行信息传输的通信方式。与传统的有线通信方式相比,无线通信技术具有无需线缆连接、灵活方便、可移动性好等优点,因此在现代社会得到了广泛应用。无线通信系统主要由发射器、接收器和信道三部分组成。发射器将信息转换为电磁波,通过天线发送到......
  • obproxy 源码编译以及一些问题整理-暂未编译成功
    尝试自己编译下oceanbase的obproxy并记录下一些问题,目前是暂未编译成功,因为是openssl版本包的问题环境说明基于了RockyLinuxrelease8.8,同时obproxy使用了4.2.1版本的构建参考命令这个官方已经提供了,主要就是initdebug,makeshbuild.shinitshbuild.sh......
  • linux socket初步理解
    引用:https://www.bilibili.com/video/BV1aN411U7js/?spm_id_from=333.337.search-card.all.click&vd_source=e05f4a55dd5d8e27f74472aa7fd97acechatgpt1.socket所处的位置:2.socket的工作原理: 3.socket结构描述:  ......
  • 关于数据摆渡 你关心的5个问题都在这儿了!
    数据摆渡,这个词语的概念源自于网络隔离和数据交换的场景和需求。不管是物理隔离、协议隔离、应用隔离还是逻辑隔离,最终目的都是为了保护内部核心数据的安全。而隔离之后,又必然会存在文件交换的需求。传统的跨网数据摆渡方式经历了从人工U盘摆渡到光盘摆渡机,再到FTP、网闸等一些......
  • 关于FastAPI与Vue3的通信
    学习一下前后端分离技术,前端采用三大框架之一的Vue.js,后端则采用Python的FastAPI框架。一、前端设计1.建目录mydemo2.在mydemo目录下打开命令行,运行:npminitvue@latest(这里如果cmd卡死了,就ctrl+C结束,再次运行npminitvue@latest)3.工程名设置为 frontend ,其余按默......
  • 之后的一些计划
    数据结构待写vectorhash平衡树(splay,treap,AVL树)Link-Cut-Tree树套树不想写heap红黑树舞蹈链DLX主席树已写kdtree算法待写拓扑排序KMPmanacher树上启发式合并cdq分治不想写莫队已写逆元......
  • npm install 遇到的一些问题
    node不是命令符快捷键win+R,输入cmd,打开命令窗口,输入node,如果出现了版本信息,就说明安装成功了node.js。右键以管理员身份打开vsCode,打开项目,打开终端,再次输入npminstall,就不会报此错误了。npmERR!codeERR_SOCKET_TIMEOUT原因:没有更改npm镜像源,国内访问官方源网速......