gpt4 book ai didi

java - JGraphT 中未加权图的单源最短路径

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:24 30 4
gpt4 key购买 nike

JGraphT有许多最短路径的实现(Dijkstra、Belman Ford 等)

我需要一个未加权图的单源最短路径。

这是我的问题(特定于 JGraphT):

  1. 首先,我假设对未加权的图使用 Dijkstra 是一种浪费(使用优先级队列,它的队列双端队列比 BFS 使用的常规队列慢,并且由于在未加权的图上所有权重都是 1,这不是真的添加任何值)。我的假设正确吗?

  2. 假设 1 的答案是"is",那么我假设我将使用 BreadthFirstIterator 而不是滚动我自己的,(经过单元测试,并且作为简单的 BFS,我是当然我会有一些极端案例错误,即使是 Java 的二进制搜索也有整数溢出,这要归功于 Josh Bloch 自己引入的错误,直到 2006 年才解决!)。但问题是,从原始 BFS 到实际获得单源最短路径还有一个(非常小的)步骤,我应该编写自己的 UnweightedSingleSourceShortestPaths 类吗?或者是否有一个隐藏在 JGraphT 核心库中的,我可以直接插入?

最佳答案

因为我认为我找到了第二个问题的答案,我认为它也回答了第一个问题(如果 JgraphT 的 Dijkstra 对于所有权重 = 1 的简单情况最有效,那么为什么 CDK 会创建自己的?)

这是 #2 的答案 - 是的,有一个开源 (LGPL) 解决方案:https://github.com/cdk/cdk/blob/master/legacy/src/main/java/org/openscience/cdk/graph/BFSShortestPath.java

关于java - JGraphT 中未加权图的单源最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30462107/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com