首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >朱莉娅LightGraphs的Networkx“祖先”等价

朱莉娅LightGraphs的Networkx“祖先”等价
EN

Stack Overflow用户
提问于 2019-03-18 19:57:58
回答 2查看 284关注 0票数 1

朱莉娅中是否有一个LightGraph函数,相当于Networkx中的祖先函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-19 14:34:43

一种可能更快的方法:

代码语言:javascript
复制
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
票数 2
EN

Stack Overflow用户

发布于 2019-03-19 00:56:44

不是本地的,但应该很容易估计:

代码语言:javascript
复制
function ancestors(g, src)
    reverse!(g)
    a = reduce(union, enumerate_paths(dijkstra_shortest_paths(g, src))
    reverse!(g)
    return a
end

这将需要验证,如果函数在第二个reverse!之前退出,它会有一定的风险,但它比非变异的reverse()效率要高得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55229151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档