最佳优先搜索

最佳优先搜索可被认为是广度优先搜索的贪婪形式,本质上它是一种贪心算法。

A*算法和B*算法是广泛使用的最短路搜索算法。

Dijkstra算法本质上是一种基于动态规划的BFS,如果我们能够对两个点之间的距离进行比较准确的“估计”,那么就可以使用A*算法来改进!

广度优先搜索是朝向四面八方,而我们往往可以预先知道往哪一个方向最有可能路径较短。

如果我们下从 A 点移动到 B 点,但是这两点之间被一堵墙隔开。如下图,绿色是 A,红色是 B,中间蓝色是墙。

在Dijkstra我们用一个优先队列去维护广度优先搜索的最小代价,在A*算法,代价 F 是一个基于我们认识的改进:F = G + H。

G 是从起点 A 移动到指定方格的移动代价,而 H 是通过估算该点到终点 ( 红色方格 ) 的 Manhattan 距离得到的(比如下图就可以选择 Manhattan 距离)。这样,广度优先搜索就会优先考虑我们主观上认为会更近的一些位置。
这里的 H 被视作是Heuristics Function,被认为是一种试探。越接近真实距离,那么A*算法的表现就会越好。

B*算法是对A*的一点小变动,它根本不考虑所谓的“接近真实距离的启发式函数”,直接使用两点之间的直线距离。结果就是我们最终得到的“最短路”是直接从起点走到终点,如果遇到障碍物就绕过去。这样做的好处是减少计算代价,因此B*算法被广泛应用在游戏中,一群怪物需要接近用户角色,所以在打 DNF 的时候,会发现怪物都是喜欢绕墙走的hh。

参考资料:

  • https://zhuanlan.zhihu.com/p/45663817
  • https://blog.csdn.net/u014624659/article/details/84707824

http://www.taodudu.cc/news/show-4916316.html

相关文章:

  • Selenium - Selenium best practices
  • android 10.0状态栏显示电量百分比
  • 羞羞电量插件v1.0安卓版
  • 关于 APP 电量测试步骤总结
  • vue+less 电池电量图标组件
  • MagicPods(在Windows电脑上可以实现airpods2弹窗,查看单个耳机电量、充电仓电量)
  • 【腾讯TMQ】iOS电量测试实践
  • cordova电池插件
  • app电量测试
  • Android 电量显示Widgets插件实现
  • 电量优化
  • Android 电量与网络优化
  • 自定义Qt Designer插件
  • 自定义插件和库
  • android电池电量监控,android电量监控 Battery Widget Reborn
  • android studio 电量,Android Studio 导出Unity插件(剩余电量、信号强度)
  • android实现电量控制,Android 删除/定制桌面电量控制插件
  • 电量控制插件
  • Flutter插件开发-电池电量管理插件示例
  • 《通信技术导论(原书第5版)》——2.2 下一代数据中心:虚拟化和千兆比特速率...
  • 当前深度神经网络模型压缩和加速方法速览
  • 人工智能随笔--硬件
  • 荣耀智慧屏正在加速电视产业变革
  • c++面试高频题-速记版
  • 深度神经网络模型压缩和加速
  • 新增FacesetEnhancer(脸图增强器) DeepFaceLab更新至2019.12.26
  • 计网精简版
  • vChain: Enabling Verifiable Boolean Range Queries over Blockchain Databases
  • 一套停车场管理软件附带源代码 J2EE服务端+android客户
  • 停车场管理系统是通过计算机,停车场管理系统你不能不知的几个重要参数

Best-first search相关推荐

  1. 《Python程序设计》python常用的格式转换

    #字典 tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} tinydict['Age'] = 8 # 更新 tinydict['Schoo ...

  2. 【printf函数】vprintf使用参数列表(va_list)传递参数

    [二进制漏洞]PWN学习之格式化字符串漏洞 Linux篇 格式化输出函数 printf函数族功能介绍 printf参数 type(类型) flags(标志) number(宽度) precision( ...

  3. python中的match和search的区别

    对比 match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]): 这个方法将从string的pos下标处起尝试匹配patt ...

  4. Python中re的match、search、findall、finditer区别正则

    20210728 search 得到索引范围 原文地址: http://blog.csdn.net/djskl/article/details/44357389 这四个方法是从某个字符串中寻找特定子串 ...

  5. Beam Search

    Q: 什么是Beam Search? 它在NLP中的什么场景里会⽤到? 传统的广度优先策略能够找到最优的路径,但是在搜索空间非常大的情况下,内存占用是指数级增长,很容易造成内存溢出,因此提出了beam ...

  6. python 正则表达式 re.search() 的使用

    1 re.search() 的作用: re.search会匹配整个字符串,并返回第一个成功的匹配.如果匹配失败,则返回None 从源码里面可以看到re.search()方法里面有3个参数 patter ...

  7. leetcode:Search in Rotated Sorted Array

    题目要求: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 ...

  8. php redis search,php redis类

    php redis类 class phpredis extends Redis{ /* 构造函数:实例化redis类 @param config redis配置,格式: array( 'host' = ...

  9. python re match groups_python re.match与re.search的区别

    re.match与re.search的区别 re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None:而re.search匹配整个字符串,直到找到一个匹配. i ...

  10. LeetCode - 34. Search for a Range

    34. Search for a Range Problem's Link -------------------------------------------------------------- ...

最新文章

  1. ArcGIS工具备忘
  2. 百度神马搜狗360网站地图sitemap,主动提交推送插件
  3. 获取当天是当年/当月的第几周
  4. vue - .babelrc
  5. 关于luci的几个问题一
  6. KDE Akademy 2008 会议
  7. jQuery插件备忘
  8. Java描述设计模式(18):享元模式
  9. 块格式化上下文(Block Formatting Context,BFC)
  10. screen,client,page三种确定鼠标坐标的区别和原生JS事件写法,区别于Jquery的$.on(x,y);和$.click()...
  11. VS2010安装部署成.NET 2.0过程的几个问题
  12. matlab 韦达公式,三次方程的根式求解(通俗版本)
  13. EDA与VHDL题目——38译码器
  14. uniapp 图片上传
  15. 【计算机系统结构】第3章 流水线技术问答题
  16. Python爬取某宝商品数据案例:100页的价格、购买人数等数据!
  17. 如何判断一棵二叉树是完全二叉树
  18. 奥克斯空调红外遥控信号编码协议的分析,STC51单片机读红外程序
  19. 输入小写字母转换acii和对应大写
  20. 使用Arduino 连接旋转编码器

热门文章

  1. 关于WirelessKey的一些说明
  2. Xilinx-7Series-FPGA高速收发器使用学习—RX接收端介绍
  3. 扩展使用.INF文件-制作免安装的绿色软件
  4. 2018年公务员计算机考试试题,2018年国家公务员考试计算机专业冲刺试题(一)
  5. 称重软件-汽车衡称重防作弊系统整体解决方案
  6. Stunnel 的用法
  7. abel 登陆不了_封印者登录不了怎么办 三大登陆难题解决
  8. 国开网c语言上机题答案,数据库系统实验报告模板
  9. 国电+广电,入场5G!
  10. 手机显示无法接通服务器是怎么回事,手机暂时无法接通是什么原因 可能处于飞行模式...