【发布时间】:2021-07-23 19:00:15
【问题描述】:
我正在尝试将代码从 python NetworkX 移植到 R igraph。在 NetworkX 中有一个名为 has_path 的函数,用于查找两个顶点是否有路径。我想以一种有效的方式找到图的所有顶点,它们之间没有边但它们有路径。
【问题讨论】:
我正在尝试将代码从 python NetworkX 移植到 R igraph。在 NetworkX 中有一个名为 has_path 的函数,用于查找两个顶点是否有路径。我想以一种有效的方式找到图的所有顶点,它们之间没有边但它们有路径。
【问题讨论】:
我想你可以使用下面的代码来检查是否存在从顶点V1 到V2 的路径(图可以是有向的或无向的)
c(!is.infinite(distances(g, V1, V2, mode = "out")))
【讨论】:
如果您需要在无向图中重复检查这一点,只需将其分解为连接的组件并检查两个顶点是否在同一个组件内。这将非常有效,因为只需找到一次组件。
请参阅components 函数。它为您提供了一个会员向量。您需要检查两个顶点对应的位置是否具有相同的值(相同的组件索引)。
如果图形是有向的,最简单的解决方案是@ThomasIsCoding 发布的解决方案。这对于一次性检查来说非常好。加快重复检查的速度会更麻烦,而且有其自身的问题。
【讨论】: