朱莉娅中是否有一个LightGraph函数,相当于Networkx中的祖先函数?
发布于 2019-03-19 14:34:43
一种可能更快的方法:
function ancestors(g::SimpleDiGraph{T}, src) where T <: Integer
reverse!(g)
a = Vector{T}()
for (v, d) in enumerate(gdistances(g, src))
if d < typemax(T)
push!(a, v)
end
end
reverse!(g)
return a
end发布于 2019-03-19 00:56:44
不是本地的,但应该很容易估计:
function ancestors(g, src)
reverse!(g)
a = reduce(union, enumerate_paths(dijkstra_shortest_paths(g, src))
reverse!(g)
return a
end这将需要验证,如果函数在第二个reverse!之前退出,它会有一定的风险,但它比非变异的reverse()效率要高得多。
https://stackoverflow.com/questions/55229151
复制相似问题