【问题标题】:How to get the "articulation edges" in igraph?如何在 igraph 中获得“关节边缘”?
【发布时间】:2020-03-23 22:58:44
【问题描述】:

我正在尝试使用 igraph(和 tidygraph)及其函数 articulation_points 来识别关节点之间的边缘。换句话说,我正在寻找我的图表中的边缘,如果切割会将图表一分为二。我的第一个猜测是,我需要做的就是将边缘过滤到from 和to 顶点都是关节点的边缘。不幸的是,我很快发现这是不够的,因为这种方法会标记边缘,如果当它们彼此相邻时被切断,它们不会分裂网络。这个“关节边缘”列表还有其他途径吗?

这是我的(不正确的)逻辑。

mygraph %N>%
  mutate(apoint = name %in% as.character(igraph::articulation_points(.G()))) %E>%
  mutate(aedge = .N()$apoint[from] & .N()$apoint[to])

我将尝试提出一个最小的网络,该网络具有这种逻辑失败的特性。敬请期待。

【问题讨论】:

    标签: r igraph tidygraph


    【解决方案1】:

    这样的边缘被称为“桥梁”。寻找桥梁是在igraph 的C core 中实现的,但恐怕还没有在R 接口中实现。也许它会包含在新版本中。

    对了,还有一个新的支持论坛igraph:https://igraph.discourse.group/

    【讨论】:

    • 谢谢。现在我知道了这个词,我发现可以使用 [Tarjan 算法]("en.wikipedia.org/wiki/…) 找到这些。
    • R 中有一个替代方案:您可以使用biconnected_components,如igraph support forum 所述。
    猜你喜欢
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多