如何解决igraph 有“has_path”功能吗?
我正在尝试将代码从 python NetworkX 移植到 R igraph。在 NetworkX 中有一个名为 has_path
的函数,用于查找两个顶点是否具有路径。我想以一种有效的方式找到图中没有边但它们有路径的所有顶点。
解决方法
我觉得你可以用下面的代码来检查是否有从顶点V1
到V2
的路径(图可以有向也可以无向)
c(!is.infinite(distances(g,V1,V2,mode = "out")))
,
如果您需要在无向图中重复检查这一点,只需将其分解为连接的组件并检查两个顶点是否在同一组件内。这将非常有效,因为组件只需要找到一次。
参见 components
函数。它为您提供了一个成员资格向量。您需要检查两个顶点对应的位置是否具有相同的值(相同的组件索引)。
如果图是有向图,最简单的解决方案是@ThomasIsCoding 发布的解决方案。这对于一次性检查来说完全没问题。加快重复检查的速度更麻烦,并且需要自己提出问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。