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

全局中部横幅
独立控制面板登录

虚拟主机,我司是专业的虚拟主机域名注册主机租用服务商,全面支持:JSP虚拟主机,PHP虚拟主机,ASP虚拟主机,ASP.NET虚拟主机,PERL虚拟主机,JAVA虚拟主机.近50项全系列网站管理工具。全国依靠的双线、多线机房,全国畅通无阻!

阳光出行官网

阳光出行,2019年1月正式开始网约车运营,总部位于北京,目前已获得全国150多个城市网约车牌照并服务人次5亿+。阳光出行深耕聚合网约车出行市场,现已同腾讯出行、腾讯地图、百度地图、阿里商旅、美团打车、滴滴出行、高德地图、华为Petal出行、携程旅行、12306等100多家聚合出行平台达成战略合作。同时阳光出行积极推进网约车智能化布局,用户可在阳光出行自营乘客端体验自动驾驶出行服务。

拖拉机厂家

山东正丰机械有限公司位于运河之都,工商业发达的“孔孟之乡”—济宁.公司成立于2014年,是集研发、制造、销售为一体的履带式拖拉机生产专业企业.具有噪音低、振动小、接地压力小、重量轻、牵引力大,对路面破坏力小,山地坡地均可使用等多种特性

铸铁平台

泊头市君诺工量具有限公司品牌专利产品有:君诺®自主品牌的平直量具类,大型铸铁平台、铸铁平板、检验平台、三维柔性平台、机床铸件等。拥有一项汽车减震试验平台的专利技术,为国内外几大汽车行业所应用,量身定做、实用实惠!欢迎来电咨询洽谈!

写作方程式,老笔头,笔杆子,公文写作https://www.xiezuofangchengshi.com/

笔杆子老笔头写作素材库民主生活会、组织生活会、党课讲稿、会议讲话、对照检查材料、工作总结、述职述廉报告、演讲致辞、心得体会、研讨发言

RCC
RCC

RCCChina(瑞达恒)在北京、上海、广州、天津、重庆、武汉、南京、杭州和西安等地设有十个公司,主要业务包括建筑和工业工程信息的收集和发布、市场调研服务及会议服务,是中国领建筑行业领先的专业信息咨询公司。

江苏壹光科技有限公司

江苏壹光科技是OLED照明技术的领航者,通过开创性的研发和制造实力,为我们的客户提供自然、健康、具创造力的OLED照明光源。

水控机

上海志控智能科技有限公司专注于生产销售水控机,电控机,刷卡洗衣机,就餐机,消费机,扫码支付,企业一卡通,园区一卡通,校园一卡通,公寓一卡通,厂家直销,价格优惠,质量可靠,有需要的朋友欢迎电话咨询!

首页

阳普医疗科技股份有限公司(以下简称“阳普医疗”)成立于1996年,其核心业务是临床诊断、伴随诊断、医疗信息化与免疫治疗技术。2009年,公司在创业板上市,股票代码300030。

全局底部横幅