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


本文地址: https://www.gpxz.com/article/d18e54c799879e3bb758.html
全局中部横幅
全局中部横幅
免费公司起名字

京帮起名网是一个全新理念的智能起名系统,继承传统文化的特色起名网站.它通过非常简单的步骤,根据用户的起名意愿,可以迅速完成宝宝起名,宝宝起名大全,姓名测试,公司起名,专家起名,起名字男孩,起名字女孩,免费起网名/小名,免费起英文名等功能和服务。通过高品质的服务,给名字赋予深厚的文化内涵和时代意义。

零担物流

笨熊物流是熊居网旗下针对厂区与物流园区货运物流提供高效、智能、便捷的物流服务平台,为厂区货主找车发货、货车司机找活送货,提供全面的信息及交易服务,致力打造互联网+时代下的新型智能物流服务模式

搜罗街

搜罗街同城分类信息网,是更专业的同城分类信息发布门户!免费发布查询同城招聘、找工作、租房、二手房、交友、搬家、二手车、生活黄页等同城实用信息.搜罗街同城分类信息网-为本地生活服务的信息发布平台www.souluojie.com!

内蒙古定制网站

国风魔力一站式建站服务,助力企业打造0基础建站。主要以定制网站、模板网站、网站开发、软件开发为主,为企业模板建站提供一条龙服务。

bounea传感器

厦门特尔克斯电子有限公司是一家专业从事传感器开发、生产、销售服务于一体的企业。产品广泛应用于军工、交通、塑胶、冶金、化工、纺织、烟草、食品、印刷、仪器等行业的工业机械设备及自动化生产线,具有定位检测、信号传送、自动计数、测速等作用。公司的所有产品在不断吸纳、融合国内外先进科技的同时,参照国际标准研发和生产。公司生产的系列接近开关、光电开关、线性输出开关、磁性开关、洗车机专用光电开关,同国外的众多品牌同类产品相比,具有性价比高,可完全替代进口同类产品。我们始终坚持以科技进步为先导,秉承“品质第一,顾客至上”为宗旨,在发展中不断完善自我,为客户提供售前到售后的全方位的服务。

锦华科技

锦华科技是中国知名融媒体科技公司,致力于融媒体软件开发和融媒体中心项目建设,公司拥有融媒体生产发布系统和全媒体新闻采编系统两大产品线,拥有软件著作权三十多项,公司荣获全国奖项十余个,公司是高新技术企业、双软企业、大数据企业。

思睿智训

浙江师范大学、跨境电商全流程实训平台、跨境电商实训系统、跨境电商实训室、跨境电商实验室、跨境电商实战、跨境电商ERP、跨境电商物流系统、跨境电商B2C实训、跨境电商B2B实训、Wish沙盒、eBay沙盒、亚马逊、速卖通、敦煌网、阿里巴巴国际站、邹益民

脐带血

脐带血是人类宝贵的生命资源。北京市脐血库始建于1996年,2002年由原卫生部批准成为中国第一家脐带血造血干细胞库。为多家临床单位和科研机构提供脐带血造血干细胞及配型服务,脐带血供应覆盖全国,同时,北京市脐血库也提供脐带血保存服务,分为自体库和公共库。

康熙字典在线查字

康熙字典在线查字平台,提供康熙字典繁体笔画查询,康熙字典笔画查询,查询汉字吉凶寓意、五行属性、笔画数、拼音等,康熙字典是中国传统文化传承的字典,是起名用字,汉字学习的字典工具

提升门

提升门厂家西朗门业生产的提升门、工业滑升门、车库门、快速提升门、装卸货平台、登车桥等均通过欧盟CE、UL认证,出口海外70多国,是70家世界500强供应商,为全球工厂提供工业门方案。

吉客云官方

吉客云官方(www.hd-jky.com)认证服务商,吉客云官网是国内顶尖SaaSERP软件服务商。聚焦吉客云电商erp、吉客云企业管理、吉客云WMS仓储等软件,提供吉客云ERP、吉客云WMS、吉客云mes、吉客云MAR生产及供应链、吉客云企业oa吉客云办公等多元解决方案,以专业实力推动企业数字化转型。

全局底部横幅