使用斐波那契堆时 Dijkstra 是否更快?

2024-04-28

使用斐波那契堆时 Dijkstra 是否比使用二进制堆更快?

我自己做了一些实现斐波那契堆的实验,并在 Dijkstra 中使用它,我还检查了 fibheap 库中现成的斐波那契堆,但没有一个实现能够更快地找到使用以下命令的最短路径:二进制堆。

我是否有可能在某些方面犯了错误,或者在 Dijsktra 中寻找最短路径的情况下,斐波那契堆实际上比二进制堆慢?


使用斐波那契堆可以提高渐进的算法的运行时间。换句话说,随着图表变得越来越大,最终会达到使用斐波那契堆比使用二进制堆更快的程度。

然而,我听到的传统观点是,在此之前所需的图大小是如此之大,以至于出于实际目的,二进制堆总是更快。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用斐波那契堆时 Dijkstra 是否更快? 的相关文章

  • 如何计算两个补丁之间的距离?

    我需要找到代理前面的补丁与某个补丁 目标 之间的最小距离 以便选择能够创建最佳 最短 路径的补丁 原始的distance仅需要一个参数 因此我无法按原样使用该函数 The distance原语只需要一个参数 是的 但它是一个 补丁或海龟原语
  • 寻找特定顶点最短路径的好算法

    我正在解决下面描述的问题 并且想不出比尝试每个组的每个顶点的每个排列更好的算法 我得到了一张顶点图 以及一组特定顶点组的列表 目标是找到从特定起始顶点到特定结束顶点的最短路径 并且该路径必须从每个顶点至少经过一个顶点指定的顶点组 图中还存在
  • 我可以使用什么算法来查找图中指定节点类型之间的最短路径?

    这就是问题 我有 n 个点 p1 p2 p3 pn 每个点都可以以确定的成本 x 连接到任何其他点 每个点都属于一组点类型中的一个 例如 A B C D 该方法的输入是我想要遵循的路径 例如 A B C A D B 输出是连接我在输入中给出
  • 网格中两点之间的最短路径。有一个捕获

    我遇到这个问题 我必须通过向右或向下移动来找到 NxM 网格中从 A 点 总是左上角 到 B 点 总是右下角 的最短路径 听起来很容易 是吗 问题是 我只能移动我现在坐在的图块上显示的数字 让我举例说明 2 5 1 2 9 2 5 3 3
  • 让Boost Dijkstra算法在到达目的节点时停止

    我正在使用 boost graph 及其 Dijkstra 实现 当有人使用Dijkstra算法时 可能是为了知道图中2个节点之间的最短路径 但是 由于您需要检查图中的所有节点以找到最短路径 通常 如 boost 算法 Dijkstra 会
  • Dijkstra最短路径算法

    以下是我们教授给我们的算法摘要 步骤 3 中提到的图中节点的父节点是什么 我有点困惑 因为我认为节点只有邻居而没有父节点 我的第二个问题是关于第 3 步 拾取堆栈中的第索引条记录 由于堆栈只允许您查看顶部 所以我不确定拾取第索引记录意味着什
  • 网络直径是什么意思?

    上图所示这个链接 http en wikipedia org wiki Vertex 28graph theory 29的 具有 6 个顶点和 7 个边的图 其中最左侧的 6 号顶点是叶顶点或下垂顶点 有直径4吗 对还是错 定义是 图的直径
  • 寻找最短路径时,广度优先搜索如何工作?

    我做了一些研究 我似乎遗漏了这个算法的一小部分 我了解广度优先搜索的工作原理 但我不明白它到底如何让我到达特定路径 而不是仅仅告诉我每个单独的节点可以去哪里 我想解释我的困惑的最简单方法是提供一个例子 举例来说 假设我有一个这样的图表 我的
  • 将一个单词转换为另一个单词的最短路径

    对于数据结构项目 我必须找到两个单词之间的最短路径 例如 cat and dog 一次仅更改一个字母 我们得到了一个拼字游戏单词列表 用于寻找我们的路径 例如 cat gt bat gt bet gt bot gt bog gt dog 我
  • 3D 迷宫中的最短路径

    我正在尝试编写一个程序来使用递归查找 3D 迷宫中的最短路径 我能够编写找到穿过迷宫的随机路径的代码 但我想知道如何修改我的代码以找到最短路径 请注意 我想保留递归方法 有人可以提出解决方案吗 这是一个二维迷宫示例 s XXXX XX X
  • 如何在 BFS 图形搜索 JavaScript 中跟踪路径

    我正在研究 BFS 算法 但我很难弄清楚如何跟踪最短路径 下面是我使用过的代码 const graph 1 2 3 4 2 5 6 3 10 4 7 8 5 9 10 7 11 12 11 13 function bfs graph sta
  • 查找两个顶点之间的所有最短路径

    给定一个有向图G V E 两个顶点s t和两个权重函数w1 w2 我需要找到最短路径s to t by w2在所有最短路径之间s to t by w1 首先 我怎样才能找到两个顶点之间的所有最短路径s and t Dijkstra 算法帮助
  • 纯函数式语言中的高效堆

    作为 Haskell 的练习 我正在尝试实现堆排序 在命令式语言中 堆通常被实现为数组 但这在纯函数式语言中效率非常低 因此 我研究了二进制堆 但到目前为止我发现的所有内容都是从命令式的角度描述它们的 并且所提出的算法很难转化为函数设置 如
  • 寻找多条短路径的算法

    寻求一种能够产生 N 条短路径的算法 有没有人有算法的经验来寻找多条短路径在有向图中 我的应用程序用于语言 查找同义词链 但从逻辑上讲 这可能用于地理或社交网络 我想要明显不同的路径 而不仅仅是沿途交换几个节点 我真的很想知道是否有办法避免
  • 实施 Dijkstra 算法

    我的任务是 大学课程 实施某种形式的寻路 现在 在规范中 我可以实现强力 因为要搜索的节点数量有限制 开始 中间两个 结束 但我想重新使用此代码并来实现迪杰斯特拉算法 http en wikipedia org wiki Dijkstra
  • 如何获取两个节点之间的最小路径的权重?

    我有一个Python 中的networkx 图 带有加权边 我想获得两个节点之间的最小路径的权重 目前 我从 nx shortest path 实现中获取最短路径中的节点 然后迭代每对并对每对节点之间的权重求和 shortest path
  • 寻找有向或无向图中的最短循环

    我正在寻找一种算法来找到有向或无向图中的最短周期 例如 对于节点 3 算法可能返回 周期1 3 gt 10 gt 11 gt 7 gt 8 gt 3 周期2 3 gt 10 gt 9 gt 8 gt 3 对于这些循环 最短的是循环 2 位于
  • 计算网格上两点之间恰好有“n”个节点的最短路径

    我在网格上定义了以下 3D 表面 pylab inline def muller potential x y use numpy False Muller potential Parameters x float np ndarray or
  • AStar-名称解释

    我正在寻找 AStar A 算法为何被称为 AStar 的解释 所有类似的 最短路径问题 算法通常都以其开发者的名字命名 那么 AStar 代表什么 有称为 A1 和 A2 的算法 后来证明A2是最优的 实际上也是可能的最好算法 所以他给它
  • Blob 的簇生长

    考虑以下来自 Mathworks 的图像 我已经用标签标记了斑点 L num bwlabel I 如何迭代连接所有斑点 即从一个斑点开始 找到离它最近的一个 考虑最左边的两个斑点 可以从一个斑点的许多点绘制许多条线来连接到另一个斑点blob

随机推荐