节点之间的距离 LightGraphs julia
Distance between nodes LightGraphs julia
我想知道如何计算给定节点对之间的距离,比如节点“i”和“j”
这是具有 100 个节点和连通性 3
的随机正则图中的节点 2 和 12 的最小示例
julia> using LightGraphs
julia> L = random_regular_graph(100, 3)
julia> paths= dijkstra_shortest_paths(L, 2)
julia> distances = paths.dists
julia> d = distances[12]
这种方法的问题是我必须计算所有节点和我的节点 2 之间的距离才能知道我感兴趣的两个节点之间的距离
如果您只需要从特定来源到特定目的地的最短路径,请考虑使用 A*:
julia> g = CycleGraph(10)
{10, 10} undirected simple Int64 graph
julia> a_star(g, 1, 8)
3-element Array{LightGraphs.SimpleGraphs.SimpleEdge{Int64},1}:
Edge 1 => 10
Edge 10 => 9
Edge 9 => 8
如果您只对(未加权,单位)距离感兴趣,请使用 gdistances
:
julia> gdistances(g, 1)[8]
3
无论如何,不要从 DijkstraResult
访问 .dists
字段。使用 dists()
方法作为访问器。 LightGraphs 结构的内部不打算直接使用。
我想知道如何计算给定节点对之间的距离,比如节点“i”和“j” 这是具有 100 个节点和连通性 3
的随机正则图中的节点 2 和 12 的最小示例julia> using LightGraphs
julia> L = random_regular_graph(100, 3)
julia> paths= dijkstra_shortest_paths(L, 2)
julia> distances = paths.dists
julia> d = distances[12]
这种方法的问题是我必须计算所有节点和我的节点 2 之间的距离才能知道我感兴趣的两个节点之间的距离
如果您只需要从特定来源到特定目的地的最短路径,请考虑使用 A*:
julia> g = CycleGraph(10)
{10, 10} undirected simple Int64 graph
julia> a_star(g, 1, 8)
3-element Array{LightGraphs.SimpleGraphs.SimpleEdge{Int64},1}:
Edge 1 => 10
Edge 10 => 9
Edge 9 => 8
如果您只对(未加权,单位)距离感兴趣,请使用 gdistances
:
julia> gdistances(g, 1)[8]
3
无论如何,不要从 DijkstraResult
访问 .dists
字段。使用 dists()
方法作为访问器。 LightGraphs 结构的内部不打算直接使用。