寻路算法的可视化解释 关于 Dijkstra A* BFS (寻路算法的可行性)

文章编号:36850 资讯动态 2024-11-30 寻路算法

译者:AI研习社( 季一帆 )

双语原文链接: Interactive pathfinding


点此链接进入交互展示页面:

广度优先搜索、Dijkstra和A*是图上的三种典型路径规划。它们都可用于图搜索,不同之处在于队列和启发式函数两个参数。

本项目探索并可视化不同算法如何根据选择参数进行图搜索。

算法的一般性原理如下:

将边界初始化为包含起始节点的队列。

当边界队列不为空时,从队列中“访问”并删除一个“当前”节点,同时将访问节点的每个邻居节点添加到队列,其成本是到达当前节点的成本加上从当前节点访问邻居的成本再加上邻居节点和目标节点的启发式函数值。其中,启发式函数是对两个节点的路径成本的估计。

存储访问路径(通常存储在cameFrom图中),以便后续重建路径。如果邻居节点已经在列表中,同时新路径的成本较低,那么更改其成本。

找到目标路径(提前退出)或列表为空时,停止算法。

使用先进先出队列实现BFS。这种队列会忽略路径中链接的开销,并根据跳数进行扩展,因此可以确保找到最短路径的跳数,而跳数相关的成本。启发式函数的选择是任意的,因为在这个过程中其并不起作用。

使用数组可实现先进先出,即将元素附加到末尾并从头删除。

关于 A*、Dijkstra、BFS 寻路算法的解释

在图上使用优先级队列和始终返回0的启发式函数,便得到Dijkstra。

相比于BFS,Dijkstra最大的不同在于考虑了成本。通过该算法,可以根据节点到节点的成本找到最短路径。

优先级队列使用数组实现,在每次插入新节点后对该数组进行排序。尽管实现优先级队列还有其他更高效的方式,但在我们的场景中,数组是足够快的,而且实现起来也简单

关于 A*、Dijkstra、BFS 寻路算法的解释

为实现A*,需要传递一个实际启发式函数,例如两个节点之间的欧式距离。通过“节点成本”+“节点到目标节点的估算成本”对节点进行加权,通过优先搜索更大可能的节点加快搜索速度。

关于 A*、Dijkstra、BFS 寻路算法的解释

非允许的启发式函数

只有应用可允许启发式函数,A*才能找到最短路径,这也意味着永远不会高估实际路径长度。由于欧氏距离是两点之间的最短距离/路径,因此欧氏距离绝不会超出。

但如果将其乘以常数k>0会怎样呢?这样会高估距离,成为非允许的启发式函数。

关于 A*、Dijkstra、BFS 寻路算法的解释

实现

本项目通过script实现,以便读者在Web上进行访问。另外,我使用react渲染UI,使用react-konva渲染图形。

路径发现是指接受队列类型和启发式函数,并返回另一个函数,即真实路径发现(称为currying)。

这样,用户每次更改设置后,都会使用确定参数创建一个新的路径发现函数,并将之用于图搜索。

为可视化路径发现的步骤,我使用javascript生成器,这意味着函数返回一个迭代器,而不仅仅是一个值。因此,访客在每一步都可以生成算法的整个状态,并将其保存到数组,然后通过页面顶部的滑块显示特定状态。


AI研习社是AI学术青年和AI开发者技术交流的在线社区。我们与高校、学术机构和产业界合作,通过提供学习、实战和求职服务,为AI学术青年和开发者的交流互助和职业发展打造一站式平台,致力成为中国最大的科技创新人才聚集地。

如果,你也是位热爱分享的AI爱好者。欢迎与 译站 一起,学习新知,分享成长。

关于 A*、Dijkstra、BFS 寻路算法的解释

版权文章,未经授权禁止转载。详情见 转载须知 。

关于 A*、Dijkstra、BFS 寻路算法的解释

全局中部横幅
千龙网

千龙网由新京报社主办、北京千龙新闻网络传播有限责任公司运营。北京千龙新闻网络传播有限责任公司由新京报社控股。千龙网于2000年5月25日上线,是北京市属重点新闻网站、首都高端智库建设试点单位。

3D,3D网页游戏,3D小游戏,3D小游戏大全,4399小游戏

43993D小游戏大全收录了国内外3D,3D网页游戏,3D小游戏,3D麻将连连看小游戏,3D猫小游戏,3D赛车小游戏,3D换装小游戏,3D射击小游戏,3D世界杯小游戏,3D小游戏下载。好玩就拉朋友们一起来玩吧!

一氧化碳治理

山东山蓝环境集团有限公司是一家从事一氧化碳治理、二氧化碳捕集利用与封存(CCUS技术)、RCO催化燃烧、RTO高温氧化、直燃式氧化、水污染处理、固废治理的企业,集环保设备的研发、生产、销售、安装及环境治理工程于一体。我公司具有环保工程设计服务一级资质,废气、废水、固废专项工程设计证书,环境污染治理工程总承包资质,土壤修复一级资质、三体系认证和多项荣誉证书,欢迎来电咨询。

大哲网

大哲网-学习成就梦想!大哲网(www.dazhe5.cn)成立于2019年,是国内大型公益性英语学习平台。提供在线英语阅读、英语音标、英语单词查询、英语语法、英语听力、英语口语、少儿英语、高中英语、四六级、雅思托福、高考英语、中考英语等各个阶段的英语学习资源。学习者不仅可以提高自己的语言水平,还可以了解到丰富多彩的英语国家文化和社会知识。

泰久信息

深圳市泰久信息系统股份有限公司拥有丰富的智慧旅游与智慧影院实战建设经验,专注于各地旅游景区以及影院提供整体建设解决方案,帮助景区和影院实现线上线下移动O2O技术服务。

木质纤维

无锡路优新材料有限公司主要生产木质纤维,路用木质纤维,木质纤维投料机等产品,是专业的木质纤维,路用木质纤维,木质纤维投料机的优质供应商,欢迎订购木质纤维,路用木质纤维,木质纤维投料机。

中项资源―国内建设工程领域资源整合平台

中项资源(cpra360.com)中项网建设项目产业链资源整合服务平台,基于中项网产业链上下游资源单位和平台品牌及团队,专注于为建设工程领域上下游提供项目、资金、技术、人脉专家、供应商等资源 整合服务。

青岛城北标牌制作有限公司

青岛城北标牌制作有限公司专注于金属标牌,不锈钢标牌,标识标牌的制作和加工,拥有先进的生产设备,雄厚的技术力量

创联教育

创联教育致力于职业人群终身教育,立足职业培训与继续教育领域,围绕技术产品研发和内容资源建设,业务覆盖职业教育全产业链布局。

青岛帝禾农业生物科技有限公司

青岛帝禾农业生物科技有限公司,帝禾农业,青岛肥料公司,青岛肥料厂

全局底部横幅