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

2024-04-28

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

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

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


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

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

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

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

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

    我需要找到代理前面的补丁与某个补丁 目标 之间的最小距离 以便选择能够创建最佳 最短 路径的补丁 原始的distance仅需要一个参数 因此我无法按原样使用该函数 The distance原语只需要一个参数 是的 但它是一个 补丁或海龟原语
  • “双图”中变化次数有限的最短路径

    假设我们在一组顶点上有两个有向正权图 第一个图代表铁路 第二个图代表公交车道 顶点是公交车站或火车站或两者 我们需要找到从 A 到 B 的最短路径 但我们不能改变交通工具类型超过 N 次 我试图修改 Dijkstra 算法 但它只适用于一些
  • 有效的路径查找算法避免锯齿形[重复]

    这个问题在这里已经有答案了 I am developing a software which connects objects with wires This wiring has a rule that these wires canno
  • 如何最小化最短路径树的总成本

    我有一个具有正边权重的有向无环图 它具有单个源和一组目标 距离源最远的顶点 我找到从源到每个目标的最短路径 其中一些路径重叠 我想要的是一个最短路径树 它可以最小化所有边上的权重总和 例如 考虑其中两个目标 假设所有边的权重相等 如果它们在
  • 针对某些图操作的最简单算法的建议

    这个项目的截止日期很快就到了 我没有太多时间来处理剩下的事情 因此 我不是寻找最好的 可能更复杂 耗时 算法 而是寻找最简单的算法来实现图结构上的一些操作 我需要做的操作如下 列出给定距离 X 的图网络中的所有用户 列出给定距离 X 和关系
  • 点加速最快路径

    这只是我自己想出的东西 但这似乎是一个有趣的问题 它让我难住了 您在二维空间中有一组点 其中一个点指定为 起点 一个点指定为 终点 每个点都有坐标 以米为单位距原点 但也有一个 加速度数 以米 秒的 delta V 为单位 到达某个点 包括
  • Dijkstra 算法是确定性的吗?

    我认为 Dijkstra 算法是确定的 因此如果您选择相同的起始顶点 您将得到相同的结果 到每个其他顶点的距离相同 但我不认为它是确定性的 它为每个操作定义了以下操作 因为这意味着它不必首先搜索最短距离 我对么 如果我错了 你能解释一下为什
  • 覆盖给定起始节点的所有边的算法

    我正在与朋友一起开发游戏算法 但我们陷入了困境 目前 我们有一个循环无向图 我们正在尝试找到从起始节点 S 开始覆盖每条边的最快路径 我们不是在寻找游览 可能会有重复的边缘 关于算法或近似值有什么想法吗 我确信这个问题是 NP 困难的 但我
  • 在Python中找到英文维基百科中两篇文章之间的最短路径

    问题 在英文维基百科中查找两篇文章之间的最短路径 如果存在文章 C i 并且文章 A 中存在指向文章 C 1 的链接 文章 C 1 中存在指向文章 C 2 的链接 则文章 A 和 B 之间存在路径 在文章 C n 中是指向文章 B 的链接
  • 找到图中强制访问某些边而其他边不强制访问的最短路径

    我有一个无向图 约有 1000 个节点和 2000 个边 一个起始节点和一个结束节点 我必须从起始节点遍历到结束节点 穿过所有强制边 大约10条 而不必遍历所有顶点或节点 有没有一个简单的解决方案 比如对现有的图遍历算法进行一些小的改变 我
  • 将一个单词转换为另一个单词的最短路径

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

    我想知道是否有一种算法可以通过从头节点到尾节点的图找到最短的节点序列 该图从头节点分支出来 并且是任意复杂的 并在尾节点处收敛 节点之间的所有连接都是未加权的 我正在考虑解决这个问题 从头节点和尾节点采取探索性步骤 直到图形两端的节点接触等
  • 具有负权重的 Dijkstra 算法

    我们可以使用具有负权重的 Dijkstra 算法吗 STOP 在你认为 哈哈 你可以在两点之间无休止地跳跃并获得一条无限便宜的路径 之前 我更倾向于考虑单向路径 其应用是具有点的山区地形 显然 从高到低并不需要能量 事实上 它会产生能量 因
  • 具有固定边数的最短路径

    在高效的时间内找到通过图形的最短路径 并附加该路径必须完全包含的约束n nodes 我们有一个有向加权图 它可能包含也可能不包含循环 我们可以使用 Dijkstra 算法轻松找到最短路径 但 Dijkstra 算法不保证边的数量 我们能想到
  • 找到从 A 到 B 的最短路径,同时拾取可能位于多个位置的某些物品[重复]

    这个问题在这里已经有答案了 我正在学习图形和算法 我什至很难找到此类问题的名称 更不用说提出一个好的解决方案了 如果我们只有一个未加权的无向图 那么找到从 A 到 B 的最短路径是微不足道的 BFS 如果我们必须访问某些节点 从 A 到 B
  • 通过多个节点的最短单向路径

    我有一系列图形坐标 我需要找到穿过它们的最短单向路径 我没有预定的开始 结束 但每个点只能被触摸一次 并且不需要返回到最佳原点 我已经尝试了几种 TSP 方法 但它们似乎都基于最后返回原点 这在这种情况下给出了非常低效的结果 Example
  • 寻找有向或无向图中的最短循环

    我正在寻找一种算法来找到有向或无向图中的最短周期 例如 对于节点 3 算法可能返回 周期1 3 gt 10 gt 11 gt 7 gt 8 gt 3 周期2 3 gt 10 gt 9 gt 8 gt 3 对于这些循环 最短的是循环 2 位于
  • Floyd Warshall 算法的时间复杂度

    Skiena 的算法书包含以下解释弗洛伊德 沃歇尔算法 http en wikipedia org wiki Floyd E2 80 93Warshall algorithm floyd adjacency matrix g int i j
  • 为什么使用 Dijkstra 算法而不是最佳(最便宜)优先搜索?

    从我到目前为止所读到的来看 这最佳优先搜索 https en wikipedia org wiki Best first search在找到到达目标的最短路径方面似乎更快 因为 Dijkstra 算法在遍历图时必须放松所有节点 是什么让 D
  • 使用斐波那契堆时 Dijkstra 是否更快?

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

随机推荐