寻路算法的可视化解释 关于 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 寻路算法的可视化解释

全局中部横幅
十大网盘搜索引擎

凌风云搜索是互联网专业的阿里云盘,百度网盘等十大网盘搜索引擎,是网盘资源搜索中心.

保定市民科环境检测有限公司

保定市民科环境检测有限公司创建于2003年10月份,依法注资500万元,地处具有古城之称的河北保定,位于繁荣的商务中心地段,环境优雅卓越,办公设施正规齐全,实验设备先进一流,是一家长期致力于环境(水、土壤、噪声、大气、固废、污染源)、辐射、油气回收、职业卫生评价等以检测为主的具有独立法人地位的股份

起名星

起名星宝宝起名网是专业的宝宝取名网站,可根据宝宝的生辰八字为您提供最理想的宝宝名字。

NSK模组

提供原装正品NSK模组批发、现货销售,安装拆机NSK模组服务,覆盖黑龙江、深圳、重庆、山东、北京、广西、浙江、贵州、吉林、陕西、河北、湖北、江苏等地,满足您的多样需求。

同城信息网

同城信息网,提供大家生活免费发布信息平台,相当于各城市的信息港,可以免费发布分类信息,同城信息,商业信息,服务信息等各个行业信息

成都戒网瘾

成都医学戒瘾中心向您详细介绍网瘾症状,网瘾治疗方法,网瘾吃什么好,擅长解决网瘾的心理咨询师。网络成瘾(Internetaddiction,IA)是指由神经内分泌紊乱引起的,以精神症状、躯体症状、心理障碍及人格改变为主要临床表现,导致社会功能活动受损的一组症候群

同步带轮

宁波圣龙王同步带有限公司宁波圣龙王同步带有限公司专业生产

电力招标信息网

电力招标信息网积极响应《电子招标投标办法》,致力于电力能源化工系统及上下游产业链的招标公告,其中包括但不限于国家电投、国家能源、国家电网、大唐集团、华能、华电集团和地方发电厂的招投标信息,使所有参与者在平台上获取最新的招标投标信息。

兆维BGP机房,兆维数据中心,兆维灾备数据中心,兆维灾备机房,兆维电信BGP数据中心,北京BGP机房,北京双线机房,北京多线机房,

北京BGP机房,兆维BGP机房,兆维数据中心,兆维灾备数据中心,兆维灾备机房,兆维电信BGP数据中心,北京双线机房,北京多线机房,

罗田招聘信息网

罗田本地招聘信息网站,专注黄冈人才市场,涵盖教师|事业单位|医院护士等多个领域。罗田招聘信息网专注于同城招聘,一键找工作,为您提供最新|最全的求职信息,让求职之路更加便捷。

H5渠道统计

H5渠道统计,支持App内分享、二维码、网站、海报、Email、短信等App渠道统计,程序化创建渠道链接(二维码)进行海量渠道效果统计。

全局底部横幅